Files
DLE/backend/artifacts/contracts/DLE.sol/DLE.json

1563 lines
86 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "DLE",
"sourceName": "contracts/DLE.sol",
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "quorumPercentage",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "initialPartners",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "initialAmounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "supportedChainIds",
"type": "uint256[]"
}
],
"internalType": "struct DLE.DLEConfig",
"name": "config",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "_currentChainId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fromChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "toChainId",
"type": "uint256"
}
],
"name": "CrossChainExecutionSync",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "operationId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fromChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "toChainId",
"type": "uint256"
}
],
"name": "CrossChainMultiSigSync",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fromChainId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "toChainId",
"type": "uint256"
}
],
"name": "CrossChainVoteSync",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "location",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "supportedChainIds",
"type": "uint256[]"
}
],
"name": "DLEInitialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address[]",
"name": "partners",
"type": "address[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "InitialTokensDistributed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "moduleId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "moduleAddress",
"type": "address"
}
],
"name": "ModuleAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "moduleId",
"type": "bytes32"
}
],
"name": "ModuleRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "operationId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "operationHash",
"type": "bytes32"
}
],
"name": "MultiSigExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "operationId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "operationHash",
"type": "bytes32"
}
],
"name": "MultiSigOperationCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "operationId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "support",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "signaturePower",
"type": "uint256"
}
],
"name": "MultiSigSigned",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "ProposalCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "operation",
"type": "bytes"
}
],
"name": "ProposalExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "support",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "votingPower",
"type": "uint256"
}
],
"name": "ProposalVoted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
}
],
"name": "SyncCompleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "activeModules",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_moduleAddress",
"type": "address"
}
],
"name": "addModule",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "checkChainConnection",
"outputs": [
{
"internalType": "bool",
"name": "isAvailable",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_operationId",
"type": "uint256"
}
],
"name": "checkMultiSigResult",
"outputs": [
{
"internalType": "bool",
"name": "passed",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumReached",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "checkProposalResult",
"outputs": [
{
"internalType": "bool",
"name": "passed",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumReached",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "checkSyncReadiness",
"outputs": [
{
"internalType": "bool",
"name": "allChainsReady",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_operationHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
}
],
"name": "createMultiSigOperation",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_description",
"type": "string"
},
{
"internalType": "uint256",
"name": "_duration",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_operation",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_governanceChainId",
"type": "uint256"
}
],
"name": "createProposal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "currentChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "dleInfo",
"outputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "creationTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_operationId",
"type": "uint256"
}
],
"name": "executeMultiSigOperation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "executeProposal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "executedMultiSig",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "executedProposals",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDLEInfo",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "location",
"type": "string"
},
{
"internalType": "string",
"name": "coordinates",
"type": "string"
},
{
"internalType": "uint256",
"name": "jurisdiction",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "oktmo",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "okvedCodes",
"type": "string[]"
},
{
"internalType": "uint256",
"name": "kpp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "creationTimestamp",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isActive",
"type": "bool"
}
],
"internalType": "struct DLE.DLEInfo",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
}
],
"name": "getModuleAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSupportedChainCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "getSupportedChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
}
],
"name": "isChainSupported",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
}
],
"name": "isModuleActive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "modules",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "multiSigCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "multiSigOperations",
"outputs": [
{
"internalType": "bytes32",
"name": "operationHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "forSignatures",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "againstSignatures",
"type": "uint256"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "address",
"name": "initiator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proposalCounter",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "uint256",
"name": "forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "againstVotes",
"type": "uint256"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "address",
"name": "initiator",
"type": "address"
},
{
"internalType": "bytes",
"name": "operation",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "quorumPercentage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_moduleId",
"type": "bytes32"
}
],
"name": "removeModule",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_operationId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_support",
"type": "bool"
}
],
"name": "signMultiSigOperation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "supportedChains",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fromChainId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "syncExecutionFromChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_operationId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fromChainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_forSignatures",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_againstSignatures",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "syncMultiSigFromChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
}
],
"name": "syncToAllChains",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_fromChainId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_forVotes",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_againstVotes",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "syncVoteFromChain",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_proposalId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_support",
"type": "bool"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234620011075762003e8380380390816200001e8162001168565b918239604081838101031262001107578051906001600160401b03821162001107576101809283838301828401031262001107576040519384016001600160401b0381118582101762000b7b57604052818301516001600160401b038111620011075762000094908284019085850101620011b3565b8452818301602001516001600160401b0381116200110757620000bf908284019085850101620011b3565b6020850152818301604001516001600160401b0381116200110757620000ed908284019085850101620011b3565b6040850152818301606001516001600160401b03811162001107576200011b908284019085850101620011b3565b60608501528183016080818101519086015260a0808201519086015260c001516001600160401b038111620011075783830101818301601f8201121562001107578051620001736200016d826200120a565b62001168565b9160208084848152019260051b820101918486018311620011075760208201905b83821062001134575050505060c085015281830160e08181015190860152610100808201519086015261012001516001600160401b0381116200110757818301601f8286860101011215620011075780848401015190620001f96200016d836200120a565b91602083828152019184860160208360051b838a8a01010101116200110757916020838888010101925b60208360051b828a8a0101010184106200110c575050505061012085015281830161014001516001600160401b03811162001107576200026b90828401908585010162001222565b6101408501528183016101600151926001600160401b03841162001107576020936200029d9284019184010162001222565b610160840152015181516020830151815191939092916001600160401b03811162000b7b57620002cf6003546200127f565b601f8111620010b4575b506020601f82116001146200104457819293949560009262001038575b50508160011b916000199060031b1c1916176003555b82516001600160401b03811162000b7b576200032a6004546200127f565b601f811162000fe5575b506020601f821160011462000f76578192939460009262000f6a575b50508160011b916000199060031b1c1916176004555b6001600555805191602082015160408301516060840151608085015160a08601519060c08701519260e088015194604051968761014081011060018060401b036101408a01111762000b7b5761014088016040528a8852602088015260408701526060860152608085015260a084015260c083015260e0820152426101008201526001610120820152835160018060401b03811162000b7b576200040c6006546200127f565b601f811162000f17575b506020601f821160011462000ea757819293949560009262000e9b575b50508160011b916000199060031b1c1916176006555b602081015180519093906001600160401b03811162000b7b576200046f6007546200127f565b601f811162000e48575b506020601f821160011462000dd857819293949560009262000dcc575b50508160011b916000199060031b1c1916176007555b604082015180519093906001600160401b03811162000b7b57620004d26008546200127f565b601f811162000d79575b506020601f821160011462000d0957819293949560009262000cfd575b50508160011b916000199060031b1c1916176008555b606083015180519093906001600160401b03811162000b7b57620005356009546200127f565b601f811162000caa575b506020601f821160011462000c3a57819293949560009262000c2e575b50508160011b916000199060031b1c1916176009555b6080810151600a5560a0810151600b5560c081015180519068010000000000000000821162000b7b57600c5482600c5580831062000b91575b50600c60009081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792916020015b82821062000a495786866101208760e0810151600d55610100810151600e550151151560ff8019600f5416911617600f5561010082015160105560135560005b61016082015190815181101562000660576200063b816200065a93620012e5565b5160005260186020526040600020600160ff19825416179055620012d5565b6200061a565b8261012081015151610140820151510362000a04576101208101515115620009bf5760005b6101208201518051821015620007f1576001600160a01b03908190620006ad908490620012e5565b511615620007bd57620006c682610140850151620012e5565b51156200078a57620006de82610120850151620012e5565b511690620006f281610140850151620012e5565b51918015620007715760025483810181116200075b577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208562000755966000940160025584845283825260408420818154019055604051908152a3620012d5565b62000685565b634e487b7160e01b600052601160045260246000fd5b60405163ec442f0560e01b815260006004820152602490fd5b60405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b8261012081015161014082015190604051916040830160408452825180915260206060850193019060005b8181106200099f57867ff9e7aa11bcdcbb8ac33b5dba92fca799ef091e54c29270822065501d8edea1a587806200085c8989838203602085015262001310565b0390a1805160208201516040830151926060810151608082015190620008e160a084015191620008d260c086015198620008c361016060e089015198015198620008b46040519b6101408d526101408d019062001346565b908b820360208d015262001346565b9089820360408b015262001346565b90878203606089015262001346565b91608086015260a085015283810360c0850152845180825260208201916020808360051b8301019701926000915b8383106200096f577f11b248463a1620b36a975da8f250009f56fb5dd0e9d5027a90a834d0ee84d6f688806200095c8c8b8b60e08501523061010085015283820361012085015262001310565b0390a1604051612b1590816200136e8239f35b90919293976020806200098f600193601f198682030187528c5162001346565b9a0193019301919392906200090f565b82516001600160a01b03168552602094850194909201916001016200081c565b60405162461bcd60e51b815260206004820152601360248201527f4e6f20696e697469616c20706172746e657273000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527f417272617973206c656e677468206d69736d61746368000000000000000000006044820152606490fd5b80518051906001600160401b03821162000b7b5762000a6986546200127f565b601f811162000b39575b50602090601f831160011462000ac457928260019493602093869560009262000ab8575b5050600019600383901b1c191690841b1787555b01940191019092620005da565b01519050388062000a97565b908660005260206000209160005b601f198516811062000b20575083602093600196938796938794601f1981161062000b06575b505050811b01875562000aab565b015160001960f88460031b161c1916905538808062000af8565b9192602060018192868501518155019401920162000ad2565b62000b6990876000526020600020601f850160051c8101916020861062000b70575b601f0160051c0190620012bc565b3862000a73565b909150819062000b5b565b634e487b7160e01b600052604160045260246000fd5b600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908382015b818301811062000bce575050620005ab565b8062000bdd600192546200127f565b8062000bec575b500162000bbc565b601f8111831462000c045750600081555b3862000be4565b60009082825262000c24601f60208420920160051c8201858301620012bc565b8183555562000bfd565b0151905038806200055c565b600960005260206000209060005b601f198416811062000c91575060019394959683601f1981161062000c77575b505050811b0160095562000572565b015160001960f88460031b161c1916905538808062000c68565b9091602060018192858b01518155019301910162000c48565b600960005262000cf6907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b386200053f565b015190503880620004f9565b600860005260206000209060005b601f198416811062000d60575060019394959683601f1981161062000d46575b505050811b016008556200050f565b015160001960f88460031b161c1916905538808062000d37565b9091602060018192858b01518155019301910162000d17565b600860005262000dc5907ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620004dc565b01519050388062000496565b600760005260206000209060005b601f198416811062000e2f575060019394959683601f1981161062000e15575b505050811b01600755620004ac565b015160001960f88460031b161c1916905538808062000e06565b9091602060018192858b01518155019301910162000de6565b600760005262000e94907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000479565b01519050388062000433565b600660005260206000209060005b601f198416811062000efe575060019394959683601f1981161062000ee4575b505050811b0160065562000449565b015160001960f88460031b161c1916905538808062000ed5565b9091602060018192858b01518155019301910162000eb5565b600660005262000f63907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000416565b01519050388062000350565b600460005260206000209060005b601f198416811062000fcc5750600193949583601f1981161062000fb2575b505050811b0160045562000366565b015160001960f88460031b161c1916905538808062000fa3565b9091602060018192858a01518155019301910162000f84565b600460005262001031907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b3862000334565b015190503880620002f6565b600360005260206000209060005b601f19841681106200109b575060019394959683601f1981161062001081575b505050811b016003556200030c565b015160001960f88460031b161c1916905538808062001072565b9091602060018192858b01518155019301910162001052565b600360005262001100907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c8101916020851062000b7057601f0160051c0190620012bc565b38620002d9565b600080fd5b8351916001600160a01b03831683036200110757602081819482935201940193915062000223565b81516001600160401b03811162001107576020916200115c8392838a8c0191880101620011b3565b81520191019062000194565b6040519190601f01601f191682016001600160401b0381118382101762000b7b57604052565b60005b838110620011a25750506000910152565b818101518382015260200162001191565b81601f82011215620011075780516001600160401b03811162000b7b57620011e5601f8201601f191660200162001168565b928184526020828401011162001107576200120791602080850191016200118e565b90565b6001600160401b03811162000b7b5760051b60200190565b9080601f830112156200110757815190620012416200016d836200120a565b9182938184526020808095019260051b82010192831162001107578301905b8282106200126f575050505090565b8151815290830190830162001260565b90600182811c92168015620012b1575b60208310146200129b57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200128f565b818110620012c8575050565b60008155600101620012bc565b60001981146200075b5760010190565b8051821015620012fa5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811062001331575050505090565b83518552938101939281019260010162001322565b9060209162001361815180928185528580860191016200118e565b601f01601f191601019056fe60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea26469706673582212203d9c2e9bde7fe9a6fce04efdc03dfd744b785d973d2ed5fa6b725a17cfbf8e6164736f6c63430008140033",
"deployedBytecode": "0x60808060405260048036101561001457600080fd5b60003560e01c918263013cf08b14611dda57508163044bc2bd14611cab578163057b207414611c9057816306fdde0314611bc2578163095ea7b314611b235781630c0512e914611b055781630d61b519146118ff57816318160ddd146118e1578163204c5d1f1461164e57816322dbefbb14610b3c57816323b872dd146115565781632ee09598146114bc578163313ce567146114a057816335324eee146113385781633b60288a146113095781634114509b146111ef578163456d10c1146111095781634b145793146107455781634de184f6146110e65781634fa76ec9146110eb5781635221c1f0146110e6578163548d496f146110b75781635cf0e8a4146110995781636cbadbfa1461109957816370a082311461105f5781637ce288ea14610f6b5781637e5a9b4714610f3c578163893d692a14610e205781638c7b04c914610e0257816395d89b4114610d175781639a49bdde14610cf2578163a9059cbb14610cc1578163af89d2c414610c92578163b00e073014610b6e578163b0b6cc1a14610b3c578163b359451014610774578163b3fe8bcb14610745578163c51cab3a146106d5578163c9d27afe1461054e578163ccd7a49014610388578163dd62ed3e14610337578163e49a62e914610310578163eced3dfb146102f4575063f2c26a471461020557600080fd5b346102ef5760003660031901126102ef576102a46040516102308161022981611edb565b03826121dd565b6040516102408161022981611f7f565b604051906102588261025181612006565b03836121dd565b60405191610270836102698161208d565b03846121dd565b600a5492600b546102ce600d54926102c0600e54956102b260ff600f5416986040519c8d9c8d610120908181520190612222565b8c810360208e015290612222565b908a820360408c0152612222565b9088820360608a0152612222565b94608087015260a086015260c085015260e084015215156101008301520390f35b600080fd5b346102ef5760003660031901126102ef57602090604051908152f35b346102ef5760203660031901126102ef5761032d6020913561278c565b6040519015158152f35b346102ef5760403660031901126102ef576103506122b8565b6103586122ce565b9060018060a01b038091166000526001602052604060002091166000526020526020604060002054604051908152f35b346102ef576103963661234c565b9061039f6125f5565b80600052602092601784526040600020906103bc825415156126c5565b8082015442101561051a576103d860ff60038401541615612711565b60068201903360005281865260ff604060002054166104e5573360005260008652604060002054156104ad57509361048e917f78b8e65c466df05ea5ddf0593b44648eca1f35c039f180e31257a6f1bdd005dc95336000526000835260406000205492526040600020600160ff198254161790558460001461049857600101610462828254612449565b90555b604080519384523360208501529315159383019390935260608201929092529081906080820190565b0390a16001600555005b6002016104a6828254612449565b9055610465565b60405162461bcd60e51b815290810186905260116024820152702737903a37b5b2b739903a379039b4b3b760791b6044820152606490fd5b60405162461bcd60e51b8152908101869052600e60248201526d105b1c9958591e481cda59db995960921b6044820152606490fd5b60405162461bcd60e51b8152908101859052600d60248201526c14da59db9a5b99c8195b991959609a1b6044820152606490fd5b346102ef5761055c3661234c565b906105656125f5565b80600052602092601684526040600020906105828383541461255d565b60058201544210156106a25761059e60ff8284015416156125a9565b60088201903360005281865260ff6040600020541661066e5733600052600086526040600020541561063657509361048e917f78975aaf742630489badd22949b88ac50eaaea576339ee05440b671a33bfb6a995336000526000835260406000205492526040600020600160ff198254161790558460001461062857600201610462828254612449565b6003016104a6828254612449565b60405162461bcd60e51b815290810186905260116024820152704e6f20746f6b656e7320746f20766f746560781b6044820152606490fd5b60405162461bcd60e51b8152908101869052600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b60405162461bcd60e51b8152908101859052600c60248201526b159bdd1a5b99c8195b99195960a21b6044820152606490fd5b346102ef5760203660031901126102ef578060c091356000526017602052604060002090815491600181015491600282015460ff6003840154169183015492600560018060a01b0391015416936040519586526020860152604085015215156060840152608083015260a0820152f35b346102ef5760203660031901126102ef57356000526015602052602060ff604060002054166040519015158152f35b346102ef5760803660031901126102ef57803567ffffffffffffffff918282116102ef57366023830112156102ef576107b7602492369084818501359101612263565b908235936044358181116102ef576107d2903690840161229a565b9460643595336000526020966000885260406000205415610aed576107f883151561246c565b806000526018885261081160ff604060002054166124b8565b6000526018875260ff6040600020541615610ab45760115495610833876124fa565b601155866000526016885260406000208781556001938482018851878111610aa057610869816108638454611ea1565b84612509565b8b8c601f8311600114610a2b5750918160079594926108bc94600091610a20575b50600019600383901b1c191690891b1790555b600060028401556000600384015588830160ff19815416905542612449565b600582015560068101336001600160601b0360a01b82541617905501948251948511610a0d5750506108f8836108f28654611ea1565b86612509565b8690601f841160011461098057928061096a959381937f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd639896600094610975575b50501b916000199060031b1c19161790555b6040519182918583523387840152606060408401526060830190612222565b0390a1604051908152f35b015192508a80610939565b90601f9392931983169185600052886000209260005b8a8282106109f9575050917f7585f467599d0f008985f231af99293be388626ac16ca59505c2f8f88969cd63979593918561096a989694106109e0575b505050811b01905561094b565b015160001960f88460031b161c191690558880806109d3565b838501518655948701949384019301610996565b604190634e487b7160e01b600052526000fd5b90508c01518f61088a565b8892918c601f1984168660005283600020936000905b828210610a855750509160079897959391856108bc98969410610a6c575b505050811b01905561089d565b015160001960f88460031b161c191690558f808e610a5f565b9284015185558c9690940193928201928f9290810190610a41565b8460418a634e487b7160e01b600052526000fd5b60405162461bcd60e51b815280850188905260138188015272436861696e206e6f7420617661696c61626c6560681b6044820152606490fd5b60405162461bcd60e51b81528086018990526023818901527f4d75737420686f6c6420746f6b656e7320746f206372656174652070726f706f6044820152621cd85b60ea1b6064820152608490fd5b346102ef5760203660031901126102ef57356000526014602052602060018060a01b0360406000205416604051908152f35b346102ef5760403660031901126102ef5780359060243533600052600060205260406000205415610c42576060602093600583610bcd7f8d5c76b09b9c1f4d0453d21436dcb0b568a50e9c0ae059e4d0ae8c95c71d07f095151561246c565b60125495610bda876124fa565b6012558660005260178852610c1160406000209285845560006001850155600060028501556003840160ff19815416905542612449565b9082015501336001600160601b0360a01b8254161790556040519084825233868301526040820152a1604051908152f35b60405162461bcd60e51b81526020818401526024808201527f4d75737420686f6c6420746f6b656e7320746f20637265617465206f706572616044820152633a34b7b760e11b6064820152608490fd5b346102ef5760203660031901126102ef5735600052601a602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef57610ce7610cdd6122b8565b602435903361236b565b602060405160018152f35b346102ef5760203660031901126102ef57610d0f602091356127ed565b604051908152f35b346102ef5760003660031901126102ef57604051906000908054610d3a81611ea1565b80855291600191808316908115610dd85750600114610d7c575b610d7885610d64818703826121dd565b604051918291602083526020830190612222565b0390f35b600090815292507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610dc0575050508101602001610d6482610d78610d54565b80546020858701810191909152909301928101610da5565b869550610d7896935060209250610d6494915060ff191682840152151560051b8201019293610d54565b346102ef5760003660031901126102ef576020601254604051908152f35b346102ef5760203660031901126102ef57803590816000526017602052604060002090815491610e518315156126c5565b600381019180835492610e6760ff851615612711565b01544210610f0457610e788561275d565b81610efc575b5015610ec1577f64cee5a70d662a7eef5b2a171daa51dc624f3d64a35d0855b385262b893dc5a5604086868660018760ff191617905582519182526020820152a1005b60649060206040519162461bcd60e51b8352820152601460248201527313dc195c985d1a5bdb881b9bdd081c185cdcd95960621b6044820152fd5b905086610e7e565b60649060206040519162461bcd60e51b8352820152601160248201527014da59db9a5b99c81b9bdd08195b991959607a1b6044820152fd5b346102ef5760203660031901126102ef57610f579035612668565b604080519215158352901515602083015290f35b346102ef5760203660031901126102ef57803590610f888261278c565b156110245760135460005b828110610fc7577f57df5a6a467271f04b10f7fe9e66d21dcd8ae7eaf079099d48959f24a53b6910602085604051908152a1005b807f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e83313611017610ff861101f946127ed565b604051918291878a846040919493926060820195825260208201520152565b0390a16124fa565b610f93565b60649060206040519162461bcd60e51b835282015260146024820152734e6f7420616c6c20636861696e7320726561647960601b6044820152fd5b346102ef5760203660031901126102ef576001600160a01b036110806122b8565b1660005260006020526020604060002054604051908152f35b346102ef5760003660031901126102ef576020601354604051908152f35b346102ef5760203660031901126102ef57356000526018602052602060ff604060002054166040519015158152f35b61231f565b346102ef5760003660031901126102ef576020601054604051908152f35b346102ef577fca1838d50ca3156f1ace7cde39a081cc9c9a333af6fca55db71817f8717e1dcb611138366122e4565b508360009493945260166020526111ae6003604060002061115b8682541461255d565b86600052601860205261117560ff604060002054166124b8565b6009810194876000528560205261119460ff6040600020541615612618565b6111a360028301918254612449565b905501918254612449565b9055826000526020526040600020600160ff198254161790556111ea601354604051938493846040919493926060820195825260208201520152565b0390a1005b346102ef576020806003193601126102ef578135913360005260008252604060002054156112bd57826000526015825260ff60406000205416156112835750600082815260148252604080822080546001600160a01b03191690556015835290819020805460ff19169055519182527f4c7c76abe482a2c36ea52f1b999474c69f8b4afeeac5635f8aea2526864ba85391a1005b6064916040519162461bcd60e51b83528201526015602482015274135bd91d5b1948191bd95cc81b9bdd08195e1a5cdd605a1b6044820152fd5b6084916040519162461bcd60e51b8352820152602160248201527f4d75737420686f6c6420746f6b656e7320746f2072656d6f7665206d6f64756c6044820152606560f81b6064820152fd5b346102ef5760203660031901126102ef57356000526019602052602060ff604060002054166040519015158152f35b346102ef5760403660031901126102ef578035906113546122ce565b33600052602090600082526040600020541561145c576001600160a01b031691821561142b57836000526015825260ff604060002054166113f1577ff14475b19484bf096265507cc0c41cd3bf1994992088806830686e2d727227196040858585826000526014815283600020826001600160601b0360a01b8254161790556015815283600020600160ff198254161790558351928352820152a1005b6064916040519162461bcd60e51b835282015260156024820152744d6f64756c6520616c72656164792065786973747360581b6044820152fd5b6064916040519162461bcd60e51b8352820152600c60248201526b5a65726f206164647265737360a01b6044820152fd5b60405162461bcd60e51b8152808401839052601e60248201527f4d75737420686f6c6420746f6b656e7320746f20616464206d6f64756c6500006044820152606490fd5b346102ef5760003660031901126102ef57602060405160128152f35b346102ef577fe379b3deb66ddfa7962a2bdf35e9a08b5bed672c9da3ecf7cc6174d253c6dfe56114eb366122e4565b508360009493945260176020526111ae6002604060002061150e815415156126c5565b86600052601860205261152860ff604060002054166124b8565b6007810194876000528560205261154760ff6040600020541615612618565b6111a360018301918254612449565b346102ef5760603660031901126102ef5761156f6122b8565b6115776122ce565b6044359160018060a01b0381168060005260016020526040600020336000526020526040600020549460001986106115b6575b5050610ce7935061236b565b84861061162257811561160a5733156115f25750610ce794849160005260016020526040600020336000526020520360406000205584806115aa565b602490600060405191634a1406b160e11b8352820152fd5b60249060006040519163e602df0560e01b8352820152fd5b60408051637dc7a0d960e11b815233928101928352602083018890529082018690529081906060010390fd5b346102ef5760003660031901126102ef576000610120604051611670816121aa565b6060815260606020820152606060408201526060808201528260808201528260a0820152606060c08201528260e0820152826101008201520152604051906116b7826121aa565b6040516116c78161022981611edb565b82526040516116d98161022981611f7f565b60208301526040516116ee8161022981612006565b6040830152604051611703816102298161208d565b6060830152600a546080830152600b5460a0830152600c549067ffffffffffffffff82116118cc57506040519061174060208260051b01836121dd565b80825260208201600c6000527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c76000915b8383106118a757858560c0820152600d5460e0820152600e5461010082015260ff600f54161515610120820152604051602081526118086117f26117dc6117c685516101406020870152610160860190612222565b6020860151858203601f19016040870152612222565b6040850151848203601f19016060860152612222565b6060840151838203601f19016080850152612222565b608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061187a578680876101208b60e081015161010085015261010081015182850152015115156101408301520390f35b9091929394602080611898600193601f198682030187528951612222565b97019301930191939290611849565b6001602081926040516118be816102298189612114565b815201920192019190611771565b604190634e487b7160e01b6000525260246000fd5b346102ef5760003660031901126102ef576020600254604051908152f35b346102ef576020806003193601126102ef57813591826000526016825260406000209161192e8484541461255d565b8183019283549261194260ff8516156125a9565b60058201544210611ace5761195686612668565b81611ac6575b5015611a8c57506007906001948560ff19809616179055019261198e604051611989816102298189612114565b612884565b60405194855260408286015260009380546119a881611ea1565b948560408901528382169182600014611a465750506001146119ed575b7fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d286860387a1005b60009081528281209094505b838510611a3257505050508101606001817fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d284806119c5565b8054868601606001529382019381016119f9565b91509150869550606093507fbadbd87941bb6424ed4aa4719bf01a3319b64480e49f89018c718603239553d2969492501682840152151560051b820101919284806119c5565b60405162461bcd60e51b81529081018390526013602482015272141c9bdc1bdcd85b081b9bdd081c185cdcd959606a1b6044820152606490fd5b90508761195c565b60405162461bcd60e51b8152908101839052601060248201526f159bdd1a5b99c81b9bdd08195b99195960821b6044820152606490fd5b346102ef5760003660031901126102ef576020601154604051908152f35b346102ef5760403660031901126102ef57611b3c6122b8565b602435903315611baa576001600160a01b03169182156115f25750336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60405163e602df0560e01b8152600081850152602490fd5b346102ef5760003660031901126102ef576040516000600354611be481611ea1565b80845290600190818116908115611c695750600114611c0e575b610d7884610d64818603826121dd565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828410611c51575050508101602001610d6482611bfe565b80546020858701810191909152909301928101611c39565b60ff191660208087019190915292151560051b85019092019250610d649150839050611bfe565b346102ef5760203660031901126102ef57610f57903561275d565b346102ef5760603660031901126102ef57602435813560443567ffffffffffffffff81116102ef57611ce0903690850161229a565b50816000526018602052611cfb60ff604060002054166124b8565b80600052601960205260ff60406000205416611da3577f42e60114b8bc5803b43a4bcd35572ece9a5e2cabb79a838a02d56a4c53e8331392508060005260196020526040600020600160ff198254161790556016602052604060002081815414611d84575b506111ea601354604051938493846040919493926060820195825260208201520152565b6007611989611d9d926102296040518094819301612114565b83611d60565b60405162461bcd60e51b8152602081850152601060248201526f105b1c9958591e48195e1958dd5d195960821b6044820152606490fd5b90346102ef5760203660031901126102ef5780356000526016602052610d786040600020916007835493611e1c86611e158160018501612114565b03876121dd565b60028101549260ff60038301549183015416600583015491611e5c60018060a01b0360068601541694611e556040518098819301612114565b03866121dd565b611e78604051998a998a526101008060208c01528a0190612222565b95604089015260608801521515608087015260a086015260c085015283820360e0850152612222565b90600182811c92168015611ed1575b6020831014611ebb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611eb0565b60065460009291611eeb82611ea1565b80825291600190818116908115611f625750600114611f0957505050565b9192935060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000925b848410611f4a57505060209250010190565b80546020858501810191909152909301928101611f38565b915050602093945060ff929192191683830152151560051b010190565b60075460009291611f8f82611ea1565b80825291600190818116908115611f625750600114611fad57505050565b9192935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688916000925b848410611fee57505060209250010190565b80546020858501810191909152909301928101611fdc565b6008546000929161201682611ea1565b80825291600190818116908115611f62575060011461203457505050565b9192935060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3916000925b84841061207557505060209250010190565b80546020858501810191909152909301928101612063565b6009546000929161209d82611ea1565b80825291600190818116908115611f6257506001146120bb57505050565b9192935060096000527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af916000925b8484106120fc57505060209250010190565b805460208585018101919091529093019281016120ea565b906000929180549161212583611ea1565b9182825260019384811690816000146121875750600114612147575b50505050565b90919394506000526020928360002092846000945b838610612173575050505001019038808080612141565b80548587018301529401938590820161215c565b9294505050602093945060ff191683830152151560051b01019038808080612141565b610140810190811067ffffffffffffffff8211176121c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176121c757604052565b60005b8381106122125750506000910152565b8181015183820152602001612202565b9060209161223b815180928185528580860191016121ff565b601f01601f1916010190565b67ffffffffffffffff81116121c757601f01601f191660200190565b92919261226f82612247565b9161227d60405193846121dd565b8294818452818301116102ef578281602093846000960137010152565b9080601f830112156102ef578160206122b593359101612263565b90565b600435906001600160a01b03821682036102ef57565b602435906001600160a01b03821682036102ef57565b60a06003198201126102ef57600435916024359160443591606435916084359067ffffffffffffffff82116102ef576122b59160040161229a565b346102ef5760203660031901126102ef57602061032d600435600052601860205260ff6040600020541690565b60409060031901126102ef576004359060243580151581036102ef5790565b916001600160a01b03808416928315612430571692831561241757600090838252816020526040822054908382106123e5575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b9190820180921161245657565b634e487b7160e01b600052601160045260246000fd5b1561247357565b60405162461bcd60e51b815260206004820152601960248201527f4475726174696f6e206d75737420626520706f736974697665000000000000006044820152606490fd5b156124bf57565b60405162461bcd60e51b815260206004820152601360248201527210da185a5b881b9bdd081cdd5c1c1bdc9d1959606a1b6044820152606490fd5b60001981146124565760010190565b90601f811161251757505050565b600091825260208220906020601f850160051c83019410612553575b601f0160051c01915b82811061254857505050565b81815560010161253c565b9092508290612533565b1561256457565b60405162461bcd60e51b815260206004820152601760248201527f50726f706f73616c20646f6573206e6f742065786973740000000000000000006044820152606490fd5b156125b057565b60405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c20616c7265616479206578656375746564000000000000006044820152606490fd5b600260055414612606576002600555565b604051633ee5aeb560e01b8152600490fd5b1561261f57565b60405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481cde5b98d95960921b6044820152606490fd5b8181029291811591840414171561245657565b9081600052601660205261268360406000209283541461255d565b60036002830154920154916126988382612449565b60646126a960025460105490612655565b041115928391826126bb575b50509190565b11905038806126b5565b156126cc57565b60405162461bcd60e51b815260206004820152601860248201527f4f7065726174696f6e20646f6573206e6f7420657869737400000000000000006044820152606490fd5b1561271857565b60405162461bcd60e51b815260206004820152601a60248201527f4f7065726174696f6e20616c72656164792065786563757465640000000000006044820152606490fd5b6000526017602052604060002090612777825415156126c5565b60026001830154920154916126988382612449565b6127a5600091808352601660205260408320541461255d565b805b600481106127b6575050600190565b6127d66127c2826127ed565b600052601860205260ff6040600020541690565b156127e9576127e4906124fa565b6127a7565b5090565b80156128575760018114612851576002811461284b576003146128455760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6d0c2d2dc40d2dcc8caf606b1b6044820152606490fd5b61a4b190565b50603890565b50608990565b50600190565b91908260409103126102ef5781516001600160a01b03811681036102ef5760209092015190565b80518101906020908082840193604091829103126102ef57818301516001600160e01b0319811692908390036102ef57818101519067ffffffffffffffff82116102ef57019184603f840112156102ef5783830151926128e384612247565b936128f0845195866121dd565b808552858501968482840101116102ef57868461290d93016121ff565b63a9059cbb60e01b8103612942575050916129309183612940945101019061285d565b906001600160a01b03163361236b565b565b909391906340c10f1960e01b81036129d95750908282612965935101019061285d565b6001600160a01b039091169283156129c25791816000936129a97fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254612449565b60025585855284835280852082815401905551908152a3565b5163ec442f0560e01b815260006004820152602490fd5b939493632770a7eb60e21b03612aa7579082826129f9935101019061285d565b916001600160a01b03909116908115612a8f576000928284528382528584205495818710612a615781859697857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9697528785520381872055816002540360025551908152a3565b5163391434e360e21b81526001600160a01b0384166004820152602481018790526044810191909152606490fd5b8451634b637e8f60e11b815260006004820152602490fd5b845162461bcd60e51b81526004810184905260116024820152702ab735b737bbb71037b832b930ba34b7b760791b6044820152606490fdfea26469706673582212203d9c2e9bde7fe9a6fce04efdc03dfd744b785d973d2ed5fa6b725a17cfbf8e6164736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}