diff --git a/common/abi.go b/common/abi.go index c86e9b88a..ee69ba665 100644 --- a/common/abi.go +++ b/common/abi.go @@ -9,4 +9,4 @@ import ( //go:embed abis/EigenDAServiceManager.json var ServiceManagerAbi []byte -var BatchConfirmedEventSigHash = crypto.Keccak256Hash([]byte("BatchConfirmed(bytes32,uint32,uint96)")) +var BatchConfirmedEventSigHash = crypto.Keccak256Hash([]byte("BatchConfirmed(bytes32,uint32)")) diff --git a/common/abis/EigenDAServiceManager.json b/common/abis/EigenDAServiceManager.json index d3258615d..7465b9eb5 100644 --- a/common/abis/EigenDAServiceManager.json +++ b/common/abis/EigenDAServiceManager.json @@ -1,973 +1,2094 @@ [ { - "inputs": [ - { - "internalType": "contract IBLSRegistryCoordinatorWithIndices", - "name": "_registryCoordinator", - "type": "address" - }, - { - "internalType": "contract IStrategyManager", - "name": "_strategyManager", - "type": "address" - }, - { - "internalType": "contract IDelegationManager", - "name": "_delegationMananger", - "type": "address" - }, - { - "internalType": "contract ISlasher", - "name": "_slasher", - "type": "address" - }, - { - "internalType": "contract IPaymentManager", - "name": "_eigenDAPaymentManager", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "batchHeaderHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "batchId", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint96", - "name": "fee", - "type": "uint96" - } - ], - "name": "BatchConfirmed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "previousValue", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newValue", - "type": "uint256" - } - ], - "name": "FeePerBytePerTimeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "name": "FeeSetterChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "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": "previousAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAddress", - "type": "address" - } - ], - "name": "PaymentManagerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "BLOCK_STALE_MEASURE", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "STORE_DURATION_BLOCKS", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "THRESHOLD_DENOMINATOR", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "batchId", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "batchIdToBatchMetadataHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blsPubkeyRegistry", - "outputs": [ - { - "internalType": "contract IBLSPubkeyRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "totalBytes", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "storePeriodLength", - "type": "uint32" - } - ], - "name": "calculateFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "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 BLSSignatureChecker.NonSignerStakesAndSignature", - "name": "nonSignerStakesAndSignature", - "type": "tuple" - } - ], - "name": "checkSignatures", - "outputs": [ - { - "components": [ - { - "internalType": "uint96[]", - "name": "signedStakeForQuorum", - "type": "uint96[]" - }, - { - "internalType": "uint96[]", - "name": "totalStakeForQuorum", - "type": "uint96[]" - } - ], - "internalType": "struct BLSSignatureChecker.QuorumStakeTotals", - "name": "", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "blobHeadersRoot", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "quorumNumbers", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "quorumThresholdPercentages", - "type": "bytes" - }, - { - "internalType": "uint32", - "name": "referenceBlockNumber", - "type": "uint32" - } - ], - "internalType": "struct IEigenDAServiceManager.BatchHeader", - "name": "batchHeader", - "type": "tuple" - }, - { - "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 BLSSignatureChecker.NonSignerStakesAndSignature", - "name": "nonSignerStakesAndSignature", - "type": "tuple" - } - ], - "name": "confirmBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delegationManager", - "outputs": [ - { - "internalType": "contract IDelegationManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eigenDAPaymentManager", - "outputs": [ - { - "internalType": "contract IPaymentManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feePerBytePerTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeSetter", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "freezeOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IPauserRegistry", - "name": "_pauserRegistry", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_feeSetter", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "latestServeUntilBlock", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "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" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - } - ], - "name": "recordFirstStakeUpdate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - } - ], - "name": "recordLastStakeUpdateAndRevokeSlashingAbility", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint32", - "name": "updateBlock", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "serveUntilBlock", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "prevElement", - "type": "uint256" - } - ], - "name": "recordStakeUpdate", - "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": "uint256", - "name": "_feePerBytePerTime", - "type": "uint256" - } - ], - "name": "setFeePerBytePerTime", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_feeSetter", - "type": "address" - } - ], - "name": "setFeeSetter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IPauserRegistry", - "name": "newPauserRegistry", - "type": "address" - } - ], - "name": "setPauserRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "slasher", - "outputs": [ - { - "internalType": "contract ISlasher", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stakeRegistry", - "outputs": [ - { - "internalType": "contract IStakeRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "strategyManager", - "outputs": [ - { - "internalType": "contract IStrategyManager", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "taskNumber", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPausedStatus", - "type": "uint256" - } - ], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "type": "constructor", + "inputs": [ + { + "name": "__delegationMananger", + "type": "address", + "internalType": "contract IDelegationManager" + }, + { + "name": "__registryCoordinator", + "type": "address", + "internalType": "contract IRegistryCoordinator" + }, + { + "name": "__stakeRegistry", + "type": "address", + "internalType": "contract IStakeRegistry" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "BLOCK_STALE_MEASURE", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "STORE_DURATION_BLOCKS", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "THRESHOLD_DENOMINATOR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batchConfirmer", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batchId", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "batchIdToBatchMetadataHash", + "inputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "blsApkRegistry", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IBLSApkRegistry" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "checkSignatures", + "inputs": [ + { + "name": "msgHash", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "quorumNumbers", + "type": "bytes", + "internalType": "bytes" + }, + { + "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": "confirmBatch", + "inputs": [ + { + "name": "batchHeader", + "type": "tuple", + "internalType": "struct IEigenDAServiceManager.BatchHeader", + "components": [ + { + "name": "blobHeadersRoot", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "quorumNumbers", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "quorumThresholdPercentages", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "referenceBlockNumber", + "type": "uint32", + "internalType": "uint32" + } + ] + }, + { + "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": "delegation", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IDelegationManager" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "deregisterOperatorFromAVS", + "inputs": [ + { + "name": "operator", + "type": "address", + "internalType": "address" + } + ], + "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": "_pauserRegistry", + "type": "address", + "internalType": "contract IPauserRegistry" + }, + { + "name": "_initialOwner", + "type": "address", + "internalType": "address" + }, + { + "name": "_batchConfirmer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "initialOwner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "latestServeUntilBlock", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "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": "setBatchConfirmer", + "inputs": [ + { + "name": "_batchConfirmer", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setMetadataURI", + "inputs": [ + { + "name": "_metadataURI", + "type": "string", + "internalType": "string" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setPauserRegistry", + "inputs": [ + { + "name": "newPauserRegistry", + "type": "address", + "internalType": "contract IPauserRegistry" + } + ], + "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": "taskNumber", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint32", + "internalType": "uint32" + } + ], + "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": "event", + "name": "BatchConfirmed", + "inputs": [ + { + "name": "batchHeaderHash", + "type": "bytes32", + "indexed": true, + "internalType": "bytes32" + }, + { + "name": "batchId", + "type": "uint32", + "indexed": false, + "internalType": "uint32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BatchConfirmerChanged", + "inputs": [ + { + "name": "previousAddress", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "newAddress", + "type": "address", + "indexed": false, + "internalType": "address" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Initialized", + "inputs": [ + { + "name": "version", + "type": "uint8", + "indexed": false, + "internalType": "uint8" + } + ], + "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": "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 } - ] \ No newline at end of file +], +"bytecode": { + "object": "0x6101606040523480156200001257600080fd5b506040516200501b3803806200501b8339810160408190526200003591620002e7565b6001600160a01b0380841660a052808316608052811660c052818381836200005c620001ff565b5050506001600160a01b03811660e081905260408051636830483560e01b815290516368304835916004808201926020929091908290030181865afa158015620000aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d091906200033b565b6001600160a01b0316610100816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014f91906200033b565b6001600160a01b0316610120816001600160a01b031681525050610100516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d191906200033b565b6001600160a01b031661014052506067805460ff19166001179055620001f6620001ff565b50505062000362565b600254600160a81b900460ff16156200026e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60025460ff600160a01b90910481161015620002cc576002805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b0381168114620002e457600080fd5b50565b600080600060608486031215620002fd57600080fd5b83516200030a81620002ce565b60208501519093506200031d81620002ce565b60408501519092506200033081620002ce565b809150509250925092565b6000602082840312156200034e57600080fd5b81516200035b81620002ce565b9392505050565b60805160a05160c05160e051610100516101205161014051614bcb62000450600039600081816104b00152611647015260008181610342015261183101526000818161037b01528181611a070152611bc90152600081816103a201528181610d9501528181611325015281816114bd01526116eb015260008181610abe01528181610c1901528181610cb001528181612829015281816129ac0152612a4b015260008181611eb101528181612479015261254d0152600081816108e901528181610978015281816109f801528181612425015281816124f10152818161276701526129070152614bcb6000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c806372d18e8d11610125578063c0c53b8b116100ad578063eccbbfc91161007c578063eccbbfc9146104da578063ef024458146104fa578063f122098314610502578063f2fde38b14610515578063fabc1cbc1461052857600080fd5b8063c0c53b8b14610485578063c4d66de814610498578063df5cf723146104ab578063e481af9d146104d257600080fd5b8063886f1195116100f4578063886f1195146104295780638da5cb5b146104415780639926ee7d14610452578063a364f4da14610465578063b98d09081461047857600080fd5b806372d18e8d146103ed578063750521f5146103fb578063758f8dba1461040e5780637794965a1461041657600080fd5b80635ac86ab7116101a85780635e8b3f2d116101775780635e8b3f2d1461036e57806368304835146103765780636d14a9871461039d5780636efb4636146103c4578063715018a6146103e557600080fd5b80635ac86ab7146102f85780635c975abb1461032b5780635df459461461033d5780635e0334761461036457600080fd5b806339f309d5116101e457806339f309d51461028d578063416c7e5e146102b85780634972134a146102cb578063595c6a67146102f057600080fd5b806310d67a2f14610216578063136439dd1461022b578063171f1d5b1461023e57806333cfb7b71461026d575b600080fd5b610229610224366004613b95565b61053b565b005b610229610239366004613bb2565b6105f7565b61025161024c366004613d1c565b61073a565b6040805192151583529015156020830152015b60405180910390f35b61028061027b366004613b95565b6108c4565b6040516102649190613d6d565b6002546102a0906001600160a01b031681565b6040516001600160a01b039091168152602001610264565b6102296102c6366004613dc8565b610d93565b6000546102db9063ffffffff1681565b60405163ffffffff9091168152602001610264565b610229610f08565b61031b610306366004613df4565b606854600160ff9092169190911b9081161490565b6040519015158152602001610264565b6068545b604051908152602001610264565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6102db620189c081565b6102db609681565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6103d76103d23660046140c7565b610fd3565b6040516102649291906141ba565b610229611e7e565b60005463ffffffff166102db565b61022961040936600461425a565b611e92565b6102db611f1b565b6102296104243660046142aa565b611f3b565b6067546102a09061010090046001600160a01b031681565b6035546001600160a01b03166102a0565b61022961046036600461433c565b61241a565b610229610473366004613b95565b6124e6565b60675461031b9060ff1681565b6102296104933660046143e7565b61257c565b6102296104a6366004613b95565b612679565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b610280612761565b61032f6104e8366004614432565b60016020526000908152604090205481565b61032f606481565b610229610510366004613b95565b612b2a565b610229610523366004613b95565b612b3b565b610229610536366004613bb2565b612bb1565b606760019054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b2919061444d565b6001600160a01b0316336001600160a01b0316146105eb5760405162461bcd60e51b81526004016105e29061446a565b60405180910390fd5b6105f481612d0d565b50565b60675460405163237dfb4760e11b81523360048201526101009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906144b4565b6106835760405162461bcd60e51b81526004016105e2906144d1565b606854818116146106fc5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016105e2565b606881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061078257610782614519565b60200201518951600160200201518a602001516000600281106107a7576107a7614519565b60200201518b602001516001600281106107c3576107c3614519565b602090810291909101518c518d8301516040516108209a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610843919061452f565b90506108b661085c6108558884612e0f565b8690612ea6565b610864612f3a565b6108ac61089d85610897604080518082018252600080825260209182015281518083019092526001825260029082015290565b90612e0f565b6108a68c612ffa565b90612ea6565b886201d4c061308a565b909890975095505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610930573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109549190614551565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e3919061456a565b90506001600160c01b0381161580610a7d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190614593565b60ff16155b15610a9957505060408051600081526020810190915292915050565b6000610aad826001600160c01b03166132ae565b90506000805b8251811015610b83577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610afd57610afd614519565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b659190614551565b610b6f90836145c6565b915080610b7b816145de565b915050610ab3565b506000816001600160401b03811115610b9e57610b9e613bcb565b604051908082528060200260200182016040528015610bc7578160200160208202803683370190505b5090506000805b8451811015610d86576000858281518110610beb57610beb614519565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190614551565b905060005b81811015610d70576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d229190614610565b60000151868681518110610d3857610d38614519565b6001600160a01b039092166020928302919091019091015284610d5a816145de565b9550508080610d68906145de565b915050610c89565b5050508080610d7e906145de565b915050610bce565b5090979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061444d565b6001600160a01b0316336001600160a01b031614610ec15760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016105e2565b6067805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60675460405163237dfb4760e11b81523360048201526101009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7891906144b4565b610f945760405162461bcd60e51b81526004016105e2906144d1565b600019606881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60408051808201825260608082526020820152908201515160009085148015611000575060a08301515185145b8015611010575060c08301515185145b8015611020575060e08301515185145b61108a5760405162461bcd60e51b81526020600482015260416024820152600080516020614b7683398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016105e2565b825151602084015151146111025760405162461bcd60e51b815260206004820152604460248201819052600080516020614b76833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016105e2565b4363ffffffff168463ffffffff1611156111725760405162461bcd60e51b815260206004820152603c6024820152600080516020614b7683398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016105e2565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156111b3576111b3613bcb565b6040519080825280602002602001820160405280156111dc578160200160208202803683370190505b506020820152866001600160401b038111156111fa576111fa613bcb565b604051908082528060200260200182016040528015611223578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561125757611257613bcb565b604051908082528060200260200182016040528015611280578160200160208202803683370190505b5081526020860151516001600160401b038111156112a0576112a0613bcb565b6040519080825280602002602001820160405280156112c9578160200160208202803683370190505b508160200181905250600061139b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190614593565b61330b565b905060005b876020015151811015611636576113e5886020015182815181106113c6576113c6614519565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106113fb576113fb614519565b602090810291909101015280156114bb57602083015161141c60018361464f565b8151811061142c5761142c614519565b602002602001015160001c8360200151828151811061144d5761144d614519565b602002602001015160001c116114bb576040805162461bcd60e51b8152602060048201526024810191909152600080516020614b7683398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016105e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061150057611500614519565b60200260200101518b8b60000151858151811061151f5761151f614519565b60200260200101516040518463ffffffff1660e01b815260040161155c9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d919061456a565b6001600160c01b0316836000015182815181106115bc576115bc614519565b6020026020010181815250506116226108556115f684866000015185815181106115e8576115e8614519565b6020026020010151166133c6565b8a60200151848151811061160c5761160c614519565b60200260200101516133f190919063ffffffff16565b94508061162e816145de565b9150506113a0565b5050611641836134d5565b925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350f73e7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190614551565b60675490915060ff1660005b8a811015611d4d57811561182f578963ffffffff16837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f8681811061172a5761172a614519565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa15801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190614551565b61179891906145c6565b101561182f5760405162461bcd60e51b81526020600482015260666024820152600080516020614b7683398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016105e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d8481811061187057611870614519565b9050013560f81c60f81b60f81c8c8c60a00151858151811061189457611894614519565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa1580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119149190614666565b6001600160401b0319166119378a6040015183815181106113c6576113c6614519565b67ffffffffffffffff1916146119d35760405162461bcd60e51b81526020600482015260616024820152600080516020614b7683398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016105e2565b611a03896040015182815181106119ec576119ec614519565b602002602001015187612ea690919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611a4657611a46614519565b9050013560f81c60f81b60f81c8c8c60c001518581518110611a6a57611a6a614519565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614691565b85602001518281518110611b0057611b00614519565b6001600160601b03909216602092830291909101820152850151805182908110611b2c57611b2c614519565b602002602001015185600001518281518110611b4a57611b4a614519565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611d3857611bc286600001518281518110611b9457611b94614519565b60200260200101518f8f86818110611bae57611bae614519565b600192013560f81c9290921c811614919050565b15611d26577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f86818110611c0857611c08614519565b9050013560f81c60f81b60f81c8e89602001518581518110611c2c57611c2c614519565b60200260200101518f60e001518881518110611c4a57611c4a614519565b60200260200101518781518110611c6357611c63614519565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb9190614691565b8751805185908110611cff57611cff614519565b60200260200101818151611d1391906146ac565b6001600160601b03169052506001909101905b80611d30816145de565b915050611b6e565b50508080611d45906145de565b9150506116d3565b505050600080611d678c868a606001518b6080015161073a565b9150915081611dd85760405162461bcd60e51b81526020600482015260436024820152600080516020614b7683398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016105e2565b80611e395760405162461bcd60e51b81526020600482015260396024820152600080516020614b7683398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016105e2565b50506000878260200151604051602001611e549291906146d4565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b611e86613570565b611e9060006135ca565b565b611e9a613570565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590611ee6908490600401614774565b600060405180830381600087803b158015611f0057600080fd5b505af1158015611f14573d6000803e3d6000fd5b5050505050565b60006096611f2c620189c043614787565b611f369190614787565b905090565b60685460009060019081161415611f945760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e646578206973207061757365640000000000000060448201526064016105e2565b6002546001600160a01b031633146120035760405162461bcd60e51b815260206004820152602c60248201527f6f6e6c794261746368436f6e6669726d65723a206e6f742066726f6d2062617460448201526b31b41031b7b73334b936b2b960a11b60648201526084016105e2565b3233146120805760405162461bcd60e51b81526020600482015260516024820152600080516020614b5683398151915260448201527f63683a2068656164657220616e64206e6f6e7369676e65722064617461206d75606482015270737420626520696e2063616c6c6461746160781b608482015260a4016105e2565b436120916080850160608601614432565b63ffffffff1611156121115760405162461bcd60e51b815260206004820152604f6024820152600080516020614b5683398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d6260648201526e657220697320696e2066757475726560881b608482015260a4016105e2565b63ffffffff4316609661212a6080860160608701614432565b6121349190614787565b63ffffffff1610156121ba5760405162461bcd60e51b81526020600482015260556024820152600080516020614b5683398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d62606482015274195c881a5cc81d1bdbc819985c881a5b881c185cdd605a1b608482015260a4016105e2565b60006121cd6121c8856147af565b61361c565b90506000806121f9836121e3602089018961484f565b6121f360808b0160608c01614432565b89610fd3565b9150915060005b61220d604088018861484f565b905081101561234f57612223604088018861484f565b8281811061223357612233614519565b9050013560f81c60f81b60f81c60ff168360200151828151811061225957612259614519565b602002602001015161226b919061489c565b6001600160601b031660648460000151838151811061228c5761228c614519565b60200260200101516001600160601b03166122a791906148cb565b101561233d5760405162461bcd60e51b815260206004820152606460248201819052600080516020614b5683398151915260448301527f63683a207369676e61746f7269657320646f206e6f74206f776e206174206c65908201527f617374207468726573686f6c642070657263656e74616765206f6620612071756084820152636f72756d60e01b60a482015260c4016105e2565b80612347816145de565b915050612200565b506000805463ffffffff169061236488613697565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a26123f6826001614787565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124625760405162461bcd60e51b81526004016105e2906148ea565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906124b09085908590600401614962565b600060405180830381600087803b1580156124ca57600080fd5b505af11580156124de573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461252e5760405162461bcd60e51b81526004016105e2906148ea565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401611ee6565b600254600160a81b900460ff16158080156125a457506002546001600160a01b90910460ff16105b806125c55750303b1580156125c55750600254600160a01b900460ff166001145b6125e15760405162461bcd60e51b81526004016105e2906149ad565b6002805460ff60a01b1916600160a01b179055801561260e576002805460ff60a81b1916600160a81b1790555b6126198460006136aa565b612622836135ca565b61262b82613795565b8015612673576002805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600254600160a81b900460ff16158080156126a157506002546001600160a01b90910460ff16105b806126c25750303b1580156126c25750600254600160a01b900460ff166001145b6126de5760405162461bcd60e51b81526004016105e2906149ad565b6002805460ff60a01b1916600160a01b179055801561270b576002805460ff60a81b1916600160a81b1790555b612714826135ca565b801561275d576002805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190614593565b60ff1690508061280557505060408051600081526020810190915290565b6000805b828110156128ba57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289c9190614551565b6128a690836145c6565b9150806128b2816145de565b915050612809565b506000816001600160401b038111156128d5576128d5613bcb565b6040519080825280602002602001820160405280156128fe578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129879190614593565b60ff16811015612b2057604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190614551565b905060005b81811015612b0b576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd9190614610565b60000151858581518110612ad357612ad3614519565b6001600160a01b039092166020928302919091019091015283612af5816145de565b9450508080612b03906145de565b915050612a24565b50508080612b18906145de565b915050612905565b5090949350505050565b612b32613570565b6105f481613795565b612b43613570565b6001600160a01b038116612ba85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b6105f4816135ca565b606760019054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c28919061444d565b6001600160a01b0316336001600160a01b031614612c585760405162461bcd60e51b81526004016105e29061446a565b606854198119606854191614612cd65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016105e2565b606881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161072f565b6001600160a01b038116612d9b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016105e2565b606754604080516001600160a01b036101009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6040805180820190915260008082526020820152612e2b613aa6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612e5e57612e60565bfe5b5080612e9e5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016105e2565b505092915050565b6040805180820190915260008082526020820152612ec2613ac4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612e5e575080612e9e5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016105e2565b612f42613ae2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061302a600080516020614b368339815191528661452f565b90505b613036816137ef565b9093509150600080516020614b36833981519152828309831415613070576040805180820190915290815260208101919091529392505050565b600080516020614b3683398151915260018208905061302d565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906130bc613b07565b60005b60028110156132815760006130d58260066148cb565b90508482600281106130e9576130e9614519565b602002015151836130fb8360006145c6565b600c811061310b5761310b614519565b602002015284826002811061312257613122614519565b6020020151602001518382600161313991906145c6565b600c811061314957613149614519565b602002015283826002811061316057613160614519565b60200201515151836131738360026145c6565b600c811061318357613183614519565b602002015283826002811061319a5761319a614519565b60200201515160016020020151836131b38360036145c6565b600c81106131c3576131c3614519565b60200201528382600281106131da576131da614519565b6020020151602001516000600281106131f5576131f5614519565b6020020151836132068360046145c6565b600c811061321657613216614519565b602002015283826002811061322d5761322d614519565b60200201516020015160016002811061324857613248614519565b6020020151836132598360056145c6565b600c811061326957613269614519565b60200201525080613279816145de565b9150506130bf565b5061328a613b26565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000805b610100811015613304576001811b9150838216156132f457828160f81b6040516020016132e29291906149fb565b60405160208183030381529060405292505b6132fd816145de565b90506132b4565b5050919050565b60008061331784613871565b905080156133bd578260ff168460018651613332919061464f565b8151811061334257613342614519565b016020015160f81c106133bd5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016105e2565b90505b92915050565b6000805b82156133c0576133db60018461464f565b90921691806133e981614a2a565b9150506133ca565b60408051808201909152600080825260208201526102008261ffff161061344d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016105e2565b8161ffff16600114156134615750816133c0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff16106134ca57600161ffff871660ff83161c811614156134ad576134aa8484612ea6565b93505b6134b78384612ea6565b92506201fffe600192831b16910161347d565b509195945050505050565b604080518082019091526000808252602082015281511580156134fa57506020820151155b15613518575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020614b36833981519152846020015161354b919061452f565b61356390600080516020614b3683398151915261464f565b905292915050565b919050565b6035546001600160a01b03163314611e905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e2565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061365982604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b60008160405160200161367a9190614aba565b60675461010090046001600160a01b03161580156136d057506001600160a01b03821615155b6137525760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016105e2565b606881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261275d82612d0d565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527ff024af0387e1367ceb1c6a3b6a00db4e9917e56bfb22a289808100f8e2b2c0859101612754565b60008080600080516020614b368339815191526003600080516020614b3683398151915286600080516020614b36833981519152888909090890506000613865827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020614b368339815191526139fe565b91959194509092505050565b6000610100825111156138fa5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016105e2565b815161390857506000919050565b6000808360008151811061391e5761391e614519565b0160200151600160f89190911c81901b92505b84518110156139f55784818151811061394c5761394c614519565b0160200151600160f89190911c1b91508282116139e15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016105e2565b918117916139ee816145de565b9050613931565b50909392505050565b600080613a09613b26565b613a11613b44565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015612e5e575082613a9b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016105e2565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613af5613b62565b8152602001613b02613b62565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146105f457600080fd5b600060208284031215613ba757600080fd5b81356133bd81613b80565b600060208284031215613bc457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613c0357613c03613bcb565b60405290565b60405161010081016001600160401b0381118282101715613c0357613c03613bcb565b604051601f8201601f191681016001600160401b0381118282101715613c5457613c54613bcb565b604052919050565b600060408284031215613c6e57600080fd5b613c76613be1565b9050813581526020820135602082015292915050565b600082601f830112613c9d57600080fd5b613ca5613be1565b806040840185811115613cb757600080fd5b845b81811015613cd1578035845260209384019301613cb9565b509095945050505050565b600060808284031215613cee57600080fd5b613cf6613be1565b9050613d028383613c8c565b8152613d118360408401613c8c565b602082015292915050565b6000806000806101208587031215613d3357600080fd5b84359350613d448660208701613c5c565b9250613d538660608701613cdc565b9150613d628660e08701613c5c565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015613dae5783516001600160a01b031683529284019291840191600101613d89565b50909695505050505050565b80151581146105f457600080fd5b600060208284031215613dda57600080fd5b81356133bd81613dba565b60ff811681146105f457600080fd5b600060208284031215613e0657600080fd5b81356133bd81613de5565b803563ffffffff8116811461356b57600080fd5b60006001600160401b03821115613e3e57613e3e613bcb565b5060051b60200190565b600082601f830112613e5957600080fd5b81356020613e6e613e6983613e25565b613c2c565b82815260059290921b84018101918181019086841115613e8d57600080fd5b8286015b84811015613eaf57613ea281613e11565b8352918301918301613e91565b509695505050505050565b600082601f830112613ecb57600080fd5b81356020613edb613e6983613e25565b82815260069290921b84018101918181019086841115613efa57600080fd5b8286015b84811015613eaf57613f108882613c5c565b835291830191604001613efe565b600082601f830112613f2f57600080fd5b81356020613f3f613e6983613e25565b82815260059290921b84018101918181019086841115613f5e57600080fd5b8286015b84811015613eaf5780356001600160401b03811115613f815760008081fd5b613f8f8986838b0101613e48565b845250918301918301613f62565b60006101808284031215613fb057600080fd5b613fb8613c09565b905081356001600160401b0380821115613fd157600080fd5b613fdd85838601613e48565b83526020840135915080821115613ff357600080fd5b613fff85838601613eba565b6020840152604084013591508082111561401857600080fd5b61402485838601613eba565b60408401526140368560608601613cdc565b60608401526140488560e08601613c5c565b608084015261012084013591508082111561406257600080fd5b61406e85838601613e48565b60a084015261014084013591508082111561408857600080fd5b61409485838601613e48565b60c08401526101608401359150808211156140ae57600080fd5b506140bb84828501613f1e565b60e08301525092915050565b6000806000806000608086880312156140df57600080fd5b8535945060208601356001600160401b03808211156140fd57600080fd5b818801915088601f83011261411157600080fd5b81358181111561412057600080fd5b89602082850101111561413257600080fd5b602083019650945061414660408901613e11565b9350606088013591508082111561415c57600080fd5b5061416988828901613f9d565b9150509295509295909350565b600081518084526020808501945080840160005b838110156141af5781516001600160601b03168752958201959082019060010161418a565b509495945050505050565b60408152600083516040808401526141d56080840182614176565b90506020850151603f198483030160608501526141f28282614176565b925050508260208301529392505050565b60006001600160401b0383111561421c5761421c613bcb565b61422f601f8401601f1916602001613c2c565b905082815283838301111561424357600080fd5b828260208301376000602084830101529392505050565b60006020828403121561426c57600080fd5b81356001600160401b0381111561428257600080fd5b8201601f8101841361429357600080fd5b6142a284823560208401614203565b949350505050565b600080604083850312156142bd57600080fd5b82356001600160401b03808211156142d457600080fd5b90840190608082870312156142e857600080fd5b909250602084013590808211156142fe57600080fd5b5061430b85828601613f9d565b9150509250929050565b600082601f83011261432657600080fd5b61433583833560208501614203565b9392505050565b6000806040838503121561434f57600080fd5b823561435a81613b80565b915060208301356001600160401b038082111561437657600080fd5b908401906060828703121561438a57600080fd5b6040516060810181811083821117156143a5576143a5613bcb565b6040528235828111156143b757600080fd5b6143c388828601614315565b82525060208301356020820152604083013560408201528093505050509250929050565b6000806000606084860312156143fc57600080fd5b833561440781613b80565b9250602084013561441781613b80565b9150604084013561442781613b80565b809150509250925092565b60006020828403121561444457600080fd5b61433582613e11565b60006020828403121561445f57600080fd5b81516133bd81613b80565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156144c657600080fd5b81516133bd81613dba565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008261454c57634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561456357600080fd5b5051919050565b60006020828403121561457c57600080fd5b81516001600160c01b03811681146133bd57600080fd5b6000602082840312156145a557600080fd5b81516133bd81613de5565b634e487b7160e01b600052601160045260246000fd5b600082198211156145d9576145d96145b0565b500190565b60006000198214156145f2576145f26145b0565b5060010190565b80516001600160601b038116811461356b57600080fd5b60006040828403121561462257600080fd5b61462a613be1565b825161463581613b80565b8152614643602084016145f9565b60208201529392505050565b600082821015614661576146616145b0565b500390565b60006020828403121561467857600080fd5b815167ffffffffffffffff19811681146133bd57600080fd5b6000602082840312156146a357600080fd5b614335826145f9565b60006001600160601b03838116908316818110156146cc576146cc6145b0565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561470f578151855293820193908201906001016146f3565b5092979650505050505050565b60005b8381101561473757818101518382015260200161471f565b838111156126735750506000910152565b6000815180845261476081602086016020860161471c565b601f01601f19169290920160200192915050565b6020815260006143356020830184614748565b600063ffffffff8083168185168083038211156147a6576147a66145b0565b01949350505050565b6000608082360312156147c157600080fd5b604051608081016001600160401b0382821081831117156147e4576147e4613bcb565b8160405284358352602085013591508082111561480057600080fd5b61480c36838701614315565b6020840152604085013591508082111561482557600080fd5b5061483236828601614315565b60408301525061484460608401613e11565b606082015292915050565b6000808335601e1984360301811261486657600080fd5b8301803591506001600160401b0382111561488057600080fd5b60200191503681900382131561489557600080fd5b9250929050565b60006001600160601b03808316818516818304811182151516156148c2576148c26145b0565b02949350505050565b60008160001904831182151516156148e5576148e56145b0565b500290565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b038316815260406020820152600082516060604084015261498c60a0840182614748565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008351614a0d81846020880161471c565b6001600160f81b0319939093169190920190815260010192915050565b600061ffff80831681811415614a4257614a426145b0565b6001019392505050565b6000808335601e19843603018112614a6357600080fd5b83016020810192503590506001600160401b03811115614a8257600080fd5b80360383131561489557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152813560208201526000614ad46020840184614a4c565b60806040850152614ae960a085018284614a91565b915050614af96040850185614a4c565b848303601f19016060860152614b10838284614a91565b9250505063ffffffff614b2560608601613e11565b166080840152809150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47456967656e4441536572766963654d616e616765722e636f6e6669726d426174424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220a5aa791ce56437be19ec01db4c7e6d5ddf85b80196b58a7d0376c319b16c677d64736f6c634300080c0033", + "sourceMap": "1166:4957:119:-:0;;;1692:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1666:40:45;;;;;1716:44;;;;;1770:32;;;;1879:21:119;1929:20;1879:21;1974:15;1812:22:45;:20;:22::i;:::-;-1:-1:-1;;;;;;;;1679:42:40;;;;;;1747:36;;;-1:-1:-1;;;1747:36:40;;;;:34;;:36;;;;;;;;;;;;;;;1679:42;1747:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1731:52:40;;;-1:-1:-1;;;;;1731:52:40;;;;;1810:20;-1:-1:-1;;;;;1810:35:40;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1793:54:40;;;-1:-1:-1;;;;;1793:54:40;;;;;1870:13;;-1:-1:-1;;;;;1870:24:40;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1857:39:40;;;-1:-1:-1;1915:20:40;:27;;-1:-1:-1;;1915:27:40;1938:4;1915:27;;;2005:22:119::2;:20;:22::i;:::-;1692:342:::0;;;1166:4957;;5388:279:83;5456:13;;-1:-1:-1;;;5456:13:83;;;;5455:14;5447:66;;;;-1:-1:-1;;;5447:66:83;;1941:2:129;5447:66:83;;;1923:21:129;1980:2;1960:18;;;1953:30;2019:34;1999:18;;;1992:62;-1:-1:-1;;;2070:18:129;;;2063:37;2117:19;;5447:66:83;;;;;;;;5527:12;;5542:15;-1:-1:-1;;;5527:12:83;;;;;:30;5523:138;;;5573:12;:30;;-1:-1:-1;;;;5573:30:83;-1:-1:-1;;;5573:30:83;;;5622:28;;5588:15;2289:36:129;;5622:28:83;;2277:2:129;2262:18;5622:28:83;;;;;;;5523:138;5388:279::o;14:151:129:-;-1:-1:-1;;;;;109:31:129;;99:42;;89:70;;155:1;152;145:12;89:70;14:151;:::o;170:660::-;339:6;347;355;408:2;396:9;387:7;383:23;379:32;376:52;;;424:1;421;414:12;376:52;456:9;450:16;475:51;520:5;475:51;:::i;:::-;595:2;580:18;;574:25;545:5;;-1:-1:-1;608:53:129;574:25;608:53;:::i;:::-;732:2;717:18;;711:25;680:7;;-1:-1:-1;745:53:129;711:25;745:53;:::i;:::-;817:7;807:17;;;170:660;;;;;:::o;835:295::-;929:6;982:2;970:9;961:7;957:23;953:32;950:52;;;998:1;995;988:12;950:52;1030:9;1024:16;1049:51;1094:5;1049:51;:::i;:::-;1119:5;835:295;-1:-1:-1;;;835:295:129:o;2147:184::-;1166:4957:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} +}, +"deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106102115760003560e01c806372d18e8d11610125578063c0c53b8b116100ad578063eccbbfc91161007c578063eccbbfc9146104da578063ef024458146104fa578063f122098314610502578063f2fde38b14610515578063fabc1cbc1461052857600080fd5b8063c0c53b8b14610485578063c4d66de814610498578063df5cf723146104ab578063e481af9d146104d257600080fd5b8063886f1195116100f4578063886f1195146104295780638da5cb5b146104415780639926ee7d14610452578063a364f4da14610465578063b98d09081461047857600080fd5b806372d18e8d146103ed578063750521f5146103fb578063758f8dba1461040e5780637794965a1461041657600080fd5b80635ac86ab7116101a85780635e8b3f2d116101775780635e8b3f2d1461036e57806368304835146103765780636d14a9871461039d5780636efb4636146103c4578063715018a6146103e557600080fd5b80635ac86ab7146102f85780635c975abb1461032b5780635df459461461033d5780635e0334761461036457600080fd5b806339f309d5116101e457806339f309d51461028d578063416c7e5e146102b85780634972134a146102cb578063595c6a67146102f057600080fd5b806310d67a2f14610216578063136439dd1461022b578063171f1d5b1461023e57806333cfb7b71461026d575b600080fd5b610229610224366004613b95565b61053b565b005b610229610239366004613bb2565b6105f7565b61025161024c366004613d1c565b61073a565b6040805192151583529015156020830152015b60405180910390f35b61028061027b366004613b95565b6108c4565b6040516102649190613d6d565b6002546102a0906001600160a01b031681565b6040516001600160a01b039091168152602001610264565b6102296102c6366004613dc8565b610d93565b6000546102db9063ffffffff1681565b60405163ffffffff9091168152602001610264565b610229610f08565b61031b610306366004613df4565b606854600160ff9092169190911b9081161490565b6040519015158152602001610264565b6068545b604051908152602001610264565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6102db620189c081565b6102db609681565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6103d76103d23660046140c7565b610fd3565b6040516102649291906141ba565b610229611e7e565b60005463ffffffff166102db565b61022961040936600461425a565b611e92565b6102db611f1b565b6102296104243660046142aa565b611f3b565b6067546102a09061010090046001600160a01b031681565b6035546001600160a01b03166102a0565b61022961046036600461433c565b61241a565b610229610473366004613b95565b6124e6565b60675461031b9060ff1681565b6102296104933660046143e7565b61257c565b6102296104a6366004613b95565b612679565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b610280612761565b61032f6104e8366004614432565b60016020526000908152604090205481565b61032f606481565b610229610510366004613b95565b612b2a565b610229610523366004613b95565b612b3b565b610229610536366004613bb2565b612bb1565b606760019054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b2919061444d565b6001600160a01b0316336001600160a01b0316146105eb5760405162461bcd60e51b81526004016105e29061446a565b60405180910390fd5b6105f481612d0d565b50565b60675460405163237dfb4760e11b81523360048201526101009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610643573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066791906144b4565b6106835760405162461bcd60e51b81526004016105e2906144d1565b606854818116146106fc5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016105e2565b606881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018787600001518860200151886000015160006002811061078257610782614519565b60200201518951600160200201518a602001516000600281106107a7576107a7614519565b60200201518b602001516001600281106107c3576107c3614519565b602090810291909101518c518d8301516040516108209a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610843919061452f565b90506108b661085c6108558884612e0f565b8690612ea6565b610864612f3a565b6108ac61089d85610897604080518082018252600080825260209182015281518083019092526001825260029082015290565b90612e0f565b6108a68c612ffa565b90612ea6565b886201d4c061308a565b909890975095505050505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610930573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109549190614551565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e3919061456a565b90506001600160c01b0381161580610a7d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a789190614593565b60ff16155b15610a9957505060408051600081526020810190915292915050565b6000610aad826001600160c01b03166132ae565b90506000805b8251811015610b83577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610afd57610afd614519565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b659190614551565b610b6f90836145c6565b915080610b7b816145de565b915050610ab3565b506000816001600160401b03811115610b9e57610b9e613bcb565b604051908082528060200260200182016040528015610bc7578160200160208202803683370190505b5090506000805b8451811015610d86576000858281518110610beb57610beb614519565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190614551565b905060005b81811015610d70576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015610cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d229190614610565b60000151868681518110610d3857610d38614519565b6001600160a01b039092166020928302919091019091015284610d5a816145de565b9550508080610d68906145de565b915050610c89565b5050508080610d7e906145de565b915050610bce565b5090979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061444d565b6001600160a01b0316336001600160a01b031614610ec15760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016105e2565b6067805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b60675460405163237dfb4760e11b81523360048201526101009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7891906144b4565b610f945760405162461bcd60e51b81526004016105e2906144d1565b600019606881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60408051808201825260608082526020820152908201515160009085148015611000575060a08301515185145b8015611010575060c08301515185145b8015611020575060e08301515185145b61108a5760405162461bcd60e51b81526020600482015260416024820152600080516020614b7683398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016105e2565b825151602084015151146111025760405162461bcd60e51b815260206004820152604460248201819052600080516020614b76833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016105e2565b4363ffffffff168463ffffffff1611156111725760405162461bcd60e51b815260206004820152603c6024820152600080516020614b7683398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016105e2565b6040805180820182526000808252602080830191909152825180840190935260608084529083015290866001600160401b038111156111b3576111b3613bcb565b6040519080825280602002602001820160405280156111dc578160200160208202803683370190505b506020820152866001600160401b038111156111fa576111fa613bcb565b604051908082528060200260200182016040528015611223578160200160208202803683370190505b50815260408051808201909152606080825260208201528560200151516001600160401b0381111561125757611257613bcb565b604051908082528060200260200182016040528015611280578160200160208202803683370190505b5081526020860151516001600160401b038111156112a0576112a0613bcb565b6040519080825280602002602001820160405280156112c9578160200160208202803683370190505b508160200181905250600061139b8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051639aa1653d60e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169350639aa1653d925060048083019260209291908290030181865afa158015611372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113969190614593565b61330b565b905060005b876020015151811015611636576113e5886020015182815181106113c6576113c6614519565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106113fb576113fb614519565b602090810291909101015280156114bb57602083015161141c60018361464f565b8151811061142c5761142c614519565b602002602001015160001c8360200151828151811061144d5761144d614519565b602002602001015160001c116114bb576040805162461bcd60e51b8152602060048201526024810191909152600080516020614b7683398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016105e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec63518460200151838151811061150057611500614519565b60200260200101518b8b60000151858151811061151f5761151f614519565b60200260200101516040518463ffffffff1660e01b815260040161155c9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d919061456a565b6001600160c01b0316836000015182815181106115bc576115bc614519565b6020026020010181815250506116226108556115f684866000015185815181106115e8576115e8614519565b6020026020010151166133c6565b8a60200151848151811061160c5761160c614519565b60200260200101516133f190919063ffffffff16565b94508061162e816145de565b9150506113a0565b5050611641836134d5565b925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166350f73e7c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c79190614551565b60675490915060ff1660005b8a811015611d4d57811561182f578963ffffffff16837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c428f8f8681811061172a5761172a614519565b60405160e085901b6001600160e01b031916815292013560f81c600483015250602401602060405180830381865afa15801561176a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178e9190614551565b61179891906145c6565b101561182f5760405162461bcd60e51b81526020600482015260666024820152600080516020614b7683398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016105e2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac8d8d8481811061187057611870614519565b9050013560f81c60f81b60f81c8c8c60a00151858151811061189457611894614519565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa1580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119149190614666565b6001600160401b0319166119378a6040015183815181106113c6576113c6614519565b67ffffffffffffffff1916146119d35760405162461bcd60e51b81526020600482015260616024820152600080516020614b7683398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016105e2565b611a03896040015182815181106119ec576119ec614519565b602002602001015187612ea690919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c568d8d84818110611a4657611a46614519565b9050013560f81c60f81b60f81c8c8c60c001518581518110611a6a57611a6a614519565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea9190614691565b85602001518281518110611b0057611b00614519565b6001600160601b03909216602092830291909101820152850151805182908110611b2c57611b2c614519565b602002602001015185600001518281518110611b4a57611b4a614519565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a6020015151811015611d3857611bc286600001518281518110611b9457611b94614519565b60200260200101518f8f86818110611bae57611bae614519565b600192013560f81c9290921c811614919050565b15611d26577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae8f8f86818110611c0857611c08614519565b9050013560f81c60f81b60f81c8e89602001518581518110611c2c57611c2c614519565b60200260200101518f60e001518881518110611c4a57611c4a614519565b60200260200101518781518110611c6357611c63614519565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015611cc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ceb9190614691565b8751805185908110611cff57611cff614519565b60200260200101818151611d1391906146ac565b6001600160601b03169052506001909101905b80611d30816145de565b915050611b6e565b50508080611d45906145de565b9150506116d3565b505050600080611d678c868a606001518b6080015161073a565b9150915081611dd85760405162461bcd60e51b81526020600482015260436024820152600080516020614b7683398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016105e2565b80611e395760405162461bcd60e51b81526020600482015260396024820152600080516020614b7683398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016105e2565b50506000878260200151604051602001611e549291906146d4565b60408051808303601f190181529190528051602090910120929b929a509198505050505050505050565b611e86613570565b611e9060006135ca565b565b611e9a613570565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb35590611ee6908490600401614774565b600060405180830381600087803b158015611f0057600080fd5b505af1158015611f14573d6000803e3d6000fd5b5050505050565b60006096611f2c620189c043614787565b611f369190614787565b905090565b60685460009060019081161415611f945760405162461bcd60e51b815260206004820152601960248201527f5061757361626c653a20696e646578206973207061757365640000000000000060448201526064016105e2565b6002546001600160a01b031633146120035760405162461bcd60e51b815260206004820152602c60248201527f6f6e6c794261746368436f6e6669726d65723a206e6f742066726f6d2062617460448201526b31b41031b7b73334b936b2b960a11b60648201526084016105e2565b3233146120805760405162461bcd60e51b81526020600482015260516024820152600080516020614b5683398151915260448201527f63683a2068656164657220616e64206e6f6e7369676e65722064617461206d75606482015270737420626520696e2063616c6c6461746160781b608482015260a4016105e2565b436120916080850160608601614432565b63ffffffff1611156121115760405162461bcd60e51b815260206004820152604f6024820152600080516020614b5683398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d6260648201526e657220697320696e2066757475726560881b608482015260a4016105e2565b63ffffffff4316609661212a6080860160608701614432565b6121349190614787565b63ffffffff1610156121ba5760405162461bcd60e51b81526020600482015260556024820152600080516020614b5683398151915260448201527f63683a20737065636966696564207265666572656e6365426c6f636b4e756d62606482015274195c881a5cc81d1bdbc819985c881a5b881c185cdd605a1b608482015260a4016105e2565b60006121cd6121c8856147af565b61361c565b90506000806121f9836121e3602089018961484f565b6121f360808b0160608c01614432565b89610fd3565b9150915060005b61220d604088018861484f565b905081101561234f57612223604088018861484f565b8281811061223357612233614519565b9050013560f81c60f81b60f81c60ff168360200151828151811061225957612259614519565b602002602001015161226b919061489c565b6001600160601b031660648460000151838151811061228c5761228c614519565b60200260200101516001600160601b03166122a791906148cb565b101561233d5760405162461bcd60e51b815260206004820152606460248201819052600080516020614b5683398151915260448301527f63683a207369676e61746f7269657320646f206e6f74206f776e206174206c65908201527f617374207468726573686f6c642070657263656e74616765206f6620612071756084820152636f72756d60e01b60a482015260c4016105e2565b80612347816145de565b915050612200565b506000805463ffffffff169061236488613697565b6040805160208082018490528183018790524360e01b6001600160e01b0319166060830152825160448184030181526064830180855281519183019190912063ffffffff881660008181526001909452928590205552905191925086917fc75557c4ad49697e231449688be13ef11cb6be8ed0d18819d8dde074a5a16f8a9181900360840190a26123f6826001614787565b6000805463ffffffff191663ffffffff929092169190911790555050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146124625760405162461bcd60e51b81526004016105e2906148ea565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906124b09085908590600401614962565b600060405180830381600087803b1580156124ca57600080fd5b505af11580156124de573d6000803e3d6000fd5b505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461252e5760405162461bcd60e51b81526004016105e2906148ea565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401611ee6565b600254600160a81b900460ff16158080156125a457506002546001600160a01b90910460ff16105b806125c55750303b1580156125c55750600254600160a01b900460ff166001145b6125e15760405162461bcd60e51b81526004016105e2906149ad565b6002805460ff60a01b1916600160a01b179055801561260e576002805460ff60a81b1916600160a81b1790555b6126198460006136aa565b612622836135ca565b61262b82613795565b8015612673576002805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600254600160a81b900460ff16158080156126a157506002546001600160a01b90910460ff16105b806126c25750303b1580156126c25750600254600160a01b900460ff166001145b6126de5760405162461bcd60e51b81526004016105e2906149ad565b6002805460ff60a01b1916600160a01b179055801561270b576002805460ff60a81b1916600160a81b1790555b612714826135ca565b801561275d576002805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190614593565b60ff1690508061280557505060408051600081526020810190915290565b6000805b828110156128ba57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289c9190614551565b6128a690836145c6565b9150806128b2816145de565b915050612809565b506000816001600160401b038111156128d5576128d5613bcb565b6040519080825280602002602001820160405280156128fe578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612963573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129879190614593565b60ff16811015612b2057604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190614551565b905060005b81811015612b0b576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd9190614610565b60000151858581518110612ad357612ad3614519565b6001600160a01b039092166020928302919091019091015283612af5816145de565b9450508080612b03906145de565b915050612a24565b50508080612b18906145de565b915050612905565b5090949350505050565b612b32613570565b6105f481613795565b612b43613570565b6001600160a01b038116612ba85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b6105f4816135ca565b606760019054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c28919061444d565b6001600160a01b0316336001600160a01b031614612c585760405162461bcd60e51b81526004016105e29061446a565b606854198119606854191614612cd65760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016105e2565b606881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161072f565b6001600160a01b038116612d9b5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016105e2565b606754604080516001600160a01b036101009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6040805180820190915260008082526020820152612e2b613aa6565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808015612e5e57612e60565bfe5b5080612e9e5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016105e2565b505092915050565b6040805180820190915260008082526020820152612ec2613ac4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808015612e5e575080612e9e5760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016105e2565b612f42613ae2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201909152600080825260208201526000808061302a600080516020614b368339815191528661452f565b90505b613036816137ef565b9093509150600080516020614b36833981519152828309831415613070576040805180820190915290815260208101919091529392505050565b600080516020614b3683398151915260018208905061302d565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906130bc613b07565b60005b60028110156132815760006130d58260066148cb565b90508482600281106130e9576130e9614519565b602002015151836130fb8360006145c6565b600c811061310b5761310b614519565b602002015284826002811061312257613122614519565b6020020151602001518382600161313991906145c6565b600c811061314957613149614519565b602002015283826002811061316057613160614519565b60200201515151836131738360026145c6565b600c811061318357613183614519565b602002015283826002811061319a5761319a614519565b60200201515160016020020151836131b38360036145c6565b600c81106131c3576131c3614519565b60200201528382600281106131da576131da614519565b6020020151602001516000600281106131f5576131f5614519565b6020020151836132068360046145c6565b600c811061321657613216614519565b602002015283826002811061322d5761322d614519565b60200201516020015160016002811061324857613248614519565b6020020151836132598360056145c6565b600c811061326957613269614519565b60200201525080613279816145de565b9150506130bf565b5061328a613b26565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b60606000805b610100811015613304576001811b9150838216156132f457828160f81b6040516020016132e29291906149fb565b60405160208183030381529060405292505b6132fd816145de565b90506132b4565b5050919050565b60008061331784613871565b905080156133bd578260ff168460018651613332919061464f565b8151811061334257613342614519565b016020015160f81c106133bd5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016105e2565b90505b92915050565b6000805b82156133c0576133db60018461464f565b90921691806133e981614a2a565b9150506133ca565b60408051808201909152600080825260208201526102008261ffff161061344d5760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016105e2565b8161ffff16600114156134615750816133c0565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff16106134ca57600161ffff871660ff83161c811614156134ad576134aa8484612ea6565b93505b6134b78384612ea6565b92506201fffe600192831b16910161347d565b509195945050505050565b604080518082019091526000808252602082015281511580156134fa57506020820151155b15613518575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020614b36833981519152846020015161354b919061452f565b61356390600080516020614b3683398151915261464f565b905292915050565b919050565b6035546001600160a01b03163314611e905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105e2565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061365982604080518082019091526000808252602082015250604080518082019091528151815260609091015163ffffffff16602082015290565b6040805182516020808301919091529092015163ffffffff16908201526060015b604051602081830303815290604052805190602001209050919050565b60008160405160200161367a9190614aba565b60675461010090046001600160a01b03161580156136d057506001600160a01b03821615155b6137525760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016105e2565b606881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261275d82612d0d565b600280546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527ff024af0387e1367ceb1c6a3b6a00db4e9917e56bfb22a289808100f8e2b2c0859101612754565b60008080600080516020614b368339815191526003600080516020614b3683398151915286600080516020614b36833981519152888909090890506000613865827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020614b368339815191526139fe565b91959194509092505050565b6000610100825111156138fa5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016105e2565b815161390857506000919050565b6000808360008151811061391e5761391e614519565b0160200151600160f89190911c81901b92505b84518110156139f55784818151811061394c5761394c614519565b0160200151600160f89190911c1b91508282116139e15760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016105e2565b918117916139ee816145de565b9050613931565b50909392505050565b600080613a09613b26565b613a11613b44565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828015612e5e575082613a9b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016105e2565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280613af5613b62565b8152602001613b02613b62565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146105f457600080fd5b600060208284031215613ba757600080fd5b81356133bd81613b80565b600060208284031215613bc457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613c0357613c03613bcb565b60405290565b60405161010081016001600160401b0381118282101715613c0357613c03613bcb565b604051601f8201601f191681016001600160401b0381118282101715613c5457613c54613bcb565b604052919050565b600060408284031215613c6e57600080fd5b613c76613be1565b9050813581526020820135602082015292915050565b600082601f830112613c9d57600080fd5b613ca5613be1565b806040840185811115613cb757600080fd5b845b81811015613cd1578035845260209384019301613cb9565b509095945050505050565b600060808284031215613cee57600080fd5b613cf6613be1565b9050613d028383613c8c565b8152613d118360408401613c8c565b602082015292915050565b6000806000806101208587031215613d3357600080fd5b84359350613d448660208701613c5c565b9250613d538660608701613cdc565b9150613d628660e08701613c5c565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015613dae5783516001600160a01b031683529284019291840191600101613d89565b50909695505050505050565b80151581146105f457600080fd5b600060208284031215613dda57600080fd5b81356133bd81613dba565b60ff811681146105f457600080fd5b600060208284031215613e0657600080fd5b81356133bd81613de5565b803563ffffffff8116811461356b57600080fd5b60006001600160401b03821115613e3e57613e3e613bcb565b5060051b60200190565b600082601f830112613e5957600080fd5b81356020613e6e613e6983613e25565b613c2c565b82815260059290921b84018101918181019086841115613e8d57600080fd5b8286015b84811015613eaf57613ea281613e11565b8352918301918301613e91565b509695505050505050565b600082601f830112613ecb57600080fd5b81356020613edb613e6983613e25565b82815260069290921b84018101918181019086841115613efa57600080fd5b8286015b84811015613eaf57613f108882613c5c565b835291830191604001613efe565b600082601f830112613f2f57600080fd5b81356020613f3f613e6983613e25565b82815260059290921b84018101918181019086841115613f5e57600080fd5b8286015b84811015613eaf5780356001600160401b03811115613f815760008081fd5b613f8f8986838b0101613e48565b845250918301918301613f62565b60006101808284031215613fb057600080fd5b613fb8613c09565b905081356001600160401b0380821115613fd157600080fd5b613fdd85838601613e48565b83526020840135915080821115613ff357600080fd5b613fff85838601613eba565b6020840152604084013591508082111561401857600080fd5b61402485838601613eba565b60408401526140368560608601613cdc565b60608401526140488560e08601613c5c565b608084015261012084013591508082111561406257600080fd5b61406e85838601613e48565b60a084015261014084013591508082111561408857600080fd5b61409485838601613e48565b60c08401526101608401359150808211156140ae57600080fd5b506140bb84828501613f1e565b60e08301525092915050565b6000806000806000608086880312156140df57600080fd5b8535945060208601356001600160401b03808211156140fd57600080fd5b818801915088601f83011261411157600080fd5b81358181111561412057600080fd5b89602082850101111561413257600080fd5b602083019650945061414660408901613e11565b9350606088013591508082111561415c57600080fd5b5061416988828901613f9d565b9150509295509295909350565b600081518084526020808501945080840160005b838110156141af5781516001600160601b03168752958201959082019060010161418a565b509495945050505050565b60408152600083516040808401526141d56080840182614176565b90506020850151603f198483030160608501526141f28282614176565b925050508260208301529392505050565b60006001600160401b0383111561421c5761421c613bcb565b61422f601f8401601f1916602001613c2c565b905082815283838301111561424357600080fd5b828260208301376000602084830101529392505050565b60006020828403121561426c57600080fd5b81356001600160401b0381111561428257600080fd5b8201601f8101841361429357600080fd5b6142a284823560208401614203565b949350505050565b600080604083850312156142bd57600080fd5b82356001600160401b03808211156142d457600080fd5b90840190608082870312156142e857600080fd5b909250602084013590808211156142fe57600080fd5b5061430b85828601613f9d565b9150509250929050565b600082601f83011261432657600080fd5b61433583833560208501614203565b9392505050565b6000806040838503121561434f57600080fd5b823561435a81613b80565b915060208301356001600160401b038082111561437657600080fd5b908401906060828703121561438a57600080fd5b6040516060810181811083821117156143a5576143a5613bcb565b6040528235828111156143b757600080fd5b6143c388828601614315565b82525060208301356020820152604083013560408201528093505050509250929050565b6000806000606084860312156143fc57600080fd5b833561440781613b80565b9250602084013561441781613b80565b9150604084013561442781613b80565b809150509250925092565b60006020828403121561444457600080fd5b61433582613e11565b60006020828403121561445f57600080fd5b81516133bd81613b80565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156144c657600080fd5b81516133bd81613dba565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008261454c57634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561456357600080fd5b5051919050565b60006020828403121561457c57600080fd5b81516001600160c01b03811681146133bd57600080fd5b6000602082840312156145a557600080fd5b81516133bd81613de5565b634e487b7160e01b600052601160045260246000fd5b600082198211156145d9576145d96145b0565b500190565b60006000198214156145f2576145f26145b0565b5060010190565b80516001600160601b038116811461356b57600080fd5b60006040828403121561462257600080fd5b61462a613be1565b825161463581613b80565b8152614643602084016145f9565b60208201529392505050565b600082821015614661576146616145b0565b500390565b60006020828403121561467857600080fd5b815167ffffffffffffffff19811681146133bd57600080fd5b6000602082840312156146a357600080fd5b614335826145f9565b60006001600160601b03838116908316818110156146cc576146cc6145b0565b039392505050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b8381101561470f578151855293820193908201906001016146f3565b5092979650505050505050565b60005b8381101561473757818101518382015260200161471f565b838111156126735750506000910152565b6000815180845261476081602086016020860161471c565b601f01601f19169290920160200192915050565b6020815260006143356020830184614748565b600063ffffffff8083168185168083038211156147a6576147a66145b0565b01949350505050565b6000608082360312156147c157600080fd5b604051608081016001600160401b0382821081831117156147e4576147e4613bcb565b8160405284358352602085013591508082111561480057600080fd5b61480c36838701614315565b6020840152604085013591508082111561482557600080fd5b5061483236828601614315565b60408301525061484460608401613e11565b606082015292915050565b6000808335601e1984360301811261486657600080fd5b8301803591506001600160401b0382111561488057600080fd5b60200191503681900382131561489557600080fd5b9250929050565b60006001600160601b03808316818516818304811182151516156148c2576148c26145b0565b02949350505050565b60008160001904831182151516156148e5576148e56145b0565b500290565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b60018060a01b038316815260406020820152600082516060604084015261498c60a0840182614748565b90506020840151606084015260408401516080840152809150509392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008351614a0d81846020880161471c565b6001600160f81b0319939093169190920190815260010192915050565b600061ffff80831681811415614a4257614a426145b0565b6001019392505050565b6000808335601e19843603018112614a6357600080fd5b83016020810192503590506001600160401b03811115614a8257600080fd5b80360383131561489557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152813560208201526000614ad46020840184614a4c565b60806040850152614ae960a085018284614a91565b915050614af96040850185614a4c565b848303601f19016060860152614b10838284614a91565b9250505063ffffffff614b2560608601613e11565b166080840152809150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47456967656e4441536572766963654d616e616765722e636f6e6669726d426174424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220a5aa791ce56437be19ec01db4c7e6d5ddf85b80196b58a7d0376c319b16c677d64736f6c634300080c0033", + "sourceMap": "1166:4957:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5826:138:25;;;;;;:::i;:::-;;:::i;:::-;;3832:392;;;;;;:::i;:::-;;:::i;13606:854:40:-;;;;;;:::i;:::-;;:::i;:::-;;;;3658:14:129;;3651:22;3633:41;;3717:14;;3710:22;3705:2;3690:18;;3683:50;3606:18;13606:854:40;;;;;;;;4963:1428:45;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2045:29:120:-;;;;;-1:-1:-1;;;;;2045:29:120;;;;;;-1:-1:-1;;;;;4840:32:129;;;4822:51;;4810:2;4795:18;2045:29:120;4676:203:129;2172:168:40;;;;;;:::i;:::-;;:::i;1787:21:120:-;;;;;;;;;;;;5427:10:129;5415:23;;;5397:42;;5385:2;5370:18;1787:21:120;5253:192:129;4299:136:25;;;:::i;5606:149::-;;;;;;:::i;:::-;5724:7;;5695:1;:10;;;;;;;;5724:14;;;5723:24;;5606:149;;;;5982:14:129;;5975:22;5957:41;;5945:2;5930:18;5606:149:25;5817:187:129;5418:87:25;5491:7;;5418:87;;;6155:25:129;;;6143:2;6128:18;5418:87:25;6009:177:129;1125:47:40;;;;;649:67:120;;696:20;649:67;;1692:48;;1737:3;1692:48;;1074:45:40;;;;;1011:57;;;;;4217:8907;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2071:101:82:-;;;:::i;5808:84:119:-;5853:6;5878:7;;;5808:84;;2134:147:45;;;;;;:::i;:::-;;:::i;5966:154:119:-;;;:::i;2590:2672::-;;;;;;:::i;:::-;;:::i;1825:37:25:-;;;;;;;;-1:-1:-1;;;;;1825:37:25;;;1441:85:82;1513:6;;-1:-1:-1;;;;;1513:6:82;1441:85;;2580:265:45;;;;;;:::i;:::-;;:::i;3055:163::-;;;;;;:::i;:::-;;:::i;1363:32:40:-;;;;;;;;;2040:322:119;;;;;;:::i;:::-;;:::i;1847:118:45:-;;;;;;:::i;:::-;;:::i;1178:46:40:-;;;;;3541:937:45;;;:::i;1914:60:120:-;;;;;;:::i;:::-;;;;;;;;;;;;;;440:51;;488:3;440:51;;5339:125:119;;;;;;:::i;:::-;;:::i;2321:198:82:-;;;;;;:::i;:::-;;:::i;4911:437:25:-;;;;;;:::i;:::-;;:::i;5826:138::-;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:25;-1:-1:-1;;;;;2285:23:25;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:25;:10;-1:-1:-1;;;;;2271:39:25;;2263:94;;;;-1:-1:-1;;;2263:94:25;;;;;;;:::i;:::-;;;;;;;;;5920:37:::1;5939:17;5920:18;:37::i;:::-;5826:138:::0;:::o;3832:392::-;2125:14;;:35;;-1:-1:-1;;;2125:35:25;;2149:10;2125:35;;;4822:51:129;2125:14:25;;;;-1:-1:-1;;;;;2125:14:25;;:23;;4795:18:129;;2125:35:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:25;;;;;;;:::i;:::-;4064:7:::1;::::0;4034:25;;::::1;4033:38;4025:107;;;::::0;-1:-1:-1;;;4025:107:25;;19034:2:129;4025:107:25::1;::::0;::::1;19016:21:129::0;19073:2;19053:18;;;19046:30;19112:34;19092:18;;;19085:62;19183:26;19163:18;;;19156:54;19227:19;;4025:107:25::1;18832:420:129::0;4025:107:25::1;4142:7;:25:::0;;;4182:35:::1;::::0;6155:25:129;;;4189:10:25::1;::::0;4182:35:::1;::::0;6143:2:129;6128:18;4182:35:25::1;;;;;;;;3832:392:::0;:::o;13606:854:40:-;13803:22;13827;13936:13;2035:77:57;13987:7:40;13996:3;:5;;;14003:3;:5;;;14010;:7;;;14018:1;14010:10;;;;;;;:::i;:::-;;;;;14022:7;;14030:1;14022:10;;;;14034:5;:7;;;14042:1;14034:10;;;;;;;:::i;:::-;;;;;14046:5;:7;;;14054:1;14046:10;;;;;;;:::i;:::-;;;;;;;;;;14058:7;;14067;;;;13970:105;;;;;;;;;;;19742:19:129;;;19786:2;19777:12;;19770:28;;;;19823:2;19814:12;;19807:28;;;;19860:2;19851:12;;19844:28;;;;19897:3;19888:13;;19881:29;;;;19935:3;19926:13;;19919:29;19973:3;19964:13;;19957:29;20011:3;20002:13;;19995:29;20049:3;20040:13;;20033:29;20087:3;20078:13;;19389:708;13970:105:40;;;;;;;;;;;;;13960:116;;;;;;13952:125;;:144;;;;:::i;:::-;13936:160;-1:-1:-1;14179:274:40;14214:33;14225:21;:3;13936:160;14225:14;:21::i;:::-;14214:5;;:10;:33::i;:::-;14265:22;:20;:22::i;:::-;14305:67;14334:37;14365:5;14334:19;-1:-1:-1;;;;;;;;;;;;;;;;;2390:13:57;;;;;;;;2398:1;2390:13;;2401:1;2390:13;;;;;2311:99;14334:19:40;:30;;:37::i;:::-;14305:23;14320:7;14305:14;:23::i;:::-;:28;;:67::i;:::-;14390:5;998:6;14179:17;:274::i;:::-;14138:315;;;;-1:-1:-1;13606:854:40;-1:-1:-1;;;;;;13606:854:40:o;4963:1428:45:-;5092:44;;-1:-1:-1;;;5092:44:45;;-1:-1:-1;;;;;4840:32:129;;;5092:44:45;;;4822:51:129;5043:16:45;;5071:18;;5092:20;:34;;;;4795:18:129;;5092:44:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5171:55;;-1:-1:-1;;;5171:55:45;;;;;6155:25:129;;;5071:65:45;;-1:-1:-1;5146:22:45;;-1:-1:-1;;;;;5171:20:45;:43;;;;6128:18:129;;5171:55:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5146:80;-1:-1:-1;;;;;;5241:19:45;;;;:62;;;5264:20;-1:-1:-1;;;;;5264:32:45;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;;5241:62;5237:116;;;-1:-1:-1;;5326:16:45;;;5340:1;5326:16;;;;;;;;;5319:23;-1:-1:-1;;4963:1428:45:o;5237:116::-;5434:36;5473:46;5504:14;-1:-1:-1;;;;;5473:46:45;:30;:46::i;:::-;5434:85;-1:-1:-1;5529:21:45;;5560:172;5583:23;:30;5579:1;:34;5560:172;;;5651:14;-1:-1:-1;;;;;5651:35:45;;5693:23;5717:1;5693:26;;;;;;;;:::i;:::-;;;;;5651:70;;-1:-1:-1;;;;;;5651:70:45;;;;;;;5693:26;;;;;5651:70;;;21326:36:129;21299:18;;5651:70:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5634:87;;;;:::i;:::-;;-1:-1:-1;5615:3:45;;;;:::i;:::-;;;;5560:172;;;;5803:35;5855:13;-1:-1:-1;;;;;5841:28:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5841:28:45;;5803:66;;5879:13;5910:9;5906:436;5929:23;:30;5925:1;:34;5906:436;;;5980:12;6001:23;6025:1;6001:26;;;;;;;;:::i;:::-;;;;;6073:43;;-1:-1:-1;;;6073:43:45;;6001:26;;;;;6073:43;;;21326:36:129;;;6001:26:45;-1:-1:-1;;;;;;;;6073:14:45;:35;;;;21299:18:129;;6073:43:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6042:74;;6135:9;6130:202;6154:20;6150:1;:24;6130:202;;;6235:47;;-1:-1:-1;;;6235:47:45;;22167:4:129;22155:17;;6235:47:45;;;22137:36:129;22189:18;;;22182:34;;;6235:14:45;-1:-1:-1;;;;;6235:36:45;;;;22110:18:129;;6235:47:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;6199:18;6218:5;6199:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6199:93:45;;;:25;;;;;;;;;;;:93;6310:7;;;;:::i;:::-;;;;6176:3;;;;;:::i;:::-;;;;6130:202;;;;5966:376;;5961:3;;;;;:::i;:::-;;;;5906:436;;;-1:-1:-1;6358:18:45;;4963:1428;-1:-1:-1;;;;;;;4963:1428:45:o;2172:168:40:-;1466:19;-1:-1:-1;;;;;1466:25:40;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1452:41:40;:10;-1:-1:-1;;;;;1452:41:40;;1444:146;;;;-1:-1:-1;;;1444:146:40;;23083:2:129;1444:146:40;;;23065:21:129;23122:2;23102:18;;;23095:30;23161:34;23141:18;;;23134:62;23232:34;23212:18;;;23205:62;23304:30;23283:19;;;23276:59;23352:19;;1444:146:40;22881:496:129;1444:146:40;2257:20:::1;:28:::0;;-1:-1:-1;;2257:28:40::1;::::0;::::1;;::::0;;::::1;::::0;;;2300:33:::1;::::0;5957:41:129;;;2300:33:40::1;::::0;5945:2:129;5930:18;2300:33:40::1;;;;;;;2172:168:::0;:::o;4299:136:25:-;2125:14;;:35;;-1:-1:-1;;;2125:35:25;;2149:10;2125:35;;;4822:51:129;2125:14:25;;;;-1:-1:-1;;;;;2125:14:25;;:23;;4795:18:129;;2125:35:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2117:88;;;;-1:-1:-1;;;2117:88:25;;;;;;;:::i;:::-;-1:-1:-1;;4349:7:25::1;:27:::0;;;4391:37:::1;::::0;6155:25:129;;;4398:10:25::1;::::0;4391:37:::1;::::0;6143:2:129;6128:18;4391:37:25::1;;;;;;;4299:136::o:0;4217:8907:40:-;-1:-1:-1;;;;;;;;;;;;;;;;4577:17:40;;;;:24;-1:-1:-1;;4553:48:40;;4552:122;;;;-1:-1:-1;4643:23:40;;;;:30;4619:54;;4552:122;:195;;;;-1:-1:-1;4715:24:40;;;;:31;4691:55;;4552:195;:272;;;;-1:-1:-1;4788:28:40;;;;:35;4764:59;;4552:272;4531:384;;;;-1:-1:-1;;;4531:384:40;;23584:2:129;4531:384:40;;;23566:21:129;23623:2;23603:18;;;23596:30;-1:-1:-1;;;;;;;;;;;23642:18:129;;;23635:62;23733:34;23713:18;;;23706:62;-1:-1:-1;;;23784:19:129;;;23777:32;23826:19;;4531:384:40;23382:469:129;4531:384:40;4981:35;;:42;4947:23;;;;:30;:76;4926:191;;;;-1:-1:-1;;;4926:191:40;;24058:2:129;4926:191:40;;;24040:21:129;24097:2;24077:18;;;24070:30;;;-1:-1:-1;;;;;;;;;;;24116:18:129;;;24109:62;24207:34;24187:18;;;24180:62;-1:-1:-1;;;24258:19:129;;;24251:35;24303:19;;4926:191:40;23856:472:129;4926:191:40;5167:12;5136:44;;:20;:44;;;;5128:117;;;;-1:-1:-1;;;5128:117:40;;24535:2:129;5128:117:40;;;24517:21:129;24574:2;24554:18;;;24547:30;-1:-1:-1;;;;;;;;;;;24593:18:129;;;24586:62;24684:30;24664:18;;;24657:58;24732:19;;5128:117:40;24333:424:129;5128:117:40;5762:19;;;;;;;;5735:24;5762:19;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;5762:19:40;6118:13;-1:-1:-1;;;;;6105:34:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6105:34:40;-1:-1:-1;6071:31:40;;;:68;6197:13;-1:-1:-1;;;;;6184:34:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6184:34:40;-1:-1:-1;6149:69:40;;-1:-1:-1;;;;;;;;;;;;;;;;;6311:6:40;:23;;;:30;-1:-1:-1;;;;;6297:45:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6297:45:40;-1:-1:-1;6270:72:40;;6392:23;;;;:30;-1:-1:-1;;;;;6378:45:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6378:45:40;;6352:10;:23;;:71;;;;6602:27;6632:87;6670:13;;6632:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6685:33:40;;;-1:-1:-1;;;6685:33:40;;;;-1:-1:-1;;;;;6685:19:40;:31;;-1:-1:-1;6685:31:40;;-1:-1:-1;6685:33:40;;;;;;;;;;;;;;:31;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6632:37;:87::i;:::-;6602:117;;6739:9;6734:1638;6758:6;:23;;;:30;6754:1;:34;6734:1638;;;7050:40;:6;:23;;;7074:1;7050:26;;;;;;;;:::i;:::-;;;;;;;10532:9:57;;10471:16;10522:20;;;10578:4;10574:13;;;10568:20;10555:34;;;10627:4;10614:18;;;10402:246;7050:40:40;7021:10;:23;;;7045:1;7021:26;;;;;;;;:::i;:::-;;;;;;;;;;:69;7112:6;;7108:277;;7221:23;;;;7245:5;7249:1;7245;:5;:::i;:::-;7221:30;;;;;;;;:::i;:::-;;;;;;;7213:39;;7183:10;:23;;;7207:1;7183:26;;;;;;;;:::i;:::-;;;;;;;7175:35;;:77;7142:224;;;;;-1:-1:-1;;;7142:224:40;;25094:2:129;7142:224:40;;;25076:21:129;25113:18;;;25106:30;;;;-1:-1:-1;;;;;;;;;;;25152:18:129;;;25145:62;25243:34;25223:18;;;25216:62;25295:19;;7142:224:40;24892:428:129;7142:224:40;7546:19;-1:-1:-1;;;;;7546:55:40;;7640:10;:23;;;7664:1;7640:26;;;;;;;;:::i;:::-;;;;;;;7705:20;7758:6;:35;;;7794:1;7758:38;;;;;;;;:::i;:::-;;;;;;;7546:273;;;;;;;;;;;;;;;;25524:25:129;;;25568:10;25614:15;;;25609:2;25594:18;;25587:43;25666:15;25661:2;25646:18;;25639:43;25512:2;25497:18;;25325:363;7546:273:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7495:324:40;:10;:24;;;7520:1;7495:27;;;;;;;;:::i;:::-;;;;;;:324;;;;;8110:247;8140:199;8237:75;8292:19;8262:10;:24;;;8287:1;8262:27;;;;;;;;:::i;:::-;;;;;;;:49;8237:24;:75::i;:::-;8140:6;:23;;;8164:1;8140:26;;;;;;;;:::i;:::-;;;;;;;:67;;:199;;;;:::i;8110:247::-;8104:253;-1:-1:-1;6790:3:40;;;;:::i;:::-;;;;6734:1638;;;;6434:1948;8655:12;:3;:10;:12::i;:::-;8649:18;;8970:29;9002:10;-1:-1:-1;;;;;9002:32:40;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9079:20;;8970:66;;-1:-1:-1;9079:20:40;;9050:26;9114:3139;9134:24;;;9114:3139;;;9342:21;9338:369;;;9516:20;9420:116;;9491:21;9420:19;-1:-1:-1;;;;;9420:43:40;;9470:13;;9484:1;9470:16;;;;;;;:::i;:::-;9420:68;;;;;;-1:-1:-1;;;;;;9420:68:40;;;9470:16;;;;;9420:68;;;21326:36:129;-1:-1:-1;21299:18:129;;9420:68:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:92;;;;:::i;:::-;:116;;9387:301;;;;-1:-1:-1;;;9387:301:40;;25895:2:129;9387:301:40;;;25877:21:129;25934:3;25914:18;;;25907:31;-1:-1:-1;;;;;;;;;;;25954:18:129;;;25947:62;26045:34;26025:18;;;26018:62;26117:34;26096:19;;;26089:63;-1:-1:-1;;;26168:19:129;;;26161:37;26215:19;;9387:301:40;25693:547:129;9387:301:40;9976:14;-1:-1:-1;;;;;9976:46:40;;10073:13;;10087:1;10073:16;;;;;;;:::i;:::-;;;;;;;;;10067:23;;10133:20;10190:6;:23;;;10214:1;10190:26;;;;;;;;:::i;:::-;;;;;;;;;;;9976:267;;-1:-1:-1;;;;;;9976:267:40;;;;;;;26470:4:129;26458:17;;;9976:267:40;;;26440:36:129;9976:267:40;26541:15:129;;;26521:18;;;26514:43;26593:15;26573:18;;;26566:43;26413:18;;9976:267:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9904:339:40;;9912:34;:6;:17;;;9930:1;9912:20;;;;;;;;:::i;:34::-;-1:-1:-1;;9904:339:40;;9875:507;;;;-1:-1:-1;;;9875:507:40;;27121:2:129;9875:507:40;;;27103:21:129;27160:2;27140:18;;;27133:30;-1:-1:-1;;;;;;;;;;;27179:18:129;;;27172:62;27270:34;27250:18;;;27243:62;27342:34;27321:19;;;27314:63;-1:-1:-1;;;27393:19:129;;;27386:32;27435:19;;9875:507:40;26919:541:129;9875:507:40;10406:30;10415:6;:17;;;10433:1;10415:20;;;;;;;;:::i;:::-;;;;;;;10406:3;:8;;:30;;;;:::i;:::-;10400:36;;10611:13;-1:-1:-1;;;;;10611:49:40;;10707:13;;10721:1;10707:16;;;;;;;:::i;:::-;;;;;;;;;10701:23;;10763:20;10816:6;:24;;;10841:1;10816:27;;;;;;;;:::i;:::-;;;;;;;;;;;10611:255;;-1:-1:-1;;;;;;10611:255:40;;;;;;;26470:4:129;26458:17;;;10611:255:40;;;26440:36:129;10611:255:40;26541:15:129;;;26521:18;;;26514:43;26593:15;26573:18;;;26566:43;26413:18;;10611:255:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10553:11;:31;;;10585:1;10553:34;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10553:313:40;;;:34;;;;;;;;;;:313;10922:31;;;:34;;10954:1;;10922:34;;;;;;:::i;:::-;;;;;;;10884:11;:32;;;10917:1;10884:35;;;;;;;;:::i;:::-;;;;;;:72;-1:-1:-1;;;;;10884:72:40;;;-1:-1:-1;;;;;10884:72:40;;;;;11043:31;11342:9;11337:902;11361:6;:23;;;:30;11357:1;:34;11337:902;;;11533:71;11551:10;:24;;;11576:1;11551:27;;;;;;;;:::i;:::-;;;;;;;11586:13;;11600:1;11586:16;;;;;;;:::i;:::-;14843:1:58;11586:16:40;;;;;14826:13:58;;;;14825:19;;14819:26;;;-1:-1:-1;14731:121:58;11533:71:40;11529:692;;;11699:13;-1:-1:-1;;;;;11699:43:40;;11797:13;;11811:1;11797:16;;;;;;;:::i;:::-;;;;;;;;;11791:23;;11861:20;11927:10;:23;;;11951:1;11927:26;;;;;;;;:::i;:::-;;;;;;;11994:6;:28;;;12023:1;11994:31;;;;;;;;:::i;:::-;;;;;;;12026:23;11994:56;;;;;;;;:::i;:::-;;;;;;;;;;;11699:382;;-1:-1:-1;;;;;;11699:382:40;;;;;;;27930:4:129;27918:17;;;11699:382:40;;;27900:36:129;11699:382:40;28001:15:129;;;27981:18;;;27974:43;28033:18;;;28026:34;;;;28096:15;28076:18;;;28069:43;27872:19;;11699:382:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11632:32;;:35;;11665:1;;11632:35;;;;;;:::i;:::-;;;;;;:449;;;;;;;:::i;:::-;-1:-1:-1;;;;;11632:449:40;;;-1:-1:-1;12147:25:40;;;;;11529:692;11393:3;;;;:::i;:::-;;;;11337:902;;;;9165:3088;9160:3;;;;;:::i;:::-;;;;9114:3139;;;;8956:3307;;12323:22;12347:21;12372:153;12420:7;12446:3;12468:6;:12;;;12499:6;:12;;;12372:30;:153::i;:::-;12322:203;;;;12547:17;12539:97;;;;-1:-1:-1;;;12539:97:40;;28567:2:129;12539:97:40;;;28549:21:129;28606:2;28586:18;;;28579:30;-1:-1:-1;;;;;;;;;;;28625:18:129;;;28618:62;28716:34;28696:18;;;28689:62;-1:-1:-1;;;28767:19:129;;;28760:34;28811:19;;12539:97:40;28365:471:129;12539:97:40;12658:16;12650:86;;;;-1:-1:-1;;;12650:86:40;;29043:2:129;12650:86:40;;;29025:21:129;29082:2;29062:18;;;29055:30;-1:-1:-1;;;;;;;;;;;29101:18:129;;;29094:62;29192:27;29172:18;;;29165:55;29237:19;;12650:86:40;28841:421:129;12650:86:40;12272:475;;12821:27;12878:20;12900:10;:23;;;12861:63;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;12861:63:40;;;;;;12851:74;;12861:63;12851:74;;;;13084:11;;12851:74;;-1:-1:-1;4217:8907:40;;-1:-1:-1;;;;;;;;;4217:8907:40:o;2071:101:82:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2134:147:45:-;1334:13:82;:11;:13::i;:::-;2221:53:45::1;::::0;-1:-1:-1;;;2221:53:45;;-1:-1:-1;;;;;2221:18:45::1;:39;::::0;::::1;::::0;:53:::1;::::0;2261:12;;2221:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2134:147:::0;:::o;5966:154:119:-;6022:6;1737:3:120;6047:44:119;696:20:120;6054:12:119;6047:44;:::i;:::-;:66;;;;:::i;:::-;6040:73;;5966:154;:::o;2590:2672::-;5724:7:25;;1423:1:119;;5695::25;5724:14;;;5723:24;2767:14;2759:52;;;;-1:-1:-1;;;2759:52:25;;31102:2:129;2759:52:25;;;31084:21:129;31141:2;31121:18;;;31114:30;31180:27;31160:18;;;31153:55;31225:18;;2759:52:25;30900:349:129;2759:52:25;1605:14:119::1;::::0;-1:-1:-1;;;;;1605:14:119::1;1591:10;:28;1583:85;;;::::0;-1:-1:-1;;;1583:85:119;;31456:2:129;1583:85:119::1;::::0;::::1;31438:21:129::0;31495:2;31475:18;;;31468:30;31534:34;31514:18;;;31507:62;-1:-1:-1;;;31585:18:129;;;31578:42;31637:19;;1583:85:119::1;31254:408:129::0;1583:85:119::1;2940:9:::2;2953:10;2940:23;2932:117;;;::::0;-1:-1:-1;;;2932:117:119;;31869:2:129;2932:117:119::2;::::0;::::2;31851:21:129::0;31908:2;31888:18;;;31881:30;-1:-1:-1;;;;;;;;;;;31927:18:129;;;31920:62;32018:34;31998:18;;;31991:62;-1:-1:-1;;;32069:19:129;;;32062:48;32127:19;;2932:117:119::2;31667:485:129::0;2932:117:119::2;3205:12;3169:32;::::0;;;::::2;::::0;::::2;;:::i;:::-;:48;;;;3148:162;;;::::0;-1:-1:-1;;;3148:162:119;;32359:2:129;3148:162:119::2;::::0;::::2;32341:21:129::0;32398:2;32378:18;;;32371:30;-1:-1:-1;;;;;;;;;;;32417:18:129;;;32410:62;32508:34;32488:18;;;32481:62;-1:-1:-1;;;32559:19:129;;;32552:46;32615:19;;3148:162:119::2;32157:483:129::0;3148:162:119::2;3342:80;3409:12;3342:80;1737:3:120;3343:32:119;::::0;;;::::2;::::0;::::2;;:::i;:::-;:54;;;;:::i;:::-;3342:80;;;;3321:212;;;::::0;-1:-1:-1;;;3321:212:119;;32847:2:129;3321:212:119::2;::::0;::::2;32829:21:129::0;32886:2;32866:18;;;32859:30;-1:-1:-1;;;;;;;;;;;32905:18:129;;;32898:62;32996:34;32976:18;;;32969:62;-1:-1:-1;;;33047:19:129;;;33040:52;33109:19;;3321:212:119::2;32645:489:129::0;3321:212:119::2;3607:30;3640:49;:47;:11:::0;:47:::2;:::i;:::-;;:49::i;:::-;3607:82:::0;-1:-1:-1;3745:42:119::2;::::0;3841:262:::2;3607:82:::0;3907:25:::2;;::::0;::::2;:11:::0;:25:::2;:::i;:::-;4019:32;::::0;;;::::2;::::0;::::2;;:::i;:::-;4066:27;3841:15;:262::i;:::-;3731:372;;;;4204:6;4199:625;4220:38;;::::0;::::2;:11:::0;:38:::2;:::i;:::-;:45;;4216:1;:49;4199:625;;;4637:38;;::::0;::::2;:11:::0;:38:::2;:::i;:::-;4676:1;4637:41;;;;;;;:::i;:::-;;;;;;;;;4631:48;;4588:91;;:17;:37;;;4626:1;4588:40;;;;;;;;:::i;:::-;;;;;;;:91;;;;:::i;:::-;-1:-1:-1::0;;;;;4498:181:119::2;488:3:120;4498:17:119;:38;;;4537:1;4498:41;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;4498:65:119::2;;;;;:::i;:::-;:181;;4473:340;;;::::0;-1:-1:-1;;;4473:340:119;;35257:2:129;4473:340:119::2;::::0;::::2;35239:21:129::0;35296:3;35276:18;;;35269:31;;;-1:-1:-1;;;;;;;;;;;35316:18:129;;;35309:62;35407:34;35387:18;;;35380:62;35479:34;35458:19;;;35451:63;-1:-1:-1;;;35530:19:129;;;35523:35;35575:19;;4473:340:119::2;35055:545:129::0;4473:340:119::2;4267:3:::0;::::2;::::0;::::2;:::i;:::-;;;;4199:625;;;-1:-1:-1::0;4869:20:119::2;4892:7:::0;;::::2;;::::0;4935:29:::2;:11:::0;:27:::2;:29::i;:::-;787:67:122::0;;;;;;;43604:19:129;;;43639:12;;;43632:28;;;5101:12:119::2;43716:3:129::0;43694:16;-1:-1:-1;;;;;;43690:43:129;43676:12;;;43669:65;787:67:122;;;;;;;;;43750:12:129;;;787:67:122;;;777:78;;;;;;;;;4974:41:119::2;::::0;::::2;-1:-1:-1::0;4974:41:119;;;:26:::2;:41:::0;;;;;;;:141;5397:42:129;5131:53:119;;43604:19:129;;-1:-1:-1;5146:22:119;;5131:53:::2;::::0;;;;5370:18:129;5131:53:119;;::::2;5238:17;:13:::0;5254:1:::2;5238:17;:::i;:::-;5228:7;:27:::0;;-1:-1:-1;;5228:27:119::2;;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;;;;;;2590:2672:119:o;2580:265:45:-;1255:10;-1:-1:-1;;;;;1277:20:45;1255:43;;1234:172;;;;-1:-1:-1;;;1234:172:45;;;;;;;:::i;:::-;2769:69:::1;::::0;-1:-1:-1;;;2769:69:45;;-1:-1:-1;;;;;2769:18:45::1;:40;::::0;::::1;::::0;:69:::1;::::0;2810:8;;2820:17;;2769:69:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2580:265:::0;;:::o;3055:163::-;1255:10;-1:-1:-1;;;;;1277:20:45;1255:43;;1234:172;;;;-1:-1:-1;;;1234:172:45;;;;;;;:::i;:::-;3157:54:::1;::::0;-1:-1:-1;;;3157:54:45;;-1:-1:-1;;;;;4840:32:129;;;3157:54:45::1;::::0;::::1;4822:51:129::0;3157:18:45::1;:44;::::0;::::1;::::0;4795:18:129;;3157:54:45::1;4676:203:129::0;2040:322:119;3134:13:83;;-1:-1:-1;;;3134:13:83;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:83;;3212:1;-1:-1:-1;;;3197:12:83;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:83;1476:19:85;:23;;;3219:66:83;;-1:-1:-1;3268:12:83;;-1:-1:-1;;;3268:12:83;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:83;;;;;;;:::i;:::-;3368:12;:16;;-1:-1:-1;;;;3368:16:83;-1:-1:-1;;;3368:16:83;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:83;-1:-1:-1;;;3428:20:83;;;3394:65;2220:47:119::1;2238:15;2000:1:25;2220:17:119;:47::i;:::-;2277:33;2296:13;2277:18;:33::i;:::-;2320:35;2339:15;2320:18;:35::i;:::-;3483:14:83::0;3479:99;;;3513:13;:21;;-1:-1:-1;;;;3513:21:83;;;3553:14;;-1:-1:-1;21326:36:129;;3553:14:83;;21314:2:129;21299:18;3553:14:83;;;;;;;3479:99;3101:483;2040:322:119;;;:::o;1847:118:45:-;3134:13:83;;-1:-1:-1;;;3134:13:83;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:83;;3212:1;-1:-1:-1;;;3197:12:83;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:83;1476:19:85;:23;;;3219:66:83;;-1:-1:-1;3268:12:83;;-1:-1:-1;;;3268:12:83;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:83;;;;;;;:::i;:::-;3368:12;:16;;-1:-1:-1;;;;3368:16:83;-1:-1:-1;;;3368:16:83;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:83;-1:-1:-1;;;3428:20:83;;;3394:65;1926:32:45::1;1945:12;1926:18;:32::i;:::-;3483:14:83::0;3479:99;;;3513:13;:21;;-1:-1:-1;;;;3513:21:83;;;3553:14;;-1:-1:-1;21326:36:129;;3553:14:83;;21314:2:129;21299:18;3553:14:83;;;;;;;;3479:99;3101:483;1847:118:45;:::o;3541:937::-;3600:16;3628:19;3650:20;-1:-1:-1;;;;;3650:32:45;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3628:56;;;-1:-1:-1;3699:16:45;3695:70;;-1:-1:-1;;3738:16:45;;;3752:1;3738:16;;;;;;;;;3541:937::o;3695:70::-;3783:21;;3814:128;3837:11;3833:1;:15;3814:128;;;3886:45;;-1:-1:-1;;;3886:45:45;;21356:4:129;21344:17;;3886:45:45;;;21326:36:129;3886:14:45;-1:-1:-1;;;;;3886:35:45;;;;21299:18:129;;3886:45:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3869:62;;;;:::i;:::-;;-1:-1:-1;3850:3:45;;;;:::i;:::-;;;;3814:128;;;;3952:35;4004:13;-1:-1:-1;;;;;3990:28:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3990:28:45;;3952:66;;4028:13;4059:9;4055:382;4078:20;-1:-1:-1;;;;;4078:32:45;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4074:38;;:1;:38;4055:382;;;4164:45;;-1:-1:-1;;;4164:45:45;;21356:4:129;21344:17;;4164:45:45;;;21326:36:129;4133:28:45;;4164:14;-1:-1:-1;;;;;4164:35:45;;;;21299:18:129;;4164:45:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4133:76;;4228:9;4223:204;4247:20;4243:1;:24;4223:204;;;4328:49;;-1:-1:-1;;;4328:49:45;;22167:4:129;22155:17;;4328:49:45;;;22137:36:129;22189:18;;;22182:34;;;4328:14:45;-1:-1:-1;;;;;4328:36:45;;;;22110:18:129;;4328:49:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;;4292:18;4311:5;4292:25;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4292:95:45;;;:25;;;;;;;;;;;:95;4405:7;;;;:::i;:::-;;;;4269:3;;;;;:::i;:::-;;;;4223:204;;;;4119:318;4114:3;;;;;:::i;:::-;;;;4055:382;;;-1:-1:-1;4453:18:45;;3541:937;-1:-1:-1;;;;3541:937:45:o;5339:125:119:-;1334:13:82;:11;:13::i;:::-;5422:35:119::1;5441:15;5422:18;:35::i;2321:198:82:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:82;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:82;;37542:2:129;2401:73:82::1;::::0;::::1;37524:21:129::0;37581:2;37561:18;;;37554:30;37620:34;37600:18;;;37593:62;-1:-1:-1;;;37671:18:129;;;37664:36;37717:19;;2401:73:82::1;37340:402:129::0;2401:73:82::1;2484:28;2503:8;2484:18;:28::i;4911:437:25:-:0;2285:14;;;;;;;;;-1:-1:-1;;;;;2285:14:25;-1:-1:-1;;;;;2285:23:25;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2271:39:25;:10;-1:-1:-1;;;;;2271:39:25;;2263:94;;;;-1:-1:-1;;;2263:94:25;;;;;;;:::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:25;;37949:2:129;5104:150:25::1;::::0;::::1;37931:21:129::0;37988:2;37968:18;;;37961:30;38027:34;38007:18;;;38000:62;38098:26;38078:18;;;38071:54;38142:19;;5104:150:25::1;37747:420:129::0;5104:150:25::1;5264:7;:25:::0;;;5304:37:::1;::::0;6155:25:129;;;5313:10:25::1;::::0;5304:37:::1;::::0;6143:2:129;6128:18;5304:37:25::1;6009:177:129::0;6024:360:25;-1:-1:-1;;;;;6127:40:25;;6106:160;;;;-1:-1:-1;;;6106:160:25;;38374:2:129;6106:160:25;;;38356:21:129;38413:2;38393:18;;;38386:30;38452:34;38432:18;;;38425:62;38523:34;38503:18;;;38496:62;-1:-1:-1;;;38574:19:129;;;38567:40;38624:19;;6106:160:25;38172:477:129;6106:160:25;6299:14;;6281:52;;;-1:-1:-1;;;;;6299:14:25;;;;;;38914:34:129;;38984:15;;;38979:2;38964:18;;38957:43;6281:52:25;;38849:18:129;6281:52:25;;;;;;;6343:14;:34;;-1:-1:-1;;;;;6343:34:25;;;;;-1:-1:-1;;;;;;6343:34:25;;;;;;;;;6024:360::o;7082:580:57:-;-1:-1:-1;;;;;;;;;;;;;;;;;7182:23:57;;:::i;:::-;7226:3;;7215:14;;:8;7250:3;;;;7239:8;;;:14;7263:8;;;;:12;;;-1:-1:-1;;7450:1:57;7444:4;7215:14;7434:1;7427:4;7420:5;7416:16;7405:53;7394:64;-1:-1:-1;7394:64:57;7555:48;;;;7528:75;;7555:48;7580:9;7528:75;;7630:7;7622:33;;;;-1:-1:-1;;;7622:33:57;;39213:2:129;7622:33:57;;;39195:21:129;39252:2;39232:18;;;39225:30;-1:-1:-1;;;39271:18:129;;;39264:43;39324:18;;7622:33:57;39011:337:129;7622:33:57;7172:490;;7082:580;;;;:::o;4821:615::-;-1:-1:-1;;;;;;;;;;;;;;;;;4924:23:57;;:::i;:::-;4968:4;;4957:15;;:8;4993:4;;;;4982:8;;;:15;5018:4;;5007:8;;;;:15;;;;5043:4;;;;5032:8;;;:15;-1:-1:-1;;5223:1:57;5217:4;4957:15;5207:1;5200:4;5193:5;5189:16;5178:53;5167:64;-1:-1:-1;5167:64:57;5328:48;;;;5301:75;5404:7;5396:33;;;;-1:-1:-1;;;5396:33:57;;39555:2:129;5396:33:57;;;39537:21:129;39594:2;39574:18;;;39567:30;-1:-1:-1;;;39613:18:129;;;39606:43;39666:18;;5396:33:57;39353:337:129;4068:128:57;4117:14;;:::i;:::-;-1:-1:-1;4150:39:57;;;;;;;;3633:77;4150:39;;;;;;3750:77;4150:39;;;;;;;;;;;;;;3867:77;4150:39;;3984:77;4150:39;;;;;;;;;;;;;;;4068:128::o;11042:451::-;-1:-1:-1;;;;;;;;;;;;;;;;;11121:12:57;;;11183:24;-1:-1:-1;;;;;;;;;;;11191:2:57;11183:24;:::i;:::-;11171:36;;11218:239;11257:13;11268:1;11257:10;:13::i;:::-;11245:25;;-1:-1:-1;11245:25:57;-1:-1:-1;;;;;;;;;;;;11334:1:57;11331;11324:24;11316:4;:32;11312:92;;;11376:13;;;;;;;;;;;;;;;;;;;;11042:451;-1:-1:-1;;;11042:451:57:o;11312:92::-;-1:-1:-1;;;;;;;;;;;11432:1:57;11429;11422:24;11418:28;;11218:239;;9187:1112;9395:31;;;;;;;;;;;;;;;;;;9436;;;;;;;;;;;;;;;;9373:4;;;;9395:31;9478:24;;:::i;:::-;9518:9;9513:302;9537:1;9533;:5;9513:302;;;9559:9;9571:5;:1;9575;9571:5;:::i;:::-;9559:17;;9605:2;9608:1;9605:5;;;;;;;:::i;:::-;;;;;:7;9590:5;9596;:1;9605:7;9596:5;:::i;:::-;9590:12;;;;;;;:::i;:::-;;;;:22;9641:2;9644:1;9641:5;;;;;;;:::i;:::-;;;;;:7;;;9626:5;9632:1;9636;9632:5;;;;:::i;:::-;9626:12;;;;;;;:::i;:::-;;;;:22;9677:2;9680:1;9677:5;;;;;;;:::i;:::-;;;;;:7;:10;9662:5;9668;:1;9672;9668:5;:::i;:::-;9662:12;;;;;;;:::i;:::-;;;;:25;9716:2;9719:1;9716:5;;;;;;;:::i;:::-;;;;;:7;9724:1;9716:10;;;;9701:5;9707;:1;9711;9707:5;:::i;:::-;9701:12;;;;;;;:::i;:::-;;;;:25;9755:2;9758:1;9755:5;;;;;;;:::i;:::-;;;;;:7;;;9763:1;9755:10;;;;;;;:::i;:::-;;;;;9740:5;9746;:1;9750;9746:5;:::i;:::-;9740:12;;;;;;;:::i;:::-;;;;:25;9794:2;9797:1;9794:5;;;;;;;:::i;:::-;;;;;:7;;;9802:1;9794:10;;;;;;;:::i;:::-;;;;;9779:5;9785;:1;9789;9785:5;:::i;:::-;9779:12;;;;;;;:::i;:::-;;;;:25;-1:-1:-1;9540:3:57;;;;:::i;:::-;;;;9513:302;;;;9825:21;;:::i;:::-;9856:12;10030:4;10025:3;10010:13;10003:5;10000:1;9988:10;9977:58;10280:6;;9966:69;;10280:11;;;;-1:-1:-1;10263:29:57;;-1:-1:-1;;;;;;;;;;9187:1112:57:o;13616:751:58:-;13683:23;13797:15;;13894:440;13918:3;13914:1;:7;13894:440;;;14020:1;:6;;;-1:-1:-1;14107:16:58;;;:21;14103:221;;14280:10;14305:1;14292:16;;14267:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14254:55;;14103:221;13923:3;;;:::i;:::-;;;13894:440;;;;14343:17;13616:751;;;:::o;5267:467::-;5378:7;5397:14;5414:44;5440:17;5414:25;:44::i;:::-;5397:61;-1:-1:-1;5473:11:58;;5469:235;;5582:13;5525:70;;5531:17;5576:1;5549:17;:24;:28;;;;:::i;:::-;5531:47;;;;;;;;:::i;:::-;;;;;;;5525:70;5500:193;;;;-1:-1:-1;;;5500:193:58;;40287:2:129;5500:193:58;;;40269:21:129;40326:2;40306:18;;;40299:30;40365:34;40345:18;;;40338:62;40436:33;40416:18;;;40409:61;40487:19;;5500:193:58;40085:427:129;5500:193:58;5721:6;-1:-1:-1;5267:467:58;;;;;:::o;14442:200::-;14498:6;;14542:72;14549:5;;14542:72;;14576:5;14580:1;14576;:5;:::i;:::-;14570:12;;;;14596:7;;;;:::i;:::-;;;;14542:72;;5696:1197:57;-1:-1:-1;;;;;;;;;;;;;;;;;5822:4:57;5818:1;:8;;;5810:37;;;;-1:-1:-1;;;5810:37:57;;40921:2:129;5810:37:57;;;40903:21:129;40960:2;40940:18;;;40933:30;-1:-1:-1;;;40979:18:129;;;40972:46;41035:18;;5810:37:57;40719:340:129;5810:37:57;5891:1;:6;;5896:1;5891:6;5888:44;;;-1:-1:-1;5920:1:57;5913:8;;5888:44;6014:19;;;;;;;;;5987:24;6014:19;;;;;;;;;6143:1;;6206;;6335:481;6346:1;6341:6;;:1;:6;;;6335:481;;6491:1;6481:6;;;;;;;6480:12;;:17;6476:84;;;6527:14;6532:3;6537;6527:4;:14::i;:::-;6521:20;;6476:84;6642:14;6647:3;6652;6642:4;:14::i;:::-;6636:20;-1:-1:-1;6763:7:57;6769:1;6763:7;;;;;6788:3;6335:481;;;-1:-1:-1;6883:3:57;;5696:1197;-1:-1:-1;;;;;5696:1197:57:o;4459:295::-;-1:-1:-1;;;;;;;;;;;;;;;;;4598:3:57;;:8;:20;;;;-1:-1:-1;4610:3:57;;;;:8;4598:20;4594:154;;;-1:-1:-1;;4641:13:57;;;;;;;;;-1:-1:-1;4641:13:57;;;;;;;;4459:295::o;4594:154::-;4692:45;;;;;;;;4700:1;:3;;;4692:45;;;;-1:-1:-1;;;;;;;;;;;4719:1:57;:3;;;:16;;;;:::i;:::-;4705:31;;-1:-1:-1;;;;;;;;;;;4705:31:57;:::i;:::-;4692:45;;4685:52;4459:295;-1:-1:-1;;4459:295:57:o;4594:154::-;4459:295;;;:::o;1599:130:82:-;1513:6;;-1:-1:-1;;;;;1513:6:82;929:10:86;1662:23:82;1654:68;;;;-1:-1:-1;;;1654:68:82;;41266:2:129;1654:68:82;;;41248:21:129;;;41285:18;;;41278:30;41344:34;41324:18;;;41317:62;41396:18;;1654:68:82;41064:356:129;2673:187:82;2765:6;;;-1:-1:-1;;;;;2781:17:82;;;-1:-1:-1;;;;;;2781:17:82;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;3907:229:122:-;4029:7;4076:51;4115:11;-1:-1:-1;;;;;;;;;;;;;;;;;;3556:179:122;;;;;;;;;3629:27;;3556:179;;3692:32;;;;;3556:179;;;;;;;3364:378;4076:51;4065:63;;;41663:13:129;;4065:63:122;;;;41645:32:129;;;;41725:17;;;41719:24;41745:10;41715:41;41693:20;;;41686:71;41618:18;;4065:63:122;;;;;;;;;;;;;4055:74;;;;;;4048:81;;3907:229;;;:::o;2434:171::-;2538:7;2585:11;2574:23;;;;;;;;:::i;2943:441:25:-;3077:14;;;;;-1:-1:-1;;;;;3077:14:25;3069:37;:79;;;;-1:-1:-1;;;;;;3110:38:25;;;;3069:79;3048:197;;;;-1:-1:-1;;;3048:197:25;;43975:2:129;3048:197:25;;;43957:21:129;44014:2;43994:18;;;43987:30;44053:34;44033:18;;;44026:62;44124:34;44104:18;;;44097:62;-1:-1:-1;;;44175:19:129;;;44168:38;44223:19;;3048:197:25;43773:475:129;3048:197:25;3255:7;:26;;;3296:36;;6155:25:129;;;3303:10:25;;3296:36;;6143:2:129;6128:18;3296:36:25;;;;;;;3342:35;3361:15;3342:18;:35::i;5514:244:119:-;5619:14;;;-1:-1:-1;;;;;5643:32:119;;;-1:-1:-1;;;;;;5643:32:119;;;;;;;5690:61;;;5619:14;;;;38914:34:129;;;38979:2;38964:18;;38957:43;;;;5690:61:119;;38849:18:129;5690:61:119;38654:352:129;11614:433:57;11668:7;;;-1:-1:-1;;;;;;;;;;;11799:1:57;-1:-1:-1;;;;;;;;;;;11783:1:57;-1:-1:-1;;;;;;;;;;;11767:1:57;11764;11757:24;11750:47;11743:70;11728:85;;11910:9;11922:91;11929:4;11935:65;-1:-1:-1;;;;;;;;;;;11922:6:57;:91::i;:::-;12032:4;;11910:103;;-1:-1:-1;11614:433:57;;-1:-1:-1;;;11614:433:57:o;3147:1693:58:-;3237:7;576:3;3368:17;:24;:49;;3360:142;;;;-1:-1:-1;;;3360:142:58;;44764:2:129;3360:142:58;;;44746:21:129;44803:2;44783:18;;;44776:30;;;44842:34;44822:18;;;44815:62;44913:34;44893:18;;;44886:62;-1:-1:-1;;;44964:19:129;;;44957:35;45009:19;;3360:142:58;44562:472:129;3360:142:58;3578:24;;3574:77;;-1:-1:-1;3638:1:58;;3147:1693;-1:-1:-1;3147:1693:58:o;3574:77::-;3729:14;3832:15;4139:17;4157:1;4139:20;;;;;;;;:::i;:::-;;;;;4128:1;4139:20;;;;;4128:32;;;;-1:-1:-1;4243:568:58;4267:17;:24;4263:1;:28;4243:568;;;4439:17;4457:1;4439:20;;;;;;;;:::i;:::-;;;;;4428:1;4439:20;;;;;4428:32;;-1:-1:-1;4624:16:58;;;4616:100;;;;-1:-1:-1;;;4616:100:58;;45241:2:129;4616:100:58;;;45223:21:129;45280:2;45260:18;;;45253:30;45319:34;45299:18;;;45292:62;45390:34;45370:18;;;45363:62;-1:-1:-1;;;45441:19:129;;;45434:38;45489:19;;4616:100:58;45039:475:129;4616:100:58;4783:16;;;;4293:3;;;:::i;:::-;;;4243:568;;;-1:-1:-1;4827:6:58;;3147:1693;-1:-1:-1;;;3147:1693:58:o;12053:874:57:-;12144:14;12170:12;12192:24;;:::i;:::-;12226:20;;:::i;:::-;12267:4;12256:15;;;12339:8;;;:15;;;12423:8;;;:15;;;12507:8;;;:16;;;12533:8;;;:20;;;12563:8;;;:19;;;12671:6;12665:4;12256:15;12569:1;12648:4;12641:5;12637:16;12626:58;12615:69;-1:-1:-1;12615:69:57;12781:48;;;;12754:75;12856:7;12848:46;;;;-1:-1:-1;;;12848:46:57;;45721:2:129;12848:46:57;;;45703:21:129;45760:2;45740:18;;;45733:30;45799:28;45779:18;;;45772:56;45845:18;;12848:46:57;45519:350:129;12848:46:57;-1:-1:-1;12911:9:57;;;-1:-1:-1;;;;;12053:874:57:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:148:129:-;-1:-1:-1;;;;;106:31:129;;96:42;;86:70;;152:1;149;142:12;167:288;250:6;303:2;291:9;282:7;278:23;274:32;271:52;;;319:1;316;309:12;271:52;358:9;345:23;377:48;419:5;377:48;:::i;460:180::-;519:6;572:2;560:9;551:7;547:23;543:32;540:52;;;588:1;585;578:12;540:52;-1:-1:-1;611:23:129;;460:180;-1:-1:-1;460:180:129:o;645:127::-;706:10;701:3;697:20;694:1;687:31;737:4;734:1;727:15;761:4;758:1;751:15;777:257;849:4;843:11;;;881:17;;-1:-1:-1;;;;;913:34:129;;949:22;;;910:62;907:88;;;975:18;;:::i;:::-;1011:4;1004:24;777:257;:::o;1295:255::-;1367:2;1361:9;1409:6;1397:19;;-1:-1:-1;;;;;1431:34:129;;1467:22;;;1428:62;1425:88;;;1493:18;;:::i;1555:275::-;1626:2;1620:9;1691:2;1672:13;;-1:-1:-1;;1668:27:129;1656:40;;-1:-1:-1;;;;;1711:34:129;;1747:22;;;1708:62;1705:88;;;1773:18;;:::i;:::-;1809:2;1802:22;1555:275;;-1:-1:-1;1555:275:129:o;1835:282::-;1889:5;1937:4;1925:9;1920:3;1916:19;1912:30;1909:50;;;1955:1;1952;1945:12;1909:50;1977:22;;:::i;:::-;1968:31;;2035:9;2022:23;2015:5;2008:38;2106:2;2095:9;2091:18;2078:32;2073:2;2066:5;2062:14;2055:56;1835:282;;;;:::o;2122:484::-;2172:5;2225:3;2218:4;2210:6;2206:17;2202:27;2192:55;;2243:1;2240;2233:12;2192:55;2267:22;;:::i;:::-;2311:3;2349:2;2341:6;2337:15;2375:3;2367:6;2364:15;2361:35;;;2392:1;2389;2382:12;2361:35;2416:6;2431:146;2447:6;2442:3;2439:15;2431:146;;;2515:17;;2503:30;;2562:4;2553:14;;;;2464;2431:146;;;-1:-1:-1;2595:5:129;;2122:484;-1:-1:-1;;;;;2122:484:129:o;2611:320::-;2665:5;2713:4;2701:9;2696:3;2692:19;2688:30;2685:50;;;2731:1;2728;2721:12;2685:50;2753:22;;:::i;:::-;2744:31;;2798:40;2834:3;2823:9;2798:40;:::i;:::-;2791:5;2784:55;2873:51;2920:3;2913:4;2902:9;2898:20;2873:51;:::i;:::-;2866:4;2859:5;2855:16;2848:77;2611:320;;;;:::o;2936:530::-;3100:6;3108;3116;3124;3177:3;3165:9;3156:7;3152:23;3148:33;3145:53;;;3194:1;3191;3184:12;3145:53;3230:9;3217:23;3207:33;;3259:54;3305:7;3300:2;3289:9;3285:18;3259:54;:::i;:::-;3249:64;;3332:54;3378:7;3373:2;3362:9;3358:18;3332:54;:::i;:::-;3322:64;;3405:55;3452:7;3446:3;3435:9;3431:19;3405:55;:::i;:::-;3395:65;;2936:530;;;;;;;:::o;4013:658::-;4184:2;4236:21;;;4306:13;;4209:18;;;4328:22;;;4155:4;;4184:2;4407:15;;;;4381:2;4366:18;;;4155:4;4450:195;4464:6;4461:1;4458:13;4450:195;;;4529:13;;-1:-1:-1;;;;;4525:39:129;4513:52;;4620:15;;;;4585:12;;;;4561:1;4479:9;4450:195;;;-1:-1:-1;4662:3:129;;4013:658;-1:-1:-1;;;;;;4013:658:129:o;4884:118::-;4970:5;4963:13;4956:21;4949:5;4946:32;4936:60;;4992:1;4989;4982:12;5007:241;5063:6;5116:2;5104:9;5095:7;5091:23;5087:32;5084:52;;;5132:1;5129;5122:12;5084:52;5171:9;5158:23;5190:28;5212:5;5190:28;:::i;5450:114::-;5534:4;5527:5;5523:16;5516:5;5513:27;5503:55;;5554:1;5551;5544:12;5569:243;5626:6;5679:2;5667:9;5658:7;5654:23;5650:32;5647:52;;;5695:1;5692;5685:12;5647:52;5734:9;5721:23;5753:29;5776:5;5753:29;:::i;6894:163::-;6961:20;;7021:10;7010:22;;7000:33;;6990:61;;7047:1;7044;7037:12;7062:182;7121:4;-1:-1:-1;;;;;7146:6:129;7143:30;7140:56;;;7176:18;;:::i;:::-;-1:-1:-1;7221:1:129;7217:14;7233:4;7213:25;;7062:182::o;7249:665::-;7302:5;7355:3;7348:4;7340:6;7336:17;7332:27;7322:55;;7373:1;7370;7363:12;7322:55;7409:6;7396:20;7435:4;7459:59;7475:42;7514:2;7475:42;:::i;:::-;7459:59;:::i;:::-;7552:15;;;7638:1;7634:10;;;;7622:23;;7618:32;;;7583:12;;;;7662:15;;;7659:35;;;7690:1;7687;7680:12;7659:35;7726:2;7718:6;7714:15;7738:147;7754:6;7749:3;7746:15;7738:147;;;7820:22;7838:3;7820:22;:::i;:::-;7808:35;;7863:12;;;;7771;;7738:147;;;-1:-1:-1;7903:5:129;7249:665;-1:-1:-1;;;;;;7249:665:129:o;7919:688::-;7980:5;8033:3;8026:4;8018:6;8014:17;8010:27;8000:55;;8051:1;8048;8041:12;8000:55;8087:6;8074:20;8113:4;8137:59;8153:42;8192:2;8153:42;:::i;8137:59::-;8230:15;;;8316:1;8312:10;;;;8300:23;;8296:32;;;8261:12;;;;8340:15;;;8337:35;;;8368:1;8365;8358:12;8337:35;8404:2;8396:6;8392:15;8416:162;8432:6;8427:3;8424:15;8416:162;;;8500:35;8531:3;8526;8500:35;:::i;:::-;8488:48;;8556:12;;;;8458:4;8449:14;8416:162;;8612:907;8675:5;8728:3;8721:4;8713:6;8709:17;8705:27;8695:55;;8746:1;8743;8736:12;8695:55;8782:6;8769:20;8808:4;8832:59;8848:42;8887:2;8848:42;:::i;8832:59::-;8925:15;;;9011:1;9007:10;;;;8995:23;;8991:32;;;8956:12;;;;9035:15;;;9032:35;;;9063:1;9060;9053:12;9032:35;9099:2;9091:6;9087:15;9111:379;9127:6;9122:3;9119:15;9111:379;;;9213:3;9200:17;-1:-1:-1;;;;;9236:11:129;9233:35;9230:125;;;9309:1;9338:2;9334;9327:14;9230:125;9380:67;9443:3;9438:2;9424:11;9416:6;9412:24;9408:33;9380:67;:::i;:::-;9368:80;;-1:-1:-1;9468:12:129;;;;9144;;9111:379;;9524:1566;9598:5;9646:6;9634:9;9629:3;9625:19;9621:32;9618:52;;;9666:1;9663;9656:12;9618:52;9688:22;;:::i;:::-;9679:31;;9746:9;9733:23;-1:-1:-1;;;;;9816:2:129;9808:6;9805:14;9802:34;;;9832:1;9829;9822:12;9802:34;9859:56;9911:3;9902:6;9891:9;9887:22;9859:56;:::i;:::-;9852:5;9845:71;9969:2;9958:9;9954:18;9941:32;9925:48;;9998:2;9988:8;9985:16;9982:36;;;10014:1;10011;10004:12;9982:36;10050:66;10112:3;10101:8;10090:9;10086:24;10050:66;:::i;:::-;10045:2;10038:5;10034:14;10027:90;10170:2;10159:9;10155:18;10142:32;10126:48;;10199:2;10189:8;10186:16;10183:36;;;10215:1;10212;10205:12;10183:36;10251:66;10313:3;10302:8;10291:9;10287:24;10251:66;:::i;:::-;10246:2;10239:5;10235:14;10228:90;10350:50;10396:3;10391:2;10380:9;10376:18;10350:50;:::i;:::-;10345:2;10338:5;10334:14;10327:74;10435:51;10482:3;10476;10465:9;10461:19;10435:51;:::i;:::-;10428:4;10421:5;10417:16;10410:77;10540:3;10529:9;10525:19;10512:33;10496:49;;10570:2;10560:8;10557:16;10554:36;;;10586:1;10583;10576:12;10554:36;10624:58;10678:3;10667:8;10656:9;10652:24;10624:58;:::i;:::-;10617:4;10610:5;10606:16;10599:84;10736:3;10725:9;10721:19;10708:33;10692:49;;10766:2;10756:8;10753:16;10750:36;;;10782:1;10779;10772:12;10750:36;10820:58;10874:3;10863:8;10852:9;10848:24;10820:58;:::i;:::-;10813:4;10806:5;10802:16;10795:84;10932:3;10921:9;10917:19;10904:33;10888:49;;10962:2;10952:8;10949:16;10946:36;;;10978:1;10975;10968:12;10946:36;;11015:68;11079:3;11068:8;11057:9;11053:24;11015:68;:::i;:::-;11009:3;11002:5;10998:15;10991:93;;9524:1566;;;;:::o;11095:996::-;11237:6;11245;11253;11261;11269;11322:3;11310:9;11301:7;11297:23;11293:33;11290:53;;;11339:1;11336;11329:12;11290:53;11375:9;11362:23;11352:33;;11436:2;11425:9;11421:18;11408:32;-1:-1:-1;;;;;11500:2:129;11492:6;11489:14;11486:34;;;11516:1;11513;11506:12;11486:34;11554:6;11543:9;11539:22;11529:32;;11599:7;11592:4;11588:2;11584:13;11580:27;11570:55;;11621:1;11618;11611:12;11570:55;11661:2;11648:16;11687:2;11679:6;11676:14;11673:34;;;11703:1;11700;11693:12;11673:34;11748:7;11743:2;11734:6;11730:2;11726:15;11722:24;11719:37;11716:57;;;11769:1;11766;11759:12;11716:57;11800:2;11792:11;;;-1:-1:-1;11822:6:129;-1:-1:-1;11847:37:129;11880:2;11865:18;;11847:37;:::i;:::-;11837:47;;11937:2;11926:9;11922:18;11909:32;11893:48;;11966:2;11956:8;11953:16;11950:36;;;11982:1;11979;11972:12;11950:36;;12005:80;12077:7;12066:8;12055:9;12051:24;12005:80;:::i;:::-;11995:90;;;11095:996;;;;;;;;:::o;12096:467::-;12148:3;12186:5;12180:12;12213:6;12208:3;12201:19;12239:4;12268:2;12263:3;12259:12;12252:19;;12305:2;12298:5;12294:14;12326:1;12336:202;12350:6;12347:1;12344:13;12336:202;;;12415:13;;-1:-1:-1;;;;;12411:46:129;12399:59;;12478:12;;;;12513:15;;;;12372:1;12365:9;12336:202;;;-1:-1:-1;12554:3:129;;12096:467;-1:-1:-1;;;;;12096:467:129:o;12568:645::-;12797:2;12786:9;12779:21;12760:4;12835:6;12829:13;12878:2;12873;12862:9;12858:18;12851:30;12904:62;12961:3;12950:9;12946:19;12932:12;12904:62;:::i;:::-;12890:76;;13015:4;13007:6;13003:17;12997:24;13089:2;13085:7;13073:9;13065:6;13061:22;13057:36;13052:2;13041:9;13037:18;13030:64;13111:51;13155:6;13139:14;13111:51;:::i;:::-;13103:59;;;;13200:6;13193:4;13182:9;13178:20;13171:36;12568:645;;;;;:::o;13218:407::-;13283:5;-1:-1:-1;;;;;13309:6:129;13306:30;13303:56;;;13339:18;;:::i;:::-;13377:57;13422:2;13401:15;;-1:-1:-1;;13397:29:129;13428:4;13393:40;13377:57;:::i;:::-;13368:66;;13457:6;13450:5;13443:21;13497:3;13488:6;13483:3;13479:16;13476:25;13473:45;;;13514:1;13511;13504:12;13473:45;13563:6;13558:3;13551:4;13544:5;13540:16;13527:43;13617:1;13610:4;13601:6;13594:5;13590:18;13586:29;13579:40;13218:407;;;;;:::o;13630:451::-;13699:6;13752:2;13740:9;13731:7;13727:23;13723:32;13720:52;;;13768:1;13765;13758:12;13720:52;13808:9;13795:23;-1:-1:-1;;;;;13833:6:129;13830:30;13827:50;;;13873:1;13870;13863:12;13827:50;13896:22;;13949:4;13941:13;;13937:27;-1:-1:-1;13927:55:129;;13978:1;13975;13968:12;13927:55;14001:74;14067:7;14062:2;14049:16;14044:2;14040;14036:11;14001:74;:::i;:::-;13991:84;13630:451;-1:-1:-1;;;;13630:451:129:o;14086:677::-;14232:6;14240;14293:2;14281:9;14272:7;14268:23;14264:32;14261:52;;;14309:1;14306;14299:12;14261:52;14349:9;14336:23;-1:-1:-1;;;;;14419:2:129;14411:6;14408:14;14405:34;;;14435:1;14432;14425:12;14405:34;14458:22;;;;14514:3;14496:16;;;14492:26;14489:46;;;14531:1;14528;14521:12;14489:46;14554:2;;-1:-1:-1;14609:2:129;14594:18;;14581:32;;14625:16;;;14622:36;;;14654:1;14651;14644:12;14622:36;;14677:80;14749:7;14738:8;14727:9;14723:24;14677:80;:::i;:::-;14667:90;;;14086:677;;;;;:::o;15000:221::-;15042:5;15095:3;15088:4;15080:6;15076:17;15072:27;15062:55;;15113:1;15110;15103:12;15062:55;15135:80;15211:3;15202:6;15189:20;15182:4;15174:6;15170:17;15135:80;:::i;:::-;15126:89;15000:221;-1:-1:-1;;;15000:221:129:o;15226:1043::-;15338:6;15346;15399:2;15387:9;15378:7;15374:23;15370:32;15367:52;;;15415:1;15412;15405:12;15367:52;15454:9;15441:23;15473:48;15515:5;15473:48;:::i;:::-;15540:5;-1:-1:-1;15596:2:129;15581:18;;15568:32;-1:-1:-1;;;;;15649:14:129;;;15646:34;;;15676:1;15673;15666:12;15646:34;15699:22;;;;15755:4;15737:16;;;15733:27;15730:47;;;15773:1;15770;15763:12;15730:47;15806:2;15800:9;15848:4;15840:6;15836:17;15903:6;15891:10;15888:22;15883:2;15871:10;15868:18;15865:46;15862:72;;;15914:18;;:::i;:::-;15950:2;15943:22;15990:16;;16018;;;16015:36;;;16047:1;16044;16037:12;16015:36;16075:44;16111:7;16100:8;16096:2;16092:17;16075:44;:::i;:::-;16067:6;16060:60;;16174:2;16170;16166:11;16153:25;16148:2;16140:6;16136:15;16129:50;16233:2;16229;16225:11;16212:25;16207:2;16199:6;16195:15;16188:50;16257:6;16247:16;;;;;15226:1043;;;;;:::o;16274:604::-;16375:6;16383;16391;16444:2;16432:9;16423:7;16419:23;16415:32;16412:52;;;16460:1;16457;16450:12;16412:52;16499:9;16486:23;16518:48;16560:5;16518:48;:::i;:::-;16585:5;-1:-1:-1;16642:2:129;16627:18;;16614:32;16655:50;16614:32;16655:50;:::i;:::-;16724:7;-1:-1:-1;16783:2:129;16768:18;;16755:32;16796:50;16755:32;16796:50;:::i;:::-;16865:7;16855:17;;;16274:604;;;;;:::o;17118:184::-;17176:6;17229:2;17217:9;17208:7;17204:23;17200:32;17197:52;;;17245:1;17242;17235:12;17197:52;17268:28;17286:9;17268:28;:::i;17489:268::-;17559:6;17612:2;17600:9;17591:7;17587:23;17583:32;17580:52;;;17628:1;17625;17618:12;17580:52;17660:9;17654:16;17679:48;17721:5;17679:48;:::i;17762:406::-;17964:2;17946:21;;;18003:2;17983:18;;;17976:30;18042:34;18037:2;18022:18;;18015:62;-1:-1:-1;;;18108:2:129;18093:18;;18086:40;18158:3;18143:19;;17762:406::o;18173:245::-;18240:6;18293:2;18281:9;18272:7;18268:23;18264:32;18261:52;;;18309:1;18306;18299:12;18261:52;18341:9;18335:16;18360:28;18382:5;18360:28;:::i;18423:404::-;18625:2;18607:21;;;18664:2;18644:18;;;18637:30;18703:34;18698:2;18683:18;;18676:62;-1:-1:-1;;;18769:2:129;18754:18;;18747:38;18817:3;18802:19;;18423:404::o;19257:127::-;19318:10;19313:3;19309:20;19306:1;19299:31;19349:4;19346:1;19339:15;19373:4;19370:1;19363:15;20234:209;20266:1;20292;20282:132;;20336:10;20331:3;20327:20;20324:1;20317:31;20371:4;20368:1;20361:15;20399:4;20396:1;20389:15;20282:132;-1:-1:-1;20428:9:129;;20234:209::o;20448:184::-;20518:6;20571:2;20559:9;20550:7;20546:23;20542:32;20539:52;;;20587:1;20584;20577:12;20539:52;-1:-1:-1;20610:16:129;;20448:184;-1:-1:-1;20448:184:129:o;20637:290::-;20707:6;20760:2;20748:9;20739:7;20735:23;20731:32;20728:52;;;20776:1;20773;20766:12;20728:52;20802:16;;-1:-1:-1;;;;;20847:31:129;;20837:42;;20827:70;;20893:1;20890;20883:12;20932:247;21000:6;21053:2;21041:9;21032:7;21028:23;21024:32;21021:52;;;21069:1;21066;21059:12;21021:52;21101:9;21095:16;21120:29;21143:5;21120:29;:::i;21562:127::-;21623:10;21618:3;21614:20;21611:1;21604:31;21654:4;21651:1;21644:15;21678:4;21675:1;21668:15;21694:128;21734:3;21765:1;21761:6;21758:1;21755:13;21752:39;;;21771:18;;:::i;:::-;-1:-1:-1;21807:9:129;;21694:128::o;21827:135::-;21866:3;-1:-1:-1;;21887:17:129;;21884:43;;;21907:18;;:::i;:::-;-1:-1:-1;21954:1:129;21943:13;;21827:135::o;22227:183::-;22305:13;;-1:-1:-1;;;;;22347:38:129;;22337:49;;22327:77;;22400:1;22397;22390:12;22415:461;22518:6;22571:2;22559:9;22550:7;22546:23;22542:32;22539:52;;;22587:1;22584;22577:12;22539:52;22613:22;;:::i;:::-;22665:9;22659:16;22684:50;22726:7;22684:50;:::i;:::-;22743:22;;22797:48;22841:2;22826:18;;22797:48;:::i;:::-;22792:2;22781:14;;22774:72;22785:5;22415:461;-1:-1:-1;;;22415:461:129:o;24762:125::-;24802:4;24830:1;24827;24824:8;24821:34;;;24835:18;;:::i;:::-;-1:-1:-1;24872:9:129;;24762:125::o;26620:294::-;26690:6;26743:2;26731:9;26722:7;26718:23;26714:32;26711:52;;;26759:1;26756;26749:12;26711:52;26785:16;;-1:-1:-1;;26830:35:129;;26820:46;;26810:74;;26880:1;26877;26870:12;27465:206;27534:6;27587:2;27575:9;27566:7;27562:23;27558:32;27555:52;;;27603:1;27600;27593:12;27555:52;27626:39;27655:9;27626:39;:::i;28123:237::-;28162:4;-1:-1:-1;;;;;28267:10:129;;;;28237;;28289:12;;;28286:38;;;28304:18;;:::i;:::-;28341:13;;28123:237;-1:-1:-1;;;28123:237:129:o;29267:644::-;29515:10;29510:3;29506:20;29497:6;29492:3;29488:16;29484:43;29479:3;29472:56;29454:3;29559:1;29554:3;29550:11;29590:6;29584:13;29639:4;29678:2;29670:6;29666:15;29699:1;29709:175;29723:6;29720:1;29717:13;29709:175;;;29786:13;;29772:28;;29822:14;;;;29859:15;;;;29745:1;29738:9;29709:175;;;-1:-1:-1;29900:5:129;;29267:644;-1:-1:-1;;;;;;;29267:644:129:o;29916:258::-;29988:1;29998:113;30012:6;30009:1;30006:13;29998:113;;;30088:11;;;30082:18;30069:11;;;30062:39;30034:2;30027:10;29998:113;;;30129:6;30126:1;30123:13;30120:48;;;-1:-1:-1;;30164:1:129;30146:16;;30139:27;29916:258::o;30179:::-;30221:3;30259:5;30253:12;30286:6;30281:3;30274:19;30302:63;30358:6;30351:4;30346:3;30342:14;30335:4;30328:5;30324:16;30302:63;:::i;:::-;30419:2;30398:15;-1:-1:-1;;30394:29:129;30385:39;;;;30426:4;30381:50;;30179:258;-1:-1:-1;;30179:258:129:o;30442:220::-;30591:2;30580:9;30573:21;30554:4;30611:45;30652:2;30641:9;30637:18;30629:6;30611:45;:::i;30667:228::-;30706:3;30734:10;30771:2;30768:1;30764:10;30801:2;30798:1;30794:10;30832:3;30828:2;30824:12;30819:3;30816:21;30813:47;;;30840:18;;:::i;:::-;30876:13;;30667:228;-1:-1:-1;;;;30667:228:129:o;33139:929::-;33251:9;33310:4;33302:5;33286:14;33282:26;33278:37;33275:57;;;33328:1;33325;33318:12;33275:57;33361:2;33355:9;33403:4;33395:6;33391:17;-1:-1:-1;;;;;33495:6:129;33483:10;33480:22;33475:2;33463:10;33460:18;33457:46;33454:72;;;33506:18;;:::i;:::-;33546:10;33542:2;33535:22;33594:5;33581:19;33573:6;33566:35;33648:2;33641:5;33637:14;33624:28;33610:42;;33675:2;33667:6;33664:14;33661:34;;;33691:1;33688;33681:12;33661:34;33728:52;33765:14;33756:6;33749:5;33745:18;33728:52;:::i;:::-;33723:2;33715:6;33711:15;33704:77;33830:2;33823:5;33819:14;33806:28;33790:44;;33859:2;33849:8;33846:16;33843:36;;;33875:1;33872;33865:12;33843:36;;33912:54;33951:14;33940:8;33933:5;33929:20;33912:54;:::i;:::-;33907:2;33899:6;33895:15;33888:79;;34000:33;34029:2;34022:5;34018:14;34000:33;:::i;:::-;33995:2;33983:15;;33976:58;33987:6;33139:929;-1:-1:-1;;33139:929:129:o;34073:521::-;34150:4;34156:6;34216:11;34203:25;34310:2;34306:7;34295:8;34279:14;34275:29;34271:43;34251:18;34247:68;34237:96;;34329:1;34326;34319:12;34237:96;34356:33;;34408:20;;;-1:-1:-1;;;;;;34440:30:129;;34437:50;;;34483:1;34480;34473:12;34437:50;34516:4;34504:17;;-1:-1:-1;34547:14:129;34543:27;;;34533:38;;34530:58;;;34584:1;34581;34574:12;34530:58;34073:521;;;;;:::o;34599:278::-;34638:7;-1:-1:-1;;;;;34723:2:129;34720:1;34716:10;34753:2;34750:1;34746:10;34809:3;34805:2;34801:12;34796:3;34793:21;34786:3;34779:11;34772:19;34768:47;34765:73;;;34818:18;;:::i;:::-;34858:13;;34599:278;-1:-1:-1;;;;34599:278:129:o;34882:168::-;34922:7;34988:1;34984;34980:6;34976:14;34973:1;34970:21;34965:1;34958:9;34951:17;34947:45;34944:71;;;34995:18;;:::i;:::-;-1:-1:-1;35035:9:129;;34882:168::o;35605:486::-;35807:2;35789:21;;;35846:2;35826:18;;;35819:30;35885:34;35880:2;35865:18;;35858:62;35956:34;35951:2;35936:18;;35929:62;-1:-1:-1;;;36022:3:129;36007:19;;36000:49;36081:3;36066:19;;35605:486::o;36096:625::-;36370:1;36366;36361:3;36357:11;36353:19;36345:6;36341:32;36330:9;36323:51;36410:2;36405;36394:9;36390:18;36383:30;36304:4;36448:6;36442:13;36491:4;36486:2;36475:9;36471:18;36464:32;36519:52;36566:3;36555:9;36551:19;36537:12;36519:52;:::i;:::-;36505:66;;36627:2;36619:6;36615:15;36609:22;36602:4;36591:9;36587:20;36580:52;36687:2;36679:6;36675:15;36669:22;36663:3;36652:9;36648:19;36641:51;36709:6;36701:14;;;36096:625;;;;;:::o;36726:410::-;36928:2;36910:21;;;36967:2;36947:18;;;36940:30;37006:34;37001:2;36986:18;;36979:62;-1:-1:-1;;;37072:2:129;37057:18;;37050:44;37126:3;37111:19;;36726:410::o;39695:385::-;39850:3;39888:6;39882:13;39904:53;39950:6;39945:3;39938:4;39930:6;39926:17;39904:53;:::i;:::-;-1:-1:-1;;;;;;40018:26:129;;;;39979:16;;;;40004:41;;;40072:1;40061:13;;39695:385;-1:-1:-1;;39695:385:129:o;40517:197::-;40555:3;40583:6;40624:2;40617:5;40613:14;40651:2;40642:7;40639:15;40636:41;;;40657:18;;:::i;:::-;40706:1;40693:15;;40517:197;-1:-1:-1;;;40517:197:129:o;41768:503::-;41826:5;41833:6;41893:3;41880:17;41979:2;41975:7;41964:8;41948:14;41944:29;41940:43;41920:18;41916:68;41906:96;;41998:1;41995;41988:12;41906:96;42026:33;;42130:4;42117:18;;;-1:-1:-1;42078:21:129;;-1:-1:-1;;;;;;42147:30:129;;42144:50;;;42190:1;42187;42180:12;42144:50;42240:6;42224:14;42220:27;42210:8;42206:42;42203:62;;;42261:1;42258;42251:12;42276:266;42364:6;42359:3;42352:19;42416:6;42409:5;42402:4;42397:3;42393:14;42380:43;-1:-1:-1;42468:1:129;42443:16;;;42461:4;42439:27;;;42432:38;;;;42524:2;42503:15;;;-1:-1:-1;;42499:29:129;42490:39;;;42486:50;;42276:266::o;42547:869::-;42738:2;42727:9;42720:21;42790:6;42777:20;42772:2;42761:9;42757:18;42750:48;42701:4;42841:55;42892:2;42884:6;42880:15;42872:6;42841:55;:::i;:::-;42932:4;42927:2;42916:9;42912:18;42905:32;42960:74;43029:3;43018:9;43014:19;43000:12;42986;42960:74;:::i;:::-;42946:88;;;43081:55;43132:2;43124:6;43120:15;43112:6;43081:55;:::i;:::-;43176:22;;;-1:-1:-1;;43172:36:129;43167:2;43152:18;;43145:64;43232:65;43180:6;43274:14;43258;43232:65;:::i;:::-;43218:79;;;;43375:10;43339:34;43369:2;43361:6;43357:15;43339:34;:::i;:::-;43335:51;43328:4;43317:9;43313:20;43306:81;43404:6;43396:14;;;42547:869;;;;:::o", + "linkReferences": {}, + "immutableReferences": { + "16124": [ + { + "start": 930, + "length": 32 + }, + { + "start": 3477, + "length": 32 + }, + { + "start": 4901, + "length": 32 + }, + { + "start": 5309, + "length": 32 + }, + { + "start": 5867, + "length": 32 + } + ], + "16127": [ + { + "start": 891, + "length": 32 + }, + { + "start": 6663, + "length": 32 + }, + { + "start": 7113, + "length": 32 + } + ], + "16130": [ + { + "start": 834, + "length": 32 + }, + { + "start": 6193, + "length": 32 + } + ], + "16133": [ + { + "start": 1200, + "length": 32 + }, + { + "start": 5703, + "length": 32 + } + ], + "20190": [ + { + "start": 2281, + "length": 32 + }, + { + "start": 2424, + "length": 32 + }, + { + "start": 2552, + "length": 32 + }, + { + "start": 9253, + "length": 32 + }, + { + "start": 9457, + "length": 32 + }, + { + "start": 10087, + "length": 32 + }, + { + "start": 10503, + "length": 32 + } + ], + "20193": [ + { + "start": 7857, + "length": 32 + }, + { + "start": 9337, + "length": 32 + }, + { + "start": 9549, + "length": 32 + } + ], + "20196": [ + { + "start": 2750, + "length": 32 + }, + { + "start": 3097, + "length": 32 + }, + { + "start": 3248, + "length": 32 + }, + { + "start": 10281, + "length": 32 + }, + { + "start": 10668, + "length": 32 + }, + { + "start": 10827, + "length": 32 + } + ] + } +}, +"methodIdentifiers": { + "BLOCK_STALE_MEASURE()": "5e8b3f2d", + "STORE_DURATION_BLOCKS()": "5e033476", + "THRESHOLD_DENOMINATOR()": "ef024458", + "batchConfirmer()": "39f309d5", + "batchId()": "4972134a", + "batchIdToBatchMetadataHash(uint32)": "eccbbfc9", + "blsApkRegistry()": "5df45946", + "checkSignatures(bytes32,bytes,uint32,(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))": "6efb4636", + "confirmBatch((bytes32,bytes,bytes,uint32),(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))": "7794965a", + "delegation()": "df5cf723", + "deregisterOperatorFromAVS(address)": "a364f4da", + "getOperatorRestakedStrategies(address)": "33cfb7b7", + "getRestakeableStrategies()": "e481af9d", + "initialize(address)": "c4d66de8", + "initialize(address,address,address)": "c0c53b8b", + "latestServeUntilBlock()": "758f8dba", + "owner()": "8da5cb5b", + "pause(uint256)": "136439dd", + "pauseAll()": "595c6a67", + "paused()": "5c975abb", + "paused(uint8)": "5ac86ab7", + "pauserRegistry()": "886f1195", + "registerOperatorToAVS(address,(bytes,bytes32,uint256))": "9926ee7d", + "registryCoordinator()": "6d14a987", + "renounceOwnership()": "715018a6", + "setBatchConfirmer(address)": "f1220983", + "setMetadataURI(string)": "750521f5", + "setPauserRegistry(address)": "10d67a2f", + "setStaleStakesForbidden(bool)": "416c7e5e", + "stakeRegistry()": "68304835", + "staleStakesForbidden()": "b98d0908", + "taskNumber()": "72d18e8d", + "transferOwnership(address)": "f2fde38b", + "trySignatureAndApkVerification(bytes32,(uint256,uint256),(uint256[2],uint256[2]),(uint256,uint256))": "171f1d5b", + "unpause(uint256)": "fabc1cbc" +}, +"rawMetadata": "{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"__delegationMananger\",\"type\":\"address\"},{\"internalType\":\"contract IRegistryCoordinator\",\"name\":\"__registryCoordinator\",\"type\":\"address\"},{\"internalType\":\"contract IStakeRegistry\",\"name\":\"__stakeRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"batchHeaderHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"batchId\",\"type\":\"uint32\"}],\"name\":\"BatchConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"BatchConfirmerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPausedStatus\",\"type\":\"uint256\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"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\":\"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\"},{\"inputs\":[],\"name\":\"BLOCK_STALE_MEASURE\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STORE_DURATION_BLOCKS\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchConfirmer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"batchId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"batchIdToBatchMetadataHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blsApkRegistry\",\"outputs\":[{\"internalType\":\"contract IBLSApkRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"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\":[{\"internalType\":\"bytes32\",\"name\":\"blobHeadersRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"quorumNumbers\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"quorumThresholdPercentages\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"referenceBlockNumber\",\"type\":\"uint32\"}],\"internalType\":\"struct IEigenDAServiceManager.BatchHeader\",\"name\":\"batchHeader\",\"type\":\"tuple\"},{\"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\":\"confirmBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"contract IDelegationManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"deregisterOperatorFromAVS\",\"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\":\"contract IPauserRegistry\",\"name\":\"_pauserRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_batchConfirmer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestServeUntilBlock\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"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\":\"address\",\"name\":\"_batchConfirmer\",\"type\":\"address\"}],\"name\":\"setBatchConfirmer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"setMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IPauserRegistry\",\"name\":\"newPauserRegistry\",\"type\":\"address\"}],\"name\":\"setPauserRegistry\",\"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\":[],\"name\":\"taskNumber\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"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\"}],\"devdoc\":{\"author\":\"Layr Labs, Inc.\",\"kind\":\"dev\",\"methods\":{\"checkSignatures(bytes32,bytes,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.\",\"params\":{\"msgHash\":\"is the hash being signed\",\"params\":\"is the struct containing information on nonsigners, stakes, quorum apks, and the aggregate signature\",\"quorumNumbers\":\"is the bytes array of quorum numbers that are being signed for\",\"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\"}},\"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\"},\"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.\"},\"setMetadataURI(string)\":{\"details\":\"only callable by the owner\",\"params\":{\"_metadataURI\":\"is the metadata URI for the AVS\"}},\"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.\"}}},\"title\":\"Primary entrypoint for procuring services from EigenDA.\",\"version\":1},\"userdoc\":{\"events\":{\"BatchConfirmed(bytes32,uint32)\":{\"notice\":\"Emitted when a Batch is confirmed.\"},\"BatchConfirmerChanged(address,address)\":{\"notice\":\"Emitted when the batch confirmer is changed.\"},\"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\":{\"BLOCK_STALE_MEASURE()\":{\"notice\":\"The maximum amount of blocks in the past that the service will consider stake amounts to still be 'valid'.\"},\"STORE_DURATION_BLOCKS()\":{\"notice\":\"Unit of measure (in blocks) for which data will be stored for after confirmation.\"},\"batchConfirmer()\":{\"notice\":\"address that is permissioned to confirm batches\"},\"batchId()\":{\"notice\":\"The current batchId\"},\"batchIdToBatchMetadataHash(uint32)\":{\"notice\":\"mapping between the batchId to the hash of the metadata of the corresponding Batch\"},\"checkSignatures(bytes32,bytes,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. \"},\"confirmBatch((bytes32,bytes,bytes,uint32),(uint32[],(uint256,uint256)[],(uint256,uint256)[],(uint256[2],uint256[2]),(uint256,uint256),uint32[],uint32[],uint32[][]))\":{\"notice\":\"This function is used for - submitting data availabilty certificates, - check that the aggregate signature is valid, - and check whether quorum has been achieved or not.\"},\"deregisterOperatorFromAVS(address)\":{\"notice\":\"Forwards a call to EigenLayer's DelegationManager 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\"},\"latestServeUntilBlock()\":{\"notice\":\"Returns the block until which operators must serve.\"},\"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 DelegationManager contract to confirm operator registration with the AVS\"},\"setBatchConfirmer(address)\":{\"notice\":\"This function is used for changing the batch confirmer\"},\"setMetadataURI(string)\":{\"notice\":\"Sets the metadata URI for the AVS\"},\"setPauserRegistry(address)\":{\"notice\":\"Allows the unpauser to set a new pauser registry\"},\"setStaleStakesForbidden(bool)\":{\"notice\":\"RegistryCoordinator owner can either enforce or not that operator stakes are staler than the delegation.withdrawalDelayBlocks() window.\"},\"staleStakesForbidden()\":{\"notice\":\"If true, check the staleness of the operator stakes and that its within the delegation withdrawalDelayBlocks window.\"},\"taskNumber()\":{\"notice\":\"Returns the current batchId\"},\"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.\"}},\"notice\":\"This contract is used for: - initializing the data store by the disperser - confirming the data store by the disperser with inferred aggregated signatures of the quorum - freezing operators as the result of various \\\"challenges\\\"\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/EigenDAServiceManager.sol\":\"EigenDAServiceManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/eigenlayer-contracts/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-contracts/\",\":eigenlayer-core/=lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-contracts/script/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/eigenlayer-contracts/src/contracts/interfaces/IBeaconChainOracle.sol\":{\"keccak256\":\"0x0fef07aa6179c77198f1514e12e628aa1c876e04f9c181ec853a322179e5be00\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://51438325876cc2d4c77f58488a7e27b488015d1b663c50be6a5cafbd73b9c983\",\"dweb:/ipfs/QmViCuGoYZzi6wtXA8PPKigqVv3KMuNxEVQ1Td9dGqjL18\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol\":{\"keccak256\":\"0xd3f57f3e95226d95a41399385a5b7512df7a2c6e8b3bf84d8f1e1d9d3a8acad1\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1750f88e93c0f63c05d57d8f9770adaeec23209df8c8a1c004df4244750bbae9\",\"dweb:/ipfs/QmQYCHgJLpGiDauL2Z3WF5ofansgcngKFV3AeeDo2EsJDb\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IETHPOSDeposit.sol\":{\"keccak256\":\"0x2e60e5f4b0da0a0a4e2a07c63141120998559970c21deac743ea0c64a60a880c\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://e635c346bde5b7ade9bcf35bc733081520cb86015be4fbc6e761e6e9482c4c91\",\"dweb:/ipfs/QmRoeazEnbFn5SPSWAkoFK2gSN9DMp3hJAnrLWuL2sKutz\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPod.sol\":{\"keccak256\":\"0xb50c36ad96b6679bb80fd8331f949cbfbcba0f529026e1421a4d2bae64396eba\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5719181d780120f1e688c0da276992a8caf185815917f453b3550537c31ed4cc\",\"dweb:/ipfs/QmYprRC5ZEXhz3zAUND5E8Xjn6s5TL8ZF8QbnndVq7aVPR\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IEigenPodManager.sol\":{\"keccak256\":\"0xda0ef432f8d186276739e8f8547712c9978c172de48ca0afc7935d0e84cabb03\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://97de6d182477a30c298880e0896b639ada35637a6acc4e3fadf89bf68ae83096\",\"dweb:/ipfs/QmUPzdhiKXFuFZaFvKFMrYMeF93N7wiKyigELVjRA1WsqA\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPausable.sol\":{\"keccak256\":\"0x98cffc894842947377e24c1d375813a1120dd73a84c29782ab68404e109cb34f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://b3474f6c350ceaee57cbdfb08fb48835d0c6e81ae8ebfbb9667899584a139324\",\"dweb:/ipfs/QmWELKtksdtWxQbqAccd8yGyhKqrgPZXTADKR7BuT27Zg5\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IPauserRegistry.sol\":{\"keccak256\":\"0x9de8dd682bc0d812bbd6583c0231cbf35448d5eff58b74a93efa64cb9a768c49\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c00d6c675b9c72b092d287fe85fd37782588df32b8eb59ab4c7db7a86be25e7d\",\"dweb:/ipfs/QmeYokY3HhAdbBaCPdHg3PgQEdRCDFEJy3Wf7VtgHBkQSx\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISignatureUtils.sol\":{\"keccak256\":\"0x5e52482a31d94401a8502f3014c4aada1142b4450fc0596dff8e1866a85fe092\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://17dc326c9361bc1453379f26545963557b2883b0c88bc07d4477e04dbcc0cc8c\",\"dweb:/ipfs/QmZXT7A816W5JH2ymirE2ETaJttqztFCsEL22AV8oEfCK9\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/ISlasher.sol\":{\"keccak256\":\"0x45dfaa2cfdde87f48a6ee38bb6fb739847aef7cf3f6137bdcd8c8a330559ec79\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b7f6bd75b42fcaa91ceb7140cb2c41926a1fe6ee2d3161e4fe6186b181ba232\",\"dweb:/ipfs/QmZjbdKiSs33C9i3GDc3sdD39Pz4YPkDoKftowoUF4kHmY\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategy.sol\":{\"keccak256\":\"0xc530c6a944b70051fd0dac0222de9a4b5baadeaf94ad194daac6ad8d2ace7420\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3767df0364ce835b52e786d2851431eb9223fe4747602107505477e162231d73\",\"dweb:/ipfs/QmZkH5bKUygQrJomndNaQqkefVRW4rRefCa8HPJ5HMczxJ\"]},\"lib/eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol\":{\"keccak256\":\"0x3ac96c08e5ac35a015a8b943fe4509370f73cfb420375efb3808fe3c13840679\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e76b0c1d96925dc54b11365ceb8178a1de0b2bdb1260da0f9942048d35892bc4\",\"dweb:/ipfs/QmSyew5ejxyEXsbq5t6pmhmBZmojQcesgNXgTDJmJMg1TU\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/BeaconChainProofs.sol\":{\"keccak256\":\"0x0d17c9b2b6cb6a33685ee6fc2f4c6e1b6ac59fd7555b42591575abdd65bf6395\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://14fdbaa196e46791b75e8fbb1862bc02ae76cfbd956cb8967dc18f0f88182ad1\",\"dweb:/ipfs/QmS3p4xrqgVABzAeG3ssinhKXEm6bCXR24i14VJtGJDv46\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Endian.sol\":{\"keccak256\":\"0xf3b72653ba2567a978d4612703fa5f71c5fcd015d8dac7818468f22772d90a9d\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://cee9d09370d968138d775c39525db4cd0768d60d17be7685519de12444e7dd2f\",\"dweb:/ipfs/QmUdGh8wpMei3edKiEWA6S96s9dRt4ekZKJ4nau356X8xQ\"]},\"lib/eigenlayer-contracts/src/contracts/libraries/Merkle.sol\":{\"keccak256\":\"0x2a2b15842b11da4f2e6ea7016a4f94cfcfce18f2306c3bb3bb17b05831bd2c2a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9c4b5da7c287fcb1a95b2543ba9d33df8829420dce39c1d15e950f31af6035a8\",\"dweb:/ipfs/QmWM2LYsvnf69g4aLjYXUKE6gQ54Rd95PLXU3xTQ2xiBss\"]},\"lib/eigenlayer-contracts/src/contracts/permissions/Pausable.sol\":{\"keccak256\":\"0xc543d34b3e0fd116227fc5218286de6b30a9141f47df2e8cc17d857d2c0cb338\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e78ca3c3c9f14ccde852ea41bc411726ea7770a1cf2ef18851e67bcdf7522cff\",\"dweb:/ipfs/QmWagcWsaNZqBZhdEHhZ4PcU9fx5wQnrbjoaaFvjEwgGHt\"]},\"lib/eigenlayer-middleware/src/BLSSignatureChecker.sol\":{\"keccak256\":\"0x67272da63a94fd83c974b332a4ad2a49f2f2a7171051efa45b258d5b96fdfcad\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e7440e0655428ac8ea5698eb09c9fac6740e79acbda6874a7267a12517f7f1e1\",\"dweb:/ipfs/QmPbBvEGsqtCfbBVFvsMJGtfFCarjruJ42pggHkde7nm52\"]},\"lib/eigenlayer-middleware/src/ServiceManagerBase.sol\":{\"keccak256\":\"0xe7f965c3270eae1f4d1d8e623fe3b22da3683497d435b3348f7a3f544b09179a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c24d42c4d849555eca39190718684e53f2be278ff59bf421d7b84280c11a0900\",\"dweb:/ipfs/QmZfv34B4xnjdSEchxBmtzXjbZkrSkxry3wzm5Tp4AGEqN\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSApkRegistry.sol\":{\"keccak256\":\"0x7f6aa0b9e3a7ddf3097932d073e49064326ae56303e4f40cf88c9e5a61968166\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://8728c82cb251eaf5b9d7001a41a754265fdb293c0630ddd0170b842582b5a059\",\"dweb:/ipfs/Qmc55Qf7qS5uABgENmc2G79DgwWyZ6aoB1EK4togbyCj4A\"]},\"lib/eigenlayer-middleware/src/interfaces/IBLSSignatureChecker.sol\":{\"keccak256\":\"0xf3ea961264db7607a0a07593893daf27b87cf68cdd8a8271361239d08859acc7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5c01e8f6d2ce97fa65205c0fe2f269870fa00d4baec6755da2023812d818a04d\",\"dweb:/ipfs/QmRPjUy2N7T2mfyaXPcso6HfDGAWgoJhy5tS4eWQjpwGEX\"]},\"lib/eigenlayer-middleware/src/interfaces/IDelayedService.sol\":{\"keccak256\":\"0xaec8fa534c561f101052d78bcf3dae185e2e48784943d1db63bcfc6de8c80db4\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3b7de76e334d8ceca104d2fe883d7c61349c1cf448218cface57ef7128a27fdf\",\"dweb:/ipfs/QmRfhcURN2EnvczAM3GYYKqKMv6uRK1JwAkpWuEUaggRTH\"]},\"lib/eigenlayer-middleware/src/interfaces/IIndexRegistry.sol\":{\"keccak256\":\"0x1fbcb7dd742b7fe004e44a4db03ef7160e3f1b9c6262c6b43484553d23893e70\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33f42c3376409c9079a35e119ae5e122246cd4ae3adf9f6d9b0166aca8de86bb\",\"dweb:/ipfs/QmdA5JtYbCwVXWsX6t8WLgU5ejy2ZWoATb5BkF8ntn4K1x\"]},\"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\":\"0xaa994bdacd0d8718b4a9c018debece071e28a0906a3f041d53f1874eb882fad9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://0f175cfc849fb4ac38d1629e6f87c1d7b39bd5eb2bc62e6d40d57a9ec34a62db\",\"dweb:/ipfs/QmQhgQNjZaYYzEpk2X732ZKPfTbFGr8y8RLhDWizZSQLxi\"]},\"lib/eigenlayer-middleware/src/interfaces/IServiceManager.sol\":{\"keccak256\":\"0xa7787ef89af43339a2447f252fed74746267ff2a4339823879d003c3a682f213\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://222bc9452f3af760ab477b1eb92e1e425b7027ad3ffe83d3325a92563026d0f8\",\"dweb:/ipfs/QmdQ2euKD4suZkfrKfbxaPe34xzNUpZ3459yiwJhSbLdKv\"]},\"lib/eigenlayer-middleware/src/interfaces/IStakeRegistry.sol\":{\"keccak256\":\"0xd12e4327dd3af7c467514eeb26f6330263d40ea5bcea4393f20dcb4505b6aa20\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9d2ed354473eb07fa145d4679b27919caff7d2d638c2a0ecffc0d8a5dc4d64b0\",\"dweb:/ipfs/QmagWvvrW1h9wHkDKrbaQGJ8H7mQQyZKQx1BSdTSCErk14\"]},\"lib/eigenlayer-middleware/src/libraries/BN254.sol\":{\"keccak256\":\"0xc7c5c9529ba56d63487a02cebd5ec41e4f7044ccac6a7bdbbd53492932f1e5e9\",\"license\":\"BUSL-1.1 AND MIT\",\"urls\":[\"bzz-raw://1d3ab347b2554544eee112846bf479fcd579ce573275c59d84676207ec36be06\",\"dweb:/ipfs/Qmd8e3z1JGuHKjLAdep4u8JDBsf3j6hNShQCt14eKufJYh\"]},\"lib/eigenlayer-middleware/src/libraries/BitmapUtils.sol\":{\"keccak256\":\"0x0a7f76850c3edb11080e20ef34f761813d8be3d1a0325ad64d175c01f3e3816e\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://6f697dff42c3e1c2eab7d2bc50aa96ad92abfeb1cabf8d17e541c76a82d40365\",\"dweb:/ipfs/QmPzhJNpwAYbd33oUwj1dq3KVDBMY8efUKryNa624Q2ewA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"src/core/EigenDAServiceManager.sol\":{\"keccak256\":\"0x22dafca30c97c7ae7d912884cfb6628a1896448002d395843d1968cb9cdeef5b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bb56a91288ba2cca6378439a4c4bdbf0c8b454324814516993f434fada3d0a9\",\"dweb:/ipfs/QmSMZNUnTqCr1WdocntdbK2Xx7MJEtxuoqmQRMGJ2yCVfT\"]},\"src/core/EigenDAServiceManagerStorage.sol\":{\"keccak256\":\"0x4b461dd0a47bb467a4d1ce0548ec4bc5c0912514327dc5f39ba0f35b158a6813\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://043c3d55196a0cd9e71f682bb1a28e0ffc0dbb0478c985c72ef0862e82dd25cd\",\"dweb:/ipfs/QmdJD1DNKU8f2iUXAN1oagc4YsY6nkcqds6oPCq7u1YCLr\"]},\"src/interfaces/IEigenDAServiceManager.sol\":{\"keccak256\":\"0x609bd8f4c858366fa0167140e81b749b5f75f63cdad682f7e77c7bb47b31ef61\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bbf7ae42c11c84f846e332e7da40e032f38f22f1ae435b2a8434bbd0b4672c35\",\"dweb:/ipfs/QmQchg3Z8nVcxx1hpPLUJVV5coT61JndURVMq8w2veR5Gq\"]},\"src/libraries/EigenDAHasher.sol\":{\"keccak256\":\"0x7539b1c2dd5db8d449ba79c7dd1b1c88091ad781bfca9535d431be6feb3947fd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1407eb9bbb9a61561e35afb3dad09e1c07e2bb38060e846cc643c0ff3568574a\",\"dweb:/ipfs/QmWtbAE9WT3Q7N7Vh8iKdtgdghEacjBh4xJGU47spGg17S\"]}},\"version\":1}", +"metadata": { + "compiler": { + "version": "0.8.12+commit.f00d7308" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract IDelegationManager", + "name": "__delegationMananger", + "type": "address" + }, + { + "internalType": "contract IRegistryCoordinator", + "name": "__registryCoordinator", + "type": "address" + }, + { + "internalType": "contract IStakeRegistry", + "name": "__stakeRegistry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "batchHeaderHash", + "type": "bytes32", + "indexed": true + }, + { + "internalType": "uint32", + "name": "batchId", + "type": "uint32", + "indexed": false + } + ], + "type": "event", + "name": "BatchConfirmed", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "previousAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "newAddress", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "BatchConfirmerChanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "version", + "type": "uint8", + "indexed": false + } + ], + "type": "event", + "name": "Initialized", + "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": "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": [], + "stateMutability": "view", + "type": "function", + "name": "BLOCK_STALE_MEASURE", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "STORE_DURATION_BLOCKS", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "THRESHOLD_DENOMINATOR", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "batchConfirmer", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "batchId", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "batchIdToBatchMetadataHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "blsApkRegistry", + "outputs": [ + { + "internalType": "contract IBLSApkRegistry", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "quorumNumbers", + "type": "bytes" + }, + { + "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 IEigenDAServiceManager.BatchHeader", + "name": "batchHeader", + "type": "tuple", + "components": [ + { + "internalType": "bytes32", + "name": "blobHeadersRoot", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "quorumNumbers", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "quorumThresholdPercentages", + "type": "bytes" + }, + { + "internalType": "uint32", + "name": "referenceBlockNumber", + "type": "uint32" + } + ] + }, + { + "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": "confirmBatch" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "delegation", + "outputs": [ + { + "internalType": "contract IDelegationManager", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deregisterOperatorFromAVS" + }, + { + "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": "contract IPauserRegistry", + "name": "_pauserRegistry", + "type": "address" + }, + { + "internalType": "address", + "name": "_initialOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "_batchConfirmer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "initialOwner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "latestServeUntilBlock", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ] + }, + { + "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": "address", + "name": "_batchConfirmer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setBatchConfirmer" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_metadataURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setMetadataURI" + }, + { + "inputs": [ + { + "internalType": "contract IPauserRegistry", + "name": "newPauserRegistry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setPauserRegistry" + }, + { + "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": [], + "stateMutability": "view", + "type": "function", + "name": "taskNumber", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ] + }, + { + "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" + } + ], \ No newline at end of file diff --git a/disperser/batcher/batcher.go b/disperser/batcher/batcher.go index ffd2eed7d..8b46b3bd8 100644 --- a/disperser/batcher/batcher.go +++ b/disperser/batcher/batcher.go @@ -486,21 +486,21 @@ func (b *Batcher) parseBatchIDFromReceipt(ctx context.Context, txReceipt *types. if log.Topics[0] == common.BatchConfirmedEventSigHash { smAbi, err := abi.JSON(bytes.NewReader(common.ServiceManagerAbi)) if err != nil { - return 0, err + return 0, fmt.Errorf("failed to parse ServiceManager ABI: %w", err) } eventAbi, err := smAbi.EventByID(common.BatchConfirmedEventSigHash) if err != nil { - return 0, err + return 0, fmt.Errorf("failed to parse BatchConfirmed event ABI: %w", err) } unpackedData, err := eventAbi.Inputs.Unpack(log.Data) if err != nil { - return 0, err + return 0, fmt.Errorf("failed to unpack BatchConfirmed log data: %w", err) } - // There should be exactly two inputs in the data field, batchId and fee. + // There should be exactly two inputs in the data field, batchId. // ref: https://github.com/Layr-Labs/eigenda/blob/master/contracts/src/interfaces/IEigenDAServiceManager.sol#L20 - if len(unpackedData) != 2 { - return 0, fmt.Errorf("BatchConfirmed log should contain exactly 2 inputs. Found %d", len(unpackedData)) + if len(unpackedData) != 1 { + return 0, fmt.Errorf("BatchConfirmed log should contain exactly 1 inputs. Found %d", len(unpackedData)) } return unpackedData[0].(uint32), nil }