@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
1,042 lines • 103 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MasterDAOFactory",
"sourceName": "contracts/core/MasterDAOFactory.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "daoMemberStorageProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedDAOMemberStorage",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "daoPanelVotingProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedDAOPanelVoting",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "daoParameterStorageProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedDAOParameterStorage",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "daoRegistryProxy_",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "daoCreator",
"type": "address"
},
{
"internalType": "address",
"name": "votingToken",
"type": "address"
},
{
"internalType": "string",
"name": "daoURI",
"type": "string"
},
{
"internalType": "bytes32",
"name": "deploymentSalt",
"type": "bytes32"
},
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "initialParameters",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "string",
"name": "componentName",
"type": "string"
},
{
"internalType": "address",
"name": "componentImplementation",
"type": "address"
}
],
"internalType": "struct DAOReplacements[]",
"name": "daoReplacements",
"type": "tuple[]"
}
],
"indexed": false,
"internalType": "struct DAOConstructorParameters",
"name": "params_",
"type": "tuple"
}
],
"name": "DeployedDAORegistry",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "daoVaultProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedDAOVault",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "votingAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "votingToken",
"type": "address"
},
{
"indexed": false,
"internalType": "string",
"name": "panelName",
"type": "string"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedDAOVoting",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "permissionManagerProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedPermissionManager",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "votingFactoryProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedVotingFactory",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "votingRegistryProxy_",
"type": "address"
},
{
"indexed": false,
"internalType": "contract DAORegistry",
"name": "daoRegistry",
"type": "address"
}
],
"name": "DeployedVotingRegistry",
"type": "event"
},
{
"inputs": [],
"name": "BASE_RELAY_RECIPIENT_STORAGE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "moduleName",
"type": "string"
},
{
"internalType": "address",
"name": "moduleAddress",
"type": "address"
},
{
"internalType": "string",
"name": "connectorRoleName",
"type": "string"
},
{
"internalType": "enum ModuleAdditionType",
"name": "moduleType",
"type": "uint8"
},
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "constitutionParameters",
"type": "tuple[]"
},
{
"internalType": "string",
"name": "votingName",
"type": "string"
},
{
"components": [
{
"components": [
{
"internalType": "string",
"name": "votingSituationName",
"type": "string"
},
{
"components": [
{
"internalType": "uint256",
"name": "votingPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "vetoPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proposalExecutionPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredMajority",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredVetoQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "votingType",
"type": "uint256"
},
{
"internalType": "string",
"name": "votingTarget",
"type": "string"
},
{
"internalType": "uint256",
"name": "votingMinAmount",
"type": "uint256"
}
],
"internalType": "struct IDAOVoting.DAOVotingValues",
"name": "votingValues",
"type": "tuple"
}
],
"internalType": "struct IDAOVoting.InitialSituation",
"name": "initialSituation",
"type": "tuple"
},
{
"internalType": "string",
"name": "externalLink",
"type": "string"
}
],
"internalType": "struct IDAOVoting.ExtendedSituation",
"name": "situation",
"type": "tuple"
},
{
"internalType": "address",
"name": "vetoGroupSource",
"type": "address"
},
{
"internalType": "bytes",
"name": "initCallData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
}
],
"internalType": "struct DAOModuleContractorParameters",
"name": "params_",
"type": "tuple"
}
],
"name": "addModule",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "contract DAOMemberStorage",
"name": "linkedMemberStorage",
"type": "address"
}
],
"internalType": "struct IPermissionManager.VetoGroup[]",
"name": "vetoGroups_",
"type": "tuple[]"
}
],
"name": "configureVetoGroups",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
},
{
"components": [
{
"components": [
{
"internalType": "string",
"name": "votingSituationName",
"type": "string"
},
{
"components": [
{
"internalType": "uint256",
"name": "votingPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "vetoPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proposalExecutionPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredMajority",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredVetoQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "votingType",
"type": "uint256"
},
{
"internalType": "string",
"name": "votingTarget",
"type": "string"
},
{
"internalType": "uint256",
"name": "votingMinAmount",
"type": "uint256"
}
],
"internalType": "struct IDAOVoting.DAOVotingValues",
"name": "votingValues",
"type": "tuple"
}
],
"internalType": "struct IDAOVoting.InitialSituation",
"name": "initialSituation",
"type": "tuple"
},
{
"internalType": "string",
"name": "externalLink",
"type": "string"
}
],
"internalType": "struct IDAOVoting.ExtendedSituation[]",
"name": "situations_",
"type": "tuple[]"
}
],
"name": "configureVotingSituations",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "contractsRegistry",
"outputs": [
{
"internalType": "contract MasterContractsRegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "daoCreator",
"type": "address"
},
{
"internalType": "address",
"name": "votingToken",
"type": "address"
},
{
"internalType": "string",
"name": "daoURI",
"type": "string"
},
{
"internalType": "bytes32",
"name": "deploymentSalt",
"type": "bytes32"
},
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "initialParameters",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "string",
"name": "componentName",
"type": "string"
},
{
"internalType": "address",
"name": "componentImplementation",
"type": "address"
}
],
"internalType": "struct DAOReplacements[]",
"name": "daoReplacements",
"type": "tuple[]"
}
],
"internalType": "struct DAOConstructorParameters",
"name": "params_",
"type": "tuple"
}
],
"name": "deployDAO",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "panelName",
"type": "string"
},
{
"internalType": "address",
"name": "votingToken",
"type": "address"
},
{
"components": [
{
"components": [
{
"internalType": "string",
"name": "votingSituationName",
"type": "string"
},
{
"components": [
{
"internalType": "uint256",
"name": "votingPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "vetoPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "proposalExecutionPeriod",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredMajority",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requiredVetoQuorum",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "votingType",
"type": "uint256"
},
{
"internalType": "string",
"name": "votingTarget",
"type": "string"
},
{
"internalType": "uint256",
"name": "votingMinAmount",
"type": "uint256"
}
],
"internalType": "struct IDAOVoting.DAOVotingValues",
"name": "votingValues",
"type": "tuple"
}
],
"internalType": "struct IDAOVoting.InitialSituation",
"name": "initialSituation",
"type": "tuple"
},
{
"internalType": "string",
"name": "externalLink",
"type": "string"
}
],
"internalType": "struct IDAOVoting.ExtendedSituation[]",
"name": "situations",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "initialParameters",
"type": "tuple[]"
},
{
"internalType": "address[]",
"name": "initialMembers",
"type": "address[]"
}
],
"internalType": "struct DAOPanelConstructorParameters",
"name": "daoPanelParams_",
"type": "tuple"
}
],
"name": "deployDAOPanel",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "contract DAOMemberStorage",
"name": "linkedMemberStorage",
"type": "address"
}
],
"internalType": "struct IPermissionManager.VetoGroup[]",
"name": "vetoGroups_",
"type": "tuple[]"
}
],
"name": "finishDAOSetup",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getInjector",
"outputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTrustedForwarder",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isDAOVetoConfigured",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isDAOVotingConfigured",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "forwarder_",
"type": "address"
}
],
"name": "isTrustedForwarder",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "masterAccess",
"outputs": [
{
"internalType": "contract MasterAccessManagement",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "masterDAORegistry",
"outputs": [
{
"internalType": "contract MasterDAORegistry",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt_",
"type": "bytes32"
}
],
"name": "predictDAOAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "daoAddresses_",
"type": "address[]"
}
],
"name": "restoreRegistryPools",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract DAORegistry",
"name": "dao_",
"type": "address"
}
],
"name": "revokeDAOCreatorRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registryAddress_",
"type": "address"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "setDependencies",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"name": "setInjector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "forwarder_",
"type": "address"
}
],
"name": "setTrustedForwarder",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "versionRecipient",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x6080806040523461001657614894908161001c8239f35b600080fdfe608060405260043610156200001357600080fd5b60003560e01c80630d9d0bf514620001b55780631797ac1414620001af57806319b477ce14620001a957806328e32a6d14620001a357806338894ace146200019d5780633e3b5b191462000197578063486ff0cd14620001915780634cbd1467146200018b57806354fd4d501462000185578063572b6c05146200017f5780635d0d8e7314620001795780636913045114620001735780637dc9e2ef146200016d5780637e6d0f3a14620001675780637ef6af5e14620001615780638cb941cc146200015b57806395788db81462000155578063ce1b815f146200014f578063d247fe0a1462000149578063d98d0c7e1462000143578063da742228146200013d578063e708953414620001375763fb76dca5146200013157600080fd5b62001f39565b62001f0e565b62001eb0565b62001e85565b62001e3f565b62001e06565b62001d32565b62001cf4565b62001cae565b62001c82565b62001b53565b6200171c565b620015ad565b62001562565b62001515565b620014ea565b6200149e565b62001403565b620012b3565b62000ded565b62000d02565b62000b50565b620001d2565b6001600160a01b03811603620001cd57565b600080fd5b34620001cd5760031960403682018113620001cd576004803590620001f782620001bb565b6024356001600160401b038111620001cd57610140818301958236030112620001cd576200022f62000228620020de565b84620030c5565b6200023d6064820162002130565b62000248816200211f565b80620007e757506001600160a01b0383166200026586806200213e565b91620002746024850162002173565b90803b15620001cd57620002a293600080948a5196879586948593635fadb00b60e11b85528c850162002208565b03925af180156200053957620007d0575b505b6001600160a01b03928316620002cc86806200213e565b9690823b15620001cd57865190631adad8cf60e01b82528180620002f760009b8c948a840162002233565b038183875af180156200053957620007b9575b506200031781806200213e565b908751633581777360e01b9182825281806200033a60209687948c840162002233565b0381885afa90811562000539578a9162000797575b5061010486018a8a6200036383886200213e565b905062000748575b516309a06df560e41b81529150849050818981895afa90811562000539578b918a91839162000726575b501660448801620003a781886200213e565b9050620006a7575b50620003bb8362003256565b6200063a575b60e488018a620003d18262002173565b16620005b4575b505050506200040482620003eb62002367565b8a518093819263065ab60960e41b83528b830162001488565b0381885afa8015620005395788918b9162000592575b5016896200042c608488018662002395565b9092803b156200058e576200045893838b8e519687958694859363cabc429d60e01b85528401620024d7565b03925af18015620005395762000577575b5060a48501906200047b82856200213e565b905062000486578980f35b620004ad94620004988493866200213e565b928b519788948593849384528c840162002233565b03915afa95861562000539578896620004d79460c493899262000543575b505016930190620024ea565b91813b156200053f5783620004fe95518096819582946238399160e11b8452830162002515565b03925af1801562000539576200051b575b80808080808080808980f35b806200052b620005329262000960565b80620013f7565b386200050f565b620021fc565b8380fd5b620005679250803d106200056f575b6200055e8183620009ce565b81019062002246565b3880620004cb565b503d62000552565b806200052b620005879262000960565b3862000469565b8280fd5b620005ad9150843d86116200056f576200055e8183620009ce565b386200041a565b620005c3620005cf9162002173565b6001600160a01b031690565b90803b156200058e578b51630423b79f60e01b81526001600160a01b039485168b8201908152929094166020830152839182908490829060400103925af18015620005395762000623575b898180620003d8565b806200052b620006339262000960565b386200061a565b6200064686806200213e565b9290823b15620006a3578c5163760c1fe360e11b815293849182916200066f91838f0162002233565b038183855af191821562000539578c926200068c575b50620003c1565b806200052b6200069c9262000960565b3862000685565b5080fd5b620006cc919250620006be620006c691886200213e565b3691620016c2565b62003233565b908b813b1562000723578b5163ee2f6ce560e01b81529283908190620006f69087838f01620022f0565b038183855af191821562000539578c9215620003af57806200052b6200071c9262000960565b38620003af565b80fd5b620007419150863d88116200056f576200055e8183620009ce565b3862000395565b6200076c82916200075e6200078d958a6200213e565b92909151809381936200225e565b039082865af16200077c6200226c565b62000786620022a1565b91620031b2565b50388a8a6200036b565b620007b29150833d85116200056f576200055e8183620009ce565b386200034f565b806200052b620007c99262000960565b386200030a565b806200052b620007e09262000960565b38620002b3565b620007f2816200211f565b600181036200087e57506001600160a01b0383166200081286806200213e565b91620008216024850162002173565b90803b15620001cd576200084f93600080948a5196879586948593631c1c109f60e31b85528c850162002208565b03925af18015620005395762000867575b50620002b5565b806200052b620008779262000960565b3862000860565b806200088c6002926200211f565b03620008e5576001600160a01b038316620008a886806200213e565b91620008b76024850162002173565b90803b15620001cd576200084f93600080948a5196879586948593631476b60b60e21b85528c850162002208565b6001600160a01b038316620008fb86806200213e565b91906200090b6024850162002173565b91620009166200217f565b813b15620001cd576000866200084f6101249383978b8e519a8b998a98899763592a240f60e11b89520135928701620021ba565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116200097457604052565b6200094a565b604081019081106001600160401b038211176200097457604052565b606081019081106001600160401b038211176200097457604052565b602081019081106001600160401b038211176200097457604052565b90601f801991011681019081106001600160401b038211176200097457604052565b6040519061012082018281106001600160401b038211176200097457604052565b6040519060a082018281106001600160401b038211176200097457604052565b6040519062000a4082620009b2565b565b9062000a406040519283620009ce565b6001600160401b038111620009745760051b60200190565b359062000a4082620001bb565b906040916040600319820112620001cd5760043562000a9681620001bb565b926024356001600160401b038111620001cd5782602382011215620001cd5780600401359262000ac68462000a52565b9362000ad66040519586620009ce565b8085526020916024602087019260061b85010193818511620001cd57602401915b84831062000b085750505050505090565b8583830312620001cd57838691825162000b22816200097a565b853562000b2f81620001bb565b81528286013562000b4081620001bb565b8382015281520192019162000af7565b34620001cd5762000b613662000a77565b9062000b7762000b70620020de565b82620030c5565b6001600160a01b03908116600081815260036020526040902090919062000bb49062000bae9062000baa905b5460ff1690565b1590565b620026fd565b6040516309a06df560e41b8152602081600481865afa908115620005395760009162000c6a575b5016803b15620001cd57604051634b5afc9b60e11b815292600091849182908490829062000c0d906004830162002770565b03925af1908115620005395762000c519262000c449262000c53575b506001600160a01b0316600090815260036020526040902090565b805460ff19166001179055565b005b806200052b62000c639262000960565b3862000c29565b62000c87915060203d6020116200056f576200055e8183620009ce565b3862000bdb565b9080601f83011215620001cd57602090823562000cab8162000a52565b9362000cbb6040519586620009ce565b81855260208086019260051b820101928311620001cd57602001905b82821062000ce6575050505090565b838091833562000cf681620001bb565b81520191019062000cd7565b34620001cd576020366003190112620001cd57600480356001600160401b038111620001cd5762000d3890369060040162000c8e565b9062000d4d62000d47620027c9565b62003342565b60005b825181101562000c51576002546001600160a01b03169062000d8462000d77828662002803565b516001600160a01b031690565b91803b15620001cd57604051631a8a4cab60e31b81526001600160a01b03909316848401908152600091849182908490829060200103925af1918215620005395760019262000dd6575b500162000d50565b806200052b62000de69262000960565b3862000dce565b34620001cd5760206003198181360112620001cd5760049081356001600160401b038111620001cd5760c0818401928236030112620001cd5762000e3560648201356200344c565b60025490939062000e4f906001600160a01b0316620005c3565b62000e5e60a484018562002395565b929094823b15620001cd576040958651809463be13809f60e01b8252818a8162000e9160009a8b9788948b8501620028b7565b03925af1928315620005395762000f02936200129c575b5062000ebe8762000eb8620028db565b62003577565b600254909590899062000eda906001600160a01b0316620005c3565b62000ee462002905565b8951634c7a051160e11b815296879291839182918e8a840162002939565b03915afa9384156200053957859462001278575b506001600160a01b038881169690949062000f3560448401856200213e565b62000f4293919362002b00565b908a3b1562001274578993929162000f70918d51968795869563ab22f0eb60e01b875230908d88016200295d565b0381838b5af1801562000539576200125d575b5060025462000f9b906001600160a01b0316620005c3565b803b156200120c578751631a8a4cab60e31b81526001600160a01b038a168582019081529091879183919082908490829060200103925af18015620005395762001246575b5062000fec866200364e565b6200102c60848562001021620010056024860162002173565b6200100f62002367565b62001019620029b2565b918c6200383f565b501692018362002395565b9190813b1562001242579186916200105a93838b5180968195829463cabc429d60e01b84528b8401620024d7565b03925af1801562000539576200122b575b5062001076620028db565b853b15620012275784886200109f9289519384928392631476b60b60e21b8452888401620029de565b0381838a5af18015620005395762001210575b5073__$ea61bb87e9f9642833743a8678300e4b4c$__620010d38262002173565b90803b156200120c57875163f6589b1760e01b81526001600160a01b03808b168683019081529316602084015291869183918290819060400103915af48015620005395786927fb2840e7d03466703b6b988ebe97e98753b3d36ba785926cb99076d7692407a43926200115392620011f5575b5088519182918262002a2f565b0390a286855180926309a06df560e41b825281875afa9081156200053957620011cf977f2644cad9fcdc4b01c2a2ce557ac1e7dca97090b51f5aa2f09a2e2ee0feaf76219492620011d3575b505084516001600160a01b039490941684521691602090a2516001600160a01b0390911681529081906020820190565b0390f35b620011ed9250803d106200056f576200055e8183620009ce565b38806200119f565b806200052b620012059262000960565b3862001146565b8580fd5b806200052b620012209262000960565b38620010b2565b8480fd5b806200052b6200123b9262000960565b386200106b565b8680fd5b806200052b620012569262000960565b3862000fe0565b806200052b6200126d9262000960565b3862000f83565b8980fd5b62001294919450893d8b116200056f576200055e8183620009ce565b923862000f16565b806200052b620012ac9262000960565b3862000ea8565b34620001cd57602080600319360112620001cd5762001328906103ed620012dc82820162000a42565b908082526200445b83830139600254829062001301906001600160a01b0316620005c3565b6200130b620028db565b9060405180809781946335b41c4b60e11b83526004830162001488565b03915afa9182156200053957620013ad620013b9936200139992620011cf96600092620013d3575b50620013a06200135f620020c9565b926200137360405194859285840162002939565b039262001389601f1994858101835282620009ce565b6040519586938401809862002ae7565b9062002ae7565b03908101835282620009ce565b51902060043562003ac8565b6040516001600160a01b0390911681529081906020820190565b81620013ef9293503d84116200056f576200055e8183620009ce565b903862001350565b6000910312620001cd57565b34620001cd576000366003190112620001cd5760008051602062004848833981519152546040516001600160a01b039091168152602090f35b60005b838110620014505750506000910152565b81810151838201526020016200143f565b906020916200147c815180928185528580860191016200143c565b601f01601f1916010190565b9060206200149b92818152019062001461565b90565b34620001cd576000366003190112620001cd57620011cf604051620014c3816200097a565b60058152640322e302e360dc1b602082015260405191829160208352602083019062001461565b34620001cd576000366003190112620001cd576001546040516001600160a01b039091168152602090f35b34620001cd576000366003190112620001cd57620011cf6040516200153a816200097a565b6006815265076312e342e360d41b602082015260405191829160208352602083019062001461565b34620001cd576020366003190112620001cd5760206004356200158581620001bb565b60008051602062004868833981519152546040516001600160a01b0392831691909216148152f35b34620001cd576020366003190112620001cd576020600435620015d081620001bb565b620015de62000b70620020de565b6040516309a06df560e41b81526001600160a01b039290918290600490829086165afa908115620005395760009162001682575b50166200161e62003ae8565b620016326200162c62002bf8565b62003b2d565b823b15620001cd57620016609260009283604051809681958294634f0d84e360e01b845260048401620022f0565b03925af1801562000539576200167257005b806200052b62000c519262000960565b6200169f915060203d6020116200056f576200055e8183620009ce565b3862001612565b6001600160401b0381116200097457601f01601f191660200190565b929192620016d082620016a6565b91620016e06040519384620009ce565b829481845281830111620001cd578281602093846000960137010152565b9080601f83011215620001cd578160206200149b93359101620016c2565b34620001cd576040366003190112620001cd576004356200173d81620001bb565b6024356001600160401b038111620001cd576200175f903690600401620016fe565b506200176a62003b96565b600080546001600160a01b0319166001600160a01b0392831690811782559091906200179690620005c3565b9060405180926309a06df560e41b825281600460209586935afa9081156200053957620017eb918391869162001891575b501660018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155565b8254600490839062001806906001600160a01b0316620005c3565b6040516335000d2960e01b815292839182905afa9081156200053957620018549385926200186f575b50501660018060a01b03166bffffffffffffffffffffffff60a01b6002541617600255565b6200186c336000805160206200484883398151915255565b80f35b620018899250803d106200056f576200055e8183620009ce565b38806200182f565b620018ac9150853d87116200056f576200055e8183620009ce565b38620017c7565b9080601f83011215620001cd57813591602091620018d18462000a52565b936040620018e281519687620009ce565b818652848087019260051b85010193838511620001cd57858101925b85841062001910575050505050505090565b6001600160401b038435818111620001cd57830191601f198581858a030112620001cd5785519062001942826200097a565b8a850135848111620001cd578501908781838c030112620001cd578751916200196b836200097a565b8c810135868111620001cd578b8e6200198792840101620016fe565b83528881013590868211620001cd57016101208092828d030112620001cd57620019b0620009f0565b918d82013583528d8a830135908401526060808301358b850152608090818401359085015260a090818401359085015260c090818401359085015260e0830135908401526101009182810135888111620001cd578f8e9062001a1592840101620016fe565b60e08501520135908201528b820152815285840135928311620001cd5762001a45888b80969581960101620016fe565b83820152815201930192620018fe565b35906006821015620001cd57565b81601f82011215620001cd5780359160209162001a808462000a52565b9360409262001a936040519687620009ce565b818652848087019260051b84010193818511620001cd57858401925b85841062001ac1575050505050505090565b6001600160401b03908435828111620001cd5786019060609283601f198488030112620001cd5784519062001af68262000996565b8a840135818111620001cd57878c62001b1292870101620016fe565b825285840135908111620001cd578a948462001b38898862001b439581990101620016fe565b868501520162001a55565b8582015281520193019262001aaf565b34620001cd57600319604036820112620001cd57600480359162001b7783620001bb565b602435926001600160401b0391828511620001cd5760a0908536030112620001cd5762001ba362000a11565b9184840135818111620001cd5762001bc190853691880101620016fe565b835262001bd16024860162000a6a565b60208401526044850135818111620001cd5762001bf490853691880101620018b3565b60408401526064850135818111620001cd5762001c179085369188010162001a63565b60608401526084850135908111620001cd57620011cf9462001c4d9462001c42923692010162000c8e565b608083015262002c33565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201529081906080820190565b34620001cd576000366003190112620001cd576020604051600080516020620048688339815191528152f35b34620001cd576020366003190112620001cd5760043562001ccf81620001bb565b60018060a01b03166000526003602052602060ff604060002054166040519015158152f35b34620001cd576020366003190112620001cd5760043562001d1581620001bb565b62001d1f62003b96565b6000805160206200484883398151915255005b34620001cd57602062001d5262001d493662000a77565b8192916200260b565b62001d5d8162002b24565b6040516309a06df560e41b81526001600160a01b039290918290600490829086165afa908115620005395760009162001de2575b501662001db362001da162000a31565b62001dab62002e7e565b815262003d5a565b90803b15620001cd57604051634f0d84e360e01b815290600090829081838162001660883060048401620022f0565b62001dff915060203d6020116200056f576200055e8183620009ce565b3862001d91565b34620001cd576000366003190112620001cd5760008051602062004868833981519152546040516001600160a01b039091168152602090f35b34620001cd576020366003190112620001cd5760043562001e6081620001bb565b60018060a01b03166000526004602052602060ff604060002054166040519015158152f35b34620001cd576000366003190112620001cd576000546040516001600160a01b039091168152602090f35b34620001cd576020366003190112620001cd5760043562001ed181620001bb565b62001edf62000d47620027c9565b6000805160206200486883398151915280546001600160a01b0319166001600160a01b03909216919091179055005b34620001cd576000366003190112620001cd576002546040516001600160a01b039091168152602090f35b34620001cd57604080600319360112620001cd576004906004359062001f5f82620001bb565b6024356001600160401b038111620001cd5762001f81903690600401620018b3565b62001f8f62000228620020de565b6001600160a01b03928316600081815260046020526040902090939062001fc69062001fc09062000baa9062000ba3565b62002ea2565b62001ff1602062001fd662002367565b6040518093819263db590a6160e01b83526004830162001488565b0381885afa9081156200053957600091620020a5575b50169060005b8151811015620020825762002023818362002803565b5190833b15620001cd5760006200204c928651809481926238399160e11b83528b830162002f21565b038183885af191821562000539576001926200206b575b50016200200d565b806200052b6200207b9262000960565b3862002063565b6001600160a01b038516600090815260046020526040902062000c519062000c44565b620020c2915060203d6020116200056f576200055e8183620009ce565b3862002007565b60405190620020d882620009b2565b60008252565b60405190620020ed826200097a565b600d82526c434f4e4649475552455f44414f60981b6020830152565b634e487b7160e01b600052602160045260246000fd5b600411156200212a57565b62002109565b356004811015620001cd5790565b903590601e1981360301821215620001cd57018035906001600160401b038211620001cd57602001918136038313620001cd57565b356200149b81620001bb565b6040516200218d81620009b2565b60008152906000368137565b908060209392818452848401376000828201840152601f01601f1916010190565b916200149b95939491620021d79160808552608085019162002199565b60208301949094526001600160a01b0316604082015280830360609091015262001461565b6040513d6000823e3d90fd5b91602091620022239195949560408552604085019162002199565b6001600160a01b03909416910152565b9160206200149b93818152019162002199565b90816020910312620001cd57516200149b81620001bb565b908092918237016000815290565b3d156200229c573d906200228082620016a6565b91620022906040519384620009ce565b82523d6000602084013e565b606090565b60405190620022b08262000996565b602b82526a34b7b7103330b4b632b21760a91b6040837f5b5147444b2d3030323030325d2d4d6f64756c6520696e697469616c697a617460208201520152565b90604082019060018060a01b0316825260206040602084015283518092526060830192602060608460051b8301019501936000915b848310620023365750505050505090565b909192939495848062002356600193605f198682030187528a5162001461565b980193019301919493929062002325565b6040519062002376826200097a565b601082526f2220a7902a37b5b2b7102437b63232b960811b6020830152565b903590601e1981360301821215620001cd57018035906001600160401b038211620001cd57602001918160051b36038313620001cd57565b9035601e1982360301811215620001cd5701602081359101916001600160401b038211620001cd578136038313620001cd57565b9060068210156200212a5752565b90918092808252602080920191808260051b8601019484600080925b8584106200243e57505050505050505090565b9091929394959697601f198282030188528835605e19853603018112156200053f5786600192620024c68783940191620024ad620024916060620024838680620023cd565b909180865285019162002199565b6200249f86860186620023cd565b908483038886015262002199565b92620024bd604080920162001a55565b91019062002401565b9a019801969594019291906200242b565b9160206200149b9381815201916200240f565b903590603e1981360301821215620001cd570190565b9035603e1982360301811215620001cd570190565b9060209182815262002528828062002500565b92604081830152620025516200253f8580620023cd565b6040606086015260a085019162002199565b92818501359161011e1986360301831215620001cd576200149b95620025f8930194605f19858203016080860152620025e461012087358352838801358484015260408801356040840152606088013560608401526080880135608084015260a088013560a084015260c088013560c0840152620025d360e0890189620023cd565b90918060e086015284019162002199565b9561010080910135910152810190620023cd565b916040601f198286030191015262002199565b6200261962000b70620020de565b6001600160a01b0390811660008181526003602052604090209091906200264a9062000bae9062000baa9062000ba3565b6040516309a06df560e41b8152602081600481865afa9081156200053957600091620026d9575b5016803b15620001cd57604051634b5afc9b60e11b8152926000918491829084908290620026a3906004830162002770565b03925af1908115620005395762000a409262000c449262000c5357506001600160a01b0316600090815260036020526040902090565b620026f6915060203d6020116200056f576200055e8183620009ce565b3862002671565b156200270557565b60405162461bcd60e51b815260206004820152603e60248201527f5b5147444b2d3030323030335d2d5468652044414f207665746f2067726f757060448201527f732068617320616c7265616479206265656e20636f6e666967757265642e00006064820152608490fd5b60208082019080835283518092528060408094019401926000905b8382106200279b57505050505090565b845180516001600160a01b03908116885290840151168684015294850194938201936001909101906200278b565b60405190620027d8826200097a565b600682526543524541544560d01b6020830152565b634e487b7160e01b600052603260045260246000fd5b8051821015620028185760209160051b010190565b620027ed565b9082818152602080910193818360051b82010194846000925b85841062002849575050505050505090565b909192939495968580600192601f198582030187526200286a8b8762002500565b9082806200288d60406200287f8680620023cd565b909180875286019162002199565b9301356200289b81620001bb565b868060a01b031691015299019401940192959493919062002837565b6001600160a01b0390911681526040602082018190526200149b939101916200281e565b60405190620028ea826200097a565b600c82526b44414f5f524547495354525960a01b6020830152565b6040519062002914826200097a565b60168252752220a7afa822a926a4a9a9a4a7a72fa6a0a720a3a2a960511b6020830152565b6001600160a01b0390911681526040602082018190526200149b9291019062001461565b9490620029a39362002994916200149b98969460018060a01b03809216895216602088015260a0604088015260a087019062001461565b91858303606087015262002199565b91608081840391015262001461565b60405190620029c1826200097a565b600e82526d47454e4552414c5f564f54494e4760901b6020830152565b906200222360209194939460408452604084019062001461565b9035601e1982360301811215620001cd5701602081359101916001600160401b038211620001cd578160051b36038313620001cd57565b9060c06200149b9260208152823562002a4881620001bb565b6001600160a01b0390811660208381019190915284013562002a6a81620001bb565b16604082015262002a9462002a836040850185620023cd565b84606085015260e084019162002199565b906060840135608082015262002ad762002acb62002ab66080870187620029f8565b601f19858703810160a087015295916200240f565b9460a0810190620029f8565b939