{
  "_format": "hh3-artifact-1",
  "contractName": "SlashingManager",
  "sourceName": "contracts/slashing/SlashingManager.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "initialDelay",
          "type": "uint48"
        },
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "schedule",
          "type": "uint48"
        }
      ],
      "name": "AccessControlEnforcedDefaultAdminDelay",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccessControlEnforcedDefaultAdminRules",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "defaultAdmin",
          "type": "address"
        }
      ],
      "name": "AccessControlInvalidDefaultAdmin",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyAppealed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyExecuted",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AlreadyResolved",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealPending",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealUpheld",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealWindowActive",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AppealWindowExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BanRequiresConfirmation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ChainIdMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "CiphernodeBanned",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DuplicateEvidence",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DuplicateVoter",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ECDSAInvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "ECDSAInvalidSignatureLength",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "ECDSAInvalidSignatureS",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EquivocationDetected",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientAttestations",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidPolicy",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProof",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidProposal",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidShortString",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidVoteSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoPendingBan",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OperatorNotInCommittee",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "OperatorUnderSlash",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PartyIdNotInDkgAnchors",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ProofIsValid",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ProofRequired",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "bits",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SignatureExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SignerIsNotOperator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlashReasonDisabled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "SlashReasonNotFound",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "str",
          "type": "string"
        }
      ],
      "name": "StringTooLong",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierCallFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierMismatch",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VerifierNotSet",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VoterIsAccused",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "VoterNotInCommittee",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddress",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evidence",
          "type": "string"
        }
      ],
      "name": "AppealFiled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "appealUpheld",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "resolver",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "resolution",
          "type": "string"
        }
      ],
      "name": "AppealResolved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "canceller",
          "type": "address"
        }
      ],
      "name": "BanCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        }
      ],
      "name": "BanProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "bondingRegistry",
          "type": "address"
        }
      ],
      "name": "BondingRegistrySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previous",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "next",
          "type": "address"
        }
      ],
      "name": "BondingRegistryUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "ciphernodeRegistry",
          "type": "address"
        }
      ],
      "name": "CiphernodeRegistrySet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previous",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "next",
          "type": "address"
        }
      ],
      "name": "CiphernodeRegistryUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "DefaultAdminDelayChangeCanceled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint48",
          "name": "newDelay",
          "type": "uint48"
        },
        {
          "indexed": false,
          "internalType": "uint48",
          "name": "effectSchedule",
          "type": "uint48"
        }
      ],
      "name": "DefaultAdminDelayChangeScheduled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "DefaultAdminTransferCanceled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint48",
          "name": "acceptSchedule",
          "type": "uint48"
        }
      ],
      "name": "DefaultAdminTransferScheduled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "e3RefundManager",
          "type": "address"
        }
      ],
      "name": "E3RefundManagerSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previous",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "next",
          "type": "address"
        }
      ],
      "name": "E3RefundManagerUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "EIP712DomainChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "enclave",
          "type": "address"
        }
      ],
      "name": "EnclaveSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previous",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "next",
          "type": "address"
        }
      ],
      "name": "EnclaveUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "status",
          "type": "bool"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "updater",
          "type": "address"
        }
      ],
      "name": "NodeBanUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RoutingFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ticketAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "licenseAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "executed",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "enum ISlashingManager.Lane",
          "name": "lane",
          "type": "uint8"
        }
      ],
      "name": "SlashExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "indexed": false,
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "name": "SlashPolicyUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ticketAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "licenseAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "executableAt",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "enum ISlashingManager.Lane",
          "name": "lane",
          "type": "uint8"
        }
      ],
      "name": "SlashProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "SlashedFundsEscrowedToRefund",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DOMAIN_NAME_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DOMAIN_VERSION_HASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_DOMAIN_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNANCE_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_APPEAL_WINDOW",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROOF_PAYLOAD_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SLASHER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VOTE_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptDefaultAdminTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "slasher",
          "type": "address"
        }
      ],
      "name": "addSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "attestationDomainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        }
      ],
      "name": "banned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "banned",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "beginDefaultAdminTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bondingRegistry",
      "outputs": [
        {
          "internalType": "contract IBondingRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        }
      ],
      "name": "cancelBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cancelDefaultAdminTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint48",
          "name": "newDelay",
          "type": "uint48"
        }
      ],
      "name": "changeDefaultAdminDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ciphernodeRegistry",
      "outputs": [
        {
          "internalType": "contract ICiphernodeRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "confirmBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultAdmin",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultAdminDelay",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultAdminDelayIncreaseWait",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "e3RefundManager",
      "outputs": [
        {
          "internalType": "contract IE3RefundManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "eip712Domain",
      "outputs": [
        {
          "internalType": "bytes1",
          "name": "fields",
          "type": "bytes1"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "version",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "verifyingContract",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        },
        {
          "internalType": "uint256[]",
          "name": "extensions",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "enclave",
      "outputs": [
        {
          "internalType": "contract IEnclave",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "escrowSlashedFundsToRefund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "evidenceKey",
          "type": "bytes32"
        }
      ],
      "name": "evidenceConsumed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "consumed",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "executeSlash",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "evidence",
          "type": "string"
        }
      ],
      "name": "fileAppeal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "getSlashPolicy",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getSlashProposal",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "e3Id",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "operator",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "reason",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "ticketAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licenseAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "executed",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "appealed",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "resolved",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "appealUpheld",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "proposedAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "executableAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proofHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "proofVerified",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashProposal",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "hasOpenLaneBProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        }
      ],
      "name": "isBanned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingDefaultAdmin",
      "outputs": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        },
        {
          "internalType": "uint48",
          "name": "schedule",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingDefaultAdminDelay",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "newDelay",
          "type": "uint48"
        },
        {
          "internalType": "uint48",
          "name": "schedule",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "proposeBan",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "proposeSlash",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "partyId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "proposeSlashByDkgParty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "e3Id",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "evidence",
          "type": "bytes"
        }
      ],
      "name": "proposeSlashEvidence",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "slasher",
          "type": "address"
        }
      ],
      "name": "removeSlasher",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "appealUpheld",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "resolution",
          "type": "string"
        }
      ],
      "name": "resolveAppeal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rollbackDefaultAdminDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IBondingRegistry",
          "name": "newBondingRegistry",
          "type": "address"
        }
      ],
      "name": "setBondingRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ICiphernodeRegistry",
          "name": "newCiphernodeRegistry",
          "type": "address"
        }
      ],
      "name": "setCiphernodeRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IE3RefundManager",
          "name": "newRefundManager",
          "type": "address"
        }
      ],
      "name": "setE3RefundManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IEnclave",
          "name": "newEnclave",
          "type": "address"
        }
      ],
      "name": "setEnclave",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "ticketPenalty",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "licensePenalty",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "requiresProof",
              "type": "bool"
            },
            {
              "internalType": "address",
              "name": "proofVerifier",
              "type": "address"
            },
            {
              "internalType": "bool",
              "name": "banNode",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "appealWindow",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "enabled",
              "type": "bool"
            },
            {
              "internalType": "bool",
              "name": "affectsCommittee",
              "type": "bool"
            },
            {
              "internalType": "uint8",
              "name": "failureReason",
              "type": "uint8"
            }
          ],
          "internalType": "struct ISlashingManager.SlashPolicy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "name": "setSlashPolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "slashPolicies",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "ticketPenalty",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "licensePenalty",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "requiresProof",
          "type": "bool"
        },
        {
          "internalType": "address",
          "name": "proofVerifier",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "banNode",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "appealWindow",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "affectsCommittee",
          "type": "bool"
        },
        {
          "internalType": "uint8",
          "name": "failureReason",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalProposals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "unbanNode",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "node",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "status",
          "type": "bool"
        },
        {
          "internalType": "bytes32",
          "name": "reason",
          "type": "bytes32"
        }
      ],
      "name": "updateBanStatus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x61016060405234801561001157600080fd5b506040516150cc3803806150cc833981016040819052610030916103ff565b604080518082018252600f81526e456e636c617665536c617368696e6760881b602080830191909152825180840190935260018352603160f81b908301529083836001600160a01b0381166100a057604051636116401160e11b8152600060048201526024015b60405180910390fd5b600180546001600160d01b0316600160d01b65ffffffffffff8516021790556100ca6000826101fe565b506100da9150839050600361026f565b610120526100e981600461026f565b61014052815160208084019190912060e052815190820120610100524660a05261017660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b0381166101a65760405163d92e233d60e01b815260040160405180910390fd5b6101be6000805160206150ac833981519152826101fe565b506101f77f12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e396000805160206150ac8339815191526102a0565b505061061f565b60008261025c5760006102196002546001600160a01b031690565b6001600160a01b03161461024057604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b61026683836102cc565b90505b92915050565b600060208351101561028b5761028483610376565b9050610269565b8161029684826104ef565b5060ff9050610269565b816102be57604051631fe1e13d60e11b815260040160405180910390fd5b6102c882826103b4565b5050565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661036e576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556103263390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610269565b506000610269565b600080829050601f815111156103a1578260405163305a27a960e01b815260040161009791906105ad565b80516103ac826105fb565b179392505050565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000806040838503121561041257600080fd5b825165ffffffffffff8116811461042857600080fd5b60208401519092506001600160a01b038116811461044557600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061047a57607f821691505b60208210810361049a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156104ea57806000526020600020601f840160051c810160208510156104c75750805b601f840160051c820191505b818110156104e757600081556001016104d3565b50505b505050565b81516001600160401b0381111561050857610508610450565b61051c816105168454610466565b846104a0565b6020601f82116001811461055057600083156105385750848201515b600019600385901b1c1916600184901b1784556104e7565b600084815260208120601f198516915b828110156105805787850151825560209485019460019092019101610560565b508482101561059e5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156105db57602081860181015160408684010152016105be565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561049a5760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051614a336106796000396000612c3f01526000612c1201526000612d2d01526000612d0501526000612c7201526000612c9c01526000612cc60152614a336000f3fe608060405234801561001057600080fd5b50600436106102bf5760003560e01c806301ffc9a7146102c45780630201cd26146102ec578063022d63fb1461031757806302a3a9c9146103295780630491ed111461033e57806308efb027146103515780630aa6220b1461037457806321f15cbe1461037c578063248a9ca31461039d5780632ed4abf1146103b05780632f2ff15d146103d75780632fad87f9146103ea57806336568abe146103fd578063369f0d9c146104105780633be78ef614610423578063417eeaf1146104715780635095af641461048457806358d03e1f146104995780635cc33321146104ac578063634e93da146104d9578063649a5ec7146104ec57806366593f9a146104ff57806368a9f19c1461051257806369ae9af8146105255780636a2062581461053857806370e36bbe1461054b57806384b0196e1461055e57806384ef8ffc14610579578063858142431461058e57806386522973146105a15780638da5cb5b146105b65780638dcdd86b146105be578063902404f8146105d157806390ee555c146105d957806391d14854146105fb57806397b5103c1461060e57806397f735d51461062e5780639a2edd9d1461065a5780639c8d83bb1461075b578063a1eda53c1461077e578063a217fddf14610794578063a78d80fc1461079c578063aac6aa9c146107a5578063ab858056146107b8578063ad91e03c146107cb578063bff85a6d146107de578063c7977be71461081e578063cc8463c814610833578063cefc14291461083b578063cf6eefb714610843578063d1053f4d14610871578063d547741f14610884578063d602b9fd14610897578063dbb06c931461089f578063e59e4695146108b2578063f0691cba146108c5578063f36c8f5c146108d8578063f7770b53146108ed578063f965fbb314610900578063fad8e111146109c4578063fd070296146109d7575b600080fd5b6102d76102d23660046138e6565b610a05565b60405190151581526020015b60405180910390f35b6102d76102fa366004613935565b6001600160a01b03166000908152600e6020526040902054151590565b620697805b6040516102e39190613952565b61033c610337366004613935565b610a30565b005b61033c61034c366004613935565b610ab5565b6102d761035f366004613965565b600d6020526000908152604090205460ff1681565b61033c610b7d565b61038f61038a3660046139c6565b610b93565b6040519081526020016102e3565b61038f6103ab366004613965565b610bb8565b61038f7fab434307b5141420c222a231fb024deb0adb4022d9cb04b4244704ea67b44b5181565b61033c6103e5366004613a18565b610bcd565b61038f6103f8366004613a48565b610bf9565b61033c61040b366004613a18565b610f3e565b61033c61041e366004613ab1565b610fef565b60408051808201909152600f81526e456e636c617665536c617368696e6760881b60209091015261038f7f2b03422f63d1931b7d799a21be67f1cb822cc120410c8130354b66a519f5dde081565b61033c61047f366004613af6565b61110d565b61038f6000805160206149c783398151915281565b61038f6104a7366004613b37565b61124b565b6104cc604051806040016040528060018152602001603160f81b81525081565b6040516102e39190613bc0565b61033c6104e7366004613935565b611262565b61033c6104fa366004613bd3565b611276565b61033c61050d366004613ab1565b61128a565b61033c610520366004613935565b6113a9565b61033c610533366004613965565b611405565b61033c610546366004613bfb565b61155b565b61033c610559366004613935565b611695565b61056661171a565b6040516102e39796959493929190613c53565b610581611760565b6040516102e39190613ceb565b600554610581906001600160a01b031681565b61038f60008051602061494783398151915281565b61058161176f565b600654610581906001600160a01b031681565b61038f61177e565b6105e362278d0081565b6040516001600160401b0390911681526020016102e3565b6102d7610609366004613a18565b611788565b61062161061c366004613965565b6117b1565b6040516102e39190613cff565b6102d761063c366004613935565b6001600160a01b03166000908152600c602052604090205460ff1690565b61074e610668366004613965565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091525060009081526009602090815260409182902082516101208101845281548152600182015492810192909252600281015460ff8082161515948401949094526101008082046001600160a01b03166060850152600160a81b909104841615156080840152600382015460a0840152600490910154808416151560c08401528181048416151560e08401526201000090049092169181019190915290565b6040516102e39190613e24565b6102d7610769366004613935565b600c6020526000908152604090205460ff1681565b610786611958565b6040516102e3929190613eb3565b61038f600081565b61038f600b5481565b61033c6107b3366004613935565b6119b0565b61033c6107c6366004613ecc565b6119e0565b61033c6107d9366004613ef4565b611b60565b6040805180820190915260018152603160f81b60209091015261038f7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b61038f600080516020614a0783398151915281565b61031c611cb0565b61033c611d12565b61084b611d52565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016102e3565b61033c61087f366004613ab1565b611d73565b61033c610892366004613a18565b611ec5565b61033c611eed565b600754610581906001600160a01b031681565b61033c6108c0366004613935565b611f00565b600854610581906001600160a01b031681565b61038f60008051602061496783398151915281565b61033c6108fb366004613f16565b611f85565b61096d61090e366004613965565b600960205260009081526040902080546001820154600283015460038401546004909401549293919260ff808316936101008085046001600160a01b031694600160a81b90048316939192808316929182048116916201000090041689565b60408051998a5260208a0198909852951515968801969096526001600160a01b039093166060870152901515608086015260a0850152151560c084015290151560e083015260ff16610100820152610120016102e3565b61033c6109d2366004613935565b612099565b6104cc6040518060400160405280600f81526020016e456e636c617665536c617368696e6760881b81525081565b60006001600160e01b03198216631c52fc6960e31b1480610a2a5750610a2a8261211e565b92915050565b6000610a3b81612143565b6001600160a01b038216610a625760405163d92e233d60e01b815260040160405180910390fd5b600880546001600160a01b038481166001600160a01b0319831681179093556040519116919082907fc7f9d0025b84f00d03cbc94e76ac18d7d9babba6c33d72c648807250ac20857090600090a3505050565b610acd60008051602061496783398151915233611788565b610ae9576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038181166000908152600f602052604090205416610b2157604051632e3e351f60e21b815260040160405180910390fd5b6001600160a01b0381166000818152600f602052604080822080546001600160a01b031916815560018101839055600201919091555160008051602061498783398151915290610b72903390613ceb565b60405180910390a250565b6000610b8881612143565b610b9061214d565b50565b600080610ba0868661215a565b9050610bae868286866122a5565b9695505050505050565b60009081526020819052604090206001015490565b81610beb57604051631fe1e13d60e11b815260040160405180910390fd5b610bf58282612684565b5050565b6000610c136000805160206149c783398151915233611788565b610c2f576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038516610c565760405163d92e233d60e01b815260040160405180910390fd5b60008481526009602090815260409182902082516101208101845281548152600182015492810192909252600281015460ff8082161515948401949094526101008082046001600160a01b03166060850152600160a81b909104841615156080840152600382015460a0840152600490910154808416151560c084018190528282048516151560e0850152620100009091049093169082015290610d0d5760405163445296b760e01b815260040160405180910390fd5b806040015115610d305760405163d06b96b160e01b815260040160405180910390fd5b600087878686604051610d44929190613f50565b604051908190038120610d5b939291602001613f60565b60408051601f1981840301815291815281516020928301206000818152600d90935291205490915060ff1615610da457604051632df03f2f60e11b815260040160405180910390fd5b6000818152600d60205260409020805460ff19166001908117909155600b549350610dd0908490613f95565b600b556001600160a01b0387166000908152600e60205260408120805460019290610dfc908490613f95565b909155505060a0820151600090610e139042613f95565b6000858152600a60209081526040918290208c81556001810180546001600160a01b038e166001600160a01b031991821617909155600282018c905587516003830155918701516004820155426006820155600781018490556008810180549092163317909155905191925090610e8d9088908890613f50565b60405190819003812060098301556080850151600a8301805460e0880151610100808a015160ff1663010000000263ff00000019921515620100000262ff0000199615159092029590951662ffff0019909316929092179190911716919091179055845160208601516001600160a01b038c16928d9289926000805160206149a783398151915292610f29928f9290918a903390600190613fe0565b60405180910390a45050505095945050505050565b81158015610f645750610f4f611760565b6001600160a01b0316816001600160a01b0316145b15610fe557600080610f74611d52565b90925090506001600160a01b038216151580610f965750610f94816126a6565b155b80610fa75750610fa5816126b3565b155b15610fd057806040516319ca5ebb60e01b8152600401610fc79190613952565b60405180910390fd5b50506001805465ffffffffffff60a01b191690555b610bf582826126c2565b61100760008051602061496783398151915233611788565b611023576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03821661104a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152600c60209081526040808320805460ff19169055600f90915290205416156110d6576001600160a01b0382166000818152600f602052604080822080546001600160a01b0319168155600181018390556002019190915551600080516020614987833981519152906110cd903390613ceb565b60405180910390a25b80826001600160a01b03166000805160206149e7833981519152600033604051611101929190614023565b60405180910390a35050565b61112560008051602061496783398151915233611788565b611141576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0383166111685760405163d92e233d60e01b815260040160405180910390fd5b811561118757604051632e5dd8d960e11b815260040160405180910390fd5b6001600160a01b038084166000908152600c60209081526040808320805460ff19169055600f9091529020541615611213576001600160a01b0383166000818152600f602052604080822080546001600160a01b03191681556001810183905560020191909155516000805160206149878339815191529061120a903390613ceb565b60405180910390a25b80836001600160a01b03166000805160206149e783398151915260003360405161123e929190614023565b60405180910390a3505050565b6000611259858585856122a5565b95945050505050565b600061126d81612143565b610bf5826126f5565b600061128181612143565b610bf582612763565b6112a260008051602061496783398151915233611788565b6112be576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0382166112e55760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff161561131f5760405163d06b96b160e01b815260040160405180910390fd5b60408051606081018252338082526020808301858152428486019081526001600160a01b038881166000818152600f90955293879020955186546001600160a01b03191691161785559051600185015551600290930192909255915183927f739eb5d60b254dcf1df008df9dd42b8dfd0cd06ea977f9a398bc301db2478006916111019190613ceb565b6000805160206149678339815191526113c181612143565b6001600160a01b0382166113e85760405163d92e233d60e01b815260040160405180910390fd5b6114006000805160206149c7833981519152836127ca565b505050565b600b54811061142757604051631dc0650160e31b815260040160405180910390fd5b6000818152600a60205260409020600581015460ff161561145b57604051630dc1019760e01b815260040160405180910390fd5b8060070154421015611480576040516302e4ade760e41b815260040160405180910390fd5b6005810154610100900460ff16156114ea57600581015462010000900460ff166114bd57604051633c51508760e01b815260040160405180910390fd5b60058101546301000000900460ff16156114ea5760405163c47f348d60e01b815260040160405180910390fd5b600a81015460009060ff16611500576001611503565b60005b9050600181600181111561151957611519613fa8565b03611551576001828101546001600160a01b03166000908152600e60205260408120805490919061154b90849061403c565b90915550505b611400838261282f565b600b54831061157d57604051631dc0650160e31b815260040160405180910390fd5b6000838152600a6020526040902060018101546001600160a01b031633146115b7576040516282b42960e81b815260040160405180910390fd5b600581015460ff16156115dd57604051630dc1019760e01b815260040160405180910390fd5b806007015442106116015760405163500ae6df60e11b815260040160405180910390fd5b6005810154610100900460ff161561162c57604051634dcfa42d60e01b815260040160405180910390fd5b60058101805461ff001916610100179055600281015460018201546040516001600160a01b039091169086907f504748673411f7e40d2c089b1ee7795d0ce79293ab441ee70aa407a79afcfef8906116879088908890614078565b60405180910390a450505050565b60006116a081612143565b6001600160a01b0382166116c75760405163d92e233d60e01b815260040160405180910390fd5b600780546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f15f35c07d0917633e8a1b7232fe844516e2da37ae79f3f99751b2189c6c1fd1f90600090a3505050565b60006060806000806000606061172e612c0b565b611736612c38565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6002546001600160a01b031690565b6000611779611760565b905090565b6000611779612c65565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6040805161022081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810191909152600b54821061185c57604051631dc0650160e31b815260040160405180910390fd5b506000908152600a60208181526040928390208351610220810185528154815260018201546001600160a01b03908116938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460ff808216151560a08701526101008083048216151560c0880152620100008084048316151560e089015263010000009384900483161515828901526006850154610120890152600785015461014089015260088501549095166101608801526009840154610180880152929094015480851615156101a0870152918204841615156101c0860152918104831615156101e0850152041661020082015290565b600254600090600160d01b900465ffffffffffff16611976816126a6565b80156119885750611986816126b3565b155b611994576000806119a8565b600254600160a01b900465ffffffffffff16815b915091509091565b6000805160206149678339815191526119c881612143565b6114006000805160206149c783398151915283612d7e565b6119f860008051602061496783398151915233611788565b611a14576040516282b42960e81b815260040160405180910390fd5b600b548410611a3657604051631dc0650160e31b815260040160405180910390fd5b6000848152600a602052604090206005810154610100900460ff16611a6e57604051631dc0650160e31b815260040160405180910390fd5b600581015462010000900460ff1615611a9a576040516336ab81e160e11b815260040160405180910390fd5b6005810180548515801563010000000263ffff0000199092169190911762010000179091558490611ad05750600a81015460ff16155b15611b08576001818101546001600160a01b03166000908152600e602052604081208054909190611b0290849061403c565b90915550505b60018101546040516001600160a01b039091169086907f54fdf5658ce9a501a91f4fb0fdd6f306c81c8b434e52436c0a11f791602290a290611b519088903390899089906140aa565b60405180910390a35050505050565b333014611b7f576040516282b42960e81b815260040160405180910390fd5b6008546001600160a01b031680611ba95760405163d92e233d60e01b815260040160405180910390fd5b600554604051620c776b60e81b81526001600160a01b0390911690630c776b0090611bda90849086906004016140d7565b600060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505060075460405163c1ab0f1f60e01b815260048101879052602481018690526001600160a01b03909116925063c1ab0f1f9150604401600060405180830381600087803b158015611c5957600080fd5b505af1158015611c6d573d6000803e3d6000fd5b50505050827f6e198b06c6157e05a64a59a06616916197f5ade4033d4fa2936b65855ba3b3f083604051611ca391815260200190565b60405180910390a2505050565b600254600090600160d01b900465ffffffffffff16611cce816126a6565b8015611cde5750611cde816126b3565b611cf957600154600160d01b900465ffffffffffff16611d0c565b600254600160a01b900465ffffffffffff165b91505090565b6000611d1c611d52565b509050336001600160a01b03821614611d4a5733604051636116401160e11b8152600401610fc79190613ceb565b610b90612dc6565b6001546001600160a01b03811691600160a01b90910465ffffffffffff1690565b611d8b60008051602061496783398151915233611788565b611da7576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038083166000908152600f6020908152604091829020825160608101845281549094168085526001820154928501929092526002015491830191909152611e0857604051632e3e351f60e21b815260040160405180910390fd5b81816020015114611e2c5760405163d06b96b160e01b815260040160405180910390fd5b8051336001600160a01b0390911603611e5857604051632e5dd8d960e11b815260040160405180910390fd5b6001600160a01b0383166000818152600f6020908152604080832080546001600160a01b031916815560018082018590556002909101849055600c90925291829020805460ff19168217905590518492916000805160206149e78339815191529161123e91903390614023565b81611ee357604051631fe1e13d60e11b815260040160405180910390fd5b610bf58282612e43565b6000611ef881612143565b610b90612e5f565b6000611f0b81612143565b6001600160a01b038216611f325760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f9d94f4df9f9906421b5e1eebe2ec479e7da89fee83a3e189d306a8963d5a5b1290600090a3505050565b600080516020614967833981519152611f9d81612143565b82611fbb5760405163d06b96b160e01b815260040160405180910390fd5b8135151580611fce575060008260200135115b611feb5760405163d06b96b160e01b815260040160405180910390fd5b611ffb60608301604084016140f0565b6120245760008260a00135116120245760405163d06b96b160e01b815260040160405180910390fd5b62278d0060a0830135111561204c5760405163d06b96b160e01b815260040160405180910390fd5b60008381526009602052604090208290612066828261414b565b905050827f135eb7a2bf3d0661413d6a727c89d884bf5842e92229110d2c5df764e2f2386083604051611ca3919061425b565b60006120a481612143565b6001600160a01b0382166120cb5760405163d92e233d60e01b815260040160405180910390fd5b600680546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f7497eaa4ed1c19367ba1269bd529081955fc0bfa0ad685fd70aa8302eb75658b90600090a3505050565b60006001600160e01b031982166318a4c3c360e11b1480610a2a5750610a2a82612e6a565b610b908133612e9f565b612158600080612eca565b565b600654604051632e2ad1c160e21b81526004810184905260009182916001600160a01b039091169063b8ab470490602401600060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121d091908101906143bc565b505090506000805b825181101561221257848382815181106121f4576121f46144aa565b60200260200101510361220a5760019150612212565b6001016121d8565b508061223157604051632429cfe160e01b815260040160405180910390fd5b60065460405163e4d185db60e01b815260048101879052602481018690526001600160a01b039091169063e4d185db90604401602060405180830381865afa158015612281573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906144c0565b60006001600160a01b0384166122ce5760405163d92e233d60e01b815260040160405180910390fd5b60008290036122f057604051631eae1a4d60e31b815260040160405180910390fd5b60006122fe83850185613965565b905060008160405160200161231591815260200190565b60408051808303601f1901815282825280516020918201206000818152600983528390206101208501845280548552600181015492850192909252600282015460ff8082161515948601949094526101008082046001600160a01b03166060870152600160a81b909104841615156080860152600383015460a0860152600490920154808416151560c086018190528382048516151560e0870152620100009091049093169184019190915292506123e05760405163445296b760e01b815260040160405180910390fd5b80604001516124025760405163d06b96b160e01b815260040160405180910390fd5b60065460405163a8a4d69b60e01b81526001600160a01b039091169063a8a4d69b90612434908b908b906004016144dd565b602060405180830381865afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906144f4565b61249257604051637353fac560e01b815260040160405180910390fd5b6000468989866040516020016124ab9493929190614511565b60408051601f1981840301815291815281516020928301206000818152600d90935291205490915060ff16156124f457604051632df03f2f60e11b815260040160405180910390fd5b6000818152600d60205260409020805460ff1916600117905561251987878b8b612f90565b600b549450612529856001613f95565b600b5560a082015160009061253e9042613f95565b6000878152600a60209081526040918290208d81556001810180546001600160a01b038f166001600160a01b03199182161790915560028201899055875160038301559187015160048201554260068201556007810184905560088101805490921633179091559051919250906125b8908a908a90613f50565b6040519081900381206009830155600a82018054608087015160e08801516101008981015160ff1663010000000263ff0000001992151562010000029290921663ffff00001993151590910261ffff19909416939093176001179190911691909117179055845160208601516001600160a01b038d16928e928b926000805160206149a783398151915292612657928c9290918a903390600090613fe0565b60405180910390a48360a001516000036126765761267687600061282f565b505050505050949350505050565b61268d82610bb8565b61269681612143565b6126a083836127ca565b50505050565b65ffffffffffff16151590565b4265ffffffffffff9091161090565b6001600160a01b03811633146126eb5760405163334bd91960e11b815260040160405180910390fd5b6114008282612d7e565b60006126ff611cb0565b612708426133af565b6127129190614539565b905061271e82826133e6565b816001600160a01b03167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516127579190613952565b60405180910390a25050565b600061276e8261345d565b612777426133af565b6127819190614539565b905061278d8282612eca565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516127be929190613eb3565b60405180910390a15050565b60008261281e5760006127db611760565b6001600160a01b03161461280257604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b61282883836134a5565b9392505050565b6000828152600a602052604081206003810154909190156128d257600554600183015460038401546002850154604051634cabdd3d60e01b81526001600160a01b0394851694634cabdd3d9461288c949116929091600401614557565b6020604051808303816000875af11580156128ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128cf9190614578565b90505b6004820154156129505760055460018301546004808501546002860154604051638e9ddc0360e01b81526001600160a01b0395861695638e9ddc039561291d95911693929101614557565b600060405180830381600087803b15801561293757600080fd5b505af115801561294b573d6000803e3d6000fd5b505050505b60058201805460ff19166001179055600a820154610100900460ff16156129cf57600182810180546001600160a01b039081166000908152600c602052604090819020805460ff19168517905560028601549254905192939116916000805160206149e7833981519152916129c6913090614023565b60405180910390a35b600a82015462010000900460ff1615612b2e57600654825460018401546002850154604051631f24bd4960e21b815260009485946001600160a01b0391821694637c92f52494612a2794929390911691600401613f60565b60408051808303816000875af1158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6991906145a5565b915091508063ffffffff1682108015612a8f5750600a8401546301000000900460ff1615155b15612b2b576007548454600a860154604051635d968dc160e11b815260048101929092526301000000900460ff1660248201526001600160a01b039091169063bb2d1b8290604401600060405180830381600087803b158015612af157600080fd5b505af1925050508015612b02575060015b612b2b578354604051600081526000805160206149278339815191529060200160405180910390a25b50505b8015612bb0578154604051632b64780f60e21b8152600481019190915260248101829052309063ad91e03c90604401600060405180830381600087803b158015612b7757600080fd5b505af1925050508015612b88575060015b612bb05781546040518281526000805160206149278339815191529060200160405180910390a25b60028201546001808401548454600386015460048701546040516001600160a01b03909416948a947f524216138c59db6a05fa28575565d3f0d0ba5bb61ce532ab4ee49c176de85ca094611687949093909290918c906145d1565b60606117797f00000000000000000000000000000000000000000000000000000000000000006003613537565b60606117797f00000000000000000000000000000000000000000000000000000000000000006004613537565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612cbe57507f000000000000000000000000000000000000000000000000000000000000000046145b15612ce857507f000000000000000000000000000000000000000000000000000000000000000090565b61177960408051600080516020614a0783398151915260208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600082158015612da65750612d91611760565b6001600160a01b0316826001600160a01b0316145b15612dbc57600280546001600160a01b03191690555b61282883836135e2565b600080612dd1611d52565b91509150612dde816126a6565b1580612df05750612dee816126b3565b155b15612e1057806040516319ca5ebb60e01b8152600401610fc79190613952565b612e226000612e1d611760565b612d7e565b50612e2e6000836127ca565b5050600180546001600160d01b031916905550565b612e4c82610bb8565b612e5581612143565b6126a08383612d7e565b6121586000806133e6565b60006001600160e01b03198216637965db0b60e01b1480610a2a57506301ffc9a760e01b6001600160e01b0319831614610a2a565b612ea98282611788565b610bf557808260405163e2517d3f60e01b8152600401610fc79291906140d7565b600254600160d01b900465ffffffffffff16612ee5816126a6565b15612f5357612ef3816126b3565b15612f2957600254600180546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055612f53565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b50600280546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b60008080808080612fa3898b018b6147b1565b955095509550955095509550600085519050845181148015612fc55750815181145b612fe2576040516309bde33960e01b815260040160405180910390fd5b8242111561300357604051630819bdcd60e01b815260040160405180910390fd5b6000468a8a8a60405160200161301c9493929190614511565b60408051808303601f1901815290829052805160209091012060065463f52fd80360e01b8352600483018d90529092506000916001600160a01b039091169063f52fd80390602401608060405180830381865afa158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a5919061487f565b505091505060008163ffffffff16116130d157604051631dc0650160e31b815260040160405180910390fd5b8063ffffffff168310156130f8576040516339093e6560e21b815260040160405180910390fd5b5060008660008151811061310e5761310e6144aa565b602002602001015190508086805190602001201461313f576040516309bde33960e01b815260040160405180910390fd5b6000805b8481101561339e5760008a828151811061315f5761315f6144aa565b60200260200101519050826001600160a01b0316816001600160a01b03161161319b5760405163cbceb64b60e01b815260040160405180910390fd5b8092508c6001600160a01b0316816001600160a01b0316036131d057604051638d8fbb9760e01b815260040160405180910390fd5b838a83815181106131e3576131e36144aa565b6020026020010151146132095760405163875621b760e01b815260040160405180910390fd5b600660009054906101000a90046001600160a01b03166001600160a01b0316635d5047768f836040518363ffffffff1660e01b815260040161324c9291906144dd565b602060405180830381865afa158015613269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328d91906144f4565b6132aa576040516326540e1360e11b815260040160405180910390fd5b60006000805160206149478339815191528f87848e87815181106132d0576132d06144aa565b60200260200101518d60405160200161331a96959493929190958652602086019490945260408501929092526001600160a01b03166060840152608083015260a082015260c00190565b604051602081830303815290604052805190602001209050600061333d8261364d565b9050826001600160a01b031661336c828b878151811061335f5761335f6144aa565b602002602001015161367a565b6001600160a01b031614613393576040516364a283db60e01b815260040160405180910390fd5b505050600101613143565b505050505050505050505050505050565b600065ffffffffffff8211156133e2576040516306dfcc6560e41b81526030600482015260248101839052604401610fc7565b5090565b60006133f0611d52565b6001805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617179055915061342a9050816126a6565b15611400576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b600080613468611cb0565b90508065ffffffffffff168365ffffffffffff16116134905761348b83826148ce565b612828565b61282865ffffffffffff8416620697806136a4565b60006134b18383611788565b61352f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556134e73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610a2a565b506000610a2a565b606060ff83146135515761354a836136b4565b9050610a2a565b81805461355d906148ec565b80601f0160208091040260200160405190810160405280929190818152602001828054613589906148ec565b80156135d65780601f106135ab576101008083540402835291602001916135d6565b820191906000526020600020905b8154815290600101906020018083116135b957829003601f168201915b50505050509050610a2a565b60006135ee8383611788565b1561352f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610a2a565b6000610a2a61365a612c65565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061368a86866136f3565b92509250925061369a8282613740565b5090949350505050565b6000828218828410028218612828565b606060006136c1836137f9565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000806000835160410361372d5760208401516040850151606086015160001a61371f88828585613821565b955095509550505050613739565b50508151600091506002905b9250925092565b600082600381111561375457613754613fa8565b0361375d575050565b600182600381111561377157613771613fa8565b0361378f5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156137a3576137a3613fa8565b036137c45760405163fce698f760e01b815260048101829052602401610fc7565b60038260038111156137d8576137d8613fa8565b03610bf5576040516335e2f38360e21b815260048101829052602401610fc7565b600060ff8216601f811115610a2a57604051632cd44ac360e21b815260040160405180910390fd5b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561385257506000915060039050826138dc565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156138a6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166138d2575060009250600191508290506138dc565b9250600091508190505b9450945094915050565b6000602082840312156138f857600080fd5b81356001600160e01b03198116811461282857600080fd5b6001600160a01b0381168114610b9057600080fd5b803561393081613910565b919050565b60006020828403121561394757600080fd5b813561282881613910565b65ffffffffffff91909116815260200190565b60006020828403121561397757600080fd5b5035919050565b60008083601f84011261399057600080fd5b5081356001600160401b038111156139a757600080fd5b6020830191508360208285010111156139bf57600080fd5b9250929050565b600080600080606085870312156139dc57600080fd5b843593506020850135925060408501356001600160401b03811115613a0057600080fd5b613a0c8782880161397e565b95989497509550505050565b60008060408385031215613a2b57600080fd5b823591506020830135613a3d81613910565b809150509250929050565b600080600080600060808688031215613a6057600080fd5b853594506020860135613a7281613910565b93506040860135925060608601356001600160401b03811115613a9457600080fd5b613aa08882890161397e565b969995985093965092949392505050565b60008060408385031215613ac457600080fd5b8235613acf81613910565b946020939093013593505050565b8015158114610b9057600080fd5b803561393081613add565b600080600060608486031215613b0b57600080fd5b8335613b1681613910565b92506020840135613b2681613add565b929592945050506040919091013590565b60008060008060608587031215613b4d57600080fd5b843593506020850135613b5f81613910565b925060408501356001600160401b03811115613a0057600080fd5b6000815180845260005b81811015613ba057602081850181015186830182015201613b84565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006128286020830184613b7a565b600060208284031215613be557600080fd5b813565ffffffffffff8116811461282857600080fd5b600080600060408486031215613c1057600080fd5b8335925060208401356001600160401b03811115613c2d57600080fd5b613c398682870161397e565b9497909650939450505050565b6001600160a01b03169052565b60ff60f81b8816815260e060208201526000613c7260e0830189613b7a565b8281036040840152613c848189613b7a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015613cda578351835260209384019390920191600101613cbc565b50909b9a5050505050505050505050565b6001600160a01b0391909116815260200190565b81518152602080830151610220830191613d1b90840182613c46565b5060408301516040830152606083015160608301526080830151608083015260a0830151613d4d60a084018215159052565b5060c0830151613d6160c084018215159052565b5060e0830151613d7560e084018215159052565b50610100830151613d8b61010084018215159052565b50610120830151610120830152610140830151610140830152610160830151613db8610160840182613c46565b506101808301516101808301526101a0830151613dda6101a084018215159052565b506101c0830151613df06101c084018215159052565b506101e0830151613e066101e084018215159052565b50610200830151613e1d61020084018260ff169052565b5092915050565b81518152602080830151908201526040808301511515908201526060808301516001600160a01b031690820152608080830151610120830191613e6a9084018215159052565b5060a083015160a083015260c0830151613e8860c084018215159052565b5060e0830151613e9c60e084018215159052565b50610100830151613e1d61010084018260ff169052565b65ffffffffffff92831681529116602082015260400190565b60008060008060608587031215613ee257600080fd5b843593506020850135613b5f81613add565b60008060408385031215613f0757600080fd5b50508035926020909101359150565b600080828403610140811215613f2b57600080fd5b83359250610120601f1982011215613f4257600080fd5b506020830190509250929050565b8183823760009101908152919050565b9283526001600160a01b03919091166020830152604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2a57610a2a613f7f565b634e487b7160e01b600052602160045260246000fd5b60028110613fdc57634e487b7160e01b600052602160045260246000fd5b9052565b8681526020810186905260408101859052606081018490526001600160a01b038316608082015260c0810161401860a0830184613fbe565b979650505050505050565b91151582526001600160a01b0316602082015260400190565b81810381811115610a2a57610a2a613f7f565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061408c60208301848661404f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b84151581526001600160a01b0384166020820152606060408201819052600090610bae908301848661404f565b6001600160a01b03929092168252602082015260400190565b60006020828403121561410257600080fd5b813561282881613add565b60008135610a2a81613add565b60ff1981541660ff8315151681178255505050565b60ff81168114610b9057600080fd5b60008135610a2a8161412f565b8135815560208201356001820155600281016000604084013561416d81613add565b80915061417a818461411a565b50506000606084013561418c81613910565b8254610100600160a81b031916600882901b610100600160a81b03161783559050506141db6141bd6080850161410d565b82805460ff60a81b191691151560a81b60ff60a81b16919091179055565b5060a08201356003820155600481016141ff6141f960c0850161410d565b8261411a565b61422861420e60e0850161410d565b82805461ff00191691151560081b61ff0016919091179055565b611400614238610100850161413e565b825462ff0000191660109190911b62ff000016178255565b80356139308161412f565b81358152602080830135908201526101208101604083013561427c81613add565b1515604083015261428f60608401613925565b61429c6060840182613c46565b506142a960808401613aeb565b1515608083015260a083810135908301526142c660c08401613aeb565b151560c08301526142d960e08401613aeb565b151560e08301526142ed6101008401614250565b60ff8116610100840152613e1d565b604051601f8201601f191681016001600160401b038111828210171561432457614324614094565b604052919050565b60006001600160401b0382111561434557614345614094565b5060051b60200190565b600082601f83011261436057600080fd5b815161437361436e8261432c565b6142fc565b8082825260208201915060208360051b86010192508583111561439557600080fd5b602085015b838110156143b257805183526020928301920161439a565b5095945050505050565b6000806000606084860312156143d157600080fd5b83516001600160401b038111156143e757600080fd5b8401601f810186136143f857600080fd5b805161440661436e8261432c565b8082825260208201915060208360051b85010192508883111561442857600080fd5b6020840193505b8284101561444a57835182526020938401939091019061442f565b6020880151909650925050506001600160401b0381111561446a57600080fd5b6144768682870161434f565b604086015190935090506001600160401b0381111561449457600080fd5b6144a08682870161434f565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156144d257600080fd5b815161282881613910565b9182526001600160a01b0316602082015260400190565b60006020828403121561450657600080fd5b815161282881613add565b938452602084019290925260601b6001600160601b0319166040830152605482015260740190565b65ffffffffffff8181168382160190811115610a2a57610a2a613f7f565b6001600160a01b039390931683526020830191909152604082015260600190565b60006020828403121561458a57600080fd5b5051919050565b805163ffffffff8116811461393057600080fd5b600080604083850312156145b857600080fd5b825191506145c860208401614591565b90509250929050565b8581526020810185905260408101849052821515606082015260a08101610bae6080830184613fbe565b600082601f83011261460c57600080fd5b813561461a61436e8261432c565b8082825260208201915060208360051b86010192508583111561463c57600080fd5b602085015b838110156143b257803561465481613910565b835260209283019201614641565b600082601f83011261467357600080fd5b813561468161436e8261432c565b8082825260208201915060208360051b8601019250858311156146a357600080fd5b602085015b838110156143b25780358352602092830192016146a8565b600082601f8301126146d157600080fd5b81356001600160401b038111156146ea576146ea614094565b6146fd601f8201601f19166020016142fc565b81815284602083860101111561471257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261474057600080fd5b813561474e61436e8261432c565b8082825260208201915060208360051b86010192508583111561477057600080fd5b602085015b838110156143b25780356001600160401b0381111561479357600080fd5b6147a2886020838a01016146c0565b84525060209283019201614775565b60008060008060008060c087890312156147ca57600080fd5b8635955060208701356001600160401b038111156147e757600080fd5b6147f389828a016145fb565b95505060408701356001600160401b0381111561480f57600080fd5b61481b89828a01614662565b94505060608701356001600160401b0381111561483757600080fd5b61484389828a016146c0565b9350506080870135915060a08701356001600160401b0381111561486657600080fd5b61487289828a0161472f565b9150509295509295509295565b6000806000806080858703121561489557600080fd5b845193506148a560208601614591565b92506148b360408601614591565b915060608501516148c381613add565b939692955090935050565b65ffffffffffff8281168282160390811115610a2a57610a2a613f7f565b600181811c9082168061490057607f821691505b60208210810361492057634e487b7160e01b600052602260045260246000fd5b5091905056fe90aea07388b9bdfa07088e89d67f7fb2e0b76a8bd7239b7c3d251a031950fd0c731d4bb21b9013f34d5030ab8246554bc8b93afdddcf49136f61074b05d2227571840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb121ad71720545f6a5fbbd9e262d9df81496444453a22e08bf33ccc2b767f495bedeaef7a9e299fbe51107e054b53dfe73dfa7f7332bfef49fb01b71f7a67c33eb12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e39459f7b4f723dbbc6281258a697d9bf8a2564b0d0f5ddb40cd04515e43050f9b88b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400fa164736f6c634300081c000a71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102bf5760003560e01c806301ffc9a7146102c45780630201cd26146102ec578063022d63fb1461031757806302a3a9c9146103295780630491ed111461033e57806308efb027146103515780630aa6220b1461037457806321f15cbe1461037c578063248a9ca31461039d5780632ed4abf1146103b05780632f2ff15d146103d75780632fad87f9146103ea57806336568abe146103fd578063369f0d9c146104105780633be78ef614610423578063417eeaf1146104715780635095af641461048457806358d03e1f146104995780635cc33321146104ac578063634e93da146104d9578063649a5ec7146104ec57806366593f9a146104ff57806368a9f19c1461051257806369ae9af8146105255780636a2062581461053857806370e36bbe1461054b57806384b0196e1461055e57806384ef8ffc14610579578063858142431461058e57806386522973146105a15780638da5cb5b146105b65780638dcdd86b146105be578063902404f8146105d157806390ee555c146105d957806391d14854146105fb57806397b5103c1461060e57806397f735d51461062e5780639a2edd9d1461065a5780639c8d83bb1461075b578063a1eda53c1461077e578063a217fddf14610794578063a78d80fc1461079c578063aac6aa9c146107a5578063ab858056146107b8578063ad91e03c146107cb578063bff85a6d146107de578063c7977be71461081e578063cc8463c814610833578063cefc14291461083b578063cf6eefb714610843578063d1053f4d14610871578063d547741f14610884578063d602b9fd14610897578063dbb06c931461089f578063e59e4695146108b2578063f0691cba146108c5578063f36c8f5c146108d8578063f7770b53146108ed578063f965fbb314610900578063fad8e111146109c4578063fd070296146109d7575b600080fd5b6102d76102d23660046138e6565b610a05565b60405190151581526020015b60405180910390f35b6102d76102fa366004613935565b6001600160a01b03166000908152600e6020526040902054151590565b620697805b6040516102e39190613952565b61033c610337366004613935565b610a30565b005b61033c61034c366004613935565b610ab5565b6102d761035f366004613965565b600d6020526000908152604090205460ff1681565b61033c610b7d565b61038f61038a3660046139c6565b610b93565b6040519081526020016102e3565b61038f6103ab366004613965565b610bb8565b61038f7fab434307b5141420c222a231fb024deb0adb4022d9cb04b4244704ea67b44b5181565b61033c6103e5366004613a18565b610bcd565b61038f6103f8366004613a48565b610bf9565b61033c61040b366004613a18565b610f3e565b61033c61041e366004613ab1565b610fef565b60408051808201909152600f81526e456e636c617665536c617368696e6760881b60209091015261038f7f2b03422f63d1931b7d799a21be67f1cb822cc120410c8130354b66a519f5dde081565b61033c61047f366004613af6565b61110d565b61038f6000805160206149c783398151915281565b61038f6104a7366004613b37565b61124b565b6104cc604051806040016040528060018152602001603160f81b81525081565b6040516102e39190613bc0565b61033c6104e7366004613935565b611262565b61033c6104fa366004613bd3565b611276565b61033c61050d366004613ab1565b61128a565b61033c610520366004613935565b6113a9565b61033c610533366004613965565b611405565b61033c610546366004613bfb565b61155b565b61033c610559366004613935565b611695565b61056661171a565b6040516102e39796959493929190613c53565b610581611760565b6040516102e39190613ceb565b600554610581906001600160a01b031681565b61038f60008051602061494783398151915281565b61058161176f565b600654610581906001600160a01b031681565b61038f61177e565b6105e362278d0081565b6040516001600160401b0390911681526020016102e3565b6102d7610609366004613a18565b611788565b61062161061c366004613965565b6117b1565b6040516102e39190613cff565b6102d761063c366004613935565b6001600160a01b03166000908152600c602052604090205460ff1690565b61074e610668366004613965565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091525060009081526009602090815260409182902082516101208101845281548152600182015492810192909252600281015460ff8082161515948401949094526101008082046001600160a01b03166060850152600160a81b909104841615156080840152600382015460a0840152600490910154808416151560c08401528181048416151560e08401526201000090049092169181019190915290565b6040516102e39190613e24565b6102d7610769366004613935565b600c6020526000908152604090205460ff1681565b610786611958565b6040516102e3929190613eb3565b61038f600081565b61038f600b5481565b61033c6107b3366004613935565b6119b0565b61033c6107c6366004613ecc565b6119e0565b61033c6107d9366004613ef4565b611b60565b6040805180820190915260018152603160f81b60209091015261038f7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b61038f600080516020614a0783398151915281565b61031c611cb0565b61033c611d12565b61084b611d52565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016102e3565b61033c61087f366004613ab1565b611d73565b61033c610892366004613a18565b611ec5565b61033c611eed565b600754610581906001600160a01b031681565b61033c6108c0366004613935565b611f00565b600854610581906001600160a01b031681565b61038f60008051602061496783398151915281565b61033c6108fb366004613f16565b611f85565b61096d61090e366004613965565b600960205260009081526040902080546001820154600283015460038401546004909401549293919260ff808316936101008085046001600160a01b031694600160a81b90048316939192808316929182048116916201000090041689565b60408051998a5260208a0198909852951515968801969096526001600160a01b039093166060870152901515608086015260a0850152151560c084015290151560e083015260ff16610100820152610120016102e3565b61033c6109d2366004613935565b612099565b6104cc6040518060400160405280600f81526020016e456e636c617665536c617368696e6760881b81525081565b60006001600160e01b03198216631c52fc6960e31b1480610a2a5750610a2a8261211e565b92915050565b6000610a3b81612143565b6001600160a01b038216610a625760405163d92e233d60e01b815260040160405180910390fd5b600880546001600160a01b038481166001600160a01b0319831681179093556040519116919082907fc7f9d0025b84f00d03cbc94e76ac18d7d9babba6c33d72c648807250ac20857090600090a3505050565b610acd60008051602061496783398151915233611788565b610ae9576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038181166000908152600f602052604090205416610b2157604051632e3e351f60e21b815260040160405180910390fd5b6001600160a01b0381166000818152600f602052604080822080546001600160a01b031916815560018101839055600201919091555160008051602061498783398151915290610b72903390613ceb565b60405180910390a250565b6000610b8881612143565b610b9061214d565b50565b600080610ba0868661215a565b9050610bae868286866122a5565b9695505050505050565b60009081526020819052604090206001015490565b81610beb57604051631fe1e13d60e11b815260040160405180910390fd5b610bf58282612684565b5050565b6000610c136000805160206149c783398151915233611788565b610c2f576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038516610c565760405163d92e233d60e01b815260040160405180910390fd5b60008481526009602090815260409182902082516101208101845281548152600182015492810192909252600281015460ff8082161515948401949094526101008082046001600160a01b03166060850152600160a81b909104841615156080840152600382015460a0840152600490910154808416151560c084018190528282048516151560e0850152620100009091049093169082015290610d0d5760405163445296b760e01b815260040160405180910390fd5b806040015115610d305760405163d06b96b160e01b815260040160405180910390fd5b600087878686604051610d44929190613f50565b604051908190038120610d5b939291602001613f60565b60408051601f1981840301815291815281516020928301206000818152600d90935291205490915060ff1615610da457604051632df03f2f60e11b815260040160405180910390fd5b6000818152600d60205260409020805460ff19166001908117909155600b549350610dd0908490613f95565b600b556001600160a01b0387166000908152600e60205260408120805460019290610dfc908490613f95565b909155505060a0820151600090610e139042613f95565b6000858152600a60209081526040918290208c81556001810180546001600160a01b038e166001600160a01b031991821617909155600282018c905587516003830155918701516004820155426006820155600781018490556008810180549092163317909155905191925090610e8d9088908890613f50565b60405190819003812060098301556080850151600a8301805460e0880151610100808a015160ff1663010000000263ff00000019921515620100000262ff0000199615159092029590951662ffff0019909316929092179190911716919091179055845160208601516001600160a01b038c16928d9289926000805160206149a783398151915292610f29928f9290918a903390600190613fe0565b60405180910390a45050505095945050505050565b81158015610f645750610f4f611760565b6001600160a01b0316816001600160a01b0316145b15610fe557600080610f74611d52565b90925090506001600160a01b038216151580610f965750610f94816126a6565b155b80610fa75750610fa5816126b3565b155b15610fd057806040516319ca5ebb60e01b8152600401610fc79190613952565b60405180910390fd5b50506001805465ffffffffffff60a01b191690555b610bf582826126c2565b61100760008051602061496783398151915233611788565b611023576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03821661104a5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152600c60209081526040808320805460ff19169055600f90915290205416156110d6576001600160a01b0382166000818152600f602052604080822080546001600160a01b0319168155600181018390556002019190915551600080516020614987833981519152906110cd903390613ceb565b60405180910390a25b80826001600160a01b03166000805160206149e7833981519152600033604051611101929190614023565b60405180910390a35050565b61112560008051602061496783398151915233611788565b611141576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0383166111685760405163d92e233d60e01b815260040160405180910390fd5b811561118757604051632e5dd8d960e11b815260040160405180910390fd5b6001600160a01b038084166000908152600c60209081526040808320805460ff19169055600f9091529020541615611213576001600160a01b0383166000818152600f602052604080822080546001600160a01b03191681556001810183905560020191909155516000805160206149878339815191529061120a903390613ceb565b60405180910390a25b80836001600160a01b03166000805160206149e783398151915260003360405161123e929190614023565b60405180910390a3505050565b6000611259858585856122a5565b95945050505050565b600061126d81612143565b610bf5826126f5565b600061128181612143565b610bf582612763565b6112a260008051602061496783398151915233611788565b6112be576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0382166112e55760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff161561131f5760405163d06b96b160e01b815260040160405180910390fd5b60408051606081018252338082526020808301858152428486019081526001600160a01b038881166000818152600f90955293879020955186546001600160a01b03191691161785559051600185015551600290930192909255915183927f739eb5d60b254dcf1df008df9dd42b8dfd0cd06ea977f9a398bc301db2478006916111019190613ceb565b6000805160206149678339815191526113c181612143565b6001600160a01b0382166113e85760405163d92e233d60e01b815260040160405180910390fd5b6114006000805160206149c7833981519152836127ca565b505050565b600b54811061142757604051631dc0650160e31b815260040160405180910390fd5b6000818152600a60205260409020600581015460ff161561145b57604051630dc1019760e01b815260040160405180910390fd5b8060070154421015611480576040516302e4ade760e41b815260040160405180910390fd5b6005810154610100900460ff16156114ea57600581015462010000900460ff166114bd57604051633c51508760e01b815260040160405180910390fd5b60058101546301000000900460ff16156114ea5760405163c47f348d60e01b815260040160405180910390fd5b600a81015460009060ff16611500576001611503565b60005b9050600181600181111561151957611519613fa8565b03611551576001828101546001600160a01b03166000908152600e60205260408120805490919061154b90849061403c565b90915550505b611400838261282f565b600b54831061157d57604051631dc0650160e31b815260040160405180910390fd5b6000838152600a6020526040902060018101546001600160a01b031633146115b7576040516282b42960e81b815260040160405180910390fd5b600581015460ff16156115dd57604051630dc1019760e01b815260040160405180910390fd5b806007015442106116015760405163500ae6df60e11b815260040160405180910390fd5b6005810154610100900460ff161561162c57604051634dcfa42d60e01b815260040160405180910390fd5b60058101805461ff001916610100179055600281015460018201546040516001600160a01b039091169086907f504748673411f7e40d2c089b1ee7795d0ce79293ab441ee70aa407a79afcfef8906116879088908890614078565b60405180910390a450505050565b60006116a081612143565b6001600160a01b0382166116c75760405163d92e233d60e01b815260040160405180910390fd5b600780546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f15f35c07d0917633e8a1b7232fe844516e2da37ae79f3f99751b2189c6c1fd1f90600090a3505050565b60006060806000806000606061172e612c0b565b611736612c38565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6002546001600160a01b031690565b6000611779611760565b905090565b6000611779612c65565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6040805161022081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e08101829052610200810191909152600b54821061185c57604051631dc0650160e31b815260040160405180910390fd5b506000908152600a60208181526040928390208351610220810185528154815260018201546001600160a01b03908116938201939093526002820154948101949094526003810154606085015260048101546080850152600581015460ff808216151560a08701526101008083048216151560c0880152620100008084048316151560e089015263010000009384900483161515828901526006850154610120890152600785015461014089015260088501549095166101608801526009840154610180880152929094015480851615156101a0870152918204841615156101c0860152918104831615156101e0850152041661020082015290565b600254600090600160d01b900465ffffffffffff16611976816126a6565b80156119885750611986816126b3565b155b611994576000806119a8565b600254600160a01b900465ffffffffffff16815b915091509091565b6000805160206149678339815191526119c881612143565b6114006000805160206149c783398151915283612d7e565b6119f860008051602061496783398151915233611788565b611a14576040516282b42960e81b815260040160405180910390fd5b600b548410611a3657604051631dc0650160e31b815260040160405180910390fd5b6000848152600a602052604090206005810154610100900460ff16611a6e57604051631dc0650160e31b815260040160405180910390fd5b600581015462010000900460ff1615611a9a576040516336ab81e160e11b815260040160405180910390fd5b6005810180548515801563010000000263ffff0000199092169190911762010000179091558490611ad05750600a81015460ff16155b15611b08576001818101546001600160a01b03166000908152600e602052604081208054909190611b0290849061403c565b90915550505b60018101546040516001600160a01b039091169086907f54fdf5658ce9a501a91f4fb0fdd6f306c81c8b434e52436c0a11f791602290a290611b519088903390899089906140aa565b60405180910390a35050505050565b333014611b7f576040516282b42960e81b815260040160405180910390fd5b6008546001600160a01b031680611ba95760405163d92e233d60e01b815260040160405180910390fd5b600554604051620c776b60e81b81526001600160a01b0390911690630c776b0090611bda90849086906004016140d7565b600060405180830381600087803b158015611bf457600080fd5b505af1158015611c08573d6000803e3d6000fd5b505060075460405163c1ab0f1f60e01b815260048101879052602481018690526001600160a01b03909116925063c1ab0f1f9150604401600060405180830381600087803b158015611c5957600080fd5b505af1158015611c6d573d6000803e3d6000fd5b50505050827f6e198b06c6157e05a64a59a06616916197f5ade4033d4fa2936b65855ba3b3f083604051611ca391815260200190565b60405180910390a2505050565b600254600090600160d01b900465ffffffffffff16611cce816126a6565b8015611cde5750611cde816126b3565b611cf957600154600160d01b900465ffffffffffff16611d0c565b600254600160a01b900465ffffffffffff165b91505090565b6000611d1c611d52565b509050336001600160a01b03821614611d4a5733604051636116401160e11b8152600401610fc79190613ceb565b610b90612dc6565b6001546001600160a01b03811691600160a01b90910465ffffffffffff1690565b611d8b60008051602061496783398151915233611788565b611da7576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038083166000908152600f6020908152604091829020825160608101845281549094168085526001820154928501929092526002015491830191909152611e0857604051632e3e351f60e21b815260040160405180910390fd5b81816020015114611e2c5760405163d06b96b160e01b815260040160405180910390fd5b8051336001600160a01b0390911603611e5857604051632e5dd8d960e11b815260040160405180910390fd5b6001600160a01b0383166000818152600f6020908152604080832080546001600160a01b031916815560018082018590556002909101849055600c90925291829020805460ff19168217905590518492916000805160206149e78339815191529161123e91903390614023565b81611ee357604051631fe1e13d60e11b815260040160405180910390fd5b610bf58282612e43565b6000611ef881612143565b610b90612e5f565b6000611f0b81612143565b6001600160a01b038216611f325760405163d92e233d60e01b815260040160405180910390fd5b600580546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f9d94f4df9f9906421b5e1eebe2ec479e7da89fee83a3e189d306a8963d5a5b1290600090a3505050565b600080516020614967833981519152611f9d81612143565b82611fbb5760405163d06b96b160e01b815260040160405180910390fd5b8135151580611fce575060008260200135115b611feb5760405163d06b96b160e01b815260040160405180910390fd5b611ffb60608301604084016140f0565b6120245760008260a00135116120245760405163d06b96b160e01b815260040160405180910390fd5b62278d0060a0830135111561204c5760405163d06b96b160e01b815260040160405180910390fd5b60008381526009602052604090208290612066828261414b565b905050827f135eb7a2bf3d0661413d6a727c89d884bf5842e92229110d2c5df764e2f2386083604051611ca3919061425b565b60006120a481612143565b6001600160a01b0382166120cb5760405163d92e233d60e01b815260040160405180910390fd5b600680546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f7497eaa4ed1c19367ba1269bd529081955fc0bfa0ad685fd70aa8302eb75658b90600090a3505050565b60006001600160e01b031982166318a4c3c360e11b1480610a2a5750610a2a82612e6a565b610b908133612e9f565b612158600080612eca565b565b600654604051632e2ad1c160e21b81526004810184905260009182916001600160a01b039091169063b8ab470490602401600060405180830381865afa1580156121a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121d091908101906143bc565b505090506000805b825181101561221257848382815181106121f4576121f46144aa565b60200260200101510361220a5760019150612212565b6001016121d8565b508061223157604051632429cfe160e01b815260040160405180910390fd5b60065460405163e4d185db60e01b815260048101879052602481018690526001600160a01b039091169063e4d185db90604401602060405180830381865afa158015612281573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906144c0565b60006001600160a01b0384166122ce5760405163d92e233d60e01b815260040160405180910390fd5b60008290036122f057604051631eae1a4d60e31b815260040160405180910390fd5b60006122fe83850185613965565b905060008160405160200161231591815260200190565b60408051808303601f1901815282825280516020918201206000818152600983528390206101208501845280548552600181015492850192909252600282015460ff8082161515948601949094526101008082046001600160a01b03166060870152600160a81b909104841615156080860152600383015460a0860152600490920154808416151560c086018190528382048516151560e0870152620100009091049093169184019190915292506123e05760405163445296b760e01b815260040160405180910390fd5b80604001516124025760405163d06b96b160e01b815260040160405180910390fd5b60065460405163a8a4d69b60e01b81526001600160a01b039091169063a8a4d69b90612434908b908b906004016144dd565b602060405180830381865afa158015612451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247591906144f4565b61249257604051637353fac560e01b815260040160405180910390fd5b6000468989866040516020016124ab9493929190614511565b60408051601f1981840301815291815281516020928301206000818152600d90935291205490915060ff16156124f457604051632df03f2f60e11b815260040160405180910390fd5b6000818152600d60205260409020805460ff1916600117905561251987878b8b612f90565b600b549450612529856001613f95565b600b5560a082015160009061253e9042613f95565b6000878152600a60209081526040918290208d81556001810180546001600160a01b038f166001600160a01b03199182161790915560028201899055875160038301559187015160048201554260068201556007810184905560088101805490921633179091559051919250906125b8908a908a90613f50565b6040519081900381206009830155600a82018054608087015160e08801516101008981015160ff1663010000000263ff0000001992151562010000029290921663ffff00001993151590910261ffff19909416939093176001179190911691909117179055845160208601516001600160a01b038d16928e928b926000805160206149a783398151915292612657928c9290918a903390600090613fe0565b60405180910390a48360a001516000036126765761267687600061282f565b505050505050949350505050565b61268d82610bb8565b61269681612143565b6126a083836127ca565b50505050565b65ffffffffffff16151590565b4265ffffffffffff9091161090565b6001600160a01b03811633146126eb5760405163334bd91960e11b815260040160405180910390fd5b6114008282612d7e565b60006126ff611cb0565b612708426133af565b6127129190614539565b905061271e82826133e6565b816001600160a01b03167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6826040516127579190613952565b60405180910390a25050565b600061276e8261345d565b612777426133af565b6127819190614539565b905061278d8282612eca565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516127be929190613eb3565b60405180910390a15050565b60008261281e5760006127db611760565b6001600160a01b03161461280257604051631fe1e13d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0384161790555b61282883836134a5565b9392505050565b6000828152600a602052604081206003810154909190156128d257600554600183015460038401546002850154604051634cabdd3d60e01b81526001600160a01b0394851694634cabdd3d9461288c949116929091600401614557565b6020604051808303816000875af11580156128ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128cf9190614578565b90505b6004820154156129505760055460018301546004808501546002860154604051638e9ddc0360e01b81526001600160a01b0395861695638e9ddc039561291d95911693929101614557565b600060405180830381600087803b15801561293757600080fd5b505af115801561294b573d6000803e3d6000fd5b505050505b60058201805460ff19166001179055600a820154610100900460ff16156129cf57600182810180546001600160a01b039081166000908152600c602052604090819020805460ff19168517905560028601549254905192939116916000805160206149e7833981519152916129c6913090614023565b60405180910390a35b600a82015462010000900460ff1615612b2e57600654825460018401546002850154604051631f24bd4960e21b815260009485946001600160a01b0391821694637c92f52494612a2794929390911691600401613f60565b60408051808303816000875af1158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6991906145a5565b915091508063ffffffff1682108015612a8f5750600a8401546301000000900460ff1615155b15612b2b576007548454600a860154604051635d968dc160e11b815260048101929092526301000000900460ff1660248201526001600160a01b039091169063bb2d1b8290604401600060405180830381600087803b158015612af157600080fd5b505af1925050508015612b02575060015b612b2b578354604051600081526000805160206149278339815191529060200160405180910390a25b50505b8015612bb0578154604051632b64780f60e21b8152600481019190915260248101829052309063ad91e03c90604401600060405180830381600087803b158015612b7757600080fd5b505af1925050508015612b88575060015b612bb05781546040518281526000805160206149278339815191529060200160405180910390a25b60028201546001808401548454600386015460048701546040516001600160a01b03909416948a947f524216138c59db6a05fa28575565d3f0d0ba5bb61ce532ab4ee49c176de85ca094611687949093909290918c906145d1565b60606117797f00000000000000000000000000000000000000000000000000000000000000006003613537565b60606117797f00000000000000000000000000000000000000000000000000000000000000006004613537565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612cbe57507f000000000000000000000000000000000000000000000000000000000000000046145b15612ce857507f000000000000000000000000000000000000000000000000000000000000000090565b61177960408051600080516020614a0783398151915260208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600082158015612da65750612d91611760565b6001600160a01b0316826001600160a01b0316145b15612dbc57600280546001600160a01b03191690555b61282883836135e2565b600080612dd1611d52565b91509150612dde816126a6565b1580612df05750612dee816126b3565b155b15612e1057806040516319ca5ebb60e01b8152600401610fc79190613952565b612e226000612e1d611760565b612d7e565b50612e2e6000836127ca565b5050600180546001600160d01b031916905550565b612e4c82610bb8565b612e5581612143565b6126a08383612d7e565b6121586000806133e6565b60006001600160e01b03198216637965db0b60e01b1480610a2a57506301ffc9a760e01b6001600160e01b0319831614610a2a565b612ea98282611788565b610bf557808260405163e2517d3f60e01b8152600401610fc79291906140d7565b600254600160d01b900465ffffffffffff16612ee5816126a6565b15612f5357612ef3816126b3565b15612f2957600254600180546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055612f53565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b50600280546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b60008080808080612fa3898b018b6147b1565b955095509550955095509550600085519050845181148015612fc55750815181145b612fe2576040516309bde33960e01b815260040160405180910390fd5b8242111561300357604051630819bdcd60e01b815260040160405180910390fd5b6000468a8a8a60405160200161301c9493929190614511565b60408051808303601f1901815290829052805160209091012060065463f52fd80360e01b8352600483018d90529092506000916001600160a01b039091169063f52fd80390602401608060405180830381865afa158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a5919061487f565b505091505060008163ffffffff16116130d157604051631dc0650160e31b815260040160405180910390fd5b8063ffffffff168310156130f8576040516339093e6560e21b815260040160405180910390fd5b5060008660008151811061310e5761310e6144aa565b602002602001015190508086805190602001201461313f576040516309bde33960e01b815260040160405180910390fd5b6000805b8481101561339e5760008a828151811061315f5761315f6144aa565b60200260200101519050826001600160a01b0316816001600160a01b03161161319b5760405163cbceb64b60e01b815260040160405180910390fd5b8092508c6001600160a01b0316816001600160a01b0316036131d057604051638d8fbb9760e01b815260040160405180910390fd5b838a83815181106131e3576131e36144aa565b6020026020010151146132095760405163875621b760e01b815260040160405180910390fd5b600660009054906101000a90046001600160a01b03166001600160a01b0316635d5047768f836040518363ffffffff1660e01b815260040161324c9291906144dd565b602060405180830381865afa158015613269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328d91906144f4565b6132aa576040516326540e1360e11b815260040160405180910390fd5b60006000805160206149478339815191528f87848e87815181106132d0576132d06144aa565b60200260200101518d60405160200161331a96959493929190958652602086019490945260408501929092526001600160a01b03166060840152608083015260a082015260c00190565b604051602081830303815290604052805190602001209050600061333d8261364d565b9050826001600160a01b031661336c828b878151811061335f5761335f6144aa565b602002602001015161367a565b6001600160a01b031614613393576040516364a283db60e01b815260040160405180910390fd5b505050600101613143565b505050505050505050505050505050565b600065ffffffffffff8211156133e2576040516306dfcc6560e41b81526030600482015260248101839052604401610fc7565b5090565b60006133f0611d52565b6001805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b03881617179055915061342a9050816126a6565b15611400576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b600080613468611cb0565b90508065ffffffffffff168365ffffffffffff16116134905761348b83826148ce565b612828565b61282865ffffffffffff8416620697806136a4565b60006134b18383611788565b61352f576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556134e73390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610a2a565b506000610a2a565b606060ff83146135515761354a836136b4565b9050610a2a565b81805461355d906148ec565b80601f0160208091040260200160405190810160405280929190818152602001828054613589906148ec565b80156135d65780601f106135ab576101008083540402835291602001916135d6565b820191906000526020600020905b8154815290600101906020018083116135b957829003601f168201915b50505050509050610a2a565b60006135ee8383611788565b1561352f576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610a2a565b6000610a2a61365a612c65565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008061368a86866136f3565b92509250925061369a8282613740565b5090949350505050565b6000828218828410028218612828565b606060006136c1836137f9565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000806000835160410361372d5760208401516040850151606086015160001a61371f88828585613821565b955095509550505050613739565b50508151600091506002905b9250925092565b600082600381111561375457613754613fa8565b0361375d575050565b600182600381111561377157613771613fa8565b0361378f5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156137a3576137a3613fa8565b036137c45760405163fce698f760e01b815260048101829052602401610fc7565b60038260038111156137d8576137d8613fa8565b03610bf5576040516335e2f38360e21b815260048101829052602401610fc7565b600060ff8216601f811115610a2a57604051632cd44ac360e21b815260040160405180910390fd5b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561385257506000915060039050826138dc565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156138a6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166138d2575060009250600191508290506138dc565b9250600091508190505b9450945094915050565b6000602082840312156138f857600080fd5b81356001600160e01b03198116811461282857600080fd5b6001600160a01b0381168114610b9057600080fd5b803561393081613910565b919050565b60006020828403121561394757600080fd5b813561282881613910565b65ffffffffffff91909116815260200190565b60006020828403121561397757600080fd5b5035919050565b60008083601f84011261399057600080fd5b5081356001600160401b038111156139a757600080fd5b6020830191508360208285010111156139bf57600080fd5b9250929050565b600080600080606085870312156139dc57600080fd5b843593506020850135925060408501356001600160401b03811115613a0057600080fd5b613a0c8782880161397e565b95989497509550505050565b60008060408385031215613a2b57600080fd5b823591506020830135613a3d81613910565b809150509250929050565b600080600080600060808688031215613a6057600080fd5b853594506020860135613a7281613910565b93506040860135925060608601356001600160401b03811115613a9457600080fd5b613aa08882890161397e565b969995985093965092949392505050565b60008060408385031215613ac457600080fd5b8235613acf81613910565b946020939093013593505050565b8015158114610b9057600080fd5b803561393081613add565b600080600060608486031215613b0b57600080fd5b8335613b1681613910565b92506020840135613b2681613add565b929592945050506040919091013590565b60008060008060608587031215613b4d57600080fd5b843593506020850135613b5f81613910565b925060408501356001600160401b03811115613a0057600080fd5b6000815180845260005b81811015613ba057602081850181015186830182015201613b84565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006128286020830184613b7a565b600060208284031215613be557600080fd5b813565ffffffffffff8116811461282857600080fd5b600080600060408486031215613c1057600080fd5b8335925060208401356001600160401b03811115613c2d57600080fd5b613c398682870161397e565b9497909650939450505050565b6001600160a01b03169052565b60ff60f81b8816815260e060208201526000613c7260e0830189613b7a565b8281036040840152613c848189613b7a565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015613cda578351835260209384019390920191600101613cbc565b50909b9a5050505050505050505050565b6001600160a01b0391909116815260200190565b81518152602080830151610220830191613d1b90840182613c46565b5060408301516040830152606083015160608301526080830151608083015260a0830151613d4d60a084018215159052565b5060c0830151613d6160c084018215159052565b5060e0830151613d7560e084018215159052565b50610100830151613d8b61010084018215159052565b50610120830151610120830152610140830151610140830152610160830151613db8610160840182613c46565b506101808301516101808301526101a0830151613dda6101a084018215159052565b506101c0830151613df06101c084018215159052565b506101e0830151613e066101e084018215159052565b50610200830151613e1d61020084018260ff169052565b5092915050565b81518152602080830151908201526040808301511515908201526060808301516001600160a01b031690820152608080830151610120830191613e6a9084018215159052565b5060a083015160a083015260c0830151613e8860c084018215159052565b5060e0830151613e9c60e084018215159052565b50610100830151613e1d61010084018260ff169052565b65ffffffffffff92831681529116602082015260400190565b60008060008060608587031215613ee257600080fd5b843593506020850135613b5f81613add565b60008060408385031215613f0757600080fd5b50508035926020909101359150565b600080828403610140811215613f2b57600080fd5b83359250610120601f1982011215613f4257600080fd5b506020830190509250929050565b8183823760009101908152919050565b9283526001600160a01b03919091166020830152604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2a57610a2a613f7f565b634e487b7160e01b600052602160045260246000fd5b60028110613fdc57634e487b7160e01b600052602160045260246000fd5b9052565b8681526020810186905260408101859052606081018490526001600160a01b038316608082015260c0810161401860a0830184613fbe565b979650505050505050565b91151582526001600160a01b0316602082015260400190565b81810381811115610a2a57610a2a613f7f565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061408c60208301848661404f565b949350505050565b634e487b7160e01b600052604160045260246000fd5b84151581526001600160a01b0384166020820152606060408201819052600090610bae908301848661404f565b6001600160a01b03929092168252602082015260400190565b60006020828403121561410257600080fd5b813561282881613add565b60008135610a2a81613add565b60ff1981541660ff8315151681178255505050565b60ff81168114610b9057600080fd5b60008135610a2a8161412f565b8135815560208201356001820155600281016000604084013561416d81613add565b80915061417a818461411a565b50506000606084013561418c81613910565b8254610100600160a81b031916600882901b610100600160a81b03161783559050506141db6141bd6080850161410d565b82805460ff60a81b191691151560a81b60ff60a81b16919091179055565b5060a08201356003820155600481016141ff6141f960c0850161410d565b8261411a565b61422861420e60e0850161410d565b82805461ff00191691151560081b61ff0016919091179055565b611400614238610100850161413e565b825462ff0000191660109190911b62ff000016178255565b80356139308161412f565b81358152602080830135908201526101208101604083013561427c81613add565b1515604083015261428f60608401613925565b61429c6060840182613c46565b506142a960808401613aeb565b1515608083015260a083810135908301526142c660c08401613aeb565b151560c08301526142d960e08401613aeb565b151560e08301526142ed6101008401614250565b60ff8116610100840152613e1d565b604051601f8201601f191681016001600160401b038111828210171561432457614324614094565b604052919050565b60006001600160401b0382111561434557614345614094565b5060051b60200190565b600082601f83011261436057600080fd5b815161437361436e8261432c565b6142fc565b8082825260208201915060208360051b86010192508583111561439557600080fd5b602085015b838110156143b257805183526020928301920161439a565b5095945050505050565b6000806000606084860312156143d157600080fd5b83516001600160401b038111156143e757600080fd5b8401601f810186136143f857600080fd5b805161440661436e8261432c565b8082825260208201915060208360051b85010192508883111561442857600080fd5b6020840193505b8284101561444a57835182526020938401939091019061442f565b6020880151909650925050506001600160401b0381111561446a57600080fd5b6144768682870161434f565b604086015190935090506001600160401b0381111561449457600080fd5b6144a08682870161434f565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156144d257600080fd5b815161282881613910565b9182526001600160a01b0316602082015260400190565b60006020828403121561450657600080fd5b815161282881613add565b938452602084019290925260601b6001600160601b0319166040830152605482015260740190565b65ffffffffffff8181168382160190811115610a2a57610a2a613f7f565b6001600160a01b039390931683526020830191909152604082015260600190565b60006020828403121561458a57600080fd5b5051919050565b805163ffffffff8116811461393057600080fd5b600080604083850312156145b857600080fd5b825191506145c860208401614591565b90509250929050565b8581526020810185905260408101849052821515606082015260a08101610bae6080830184613fbe565b600082601f83011261460c57600080fd5b813561461a61436e8261432c565b8082825260208201915060208360051b86010192508583111561463c57600080fd5b602085015b838110156143b257803561465481613910565b835260209283019201614641565b600082601f83011261467357600080fd5b813561468161436e8261432c565b8082825260208201915060208360051b8601019250858311156146a357600080fd5b602085015b838110156143b25780358352602092830192016146a8565b600082601f8301126146d157600080fd5b81356001600160401b038111156146ea576146ea614094565b6146fd601f8201601f19166020016142fc565b81815284602083860101111561471257600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261474057600080fd5b813561474e61436e8261432c565b8082825260208201915060208360051b86010192508583111561477057600080fd5b602085015b838110156143b25780356001600160401b0381111561479357600080fd5b6147a2886020838a01016146c0565b84525060209283019201614775565b60008060008060008060c087890312156147ca57600080fd5b8635955060208701356001600160401b038111156147e757600080fd5b6147f389828a016145fb565b95505060408701356001600160401b0381111561480f57600080fd5b61481b89828a01614662565b94505060608701356001600160401b0381111561483757600080fd5b61484389828a016146c0565b9350506080870135915060a08701356001600160401b0381111561486657600080fd5b61487289828a0161472f565b9150509295509295509295565b6000806000806080858703121561489557600080fd5b845193506148a560208601614591565b92506148b360408601614591565b915060608501516148c381613add565b939692955090935050565b65ffffffffffff8281168282160390811115610a2a57610a2a613f7f565b600181811c9082168061490057607f821691505b60208210810361492057634e487b7160e01b600052602260045260246000fd5b5091905056fe90aea07388b9bdfa07088e89d67f7fb2e0b76a8bd7239b7c3d251a031950fd0c731d4bb21b9013f34d5030ab8246554bc8b93afdddcf49136f61074b05d2227571840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb121ad71720545f6a5fbbd9e262d9df81496444453a22e08bf33ccc2b767f495bedeaef7a9e299fbe51107e054b53dfe73dfa7f7332bfef49fb01b71f7a67c33eb12b42e8a160f6064dc959c6f251e3af0750ad213dbecf573b4710d67d6c28e39459f7b4f723dbbc6281258a697d9bf8a2564b0d0f5ddb40cd04515e43050f9b88b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400fa164736f6c634300081c000a",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "immutableReferences": {
    "7931": [
      {
        "length": 32,
        "start": 11462
      }
    ],
    "7933": [
      {
        "length": 32,
        "start": 11420
      }
    ],
    "7935": [
      {
        "length": 32,
        "start": 11378
      }
    ],
    "7937": [
      {
        "length": 32,
        "start": 11525
      }
    ],
    "7939": [
      {
        "length": 32,
        "start": 11565
      }
    ],
    "7942": [
      {
        "length": 32,
        "start": 11282
      }
    ],
    "7945": [
      {
        "length": 32,
        "start": 11327
      }
    ]
  },
  "inputSourceName": "project/contracts/slashing/SlashingManager.sol",
  "buildInfoId": "solc-0_8_28-58b894a0ac77a2d784be77b69288a062b8f6f518"
}