{
  "_format": "hh-sol-artifact-1",
  "contractName": "B3TRGovernor",
  "sourceName": "contracts/governance/B3TRGovernor.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "AccessControlBadConfirmation",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "neededRole",
          "type": "bytes32"
        }
      ],
      "name": "AccessControlUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "AddressEmptyCode",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "DelegatedToNavigator",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "ERC1967InvalidImplementation",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1967NonPayable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EnforcedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ExpectedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedInnerCall",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gmLevel",
          "type": "uint256"
        }
      ],
      "name": "GMLevelAboveMaxLevel",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gmLevel",
          "type": "uint256"
        }
      ],
      "name": "GMLevelAboveMaxLevel",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "GovernanceSkipWindowNotReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        }
      ],
      "name": "GovernorAlreadyCastVote",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "GovernorAlreadyQueuedProposal",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "depositThreshold",
          "type": "uint256"
        }
      ],
      "name": "GovernorDepositThresholdNotInRange",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorDisabledDeposit",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "votes",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "threshold",
          "type": "uint256"
        }
      ],
      "name": "GovernorInsufficientProposerVotes",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorInvalidDepositAmount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "targets",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "calldatas",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "values",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidProposalLength",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "requiredWeight",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "quorumNumerator",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "quorumDenominator",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidQuorumFraction",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidStartRound",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorInvalidVoteType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "votingPeriod",
          "type": "uint256"
        }
      ],
      "name": "GovernorInvalidVotingPeriod",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "depositer",
          "type": "address"
        }
      ],
      "name": "GovernorNoDepositToWithdraw",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "GovernorNonexistentProposal",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "GovernorNotQueuedProposal",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "GovernorOnlyExecutor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "GovernorOnlyExecutor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "GovernorOnlyProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "explanation",
          "type": "string"
        }
      ],
      "name": "GovernorPersonhoodVerificationFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "GovernorQueueNotImplemented",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        }
      ],
      "name": "GovernorRestrictedProposal",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        }
      ],
      "name": "GovernorRestrictedProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalState",
          "name": "current",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "expectedStates",
          "type": "bytes32"
        }
      ],
      "name": "GovernorUnexpectedProposalState",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "threshold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "votes",
          "type": "uint256"
        }
      ],
      "name": "GovernorVotingThresholdNotMet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "GranteeCannotDepositOwnGrant",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidPayeeAddress",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "MissingProposalBudget",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "NavigatorDecisionNotSet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "NotDelegatedToNavigator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "NotReadyToClaim",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "PayeesAlreadyFinalized",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "PayoutAlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "QueueEmpty",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "provided",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max",
          "type": "uint256"
        }
      ],
      "name": "TooManyContributors",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UUPSUnauthorizedCallContext",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "slot",
          "type": "bytes32"
        }
      ],
      "name": "UUPSUnsupportedProxiableUUID",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "UnauthorizedAccess",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "UnauthorizedCommunityExecution",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldDepositThresholdCap",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newDepositThresholdCap",
          "type": "uint256"
        }
      ],
      "name": "DepositThresholdCapSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldDepositThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newDepositThreshold",
          "type": "uint256"
        }
      ],
      "name": "DepositThresholdSetV2",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes4",
          "name": "functionSelector",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isWhitelisted",
          "type": "bool"
        }
      ],
      "name": "FunctionWhitelisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "navigator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "NavigatorGovernanceVoteSkipped",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "maxBudget",
          "type": "uint256"
        }
      ],
      "name": "ProposalBudgetSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalCanceled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "canceler",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "ProposalCanceledWithReason",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalCompleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string[]",
          "name": "contributors",
          "type": "string[]"
        }
      ],
      "name": "ProposalContributorsSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "string[]",
          "name": "signatures",
          "type": "string[]"
        },
        {
          "indexed": false,
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundIdVoteStart",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "depositThreshold",
          "type": "uint256"
        }
      ],
      "name": "ProposalCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        }
      ],
      "name": "ProposalCreatedWithType",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "depositor",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ProposalDeposit",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalDevelopmentStateReset",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "ProposalInDevelopment",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "payee",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "implementationDiscussion",
          "type": "string"
        }
      ],
      "name": "ProposalInDevelopmentDetails",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "payee",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ProposalPayoutClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "etaSeconds",
          "type": "uint256"
        }
      ],
      "name": "ProposalQueued",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "withdrawer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "ProposalWithdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "name": "QuadraticVotingToggled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newNumerator",
          "type": "uint256"
        }
      ],
      "name": "QuorumNumeratorUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newNumerator",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        }
      ],
      "name": "QuorumNumeratorUpdatedByType",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldRequiredGMLevel",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newRequiredGMLevel",
          "type": "uint256"
        }
      ],
      "name": "RequiredGMLevelSet",
      "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": false,
          "internalType": "address",
          "name": "oldTimelock",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newTimelock",
          "type": "address"
        }
      ],
      "name": "TimelockChange",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldVeBetterPassport",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newVeBetterPassport",
          "type": "address"
        }
      ],
      "name": "VeBetterPassportSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "voter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "support",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "weight",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "power",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "VoteCast",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "walletAddress",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "deposit",
          "type": "uint256"
        }
      ],
      "name": "VotingPowerSeeded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "oldVotingThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newVotingThreshold",
          "type": "uint256"
        }
      ],
      "name": "VotingThresholdSetV2",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "CLOCK_MODE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CONTRACTS_ADDRESS_MANAGER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "COUNTING_MODE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GOVERNOR_FUNCTIONS_SETTINGS_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PAUSER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROPOSAL_EXECUTOR_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROPOSAL_STATE_MANAGER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "UPGRADE_INTERFACE_VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "b3tr",
      "outputs": [
        {
          "internalType": "contract IB3TR",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "canProposalStartInNextRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "descriptionHash",
          "type": "bytes32"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "cancel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "citizen",
          "type": "address"
        }
      ],
      "name": "castNavigatorVote",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "support",
          "type": "uint8"
        }
      ],
      "name": "castVote",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "support",
          "type": "uint8"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "castVoteWithReason",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "claimPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "clock",
      "outputs": [
        {
          "internalType": "uint48",
          "name": "",
          "type": "uint48"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "depositThresholdByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "depositThresholdCapByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "depositThresholdPercentageByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getActiveProposals",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getDepositVotingPower",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getGalaxyMemberContract",
      "outputs": [
        {
          "internalType": "contract IGalaxyMember",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getGrantsManagerContract",
      "outputs": [
        {
          "internalType": "contract IGrantsManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalBudget",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalContributors",
      "outputs": [
        {
          "internalType": "string[]",
          "name": "",
          "type": "string[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalDeposits",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalDescription",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalImplementationDiscussion",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getProposalPayee",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getQuadraticVotingPower",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "getRequiredGMLevelByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "getTimelockId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "getUserDeposit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "getVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceSkipWindowBlocks",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "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": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasVoted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "hasVotedOnce",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "hashProposal",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "_navigatorRegistry",
          "type": "address"
        },
        {
          "internalType": "contract IRelayerRewardsPool",
          "name": "_relayerRewardsPool",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_governanceSkipWindowBlocks",
          "type": "uint256"
        }
      ],
      "name": "initializeV10",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ITreasury",
          "name": "_treasury",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_maxContributorsPerProposal",
          "type": "uint256"
        }
      ],
      "name": "initializeV11",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "functionSelector",
          "type": "bytes4"
        }
      ],
      "name": "isFunctionWhitelisted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "isProposalPaid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isQuadraticVotingDisabledForCurrentRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "isQuadraticVotingDisabledForRound",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "markAsCompleted",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "payee",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "implementationDiscussion",
          "type": "string"
        },
        {
          "internalType": "string[]",
          "name": "contributors",
          "type": "string[]"
        }
      ],
      "name": "markAsInDevelopment",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minVotingDelay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "navigatorRegistry",
      "outputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155BatchReceived",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalDeadline",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalDepositReached",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalDepositThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalEta",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalNeedsQueuing",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalProposer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalSnapshot",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalStartRound",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalTotalVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalType",
      "outputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "proposalVotes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "againstVotes",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "forVotes",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "abstainVotes",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "startRoundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "depositAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxBudget",
          "type": "uint256"
        }
      ],
      "name": "propose",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "startRoundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "depositAmount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "grantsReceiver",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "milestonesDetailsMetadataURI",
          "type": "string"
        }
      ],
      "name": "proposeGrant",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "targets",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes[]",
          "name": "calldatas",
          "type": "bytes[]"
        },
        {
          "internalType": "bytes32",
          "name": "descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "queue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "quorum",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "quorumByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "quorumDenominator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        }
      ],
      "name": "quorumNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "quorumNumerator",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "quorumNumeratorByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "timepoint",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "quorumNumeratorByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "quorumReached",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "relay",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "relayerRewardsPool",
      "outputs": [
        {
          "internalType": "contract IRelayerRewardsPool",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callerConfirmation",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "resetDevelopmentState",
      "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": [
        {
          "internalType": "contract IGalaxyMember",
          "name": "newGalaxyMember",
          "type": "address"
        }
      ],
      "name": "setGalaxyMember",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newValue",
          "type": "uint256"
        }
      ],
      "name": "setGovernanceSkipWindowBlocks",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IGrantsManager",
          "name": "newGrantsManager",
          "type": "address"
        }
      ],
      "name": "setGrantsManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "isEnabled",
          "type": "bool"
        }
      ],
      "name": "setIsFunctionRestrictionEnabled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newMinVotingDelay",
          "type": "uint256"
        }
      ],
      "name": "setMinVotingDelay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract INavigatorRegistry",
          "name": "newNavigatorRegistry",
          "type": "address"
        }
      ],
      "name": "setNavigatorRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newDepositThresholdCap",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "setProposalTypeDepositThresholdCap",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newDepositThreshold",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "setProposalTypeDepositThresholdPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newVotingThreshold",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "setProposalTypeVotingThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IRelayerRewardsPool",
          "name": "newRelayerRewardsPool",
          "type": "address"
        }
      ],
      "name": "setRelayerRewardsPool",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "newGMWeight",
          "type": "uint256"
        }
      ],
      "name": "setRequiredGMLevelByProposalType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVeBetterPassport",
          "name": "newVeBetterPassport",
          "type": "address"
        }
      ],
      "name": "setVeBetterPassport",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IVoterRewards",
          "name": "newVoterRewards",
          "type": "address"
        }
      ],
      "name": "setVoterRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "bytes4",
          "name": "functionSelector",
          "type": "bytes4"
        },
        {
          "internalType": "bool",
          "name": "isWhitelisted",
          "type": "bool"
        }
      ],
      "name": "setWhitelistFunction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "target",
          "type": "address"
        },
        {
          "internalType": "bytes4[]",
          "name": "functionSelectors",
          "type": "bytes4[]"
        },
        {
          "internalType": "bool",
          "name": "isWhitelisted",
          "type": "bool"
        }
      ],
      "name": "setWhitelistFunctions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IXAllocationVotingGovernor",
          "name": "newXAllocationVoting",
          "type": "address"
        }
      ],
      "name": "setXAllocationVoting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "internalType": "enum GovernorTypes.ProposalState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "timelock",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "descriptionHash",
          "type": "bytes32"
        }
      ],
      "name": "timelockSalt",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "toggleQuadraticVoting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract IVOT3",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "payee",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "implementationDiscussion",
          "type": "string"
        },
        {
          "internalType": "string[]",
          "name": "contributors",
          "type": "string[]"
        }
      ],
      "name": "updateCommunityExecution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newQuorumNumerator",
          "type": "uint256"
        }
      ],
      "name": "updateQuorumNumerator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newQuorumNumerator",
          "type": "uint256"
        },
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "updateQuorumNumeratorByType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract TimelockControllerUpgradeable",
          "name": "newTimelock",
          "type": "address"
        }
      ],
      "name": "updateTimelock",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newImplementation",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "upgradeToAndCall",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "veBetterPassport",
      "outputs": [
        {
          "internalType": "contract IVeBetterPassport",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voterRewards",
      "outputs": [
        {
          "internalType": "contract IVoterRewards",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingPeriod",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum GovernorTypes.ProposalType",
          "name": "proposalTypeValue",
          "type": "uint8"
        }
      ],
      "name": "votingThresholdByProposalType",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "proposalId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "depositor",
          "type": "address"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "xAllocationVoting",
      "outputs": [
        {
          "internalType": "contract IXAllocationVotingGovernor",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615cc16200010460003960008181613c1b01528181613c440152613d8d0152615cc16000f3fe60806040526004361061055e5760003560e01c806250ea6f1461059a578062f714ce146105c5578063013b1088146105e557806301d6e78f1461061357806301ffc9a714610633578063026865cc1461066357806302a251a314610683578063038f9b651461069857806306f3f9e6146106b857806306fdde03146106d85780630dd8614c146106fa5780630eddee301461071a578063143489d01461073a578063150b7a021461075a578063160cbed7146107935780631caf3474146107b3578063229acb17146107d3578063248a9ca3146107f35780632656227d146108135780632a09c772146108265780632d63f693146108535780632f2ff15d1461087357806333970a9d146108935780633397d78d146108b357806336568abe146108d357806336d23a4c146108f35780633d1ac63e146109155780633d47fe94146109355780633e4f49e6146109555780633f4ba83a14610982578063406ced841461099757806343859632146109b75780634bf5d7e9146109d75780634c5ead08146109ec5780634e05524414610a0c5780634f1ef28614610a2c5780635273e74b14610a3f57806352d1902d14610a5f578063542d6db514610a74578063544ffc9c14610a945780635452a01b14610acf57806354fd4d5014610aef5780635584c4f914610b1a5780635678138814610b3c578063582a486a14610b5c5780635b16e25914610b715780635c573d4414610b9e5780635c975abb14610bbe57806360463d6814610bd357806360c4247f14610bf3578063656f3e4014610c135780636a1423d714610c335780636b6a070414610c535780636dd139be14610c735780636e8a182314610c93578063726da5fd14610ca857806374a55a5114610cc85780637a4cce6d14610ce85780637b3c71d314610d0857806381ab235314610d2857806381c0d6df14610d3d5780638456cb5914610d5257806388fb07a514610d675780638a69614e14610d875780638ced2a1114610da75780638d5a3f6714610dc75780638e828cb414610de757806391d1485414610e0757806391ddadf414610e27578063952f213314610e5357806397c3d33414610e755780639aeb962b14610e895780639c17e7b314610ea9578063a217fddf14610ebe578063a3844e1114610ed3578063a45aa31314610ee8578063a56b576514610f08578063a7713a7014610f28578063a832918c14610f3d578063a890c91014610f5d578063a9a9529414610f7d578063ab58fb8e14610f9d578063ad3cb1cc14610fbd578063ae0b8da814610fee578063b26a95091461100e578063b3c93dab1461102e578063b69d417b1461104e578063b6e9eff41461106e578063bc197c811461108e578063bd5aefea146110ae578063be9bd92b146110d0578063c01f9e37146110f0578063c0a6026c14611110578063c220f2f514611130578063c28bc2fa14611150578063c305f59a14611163578063c40ffbf614611183578063c429bd8214611198578063c59057e4146111b8578063cf09f8bf146111d8578063d33219b4146111ed578063d4a8dd9814611202578063d53c74c114611222578063d547741f14611242578063dd4e2ba514611262578063de65f41a14611277578063e09c8d4414611297578063e125f74e146112b7578063e205aeb0146112cc578063e2bbb158146112e1578063e4ec85d414611301578063e63ab1e914611321578063eab59fd214611343578063eb9019d414611363578063ede8bed014611383578063ee8a948b146113a3578063f03a98d5146113b8578063f23a6e61146113cd578063f530108f146113ed578063f744f1191461140d578063f8ce560a1461142d578063fc0c546a1461144d578063fd4fd6e11461146257600080fd5b36610595573061056c611484565b6001600160a01b03161461059357604051637485328f60e11b815260040160405180910390fd5b005b600080fd5b3480156105a657600080fd5b506105af6114a2565b6040516105bc919061457c565b60405180910390f35b3480156105d157600080fd5b506105936105e03660046145b5565b6114be565b3480156105f157600080fd5b50610605610600366004614814565b611529565b6040519081526020016105bc565b34801561061f57600080fd5b5061060561062e366004614909565b6115be565b34801561063f57600080fd5b5061065361064e36600461493a565b61163c565b60405190151581526020016105bc565b34801561066f57600080fd5b5061060561067e366004614964565b61168d565b34801561068f57600080fd5b5061060561172c565b3480156106a457600080fd5b506105936106b3366004614964565b6117b8565b3480156106c457600080fd5b506105936106d3366004614909565b611844565b3480156106e457600080fd5b506106ed611895565b6040516105bc91906149e0565b34801561070657600080fd5b506105936107153660046149f3565b611936565b34801561072657600080fd5b50610605610735366004614a10565b611993565b34801561074657600080fd5b506105af610755366004614909565b6119e7565b34801561076657600080fd5b5061077a610775366004614a2b565b6119f2565b6040516001600160e01b031990911681526020016105bc565b34801561079f57600080fd5b506106056107ae366004614a96565b611a35565b3480156107bf57600080fd5b506106056107ce366004614a10565b611ac8565b3480156107df57600080fd5b506106ed6107ee366004614909565b611b15565b3480156107ff57600080fd5b5061060561080e366004614909565b611b91565b610605610821366004614a96565b611bb1565b34801561083257600080fd5b50610846610841366004614909565b611c6d565b6040516105bc9190614b4f565b34801561085f57600080fd5b5061060561086e366004614909565b611cf8565b34801561087f57600080fd5b5061059361088e3660046145b5565b611d33565b34801561089f57600080fd5b506105936108ae366004614b5d565b611d55565b3480156108bf57600080fd5b506105936108ce366004614909565b611efe565b3480156108df57600080fd5b506105936108ee3660046145b5565b611f4f565b3480156108ff57600080fd5b50610605600080516020615b8483398151915281565b34801561092157600080fd5b50610593610930366004614964565b611f87565b34801561094157600080fd5b506105936109503660046149f3565b611fd9565b34801561096157600080fd5b50610975610970366004614909565b612035565b6040516105bc9190614b89565b34801561098e57600080fd5b506105936120c0565b3480156109a357600080fd5b506105936109b2366004614ba3565b6120e3565b3480156109c357600080fd5b506106536109d23660046145b5565b612106565b3480156109e357600080fd5b506106ed612112565b3480156109f857600080fd5b50610593610a07366004614bd8565b61218a565b348015610a1857600080fd5b50610605610a273660046145b5565b6121e9565b610593610a3a366004614bf5565b6121f5565b348015610a4b57600080fd5b50610605610a5a366004614964565b612214565b348015610a6b57600080fd5b50610605612243565b348015610a8057600080fd5b50610605610a8f366004614a10565b612260565b348015610aa057600080fd5b50610ab4610aaf366004614909565b61226b565b604080519384526020840192909252908201526060016105bc565b348015610adb57600080fd5b506105af610aea366004614909565b612286565b348015610afb57600080fd5b50604080518082019091526002815261313160f01b60208201526106ed565b348015610b2657600080fd5b50610b2f6122fd565b6040516105bc9190614c7f565b348015610b4857600080fd5b50610605610b57366004614ca1565b612370565b348015610b6857600080fd5b506105af6123c8565b348015610b7d57600080fd5b50610b91610b8c366004614909565b6123e4565b6040516105bc9190614cc6565b348015610baa57600080fd5b50610605610bb9366004614909565b61245f565b348015610bca57600080fd5b50610653612476565b348015610bdf57600080fd5b50610605610bee366004614909565b61248b565b348015610bff57600080fd5b50610605610c0e366004614909565b6124ab565b348015610c1f57600080fd5b506106ed610c2e366004614909565b6124e6565b348015610c3f57600080fd5b50610593610c4e366004614d70565b612521565b348015610c5f57600080fd5b50610605610c6e366004614a10565b6125c1565b348015610c7f57600080fd5b50610605610c8e366004614a10565b6125ef565b348015610c9f57600080fd5b506105af612614565b348015610cb457600080fd5b50610593610cc3366004614964565b612630565b348015610cd457600080fd5b50610653610ce3366004614e55565b612682565b348015610cf457600080fd5b50610593610d033660046149f3565b61268e565b348015610d1457600080fd5b50610605610d23366004614e81565b6126eb565b348015610d3457600080fd5b5061065361272d565b348015610d4957600080fd5b5061065361279c565b348015610d5e57600080fd5b506105936127e7565b348015610d7357600080fd5b50610605610d82366004614909565b612807565b348015610d9357600080fd5b50610593610da2366004614909565b612812565b348015610db357600080fd5b50610605610dc2366004614909565b612880565b348015610dd357600080fd5b50610653610de2366004614909565b61288b565b348015610df357600080fd5b50610593610e02366004614edc565b612896565b348015610e1357600080fd5b50610653610e223660046145b5565b61292d565b348015610e3357600080fd5b50610e3c612963565b60405165ffffffffffff90911681526020016105bc565b348015610e5f57600080fd5b50610605600080516020615c2483398151915281565b348015610e8157600080fd5b506064610605565b348015610e9557600080fd5b50610653610ea43660046149f3565b6129d2565b348015610eb557600080fd5b506105936129dd565b348015610eca57600080fd5b50610605600081565b348015610edf57600080fd5b506105af612a3a565b348015610ef457600080fd5b50610653610f03366004614909565b612a5b565b348015610f1457600080fd5b50610605610f23366004614b5d565b612ad3565b348015610f3457600080fd5b50610605612b0f565b348015610f4957600080fd5b50610593610f58366004614f98565b612b7e565b348015610f6957600080fd5b50610593610f783660046149f3565b612e41565b348015610f8957600080fd5b50610653610f98366004614909565b612e91565b348015610fa957600080fd5b50610605610fb8366004614909565b612ecc565b348015610fc957600080fd5b506106ed604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610ffa57600080fd5b506105936110093660046149f3565b612ed7565b34801561101a57600080fd5b50610593611029366004614909565b612f34565b34801561103a57600080fd5b506105936110493660046149f3565b612f85565b34801561105a57600080fd5b50610605611069366004614b5d565b612fe2565b34801561107a57600080fd5b506106056110893660046145b5565b61301e565b34801561109a57600080fd5b5061077a6110a9366004614fd9565b61305a565b3480156110ba57600080fd5b50610605600080516020615c0483398151915281565b3480156110dc57600080fd5b506105936110eb366004615086565b61309e565b3480156110fc57600080fd5b5061060561110b366004614909565b61311c565b34801561111c57600080fd5b5061059361112b366004614909565b613157565b34801561113c57600080fd5b5061060561114b366004614909565b6131a7565b61059361115e3660046150cf565b6131b2565b34801561116f57600080fd5b5061065361117e366004614909565b61323a565b34801561118f57600080fd5b50610605613275565b3480156111a457600080fd5b506105936111b3366004614909565b61328a565b3480156111c457600080fd5b506106056111d3366004614a96565b6132da565b3480156111e457600080fd5b506105af6132e8565b3480156111f957600080fd5b506105af611484565b34801561120e57600080fd5b5061065361121d366004614909565b613306565b34801561122e57600080fd5b5061059361123d3660046149f3565b613341565b34801561124e57600080fd5b5061059361125d3660046145b5565b61339e565b34801561126e57600080fd5b506106ed6133ba565b34801561128357600080fd5b50610605611292366004615112565b6133da565b3480156112a357600080fd5b506105936112b2366004614964565b613429565b3480156112c357600080fd5b506105af61347b565b3480156112d857600080fd5b506105af613497565b3480156112ed57600080fd5b506105936112fc3660046151ae565b6134b3565b34801561130d57600080fd5b5061060561131c366004614a10565b6134f2565b34801561132d57600080fd5b50610605600080516020615be483398151915281565b34801561134f57600080fd5b5061060561135e3660046151d0565b6134fd565b34801561136f57600080fd5b5061060561137e366004614b5d565b613597565b34801561138f57600080fd5b5061059361139e366004614d70565b6135a3565b3480156113af57600080fd5b506106056135e5565b3480156113c457600080fd5b506105af6135ef565b3480156113d957600080fd5b5061077a6113e8366004615297565b61360d565b3480156113f957600080fd5b506105936114083660046149f3565b613651565b34801561141957600080fd5b50610605611428366004614909565b6136ae565b34801561143957600080fd5b50610605611448366004614909565b6136b9565b34801561145957600080fd5b506105af6136f4565b34801561146e57600080fd5b50610605600080516020615c4483398151915281565b60008061148f613712565b600601546001600160a01b031692915050565b60006114ac613712565b601401546001600160a01b0316919050565b604051627b8a6760e11b815273__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9062f714ce906114f590859085906004016152ff565b60006040518083038186803b15801561150d57600080fd5b505af4158015611521573d6000803e3d6000fd5b505050505050565b6040516227621160e31b815260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063013b108890611570908c908c908c908c908c908c908c908c906004016153a4565b602060405180830381865af415801561158d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b19190615434565b9998505050505050505050565b6040516301d6e78f60e01b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__906301d6e78f906024015b602060405180830381865af4158015611612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116369190615434565b92915050565b60006001600160e01b0319821663c964612f60e01b148061166d57506001600160e01b03198216630271189760e51b145b8061163657506001600160e01b031982166301ffc9a760e01b1492915050565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__63026865cc848460018111156116bc576116bc614b25565b6040516001600160e01b031960e085901b168152600481019290925260ff1660248201526044015b602060405180830381865af4158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190615434565b9392505050565b600080611737613712565b905080600a0160009054906101000a90046001600160a01b03166001600160a01b03166302a251a36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b29190615434565b91505090565b60006117c4813361292d565b6117d6576117d6335b60003630613736565b604051634cfc47c360e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634cfc47c39061180f908590879060040161544d565b60006040518083038186803b15801561182757600080fd5b505af415801561183b573d6000803e3d6000fd5b50505050505050565b6000611850813361292d565b61185d5761185d336117cd565b604051630379fcf360e11b81526004810183905273__$3907422bd7a9d6e8e002872d31c2e7a534$__906306f3f9e6906024016114f5565b606060006118a1613712565b90508060000180546118b290615468565b80601f01602080910402602001604051908101604052809291908181526020018280546118de90615468565b801561192b5780601f106119005761010080835404028352916020019161192b565b820191906000526020600020905b81548152906001019060200180831161190e57829003601f168201915b505050505091505090565b600080516020615c2483398151915261194f813361292d565b61195c5761195c336117cd565b604051630e0bea3b60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063382fa8ec906114f590859060040161457c565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__630eddee308360018111156119c1576119c1614b25565b6040516001600160e01b031960e084901b16815260ff90911660048201526024016115f5565b6000611636826137d4565b6000306119fd611484565b6001600160a01b031614611a2457604051637485328f60e11b815260040160405180910390fd5b50630a85bd0160e11b949350505050565b6000611a3f6137fd565b6040516301957cc760e01b815273__$0f6271ecd36857987d374ff633d31cbc3c$__906301957cc790611a7e90309089908990899089906004016154a2565b602060405180830381865af4158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190615434565b95945050505050565b600080611ad3613712565b9050806017016000846001811115611aed57611aed614b25565b6001811115611afe57611afe614b25565b815260200190815260200160002054915050919050565b60405163229acb1760e01b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063229acb17906024015b600060405180830381865af4158015611b69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611636919081019061554c565b600080611b9c613825565b60009384526020525050604090206001015490565b6000611bbb6137fd565b600080516020615b84833981519152611bd581600061292d565b611be357611be38133613849565b60405163fcadd1f760e01b815273__$0f6271ecd36857987d374ff633d31cbc3c$__9063fcadd1f790611c229030908a908a908a908a906004016154a2565b602060405180830381865af4158015611c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c639190615434565b9695505050505050565b604051631504e3b960e11b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__90632a09c77290602401602060405180830381865af4158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce49190615580565b60ff16600181111561163657611636614b25565b604051632d63f69360e01b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__90632d63f693906024016115f5565b611d3c82611b91565b611d4581613874565b611d4f838361387e565b50505050565b6000611d61813361292d565b611d6e57611d6e336117cd565b60096000611d7a61391f565b8054909150600160401b900460ff1680611da1575080546001600160401b03808416911610155b15611dbf5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038516611e395760405162461bcd60e51b815260206004820152601e60248201527f42335452476f7665726e6f723a20696e76616c6964207472656173757279000060448201526064015b60405180910390fd5b60008411611e985760405162461bcd60e51b815260206004820152602660248201527f42335452476f7665726e6f723a20696e76616c6964206d617820636f6e7472696044820152656275746f727360d01b6064820152608401611e30565b6000611ea2613712565b6023810180546001600160a01b0319166001600160a01b03891617905560240185905550805460ff60401b19168155604051600080516020615ba483398151915290611eef90849061559d565b60405180910390a15050505050565b6000611f0a813361292d565b611f1757611f17336117cd565b604051633397d78d60e01b81526004810183905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90633397d78d906024016114f5565b6001600160a01b0381163314611f785760405163334bd91960e11b815260040160405180910390fd5b611f828282613943565b505050565b6000611f93813361292d565b611fa057611fa0336117cd565b60405163334b055760e21b815273__$3907422bd7a9d6e8e002872d31c2e7a534$__9063cd2c155c9061180f90869086906004016155b1565b600080516020615c24833981519152611ff2813361292d565b611fff57611fff336117cd565b6040516241c19d60e91b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__906383833a00906114f590859060040161457c565b604051631f27a4f360e11b81526004810182905260009073__$7756226fbd9b31469951eb130a9d82c56c$__90633e4f49e690602401602060405180830381865af4158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190615580565b60ff16600981111561163657611636614b25565b600080516020615be48339815191526120d881613874565b6120e06139bb565b50565b60006120ef813361292d565b6120fc576120fc336117cd565b611f828383613a12565b60006117258383613b9d565b606073__$3618b725599b71188fd71e0b940aaf7176$__634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865af415801561215d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612185919081019061554c565b905090565b600080516020615c048339815191526121a3813361292d565b6121b0576121b0336117cd565b60405163098bd5a160e31b8152821515600482015273__$89592c2ad43e2fc865373e86e1b840d06b$__90634c5ead08906024016114f5565b60006117258383613bda565b6121fd613c10565b61220682613cb5565b6122108282613cce565b5050565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__635273e74b848460018111156116bc576116bc614b25565b600061224d613d82565b50600080516020615bc483398151915290565b600061163682613dcb565b600080600061227984613e15565b9250925092509193909250565b604051635452a01b60e01b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__90635452a01b90602401602060405180830381865af41580156122d9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163691906155c5565b606073__$0f6271ecd36857987d374ff633d31cbc3c$__635584c4f96040518163ffffffff1660e01b8152600401600060405180830381865af4158015612348573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261218591908101906155e2565b604051630dd063f960e41b81526004810183905233602482015260ff82166044820152608060648201526000608482018190529073__$ffb54439c7ca59a73697a8d71df14608d7$__9063dd063f909060a4016116e4565b60006123d2613712565b600b01546001600160a01b0316919050565b604051635b16e25960e01b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__90635b16e25990602401600060405180830381865af4158015612437573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116369190810190615672565b60006001600160601b03193060601b168218611636565b600080612481613e4b565b5460ff1692915050565b600080612496613712565b60009384526011016020525050604090205490565b6040516360c4247f60e01b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__906360c4247f906024016115f5565b604051630195bcf960e61b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063656f3e4090602401611b4c565b6125296137fd565b73__$5c903bf0790ffcaff49f17b51ec8a22c01$__630a9c9f198989898989898989612563600080516020615c448339815191523361292d565b6040518a63ffffffff1660e01b81526004016125879998979695949392919061574b565b60006040518083038186803b15801561259f57600080fd5b505af41580156125b3573d6000803e3d6000fd5b505050505050505050505050565b600073__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__636b6a07048360018111156119c1576119c1614b25565b6000806125fa613712565b905080601c016000846001811115611aed57611aed614b25565b600061261e613712565b602001546001600160a01b0316919050565b600061263c813361292d565b61264957612649336117cd565b6040516314060bef60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__906314060bef9061180f908590879060040161544d565b60006117258383613e6f565b600080516020615c248339815191526126a7813361292d565b6126b4576126b4336117cd565b60405163358e7d9760e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063d639f65c906114f590859060040161457c565b604051630dd063f960e41b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063dd063f9090611a7e9088903390899089908990600401615836565b600073__$0f6271ecd36857987d374ff633d31cbc3c$__6381ab23536040518163ffffffff1660e01b8152600401602060405180830381865af4158015612778573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612185919061586a565b600073__$ffb54439c7ca59a73697a8d71df14608d7$__6381c0d6df6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612778573d6000803e3d6000fd5b600080516020615be48339815191526127ff81613874565b6120e0613eb7565b600061163682613efe565b61281a6137fd565b604051634534b0a760e11b81526004810182905273__$5c903bf0790ffcaff49f17b51ec8a22c01$__90638a69614e9060240160006040518083038186803b15801561286557600080fd5b505af4158015612879573d6000803e3d6000fd5b5050505050565b600061163682613f21565b600061163682613f48565b600080516020615c048339815191526128af813361292d565b6128bc576128bc336117cd565b6040516323a0a32d60e21b815273__$89592c2ad43e2fc865373e86e1b840d06b$__90638e828cb4906128f790879087908790600401615887565b60006040518083038186803b15801561290f57600080fd5b505af4158015612923573d6000803e3d6000fd5b5050505050505050565b600080612938613825565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600073__$3618b725599b71188fd71e0b940aaf7176$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af41580156129ae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218591906158f2565b600061163682613f74565b60006129e9813361292d565b6129f6576129f6336117cd565b73__$ffb54439c7ca59a73697a8d71df14608d7$__639c17e7b36040518163ffffffff1660e01b815260040160006040518083038186803b15801561286557600080fd5b6000612a44613712565b6009015461010090046001600160a01b0316919050565b60405163a45aa31360e01b81526004810182905260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063a45aa313906024015b602060405180830381865af4158015612aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611636919061586a565b60405163a56b576560e01b815260009073__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9063a56b5765906116e4908690869060040161591a565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__63a7713a706040518163ffffffff1660e01b8152600401602060405180830381865af4158015612b5a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121859190615434565b6000612b8a813361292d565b612b9757612b97336117cd565b60086000612ba361391f565b8054909150600160401b900460ff1680612bca575080546001600160401b03808416911610155b15612be85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038616612c6e5760405162461bcd60e51b815260206004820152602860248201527f42335452476f7665726e6f723a20696e76616c6964206e6176696761746f7220604482015267726567697374727960c01b6064820152608401611e30565b6001600160a01b038516612cd75760405162461bcd60e51b815260206004820152602a60248201527f42335452476f7665726e6f723a20696e76616c69642072656c617965722072656044820152691dd85c991cc81c1bdbdb60b21b6064820152608401611e30565b60405163ce396b1f60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063ce396b1f90612d0e90899060040161457c565b60006040518083038186803b158015612d2657600080fd5b505af4158015612d3a573d6000803e3d6000fd5b5050604051630e0bea3b60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__925063382fa8ec9150612d7590889060040161457c565b60006040518083038186803b158015612d8d57600080fd5b505af4158015612da1573d6000803e3d6000fd5b5050604051633397d78d60e01b81526004810187905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9250633397d78d915060240160006040518083038186803b158015612df057600080fd5b505af4158015612e04573d6000803e3d6000fd5b5050825460ff60401b191683555050604051600080516020615ba483398151915290612e3190849061559d565b60405180910390a1505050505050565b6000612e4d813361292d565b612e5a57612e5a336117cd565b604051632cae129d60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063b2b84a74906114f590859060040161457c565b604051632a6a54a560e21b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063a9a9529490602401612a92565b600061163682613fa4565b600080516020615c24833981519152612ef0813361292d565b612efd57612efd336117cd565b6040516327a4ecdd60e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634f49d9ba906114f590859060040161457c565b6000612f40813361292d565b612f4d57612f4d336117cd565b60405163b26a950960e01b81526004810183905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063b26a9509906024016114f5565b600080516020615c24833981519152612f9e813361292d565b612fab57612fab336117cd565b604051634784a11360e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634784a113906114f590859060040161457c565b60405163b69d417b60e01b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063b69d417b906116e4908690869060040161591a565b604051632dba7bfd60e21b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063b6e9eff4906116e490869086906004016152ff565b600030613065611484565b6001600160a01b03161461308c57604051637485328f60e11b815260040160405180910390fd5b5063bc197c8160e01b95945050505050565b600080516020615c048339815191526130b7813361292d565b6130c4576130c4336117cd565b60405163be9bd92b60e01b81526001600160a01b03851660048201526001600160e01b031984166024820152821515604482015273__$89592c2ad43e2fc865373e86e1b840d06b$__9063be9bd92b906064016128f7565b60405163c01f9e3760e01b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063c01f9e37906024016115f5565b600080516020615c4483398151915261316f81613874565b604051633029809b60e21b81526004810183905273__$0f6271ecd36857987d374ff633d31cbc3c$__9063c0a6026c906024016114f5565b600061163682613fd6565b60006131be813361292d565b6131cb576131cb336117cd565b600080866001600160a01b03168686866040516131e9929190615933565b60006040518083038185875af1925050503d8060008114613226576040519150601f19603f3d011682016040523d82523d6000602084013e61322b565b606091505b50915091506129238282613ff9565b604051636182facd60e11b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063c305f59a90602401612a92565b600080613280613712565b6004015492915050565b600080516020615c448339815191526132a281613874565b604051636214dec160e11b81526004810183905273__$0f6271ecd36857987d374ff633d31cbc3c$__9063c429bd82906024016114f5565b6000611abf85858585614015565b6000806132f3613712565b601a01546001600160a01b031692915050565b604051639079991f60e01b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__90639079991f90602401612a92565b600080516020615c2483398151915261335a813361292d565b61336757613367336117cd565b60405163697772a560e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063d2eee54a906114f590859060040161457c565b6133a782611b91565b6133b081613874565b611d4f8383613943565b6060604051806060016040528060288152602001615c6460289139905090565b600073__$0f6271ecd36857987d374ff633d31cbc3c$__63badecd763361340260003361292d565b89898989896040518863ffffffff1660e01b8152600401611c229796959493929190615943565b6000613435813361292d565b61344257613442336117cd565b6040516335ac44dd60e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90636b5889ba9061180f908590879060040161544d565b6000613485613712565b601f01546001600160a01b0316919050565b60006134a1613712565b600a01546001600160a01b0316919050565b604051631c57762b60e31b8152600481018390526024810182905273__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9063e2bbb158906044016114f5565b60006116368261404f565b60006135076137fd565b60405163755acfe960e11b815273__$0f6271ecd36857987d374ff633d31cbc3c$__9063eab59fd29061354a908b908b908b908b908b908b908b906004016159af565b602060405180830381865af4158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b9190615434565b98975050505050505050565b60006117258383614099565b6135ab6137fd565b73__$5c903bf0790ffcaff49f17b51ec8a22c01$__6316a19ad68989898989898989612563600080516020615c448339815191523361292d565b60006121856142be565b6000806135fa613712565b601b01546001600160a01b031692915050565b600030613618611484565b6001600160a01b03161461363f57604051637485328f60e11b815260040160405180910390fd5b5063f23a6e6160e01b95945050505050565b600080516020615c2483398151915261366a813361292d565b61367757613677336117cd565b60405163ce396b1f60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063ce396b1f906114f590859060040161457c565b6000611636826142d1565b604051637c672b0560e11b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__9063f8ce560a906024016115f5565b6000806136ff613712565b600c01546001600160a01b031692915050565b7fd09a0aaf4ab3087bae7fa25ef74ddd4e5a4950980903ce417e66228cf7dc7b0090565b6000613740613712565b9050846001600160a01b0316613754611484565b6001600160a01b03161461377d57846040516347096e4760e01b8152600401611e30919061457c565b816001600160a01b031661378f611484565b6001600160a01b03161461287957600084846040516137af929190615933565b604051809103902090505b806137c7836002016142f1565b036137ba57505050505050565b6000806137df613712565b6000938452600101602052505060409020546001600160a01b031690565b613805612476565b156138235760405163d93c066560e01b815260040160405180910390fd5b565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b613853828261292d565b61221057808260405163e2517d3f60e01b8152600401611e3092919061591a565b6120e08133613849565b600080613889613825565b9050613895848461292d565b613915576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556138cb3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050611636565b6000915050611636565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b60008061394e613825565b905061395a848461292d565b15613915576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050611636565b6139c3614366565b60006139cd613e4b565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051613a07919061457c565b60405180910390a150565b6000613a1c613712565b9050600081601b0160009054906101000a90046001600160a01b03166001600160a01b031663a49062d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a999190615434565b9050600082601c016000866001811115613ab557613ab5614b25565b6001811115613ac657613ac6614b25565b8152602001908152602001600020549050613ae08561438b565b613afc5760405162461bcd60e51b8152600401611e3090615a1c565b81841115613b2057604051637780647f60e11b815260048101859052602401611e30565b7fb1b75318956f66fa2b8b148bc3b2520c6e22133a50ac6069d38f97ed462b487a858286604051613b5393929190615a67565b60405180910390a18383601c016000876001811115613b7457613b74614b25565b6001811115613b8557613b85614b25565b81526020810191909152604001600020555050505050565b600080613ba8613712565b6000948552600f01602090815260408086206001600160a01b0395909516865260039094019052505090205460ff1690565b600080613be5613712565b6000948552600d01602090815260408086206001600160a01b03959095168652939052505090205490565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613c9757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613c8b600080516020615bc4833981519152546001600160a01b031690565b6001600160a01b031614155b156138235760405163703e46dd60e11b815260040160405180910390fd5b6000613cc1813361292d565b61221057612210336117cd565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613d28575060408051601f3d908101601f19168201909252613d2591810190615434565b60015b613d475781604051634c9c8ce360e01b8152600401611e30919061457c565b600080516020615bc48339815191528114613d7857604051632a87526960e21b815260048101829052602401611e30565b611f8283836143c2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146138235760405163703e46dd60e11b815260040160405180910390fd5b600080613dd6613712565b9050613de18361438b565b613dfd5760405162461bcd60e51b8152600401611e3090615a1c565b806016016000846001811115611aed57611aed614b25565b600080600080613e23613712565b6000958652600f01602052505060409092208054600182015460029092015490949193509150565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b600080613e7a613712565b6001600160a01b03851660009081526008909101602090815260408083206001600160e01b03198716845290915290205460ff1691505092915050565b613ebf6137fd565b6000613ec9613e4b565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139fa3390565b600080613f09613712565b60009384526001016020525050604090206004015490565b600080613f2c613712565b6000938452600190810160205260409093209092015492915050565b600080613f53613712565b60009384526001016020525050604090206004810154600390910154101590565b600080613f7f613712565b6001600160a01b03909316600090815260109093016020525050604090205460ff1690565b600080613faf613712565b600093845260010160205250506040902060020154600160381b900465ffffffffffff1690565b600080613fe1613712565b60009384526001016020525050604090206003015490565b60608261400e5761400982614418565b611636565b5080611636565b60008484848460405160200161402e9493929190615a86565b60408051601f19818403018152919052805160209091012095945050505050565b60008061405a613712565b90506140658361438b565b6140815760405162461bcd60e51b8152600401611e3090615a1c565b806019016000846001811115611aed57611aed614b25565b6000806140a4613712565b600c810154604051630748d63560e31b81529192506000916001600160a01b0390911690633a46b1a8906140de908890889060040161591a565b602060405180830381865afa1580156140fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061411f9190615434565b601f8301549091506001600160a01b031661413d5791506116369050565b601f8201546040516318be49d960e01b81526000916001600160a01b0316906318be49d990614172908990899060040161591a565b602060405180830381865afa15801561418f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b391906155c5565b6001600160a01b03161461423f57601f82015460405163c61c06e760e01b81526001600160a01b039091169063c61c06e7906141f5908890889060040161591a565b602060405180830381865afa158015614212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142369190615434565b92505050611636565b601f82015460405163094f6f2960e21b81526001600160a01b039091169063253dbca490614273908890889060040161591a565b602060405180830381865afa158015614290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142b49190615434565b611abf9082615b46565b60006142c8613712565b60220154905090565b6000806142dc613712565b60009384526007016020525050604090205490565b80546000906001600160801b0380821691600160801b9004168103614329576040516375e52f4f60e01b815260040160405180910390fd5b6001600160801b038181166000908152600185810160205260408220805492905585546001600160801b0319169301909116919091179092555090565b61436e612476565b61382357604051638dfc202b60e01b815260040160405180910390fd5b6000808260018111156143a0576143a0614b25565b1480611636575060018260018111156143bb576143bb614b25565b1492915050565b6143cb82614441565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561441057611f82828261449d565b61221061450a565b8051156144285780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b806001600160a01b03163b60000361446e5780604051634c9c8ce360e01b8152600401611e30919061457c565b600080516020615bc483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516144ba9190615b67565b600060405180830381855af49150503d80600081146144f5576040519150601f19603f3d011682016040523d82523d6000602084013e6144fa565b606091505b5091509150611abf858383614529565b34156138235760405163b398979f60e01b815260040160405180910390fd5b60608261453e5761453982614418565b611725565b815115801561455557506001600160a01b0384163b155b156145755783604051639996b31560e01b8152600401611e30919061457c565b5092915050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146120e057600080fd5b80356145b081614590565b919050565b600080604083850312156145c857600080fd5b8235915060208301356145da81614590565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614623576146236145e5565b604052919050565b60006001600160401b03821115614644576146446145e5565b5060051b60200190565b600082601f83011261465f57600080fd5b8135602061467461466f8361462b565b6145fb565b82815260059290921b8401810191818101908684111561469357600080fd5b8286015b848110156146b75780356146aa81614590565b8352918301918301614697565b509695505050505050565b600082601f8301126146d357600080fd5b813560206146e361466f8361462b565b82815260059290921b8401810191818101908684111561470257600080fd5b8286015b848110156146b75780358352918301918301614706565b60006001600160401b03821115614736576147366145e5565b50601f01601f191660200190565b600082601f83011261475557600080fd5b813561476361466f8261471d565b81815284602083860101111561477857600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126147a657600080fd5b813560206147b661466f8361462b565b82815260059290921b840181019181810190868411156147d557600080fd5b8286015b848110156146b75780356001600160401b038111156147f85760008081fd5b6148068986838b0101614744565b8452509183019183016147d9565b600080600080600080600080610100898b03121561483157600080fd5b88356001600160401b038082111561484857600080fd5b6148548c838d0161464e565b995060208b013591508082111561486a57600080fd5b6148768c838d016146c2565b985060408b013591508082111561488c57600080fd5b6148988c838d01614795565b975060608b01359150808211156148ae57600080fd5b6148ba8c838d01614744565b965060808b0135955060a08b013594506148d660c08c016145a5565b935060e08b01359150808211156148ec57600080fd5b506148f98b828c01614744565b9150509295985092959890939650565b60006020828403121561491b57600080fd5b5035919050565b80356001600160e01b0319811681146145b057600080fd5b60006020828403121561494c57600080fd5b61172582614922565b8035600281106145b057600080fd5b6000806040838503121561497757600080fd5b8235915061498760208401614955565b90509250929050565b60005b838110156149ab578181015183820152602001614993565b50506000910152565b600081518084526149cc816020860160208601614990565b601f01601f19169290920160200192915050565b60208152600061172560208301846149b4565b600060208284031215614a0557600080fd5b813561172581614590565b600060208284031215614a2257600080fd5b61172582614955565b60008060008060808587031215614a4157600080fd5b8435614a4c81614590565b93506020850135614a5c81614590565b92506040850135915060608501356001600160401b03811115614a7e57600080fd5b614a8a87828801614744565b91505092959194509250565b60008060008060808587031215614aac57600080fd5b84356001600160401b0380821115614ac357600080fd5b614acf8883890161464e565b95506020870135915080821115614ae557600080fd5b614af1888389016146c2565b94506040870135915080821115614b0757600080fd5b50614b1487828801614795565b949793965093946060013593505050565b634e487b7160e01b600052602160045260246000fd5b60028110614b4b57614b4b614b25565b9052565b602081016116368284614b3b565b60008060408385031215614b7057600080fd5b8235614b7b81614590565b946020939093013593505050565b60208101600a8310614b9d57614b9d614b25565b91905290565b60008060408385031215614bb657600080fd5b614b7b83614955565b80151581146120e057600080fd5b80356145b081614bbf565b600060208284031215614bea57600080fd5b813561172581614bbf565b60008060408385031215614c0857600080fd5b8235614c1381614590565b915060208301356001600160401b03811115614c2e57600080fd5b614c3a85828601614744565b9150509250929050565b600081518084526020808501945080840160005b83811015614c7457815187529582019590820190600101614c58565b509495945050505050565b6020815260006117256020830184614c44565b60ff811681146120e057600080fd5b60008060408385031215614cb457600080fd5b8235915060208301356145da81614c92565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d1b57603f19888603018452614d098583516149b4565b94509285019290850190600101614ced565b5092979650505050505050565b60008083601f840112614d3a57600080fd5b5081356001600160401b03811115614d5157600080fd5b602083019150836020828501011115614d6957600080fd5b9250929050565b60008060008060008060008060a0898b031215614d8c57600080fd5b883597506020890135614d9e81614590565b965060408901356001600160401b0380821115614dba57600080fd5b614dc68c838d01614d28565b909850965060608b0135915080821115614ddf57600080fd5b614deb8c838d01614d28565b909650945060808b0135915080821115614e0457600080fd5b818b0191508b601f830112614e1857600080fd5b813581811115614e2757600080fd5b8c60208260051b8501011115614e3c57600080fd5b6020830194508093505050509295985092959890939650565b60008060408385031215614e6857600080fd5b8235614e7381614590565b915061498760208401614922565b60008060008060608587031215614e9757600080fd5b843593506020850135614ea981614c92565b925060408501356001600160401b03811115614ec457600080fd5b614ed087828801614d28565b95989497509550505050565b600080600060608486031215614ef157600080fd5b8335614efc81614590565b92506020848101356001600160401b03811115614f1857600080fd5b8501601f81018713614f2957600080fd5b8035614f3761466f8261462b565b81815260059190911b82018301908381019089831115614f5657600080fd5b928401925b82841015614f7b57614f6c84614922565b82529284019290840190614f5b565b8096505050505050614f8f60408501614bcd565b90509250925092565b600080600060608486031215614fad57600080fd5b8335614fb881614590565b92506020840135614fc881614590565b929592945050506040919091013590565b600080600080600060a08688031215614ff157600080fd5b8535614ffc81614590565b9450602086013561500c81614590565b935060408601356001600160401b038082111561502857600080fd5b61503489838a016146c2565b9450606088013591508082111561504a57600080fd5b61505689838a016146c2565b9350608088013591508082111561506c57600080fd5b5061507988828901614744565b9150509295509295909350565b60008060006060848603121561509b57600080fd5b83356150a681614590565b92506150b460208501614922565b915060408401356150c481614bbf565b809150509250925092565b600080600080606085870312156150e557600080fd5b84356150f081614590565b93506020850135925060408501356001600160401b03811115614ec457600080fd5b600080600080600060a0868803121561512a57600080fd5b85356001600160401b038082111561514157600080fd5b61514d89838a0161464e565b9650602088013591508082111561516357600080fd5b61516f89838a016146c2565b9550604088013591508082111561518557600080fd5b61519189838a01614795565b945060608801359350608088013591508082111561506c57600080fd5b600080604083850312156151c157600080fd5b50508035926020909101359150565b600080600080600080600060e0888a0312156151eb57600080fd5b87356001600160401b038082111561520257600080fd5b61520e8b838c0161464e565b985060208a013591508082111561522457600080fd5b6152308b838c016146c2565b975060408a013591508082111561524657600080fd5b6152528b838c01614795565b965060608a013591508082111561526857600080fd5b506152758a828b01614744565b979a969950949760808101359660a0820135965060c090910135945092505050565b600080600080600060a086880312156152af57600080fd5b85356152ba81614590565b945060208601356152ca81614590565b9350604086013592506060860135915060808601356001600160401b038111156152f357600080fd5b61507988828901614744565b9182526001600160a01b0316602082015260400190565b600081518084526020808501945080840160005b83811015614c745781516001600160a01b03168752958201959082019060010161532a565b600081518084526020808501808196508360051b8101915082860160005b858110156153975782840389526153858483516149b4565b9885019893509084019060010161536d565b5091979650505050505050565b60006101008083526153b88184018c615316565b905082810360208401526153cc818b614c44565b905082810360408401526153e0818a61534f565b905082810360608401526153f481896149b4565b6080840188905260a084018790526001600160a01b03861660c085015283810360e0850152905061542581856149b4565b9b9a5050505050505050505050565b60006020828403121561544657600080fd5b5051919050565b6040810161545b8285614b3b565b8260208301529392505050565b600181811c9082168061547c57607f821691505b60208210810361549c57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038616815260a0602082018190526000906154c690830187615316565b82810360408401526154d88187614c44565b905082810360608401526154ec818661534f565b9150508260808301529695505050505050565b600082601f83011261551057600080fd5b815161551e61466f8261471d565b81815284602083860101111561553357600080fd5b615544826020830160208701614990565b949350505050565b60006020828403121561555e57600080fd5b81516001600160401b0381111561557457600080fd5b615544848285016154ff565b60006020828403121561559257600080fd5b815161172581614c92565b6001600160401b0391909116815260200190565b828152604081016117256020830184614b3b565b6000602082840312156155d757600080fd5b815161172581614590565b600060208083850312156155f557600080fd5b82516001600160401b0381111561560b57600080fd5b8301601f8101851361561c57600080fd5b805161562a61466f8261462b565b81815260059190911b8201830190838101908783111561564957600080fd5b928401925b828410156156675783518252928401929084019061564e565b979650505050505050565b6000602080838503121561568557600080fd5b82516001600160401b038082111561569c57600080fd5b818501915085601f8301126156b057600080fd5b81516156be61466f8261462b565b81815260059190911b830184019084810190888311156156dd57600080fd5b8585015b83811015615715578051858111156156f95760008081fd5b6157078b89838a01016154ff565b8452509186019186016156e1565b5098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8981526000602060018060a01b038b168184015260c0604084015261577460c084018a8c615722565b838103606085015261578781898b615722565b84810360808601528681529050818101600587901b820183018860005b8981101561581357848303601f190184528135368c9003601e190181126157ca57600080fd5b8b0186810190356001600160401b038111156157e557600080fd5b8036038213156157f457600080fd5b6157ff858284615722565b9588019594505050908501906001016157a4565b505086151560a0870152935061582892505050565b9a9950505050505050505050565b8581526001600160a01b038516602082015260ff841660408201526080606082018190526000906156679083018486615722565b60006020828403121561587c57600080fd5b815161172581614bbf565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156158da5784516001600160e01b031916835293830193918301916001016158b4565b50508093505050508215156040830152949350505050565b60006020828403121561590457600080fd5b815165ffffffffffff8116811461172557600080fd5b6001600160a01b03929092168252602082015260400190565b8183823760009101908152919050565b6001600160a01b0388168152861515602082015260e06040820181905260009061596f90830188615316565b82810360608401526159818188614c44565b90508281036080840152615995818761534f565b90508460a084015282810360c084015261582881856149b4565b60e0815260006159c260e083018a615316565b82810360208401526159d4818a614c44565b905082810360408401526159e8818961534f565b905082810360608401526159fc81886149b4565b6080840196909652505060a081019290925260c090910152949350505050565b6020808252602b908201527f476f7665726e6f72436f6e666967757261746f723a20696e76616c696420707260408201526a6f706f73616c207479706560a81b606082015260800190565b60608101615a758286614b3b565b602082019390935260400152919050565b6080808252855190820181905260009060209060a0840190828901845b82811015615ac85781516001600160a01b031684529284019290840190600101615aa3565b50505083810382850152615adc8188614c44565b905083810360408501528086518083528383019150838160051b84010184890160005b83811015615b2d57601f19868403018552615b1b8383516149b4565b94870194925090860190600101615aff565b5050809550505050505082606083015295945050505050565b8082018082111561163657634e487b7160e01b600052601160045260246000fd5b60008251615b79818460208701614990565b919091019291505056fe6575630003027b0b2fc4a48bc39dbc3eba9cf56588c696a6f5717e167a0ce731c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87e72189a3ea069796dab5c7d3826581f957cb5c882c1e6dae7acacec49ca48e56af926aa3845d4dc63a6c773ed36f51794728c97ebcd1bf845bcecb16eeb6b7320cc91c16c42272679cab4152f867e0cd4a98f53556da2d53b4e515be8c7796737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e2c616761696e7374a264697066735822122002ac80797a0444e5830333c0f129f002edd21a0724bc35dc91d5b139cdd83ea264736f6c63430008140033",
  "deployedBytecode": "0x60806040526004361061055e5760003560e01c806250ea6f1461059a578062f714ce146105c5578063013b1088146105e557806301d6e78f1461061357806301ffc9a714610633578063026865cc1461066357806302a251a314610683578063038f9b651461069857806306f3f9e6146106b857806306fdde03146106d85780630dd8614c146106fa5780630eddee301461071a578063143489d01461073a578063150b7a021461075a578063160cbed7146107935780631caf3474146107b3578063229acb17146107d3578063248a9ca3146107f35780632656227d146108135780632a09c772146108265780632d63f693146108535780632f2ff15d1461087357806333970a9d146108935780633397d78d146108b357806336568abe146108d357806336d23a4c146108f35780633d1ac63e146109155780633d47fe94146109355780633e4f49e6146109555780633f4ba83a14610982578063406ced841461099757806343859632146109b75780634bf5d7e9146109d75780634c5ead08146109ec5780634e05524414610a0c5780634f1ef28614610a2c5780635273e74b14610a3f57806352d1902d14610a5f578063542d6db514610a74578063544ffc9c14610a945780635452a01b14610acf57806354fd4d5014610aef5780635584c4f914610b1a5780635678138814610b3c578063582a486a14610b5c5780635b16e25914610b715780635c573d4414610b9e5780635c975abb14610bbe57806360463d6814610bd357806360c4247f14610bf3578063656f3e4014610c135780636a1423d714610c335780636b6a070414610c535780636dd139be14610c735780636e8a182314610c93578063726da5fd14610ca857806374a55a5114610cc85780637a4cce6d14610ce85780637b3c71d314610d0857806381ab235314610d2857806381c0d6df14610d3d5780638456cb5914610d5257806388fb07a514610d675780638a69614e14610d875780638ced2a1114610da75780638d5a3f6714610dc75780638e828cb414610de757806391d1485414610e0757806391ddadf414610e27578063952f213314610e5357806397c3d33414610e755780639aeb962b14610e895780639c17e7b314610ea9578063a217fddf14610ebe578063a3844e1114610ed3578063a45aa31314610ee8578063a56b576514610f08578063a7713a7014610f28578063a832918c14610f3d578063a890c91014610f5d578063a9a9529414610f7d578063ab58fb8e14610f9d578063ad3cb1cc14610fbd578063ae0b8da814610fee578063b26a95091461100e578063b3c93dab1461102e578063b69d417b1461104e578063b6e9eff41461106e578063bc197c811461108e578063bd5aefea146110ae578063be9bd92b146110d0578063c01f9e37146110f0578063c0a6026c14611110578063c220f2f514611130578063c28bc2fa14611150578063c305f59a14611163578063c40ffbf614611183578063c429bd8214611198578063c59057e4146111b8578063cf09f8bf146111d8578063d33219b4146111ed578063d4a8dd9814611202578063d53c74c114611222578063d547741f14611242578063dd4e2ba514611262578063de65f41a14611277578063e09c8d4414611297578063e125f74e146112b7578063e205aeb0146112cc578063e2bbb158146112e1578063e4ec85d414611301578063e63ab1e914611321578063eab59fd214611343578063eb9019d414611363578063ede8bed014611383578063ee8a948b146113a3578063f03a98d5146113b8578063f23a6e61146113cd578063f530108f146113ed578063f744f1191461140d578063f8ce560a1461142d578063fc0c546a1461144d578063fd4fd6e11461146257600080fd5b36610595573061056c611484565b6001600160a01b03161461059357604051637485328f60e11b815260040160405180910390fd5b005b600080fd5b3480156105a657600080fd5b506105af6114a2565b6040516105bc919061457c565b60405180910390f35b3480156105d157600080fd5b506105936105e03660046145b5565b6114be565b3480156105f157600080fd5b50610605610600366004614814565b611529565b6040519081526020016105bc565b34801561061f57600080fd5b5061060561062e366004614909565b6115be565b34801561063f57600080fd5b5061065361064e36600461493a565b61163c565b60405190151581526020016105bc565b34801561066f57600080fd5b5061060561067e366004614964565b61168d565b34801561068f57600080fd5b5061060561172c565b3480156106a457600080fd5b506105936106b3366004614964565b6117b8565b3480156106c457600080fd5b506105936106d3366004614909565b611844565b3480156106e457600080fd5b506106ed611895565b6040516105bc91906149e0565b34801561070657600080fd5b506105936107153660046149f3565b611936565b34801561072657600080fd5b50610605610735366004614a10565b611993565b34801561074657600080fd5b506105af610755366004614909565b6119e7565b34801561076657600080fd5b5061077a610775366004614a2b565b6119f2565b6040516001600160e01b031990911681526020016105bc565b34801561079f57600080fd5b506106056107ae366004614a96565b611a35565b3480156107bf57600080fd5b506106056107ce366004614a10565b611ac8565b3480156107df57600080fd5b506106ed6107ee366004614909565b611b15565b3480156107ff57600080fd5b5061060561080e366004614909565b611b91565b610605610821366004614a96565b611bb1565b34801561083257600080fd5b50610846610841366004614909565b611c6d565b6040516105bc9190614b4f565b34801561085f57600080fd5b5061060561086e366004614909565b611cf8565b34801561087f57600080fd5b5061059361088e3660046145b5565b611d33565b34801561089f57600080fd5b506105936108ae366004614b5d565b611d55565b3480156108bf57600080fd5b506105936108ce366004614909565b611efe565b3480156108df57600080fd5b506105936108ee3660046145b5565b611f4f565b3480156108ff57600080fd5b50610605600080516020615b8483398151915281565b34801561092157600080fd5b50610593610930366004614964565b611f87565b34801561094157600080fd5b506105936109503660046149f3565b611fd9565b34801561096157600080fd5b50610975610970366004614909565b612035565b6040516105bc9190614b89565b34801561098e57600080fd5b506105936120c0565b3480156109a357600080fd5b506105936109b2366004614ba3565b6120e3565b3480156109c357600080fd5b506106536109d23660046145b5565b612106565b3480156109e357600080fd5b506106ed612112565b3480156109f857600080fd5b50610593610a07366004614bd8565b61218a565b348015610a1857600080fd5b50610605610a273660046145b5565b6121e9565b610593610a3a366004614bf5565b6121f5565b348015610a4b57600080fd5b50610605610a5a366004614964565b612214565b348015610a6b57600080fd5b50610605612243565b348015610a8057600080fd5b50610605610a8f366004614a10565b612260565b348015610aa057600080fd5b50610ab4610aaf366004614909565b61226b565b604080519384526020840192909252908201526060016105bc565b348015610adb57600080fd5b506105af610aea366004614909565b612286565b348015610afb57600080fd5b50604080518082019091526002815261313160f01b60208201526106ed565b348015610b2657600080fd5b50610b2f6122fd565b6040516105bc9190614c7f565b348015610b4857600080fd5b50610605610b57366004614ca1565b612370565b348015610b6857600080fd5b506105af6123c8565b348015610b7d57600080fd5b50610b91610b8c366004614909565b6123e4565b6040516105bc9190614cc6565b348015610baa57600080fd5b50610605610bb9366004614909565b61245f565b348015610bca57600080fd5b50610653612476565b348015610bdf57600080fd5b50610605610bee366004614909565b61248b565b348015610bff57600080fd5b50610605610c0e366004614909565b6124ab565b348015610c1f57600080fd5b506106ed610c2e366004614909565b6124e6565b348015610c3f57600080fd5b50610593610c4e366004614d70565b612521565b348015610c5f57600080fd5b50610605610c6e366004614a10565b6125c1565b348015610c7f57600080fd5b50610605610c8e366004614a10565b6125ef565b348015610c9f57600080fd5b506105af612614565b348015610cb457600080fd5b50610593610cc3366004614964565b612630565b348015610cd457600080fd5b50610653610ce3366004614e55565b612682565b348015610cf457600080fd5b50610593610d033660046149f3565b61268e565b348015610d1457600080fd5b50610605610d23366004614e81565b6126eb565b348015610d3457600080fd5b5061065361272d565b348015610d4957600080fd5b5061065361279c565b348015610d5e57600080fd5b506105936127e7565b348015610d7357600080fd5b50610605610d82366004614909565b612807565b348015610d9357600080fd5b50610593610da2366004614909565b612812565b348015610db357600080fd5b50610605610dc2366004614909565b612880565b348015610dd357600080fd5b50610653610de2366004614909565b61288b565b348015610df357600080fd5b50610593610e02366004614edc565b612896565b348015610e1357600080fd5b50610653610e223660046145b5565b61292d565b348015610e3357600080fd5b50610e3c612963565b60405165ffffffffffff90911681526020016105bc565b348015610e5f57600080fd5b50610605600080516020615c2483398151915281565b348015610e8157600080fd5b506064610605565b348015610e9557600080fd5b50610653610ea43660046149f3565b6129d2565b348015610eb557600080fd5b506105936129dd565b348015610eca57600080fd5b50610605600081565b348015610edf57600080fd5b506105af612a3a565b348015610ef457600080fd5b50610653610f03366004614909565b612a5b565b348015610f1457600080fd5b50610605610f23366004614b5d565b612ad3565b348015610f3457600080fd5b50610605612b0f565b348015610f4957600080fd5b50610593610f58366004614f98565b612b7e565b348015610f6957600080fd5b50610593610f783660046149f3565b612e41565b348015610f8957600080fd5b50610653610f98366004614909565b612e91565b348015610fa957600080fd5b50610605610fb8366004614909565b612ecc565b348015610fc957600080fd5b506106ed604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610ffa57600080fd5b506105936110093660046149f3565b612ed7565b34801561101a57600080fd5b50610593611029366004614909565b612f34565b34801561103a57600080fd5b506105936110493660046149f3565b612f85565b34801561105a57600080fd5b50610605611069366004614b5d565b612fe2565b34801561107a57600080fd5b506106056110893660046145b5565b61301e565b34801561109a57600080fd5b5061077a6110a9366004614fd9565b61305a565b3480156110ba57600080fd5b50610605600080516020615c0483398151915281565b3480156110dc57600080fd5b506105936110eb366004615086565b61309e565b3480156110fc57600080fd5b5061060561110b366004614909565b61311c565b34801561111c57600080fd5b5061059361112b366004614909565b613157565b34801561113c57600080fd5b5061060561114b366004614909565b6131a7565b61059361115e3660046150cf565b6131b2565b34801561116f57600080fd5b5061065361117e366004614909565b61323a565b34801561118f57600080fd5b50610605613275565b3480156111a457600080fd5b506105936111b3366004614909565b61328a565b3480156111c457600080fd5b506106056111d3366004614a96565b6132da565b3480156111e457600080fd5b506105af6132e8565b3480156111f957600080fd5b506105af611484565b34801561120e57600080fd5b5061065361121d366004614909565b613306565b34801561122e57600080fd5b5061059361123d3660046149f3565b613341565b34801561124e57600080fd5b5061059361125d3660046145b5565b61339e565b34801561126e57600080fd5b506106ed6133ba565b34801561128357600080fd5b50610605611292366004615112565b6133da565b3480156112a357600080fd5b506105936112b2366004614964565b613429565b3480156112c357600080fd5b506105af61347b565b3480156112d857600080fd5b506105af613497565b3480156112ed57600080fd5b506105936112fc3660046151ae565b6134b3565b34801561130d57600080fd5b5061060561131c366004614a10565b6134f2565b34801561132d57600080fd5b50610605600080516020615be483398151915281565b34801561134f57600080fd5b5061060561135e3660046151d0565b6134fd565b34801561136f57600080fd5b5061060561137e366004614b5d565b613597565b34801561138f57600080fd5b5061059361139e366004614d70565b6135a3565b3480156113af57600080fd5b506106056135e5565b3480156113c457600080fd5b506105af6135ef565b3480156113d957600080fd5b5061077a6113e8366004615297565b61360d565b3480156113f957600080fd5b506105936114083660046149f3565b613651565b34801561141957600080fd5b50610605611428366004614909565b6136ae565b34801561143957600080fd5b50610605611448366004614909565b6136b9565b34801561145957600080fd5b506105af6136f4565b34801561146e57600080fd5b50610605600080516020615c4483398151915281565b60008061148f613712565b600601546001600160a01b031692915050565b60006114ac613712565b601401546001600160a01b0316919050565b604051627b8a6760e11b815273__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9062f714ce906114f590859085906004016152ff565b60006040518083038186803b15801561150d57600080fd5b505af4158015611521573d6000803e3d6000fd5b505050505050565b6040516227621160e31b815260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063013b108890611570908c908c908c908c908c908c908c908c906004016153a4565b602060405180830381865af415801561158d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b19190615434565b9998505050505050505050565b6040516301d6e78f60e01b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__906301d6e78f906024015b602060405180830381865af4158015611612573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116369190615434565b92915050565b60006001600160e01b0319821663c964612f60e01b148061166d57506001600160e01b03198216630271189760e51b145b8061163657506001600160e01b031982166301ffc9a760e01b1492915050565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__63026865cc848460018111156116bc576116bc614b25565b6040516001600160e01b031960e085901b168152600481019290925260ff1660248201526044015b602060405180830381865af4158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190615434565b9392505050565b600080611737613712565b905080600a0160009054906101000a90046001600160a01b03166001600160a01b03166302a251a36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b29190615434565b91505090565b60006117c4813361292d565b6117d6576117d6335b60003630613736565b604051634cfc47c360e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634cfc47c39061180f908590879060040161544d565b60006040518083038186803b15801561182757600080fd5b505af415801561183b573d6000803e3d6000fd5b50505050505050565b6000611850813361292d565b61185d5761185d336117cd565b604051630379fcf360e11b81526004810183905273__$3907422bd7a9d6e8e002872d31c2e7a534$__906306f3f9e6906024016114f5565b606060006118a1613712565b90508060000180546118b290615468565b80601f01602080910402602001604051908101604052809291908181526020018280546118de90615468565b801561192b5780601f106119005761010080835404028352916020019161192b565b820191906000526020600020905b81548152906001019060200180831161190e57829003601f168201915b505050505091505090565b600080516020615c2483398151915261194f813361292d565b61195c5761195c336117cd565b604051630e0bea3b60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063382fa8ec906114f590859060040161457c565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__630eddee308360018111156119c1576119c1614b25565b6040516001600160e01b031960e084901b16815260ff90911660048201526024016115f5565b6000611636826137d4565b6000306119fd611484565b6001600160a01b031614611a2457604051637485328f60e11b815260040160405180910390fd5b50630a85bd0160e11b949350505050565b6000611a3f6137fd565b6040516301957cc760e01b815273__$0f6271ecd36857987d374ff633d31cbc3c$__906301957cc790611a7e90309089908990899089906004016154a2565b602060405180830381865af4158015611a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abf9190615434565b95945050505050565b600080611ad3613712565b9050806017016000846001811115611aed57611aed614b25565b6001811115611afe57611afe614b25565b815260200190815260200160002054915050919050565b60405163229acb1760e01b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063229acb17906024015b600060405180830381865af4158015611b69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611636919081019061554c565b600080611b9c613825565b60009384526020525050604090206001015490565b6000611bbb6137fd565b600080516020615b84833981519152611bd581600061292d565b611be357611be38133613849565b60405163fcadd1f760e01b815273__$0f6271ecd36857987d374ff633d31cbc3c$__9063fcadd1f790611c229030908a908a908a908a906004016154a2565b602060405180830381865af4158015611c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c639190615434565b9695505050505050565b604051631504e3b960e11b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__90632a09c77290602401602060405180830381865af4158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce49190615580565b60ff16600181111561163657611636614b25565b604051632d63f69360e01b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__90632d63f693906024016115f5565b611d3c82611b91565b611d4581613874565b611d4f838361387e565b50505050565b6000611d61813361292d565b611d6e57611d6e336117cd565b60096000611d7a61391f565b8054909150600160401b900460ff1680611da1575080546001600160401b03808416911610155b15611dbf5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038516611e395760405162461bcd60e51b815260206004820152601e60248201527f42335452476f7665726e6f723a20696e76616c6964207472656173757279000060448201526064015b60405180910390fd5b60008411611e985760405162461bcd60e51b815260206004820152602660248201527f42335452476f7665726e6f723a20696e76616c6964206d617820636f6e7472696044820152656275746f727360d01b6064820152608401611e30565b6000611ea2613712565b6023810180546001600160a01b0319166001600160a01b03891617905560240185905550805460ff60401b19168155604051600080516020615ba483398151915290611eef90849061559d565b60405180910390a15050505050565b6000611f0a813361292d565b611f1757611f17336117cd565b604051633397d78d60e01b81526004810183905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90633397d78d906024016114f5565b6001600160a01b0381163314611f785760405163334bd91960e11b815260040160405180910390fd5b611f828282613943565b505050565b6000611f93813361292d565b611fa057611fa0336117cd565b60405163334b055760e21b815273__$3907422bd7a9d6e8e002872d31c2e7a534$__9063cd2c155c9061180f90869086906004016155b1565b600080516020615c24833981519152611ff2813361292d565b611fff57611fff336117cd565b6040516241c19d60e91b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__906383833a00906114f590859060040161457c565b604051631f27a4f360e11b81526004810182905260009073__$7756226fbd9b31469951eb130a9d82c56c$__90633e4f49e690602401602060405180830381865af4158015612088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ac9190615580565b60ff16600981111561163657611636614b25565b600080516020615be48339815191526120d881613874565b6120e06139bb565b50565b60006120ef813361292d565b6120fc576120fc336117cd565b611f828383613a12565b60006117258383613b9d565b606073__$3618b725599b71188fd71e0b940aaf7176$__634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865af415801561215d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612185919081019061554c565b905090565b600080516020615c048339815191526121a3813361292d565b6121b0576121b0336117cd565b60405163098bd5a160e31b8152821515600482015273__$89592c2ad43e2fc865373e86e1b840d06b$__90634c5ead08906024016114f5565b60006117258383613bda565b6121fd613c10565b61220682613cb5565b6122108282613cce565b5050565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__635273e74b848460018111156116bc576116bc614b25565b600061224d613d82565b50600080516020615bc483398151915290565b600061163682613dcb565b600080600061227984613e15565b9250925092509193909250565b604051635452a01b60e01b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__90635452a01b90602401602060405180830381865af41580156122d9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163691906155c5565b606073__$0f6271ecd36857987d374ff633d31cbc3c$__635584c4f96040518163ffffffff1660e01b8152600401600060405180830381865af4158015612348573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261218591908101906155e2565b604051630dd063f960e41b81526004810183905233602482015260ff82166044820152608060648201526000608482018190529073__$ffb54439c7ca59a73697a8d71df14608d7$__9063dd063f909060a4016116e4565b60006123d2613712565b600b01546001600160a01b0316919050565b604051635b16e25960e01b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__90635b16e25990602401600060405180830381865af4158015612437573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116369190810190615672565b60006001600160601b03193060601b168218611636565b600080612481613e4b565b5460ff1692915050565b600080612496613712565b60009384526011016020525050604090205490565b6040516360c4247f60e01b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__906360c4247f906024016115f5565b604051630195bcf960e61b81526004810182905260609073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063656f3e4090602401611b4c565b6125296137fd565b73__$5c903bf0790ffcaff49f17b51ec8a22c01$__630a9c9f198989898989898989612563600080516020615c448339815191523361292d565b6040518a63ffffffff1660e01b81526004016125879998979695949392919061574b565b60006040518083038186803b15801561259f57600080fd5b505af41580156125b3573d6000803e3d6000fd5b505050505050505050505050565b600073__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__636b6a07048360018111156119c1576119c1614b25565b6000806125fa613712565b905080601c016000846001811115611aed57611aed614b25565b600061261e613712565b602001546001600160a01b0316919050565b600061263c813361292d565b61264957612649336117cd565b6040516314060bef60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__906314060bef9061180f908590879060040161544d565b60006117258383613e6f565b600080516020615c248339815191526126a7813361292d565b6126b4576126b4336117cd565b60405163358e7d9760e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063d639f65c906114f590859060040161457c565b604051630dd063f960e41b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063dd063f9090611a7e9088903390899089908990600401615836565b600073__$0f6271ecd36857987d374ff633d31cbc3c$__6381ab23536040518163ffffffff1660e01b8152600401602060405180830381865af4158015612778573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612185919061586a565b600073__$ffb54439c7ca59a73697a8d71df14608d7$__6381c0d6df6040518163ffffffff1660e01b8152600401602060405180830381865af4158015612778573d6000803e3d6000fd5b600080516020615be48339815191526127ff81613874565b6120e0613eb7565b600061163682613efe565b61281a6137fd565b604051634534b0a760e11b81526004810182905273__$5c903bf0790ffcaff49f17b51ec8a22c01$__90638a69614e9060240160006040518083038186803b15801561286557600080fd5b505af4158015612879573d6000803e3d6000fd5b5050505050565b600061163682613f21565b600061163682613f48565b600080516020615c048339815191526128af813361292d565b6128bc576128bc336117cd565b6040516323a0a32d60e21b815273__$89592c2ad43e2fc865373e86e1b840d06b$__90638e828cb4906128f790879087908790600401615887565b60006040518083038186803b15801561290f57600080fd5b505af4158015612923573d6000803e3d6000fd5b5050505050505050565b600080612938613825565b6000948552602090815260408086206001600160a01b03959095168652939052505090205460ff1690565b600073__$3618b725599b71188fd71e0b940aaf7176$__6391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865af41580156129ae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218591906158f2565b600061163682613f74565b60006129e9813361292d565b6129f6576129f6336117cd565b73__$ffb54439c7ca59a73697a8d71df14608d7$__639c17e7b36040518163ffffffff1660e01b815260040160006040518083038186803b15801561286557600080fd5b6000612a44613712565b6009015461010090046001600160a01b0316919050565b60405163a45aa31360e01b81526004810182905260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063a45aa313906024015b602060405180830381865af4158015612aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611636919061586a565b60405163a56b576560e01b815260009073__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9063a56b5765906116e4908690869060040161591a565b600073__$3907422bd7a9d6e8e002872d31c2e7a534$__63a7713a706040518163ffffffff1660e01b8152600401602060405180830381865af4158015612b5a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121859190615434565b6000612b8a813361292d565b612b9757612b97336117cd565b60086000612ba361391f565b8054909150600160401b900460ff1680612bca575080546001600160401b03808416911610155b15612be85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160481b0319166001600160401b03831617600160401b1781556001600160a01b038616612c6e5760405162461bcd60e51b815260206004820152602860248201527f42335452476f7665726e6f723a20696e76616c6964206e6176696761746f7220604482015267726567697374727960c01b6064820152608401611e30565b6001600160a01b038516612cd75760405162461bcd60e51b815260206004820152602a60248201527f42335452476f7665726e6f723a20696e76616c69642072656c617965722072656044820152691dd85c991cc81c1bdbdb60b21b6064820152608401611e30565b60405163ce396b1f60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063ce396b1f90612d0e90899060040161457c565b60006040518083038186803b158015612d2657600080fd5b505af4158015612d3a573d6000803e3d6000fd5b5050604051630e0bea3b60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__925063382fa8ec9150612d7590889060040161457c565b60006040518083038186803b158015612d8d57600080fd5b505af4158015612da1573d6000803e3d6000fd5b5050604051633397d78d60e01b81526004810187905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9250633397d78d915060240160006040518083038186803b158015612df057600080fd5b505af4158015612e04573d6000803e3d6000fd5b5050825460ff60401b191683555050604051600080516020615ba483398151915290612e3190849061559d565b60405180910390a1505050505050565b6000612e4d813361292d565b612e5a57612e5a336117cd565b604051632cae129d60e21b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063b2b84a74906114f590859060040161457c565b604051632a6a54a560e21b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063a9a9529490602401612a92565b600061163682613fa4565b600080516020615c24833981519152612ef0813361292d565b612efd57612efd336117cd565b6040516327a4ecdd60e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634f49d9ba906114f590859060040161457c565b6000612f40813361292d565b612f4d57612f4d336117cd565b60405163b26a950960e01b81526004810183905273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063b26a9509906024016114f5565b600080516020615c24833981519152612f9e813361292d565b612fab57612fab336117cd565b604051634784a11360e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90634784a113906114f590859060040161457c565b60405163b69d417b60e01b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063b69d417b906116e4908690869060040161591a565b604051632dba7bfd60e21b815260009073__$ffb54439c7ca59a73697a8d71df14608d7$__9063b6e9eff4906116e490869086906004016152ff565b600030613065611484565b6001600160a01b03161461308c57604051637485328f60e11b815260040160405180910390fd5b5063bc197c8160e01b95945050505050565b600080516020615c048339815191526130b7813361292d565b6130c4576130c4336117cd565b60405163be9bd92b60e01b81526001600160a01b03851660048201526001600160e01b031984166024820152821515604482015273__$89592c2ad43e2fc865373e86e1b840d06b$__9063be9bd92b906064016128f7565b60405163c01f9e3760e01b81526004810182905260009073__$0f6271ecd36857987d374ff633d31cbc3c$__9063c01f9e37906024016115f5565b600080516020615c4483398151915261316f81613874565b604051633029809b60e21b81526004810183905273__$0f6271ecd36857987d374ff633d31cbc3c$__9063c0a6026c906024016114f5565b600061163682613fd6565b60006131be813361292d565b6131cb576131cb336117cd565b600080866001600160a01b03168686866040516131e9929190615933565b60006040518083038185875af1925050503d8060008114613226576040519150601f19603f3d011682016040523d82523d6000602084013e61322b565b606091505b50915091506129238282613ff9565b604051636182facd60e11b81526004810182905260009073__$5c903bf0790ffcaff49f17b51ec8a22c01$__9063c305f59a90602401612a92565b600080613280613712565b6004015492915050565b600080516020615c448339815191526132a281613874565b604051636214dec160e11b81526004810183905273__$0f6271ecd36857987d374ff633d31cbc3c$__9063c429bd82906024016114f5565b6000611abf85858585614015565b6000806132f3613712565b601a01546001600160a01b031692915050565b604051639079991f60e01b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__90639079991f90602401612a92565b600080516020615c2483398151915261335a813361292d565b61336757613367336117cd565b60405163697772a560e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063d2eee54a906114f590859060040161457c565b6133a782611b91565b6133b081613874565b611d4f8383613943565b6060604051806060016040528060288152602001615c6460289139905090565b600073__$0f6271ecd36857987d374ff633d31cbc3c$__63badecd763361340260003361292d565b89898989896040518863ffffffff1660e01b8152600401611c229796959493929190615943565b6000613435813361292d565b61344257613442336117cd565b6040516335ac44dd60e11b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__90636b5889ba9061180f908590879060040161544d565b6000613485613712565b601f01546001600160a01b0316919050565b60006134a1613712565b600a01546001600160a01b0316919050565b604051631c57762b60e31b8152600481018390526024810182905273__$1ecfab2f131b89284f3c8449e5b3f4ac2f$__9063e2bbb158906044016114f5565b60006116368261404f565b60006135076137fd565b60405163755acfe960e11b815273__$0f6271ecd36857987d374ff633d31cbc3c$__9063eab59fd29061354a908b908b908b908b908b908b908b906004016159af565b602060405180830381865af4158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b9190615434565b98975050505050505050565b60006117258383614099565b6135ab6137fd565b73__$5c903bf0790ffcaff49f17b51ec8a22c01$__6316a19ad68989898989898989612563600080516020615c448339815191523361292d565b60006121856142be565b6000806135fa613712565b601b01546001600160a01b031692915050565b600030613618611484565b6001600160a01b03161461363f57604051637485328f60e11b815260040160405180910390fd5b5063f23a6e6160e01b95945050505050565b600080516020615c2483398151915261366a813361292d565b61367757613677336117cd565b60405163ce396b1f60e01b815273__$c649b4f4a4ae9367cd90b9058a7ced9f31$__9063ce396b1f906114f590859060040161457c565b6000611636826142d1565b604051637c672b0560e11b81526004810182905260009073__$3907422bd7a9d6e8e002872d31c2e7a534$__9063f8ce560a906024016115f5565b6000806136ff613712565b600c01546001600160a01b031692915050565b7fd09a0aaf4ab3087bae7fa25ef74ddd4e5a4950980903ce417e66228cf7dc7b0090565b6000613740613712565b9050846001600160a01b0316613754611484565b6001600160a01b03161461377d57846040516347096e4760e01b8152600401611e30919061457c565b816001600160a01b031661378f611484565b6001600160a01b03161461287957600084846040516137af929190615933565b604051809103902090505b806137c7836002016142f1565b036137ba57505050505050565b6000806137df613712565b6000938452600101602052505060409020546001600160a01b031690565b613805612476565b156138235760405163d93c066560e01b815260040160405180910390fd5b565b7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680090565b613853828261292d565b61221057808260405163e2517d3f60e01b8152600401611e3092919061591a565b6120e08133613849565b600080613889613825565b9050613895848461292d565b613915576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556138cb3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050611636565b6000915050611636565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b60008061394e613825565b905061395a848461292d565b15613915576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050611636565b6139c3614366565b60006139cd613e4b565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051613a07919061457c565b60405180910390a150565b6000613a1c613712565b9050600081601b0160009054906101000a90046001600160a01b03166001600160a01b031663a49062d46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a999190615434565b9050600082601c016000866001811115613ab557613ab5614b25565b6001811115613ac657613ac6614b25565b8152602001908152602001600020549050613ae08561438b565b613afc5760405162461bcd60e51b8152600401611e3090615a1c565b81841115613b2057604051637780647f60e11b815260048101859052602401611e30565b7fb1b75318956f66fa2b8b148bc3b2520c6e22133a50ac6069d38f97ed462b487a858286604051613b5393929190615a67565b60405180910390a18383601c016000876001811115613b7457613b74614b25565b6001811115613b8557613b85614b25565b81526020810191909152604001600020555050505050565b600080613ba8613712565b6000948552600f01602090815260408086206001600160a01b0395909516865260039094019052505090205460ff1690565b600080613be5613712565b6000948552600d01602090815260408086206001600160a01b03959095168652939052505090205490565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480613c9757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316613c8b600080516020615bc4833981519152546001600160a01b031690565b6001600160a01b031614155b156138235760405163703e46dd60e11b815260040160405180910390fd5b6000613cc1813361292d565b61221057612210336117cd565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613d28575060408051601f3d908101601f19168201909252613d2591810190615434565b60015b613d475781604051634c9c8ce360e01b8152600401611e30919061457c565b600080516020615bc48339815191528114613d7857604051632a87526960e21b815260048101829052602401611e30565b611f8283836143c2565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146138235760405163703e46dd60e11b815260040160405180910390fd5b600080613dd6613712565b9050613de18361438b565b613dfd5760405162461bcd60e51b8152600401611e3090615a1c565b806016016000846001811115611aed57611aed614b25565b600080600080613e23613712565b6000958652600f01602052505060409092208054600182015460029092015490949193509150565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b600080613e7a613712565b6001600160a01b03851660009081526008909101602090815260408083206001600160e01b03198716845290915290205460ff1691505092915050565b613ebf6137fd565b6000613ec9613e4b565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139fa3390565b600080613f09613712565b60009384526001016020525050604090206004015490565b600080613f2c613712565b6000938452600190810160205260409093209092015492915050565b600080613f53613712565b60009384526001016020525050604090206004810154600390910154101590565b600080613f7f613712565b6001600160a01b03909316600090815260109093016020525050604090205460ff1690565b600080613faf613712565b600093845260010160205250506040902060020154600160381b900465ffffffffffff1690565b600080613fe1613712565b60009384526001016020525050604090206003015490565b60608261400e5761400982614418565b611636565b5080611636565b60008484848460405160200161402e9493929190615a86565b60408051601f19818403018152919052805160209091012095945050505050565b60008061405a613712565b90506140658361438b565b6140815760405162461bcd60e51b8152600401611e3090615a1c565b806019016000846001811115611aed57611aed614b25565b6000806140a4613712565b600c810154604051630748d63560e31b81529192506000916001600160a01b0390911690633a46b1a8906140de908890889060040161591a565b602060405180830381865afa1580156140fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061411f9190615434565b601f8301549091506001600160a01b031661413d5791506116369050565b601f8201546040516318be49d960e01b81526000916001600160a01b0316906318be49d990614172908990899060040161591a565b602060405180830381865afa15801561418f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b391906155c5565b6001600160a01b03161461423f57601f82015460405163c61c06e760e01b81526001600160a01b039091169063c61c06e7906141f5908890889060040161591a565b602060405180830381865afa158015614212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142369190615434565b92505050611636565b601f82015460405163094f6f2960e21b81526001600160a01b039091169063253dbca490614273908890889060040161591a565b602060405180830381865afa158015614290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142b49190615434565b611abf9082615b46565b60006142c8613712565b60220154905090565b6000806142dc613712565b60009384526007016020525050604090205490565b80546000906001600160801b0380821691600160801b9004168103614329576040516375e52f4f60e01b815260040160405180910390fd5b6001600160801b038181166000908152600185810160205260408220805492905585546001600160801b0319169301909116919091179092555090565b61436e612476565b61382357604051638dfc202b60e01b815260040160405180910390fd5b6000808260018111156143a0576143a0614b25565b1480611636575060018260018111156143bb576143bb614b25565b1492915050565b6143cb82614441565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561441057611f82828261449d565b61221061450a565b8051156144285780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b806001600160a01b03163b60000361446e5780604051634c9c8ce360e01b8152600401611e30919061457c565b600080516020615bc483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516144ba9190615b67565b600060405180830381855af49150503d80600081146144f5576040519150601f19603f3d011682016040523d82523d6000602084013e6144fa565b606091505b5091509150611abf858383614529565b34156138235760405163b398979f60e01b815260040160405180910390fd5b60608261453e5761453982614418565b611725565b815115801561455557506001600160a01b0384163b155b156145755783604051639996b31560e01b8152600401611e30919061457c565b5092915050565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146120e057600080fd5b80356145b081614590565b919050565b600080604083850312156145c857600080fd5b8235915060208301356145da81614590565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614623576146236145e5565b604052919050565b60006001600160401b03821115614644576146446145e5565b5060051b60200190565b600082601f83011261465f57600080fd5b8135602061467461466f8361462b565b6145fb565b82815260059290921b8401810191818101908684111561469357600080fd5b8286015b848110156146b75780356146aa81614590565b8352918301918301614697565b509695505050505050565b600082601f8301126146d357600080fd5b813560206146e361466f8361462b565b82815260059290921b8401810191818101908684111561470257600080fd5b8286015b848110156146b75780358352918301918301614706565b60006001600160401b03821115614736576147366145e5565b50601f01601f191660200190565b600082601f83011261475557600080fd5b813561476361466f8261471d565b81815284602083860101111561477857600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126147a657600080fd5b813560206147b661466f8361462b565b82815260059290921b840181019181810190868411156147d557600080fd5b8286015b848110156146b75780356001600160401b038111156147f85760008081fd5b6148068986838b0101614744565b8452509183019183016147d9565b600080600080600080600080610100898b03121561483157600080fd5b88356001600160401b038082111561484857600080fd5b6148548c838d0161464e565b995060208b013591508082111561486a57600080fd5b6148768c838d016146c2565b985060408b013591508082111561488c57600080fd5b6148988c838d01614795565b975060608b01359150808211156148ae57600080fd5b6148ba8c838d01614744565b965060808b0135955060a08b013594506148d660c08c016145a5565b935060e08b01359150808211156148ec57600080fd5b506148f98b828c01614744565b9150509295985092959890939650565b60006020828403121561491b57600080fd5b5035919050565b80356001600160e01b0319811681146145b057600080fd5b60006020828403121561494c57600080fd5b61172582614922565b8035600281106145b057600080fd5b6000806040838503121561497757600080fd5b8235915061498760208401614955565b90509250929050565b60005b838110156149ab578181015183820152602001614993565b50506000910152565b600081518084526149cc816020860160208601614990565b601f01601f19169290920160200192915050565b60208152600061172560208301846149b4565b600060208284031215614a0557600080fd5b813561172581614590565b600060208284031215614a2257600080fd5b61172582614955565b60008060008060808587031215614a4157600080fd5b8435614a4c81614590565b93506020850135614a5c81614590565b92506040850135915060608501356001600160401b03811115614a7e57600080fd5b614a8a87828801614744565b91505092959194509250565b60008060008060808587031215614aac57600080fd5b84356001600160401b0380821115614ac357600080fd5b614acf8883890161464e565b95506020870135915080821115614ae557600080fd5b614af1888389016146c2565b94506040870135915080821115614b0757600080fd5b50614b1487828801614795565b949793965093946060013593505050565b634e487b7160e01b600052602160045260246000fd5b60028110614b4b57614b4b614b25565b9052565b602081016116368284614b3b565b60008060408385031215614b7057600080fd5b8235614b7b81614590565b946020939093013593505050565b60208101600a8310614b9d57614b9d614b25565b91905290565b60008060408385031215614bb657600080fd5b614b7b83614955565b80151581146120e057600080fd5b80356145b081614bbf565b600060208284031215614bea57600080fd5b813561172581614bbf565b60008060408385031215614c0857600080fd5b8235614c1381614590565b915060208301356001600160401b03811115614c2e57600080fd5b614c3a85828601614744565b9150509250929050565b600081518084526020808501945080840160005b83811015614c7457815187529582019590820190600101614c58565b509495945050505050565b6020815260006117256020830184614c44565b60ff811681146120e057600080fd5b60008060408385031215614cb457600080fd5b8235915060208301356145da81614c92565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d1b57603f19888603018452614d098583516149b4565b94509285019290850190600101614ced565b5092979650505050505050565b60008083601f840112614d3a57600080fd5b5081356001600160401b03811115614d5157600080fd5b602083019150836020828501011115614d6957600080fd5b9250929050565b60008060008060008060008060a0898b031215614d8c57600080fd5b883597506020890135614d9e81614590565b965060408901356001600160401b0380821115614dba57600080fd5b614dc68c838d01614d28565b909850965060608b0135915080821115614ddf57600080fd5b614deb8c838d01614d28565b909650945060808b0135915080821115614e0457600080fd5b818b0191508b601f830112614e1857600080fd5b813581811115614e2757600080fd5b8c60208260051b8501011115614e3c57600080fd5b6020830194508093505050509295985092959890939650565b60008060408385031215614e6857600080fd5b8235614e7381614590565b915061498760208401614922565b60008060008060608587031215614e9757600080fd5b843593506020850135614ea981614c92565b925060408501356001600160401b03811115614ec457600080fd5b614ed087828801614d28565b95989497509550505050565b600080600060608486031215614ef157600080fd5b8335614efc81614590565b92506020848101356001600160401b03811115614f1857600080fd5b8501601f81018713614f2957600080fd5b8035614f3761466f8261462b565b81815260059190911b82018301908381019089831115614f5657600080fd5b928401925b82841015614f7b57614f6c84614922565b82529284019290840190614f5b565b8096505050505050614f8f60408501614bcd565b90509250925092565b600080600060608486031215614fad57600080fd5b8335614fb881614590565b92506020840135614fc881614590565b929592945050506040919091013590565b600080600080600060a08688031215614ff157600080fd5b8535614ffc81614590565b9450602086013561500c81614590565b935060408601356001600160401b038082111561502857600080fd5b61503489838a016146c2565b9450606088013591508082111561504a57600080fd5b61505689838a016146c2565b9350608088013591508082111561506c57600080fd5b5061507988828901614744565b9150509295509295909350565b60008060006060848603121561509b57600080fd5b83356150a681614590565b92506150b460208501614922565b915060408401356150c481614bbf565b809150509250925092565b600080600080606085870312156150e557600080fd5b84356150f081614590565b93506020850135925060408501356001600160401b03811115614ec457600080fd5b600080600080600060a0868803121561512a57600080fd5b85356001600160401b038082111561514157600080fd5b61514d89838a0161464e565b9650602088013591508082111561516357600080fd5b61516f89838a016146c2565b9550604088013591508082111561518557600080fd5b61519189838a01614795565b945060608801359350608088013591508082111561506c57600080fd5b600080604083850312156151c157600080fd5b50508035926020909101359150565b600080600080600080600060e0888a0312156151eb57600080fd5b87356001600160401b038082111561520257600080fd5b61520e8b838c0161464e565b985060208a013591508082111561522457600080fd5b6152308b838c016146c2565b975060408a013591508082111561524657600080fd5b6152528b838c01614795565b965060608a013591508082111561526857600080fd5b506152758a828b01614744565b979a969950949760808101359660a0820135965060c090910135945092505050565b600080600080600060a086880312156152af57600080fd5b85356152ba81614590565b945060208601356152ca81614590565b9350604086013592506060860135915060808601356001600160401b038111156152f357600080fd5b61507988828901614744565b9182526001600160a01b0316602082015260400190565b600081518084526020808501945080840160005b83811015614c745781516001600160a01b03168752958201959082019060010161532a565b600081518084526020808501808196508360051b8101915082860160005b858110156153975782840389526153858483516149b4565b9885019893509084019060010161536d565b5091979650505050505050565b60006101008083526153b88184018c615316565b905082810360208401526153cc818b614c44565b905082810360408401526153e0818a61534f565b905082810360608401526153f481896149b4565b6080840188905260a084018790526001600160a01b03861660c085015283810360e0850152905061542581856149b4565b9b9a5050505050505050505050565b60006020828403121561544657600080fd5b5051919050565b6040810161545b8285614b3b565b8260208301529392505050565b600181811c9082168061547c57607f821691505b60208210810361549c57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b038616815260a0602082018190526000906154c690830187615316565b82810360408401526154d88187614c44565b905082810360608401526154ec818661534f565b9150508260808301529695505050505050565b600082601f83011261551057600080fd5b815161551e61466f8261471d565b81815284602083860101111561553357600080fd5b615544826020830160208701614990565b949350505050565b60006020828403121561555e57600080fd5b81516001600160401b0381111561557457600080fd5b615544848285016154ff565b60006020828403121561559257600080fd5b815161172581614c92565b6001600160401b0391909116815260200190565b828152604081016117256020830184614b3b565b6000602082840312156155d757600080fd5b815161172581614590565b600060208083850312156155f557600080fd5b82516001600160401b0381111561560b57600080fd5b8301601f8101851361561c57600080fd5b805161562a61466f8261462b565b81815260059190911b8201830190838101908783111561564957600080fd5b928401925b828410156156675783518252928401929084019061564e565b979650505050505050565b6000602080838503121561568557600080fd5b82516001600160401b038082111561569c57600080fd5b818501915085601f8301126156b057600080fd5b81516156be61466f8261462b565b81815260059190911b830184019084810190888311156156dd57600080fd5b8585015b83811015615715578051858111156156f95760008081fd5b6157078b89838a01016154ff565b8452509186019186016156e1565b5098975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8981526000602060018060a01b038b168184015260c0604084015261577460c084018a8c615722565b838103606085015261578781898b615722565b84810360808601528681529050818101600587901b820183018860005b8981101561581357848303601f190184528135368c9003601e190181126157ca57600080fd5b8b0186810190356001600160401b038111156157e557600080fd5b8036038213156157f457600080fd5b6157ff858284615722565b9588019594505050908501906001016157a4565b505086151560a0870152935061582892505050565b9a9950505050505050505050565b8581526001600160a01b038516602082015260ff841660408201526080606082018190526000906156679083018486615722565b60006020828403121561587c57600080fd5b815161172581614bbf565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156158da5784516001600160e01b031916835293830193918301916001016158b4565b50508093505050508215156040830152949350505050565b60006020828403121561590457600080fd5b815165ffffffffffff8116811461172557600080fd5b6001600160a01b03929092168252602082015260400190565b8183823760009101908152919050565b6001600160a01b0388168152861515602082015260e06040820181905260009061596f90830188615316565b82810360608401526159818188614c44565b90508281036080840152615995818761534f565b90508460a084015282810360c084015261582881856149b4565b60e0815260006159c260e083018a615316565b82810360208401526159d4818a614c44565b905082810360408401526159e8818961534f565b905082810360608401526159fc81886149b4565b6080840196909652505060a081019290925260c090910152949350505050565b6020808252602b908201527f476f7665726e6f72436f6e666967757261746f723a20696e76616c696420707260408201526a6f706f73616c207479706560a81b606082015260800190565b60608101615a758286614b3b565b602082019390935260400152919050565b6080808252855190820181905260009060209060a0840190828901845b82811015615ac85781516001600160a01b031684529284019290840190600101615aa3565b50505083810382850152615adc8188614c44565b905083810360408501528086518083528383019150838160051b84010184890160005b83811015615b2d57601f19868403018552615b1b8383516149b4565b94870194925090860190600101615aff565b5050809550505050505082606083015295945050505050565b8082018082111561163657634e487b7160e01b600052601160045260246000fd5b60008251615b79818460208701614990565b919091019291505056fe6575630003027b0b2fc4a48bc39dbc3eba9cf56588c696a6f5717e167a0ce731c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87e72189a3ea069796dab5c7d3826581f957cb5c882c1e6dae7acacec49ca48e56af926aa3845d4dc63a6c773ed36f51794728c97ebcd1bf845bcecb16eeb6b7320cc91c16c42272679cab4152f867e0cd4a98f53556da2d53b4e515be8c7796737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e2c616761696e7374a264697066735822122002ac80797a0444e5830333c0f129f002edd21a0724bc35dc91d5b139cdd83ea264736f6c63430008140033",
  "linkReferences": {
    "contracts/governance/libraries/GovernorClockLogic.sol": {
      "GovernorClockLogic": [
        {
          "length": 20,
          "start": 8730
        },
        {
          "length": 20,
          "start": 10859
        }
      ]
    },
    "contracts/governance/libraries/GovernorCommunityExecutionLogic.sol": {
      "GovernorCommunityExecutionLogic": [
        {
          "length": 20,
          "start": 5851
        },
        {
          "length": 20,
          "start": 7218
        },
        {
          "length": 20,
          "start": 9123
        },
        {
          "length": 20,
          "start": 9473
        },
        {
          "length": 20,
          "start": 9731
        },
        {
          "length": 20,
          "start": 9775
        },
        {
          "length": 20,
          "start": 10548
        },
        {
          "length": 20,
          "start": 13143
        },
        {
          "length": 20,
          "start": 14001
        }
      ]
    },
    "contracts/governance/libraries/GovernorConfigurator.sol": {
      "GovernorConfigurator": [
        {
          "length": 20,
          "start": 6377
        },
        {
          "length": 20,
          "start": 6767
        },
        {
          "length": 20,
          "start": 8241
        },
        {
          "length": 20,
          "start": 8465
        },
        {
          "length": 20,
          "start": 10076
        },
        {
          "length": 20,
          "start": 10183
        },
        {
          "length": 20,
          "start": 11754
        },
        {
          "length": 20,
          "start": 11855
        },
        {
          "length": 20,
          "start": 11965
        },
        {
          "length": 20,
          "start": 12141
        },
        {
          "length": 20,
          "start": 12304
        },
        {
          "length": 20,
          "start": 12391
        },
        {
          "length": 20,
          "start": 12478
        },
        {
          "length": 20,
          "start": 13434
        },
        {
          "length": 20,
          "start": 13653
        },
        {
          "length": 20,
          "start": 14218
        }
      ]
    },
    "contracts/governance/libraries/GovernorDepositLogic.sol": {
      "GovernorDepositLogic": [
        {
          "length": 20,
          "start": 5584
        },
        {
          "length": 20,
          "start": 9929
        },
        {
          "length": 20,
          "start": 11241
        },
        {
          "length": 20,
          "start": 13780
        }
      ]
    },
    "contracts/governance/libraries/GovernorFunctionRestrictionsLogic.sol": {
      "GovernorFunctionRestrictionsLogic": [
        {
          "length": 20,
          "start": 8907
        },
        {
          "length": 20,
          "start": 10703
        },
        {
          "length": 20,
          "start": 12798
        }
      ]
    },
    "contracts/governance/libraries/GovernorProposalLogic.sol": {
      "GovernorProposalLogic": [
        {
          "length": 20,
          "start": 5694
        },
        {
          "length": 20,
          "start": 6994
        },
        {
          "length": 20,
          "start": 7414
        },
        {
          "length": 20,
          "start": 7562
        },
        {
          "length": 20,
          "start": 7701
        },
        {
          "length": 20,
          "start": 9221
        },
        {
          "length": 20,
          "start": 10293
        },
        {
          "length": 20,
          "start": 12206
        },
        {
          "length": 20,
          "start": 12857
        },
        {
          "length": 20,
          "start": 12937
        },
        {
          "length": 20,
          "start": 13244
        },
        {
          "length": 20,
          "start": 13538
        },
        {
          "length": 20,
          "start": 13850
        }
      ]
    },
    "contracts/governance/libraries/GovernorQuorumLogic.sol": {
      "GovernorQuorumLogic": [
        {
          "length": 20,
          "start": 6037
        },
        {
          "length": 20,
          "start": 6519
        },
        {
          "length": 20,
          "start": 6811
        },
        {
          "length": 20,
          "start": 8371
        },
        {
          "length": 20,
          "start": 8988
        },
        {
          "length": 20,
          "start": 9672
        },
        {
          "length": 20,
          "start": 11287
        },
        {
          "length": 20,
          "start": 13347
        },
        {
          "length": 20,
          "start": 14294
        }
      ]
    },
    "contracts/governance/libraries/GovernorStateLogic.sol": {
      "GovernorStateLogic": [
        {
          "length": 20,
          "start": 8530
        }
      ]
    },
    "contracts/governance/libraries/GovernorVotesLogic.sol": {
      "GovernorVotesLogic": [
        {
          "length": 20,
          "start": 9386
        },
        {
          "length": 20,
          "start": 10241
        },
        {
          "length": 20,
          "start": 10404
        },
        {
          "length": 20,
          "start": 11004
        },
        {
          "length": 20,
          "start": 11128
        },
        {
          "length": 20,
          "start": 12536
        },
        {
          "length": 20,
          "start": 12596
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/governance/libraries/GovernorClockLogic.sol": {
      "GovernorClockLogic": [
        {
          "length": 20,
          "start": 8470
        },
        {
          "length": 20,
          "start": 10599
        }
      ]
    },
    "contracts/governance/libraries/GovernorCommunityExecutionLogic.sol": {
      "GovernorCommunityExecutionLogic": [
        {
          "length": 20,
          "start": 5591
        },
        {
          "length": 20,
          "start": 6958
        },
        {
          "length": 20,
          "start": 8863
        },
        {
          "length": 20,
          "start": 9213
        },
        {
          "length": 20,
          "start": 9471
        },
        {
          "length": 20,
          "start": 9515
        },
        {
          "length": 20,
          "start": 10288
        },
        {
          "length": 20,
          "start": 12883
        },
        {
          "length": 20,
          "start": 13741
        }
      ]
    },
    "contracts/governance/libraries/GovernorConfigurator.sol": {
      "GovernorConfigurator": [
        {
          "length": 20,
          "start": 6117
        },
        {
          "length": 20,
          "start": 6507
        },
        {
          "length": 20,
          "start": 7981
        },
        {
          "length": 20,
          "start": 8205
        },
        {
          "length": 20,
          "start": 9816
        },
        {
          "length": 20,
          "start": 9923
        },
        {
          "length": 20,
          "start": 11494
        },
        {
          "length": 20,
          "start": 11595
        },
        {
          "length": 20,
          "start": 11705
        },
        {
          "length": 20,
          "start": 11881
        },
        {
          "length": 20,
          "start": 12044
        },
        {
          "length": 20,
          "start": 12131
        },
        {
          "length": 20,
          "start": 12218
        },
        {
          "length": 20,
          "start": 13174
        },
        {
          "length": 20,
          "start": 13393
        },
        {
          "length": 20,
          "start": 13958
        }
      ]
    },
    "contracts/governance/libraries/GovernorDepositLogic.sol": {
      "GovernorDepositLogic": [
        {
          "length": 20,
          "start": 5324
        },
        {
          "length": 20,
          "start": 9669
        },
        {
          "length": 20,
          "start": 10981
        },
        {
          "length": 20,
          "start": 13520
        }
      ]
    },
    "contracts/governance/libraries/GovernorFunctionRestrictionsLogic.sol": {
      "GovernorFunctionRestrictionsLogic": [
        {
          "length": 20,
          "start": 8647
        },
        {
          "length": 20,
          "start": 10443
        },
        {
          "length": 20,
          "start": 12538
        }
      ]
    },
    "contracts/governance/libraries/GovernorProposalLogic.sol": {
      "GovernorProposalLogic": [
        {
          "length": 20,
          "start": 5434
        },
        {
          "length": 20,
          "start": 6734
        },
        {
          "length": 20,
          "start": 7154
        },
        {
          "length": 20,
          "start": 7302
        },
        {
          "length": 20,
          "start": 7441
        },
        {
          "length": 20,
          "start": 8961
        },
        {
          "length": 20,
          "start": 10033
        },
        {
          "length": 20,
          "start": 11946
        },
        {
          "length": 20,
          "start": 12597
        },
        {
          "length": 20,
          "start": 12677
        },
        {
          "length": 20,
          "start": 12984
        },
        {
          "length": 20,
          "start": 13278
        },
        {
          "length": 20,
          "start": 13590
        }
      ]
    },
    "contracts/governance/libraries/GovernorQuorumLogic.sol": {
      "GovernorQuorumLogic": [
        {
          "length": 20,
          "start": 5777
        },
        {
          "length": 20,
          "start": 6259
        },
        {
          "length": 20,
          "start": 6551
        },
        {
          "length": 20,
          "start": 8111
        },
        {
          "length": 20,
          "start": 8728
        },
        {
          "length": 20,
          "start": 9412
        },
        {
          "length": 20,
          "start": 11027
        },
        {
          "length": 20,
          "start": 13087
        },
        {
          "length": 20,
          "start": 14034
        }
      ]
    },
    "contracts/governance/libraries/GovernorStateLogic.sol": {
      "GovernorStateLogic": [
        {
          "length": 20,
          "start": 8270
        }
      ]
    },
    "contracts/governance/libraries/GovernorVotesLogic.sol": {
      "GovernorVotesLogic": [
        {
          "length": 20,
          "start": 9126
        },
        {
          "length": 20,
          "start": 9981
        },
        {
          "length": 20,
          "start": 10144
        },
        {
          "length": 20,
          "start": 10744
        },
        {
          "length": 20,
          "start": 10868
        },
        {
          "length": 20,
          "start": 12276
        },
        {
          "length": 20,
          "start": 12336
        }
      ]
    }
  }
}
