@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
435 lines (434 loc) • 34.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "AirDropV2",
"sourceName": "contracts/presets/AirDropV2.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address",
"name": "rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"indexed": false,
"internalType": "struct ACampaignAirDrop.Campaign",
"name": "campaign",
"type": "tuple"
}
],
"name": "CampaignSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "RewardClaimed",
"type": "event"
},
{
"inputs": [],
"name": "AIR_DROP_V2_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "votingContract_",
"type": "address"
}
],
"name": "__AirDropV2_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "campaignCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
}
],
"name": "campaigns",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address",
"name": "rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "checkPermission",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "address",
"name": "account_",
"type": "address"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "claimReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "rewardToken_",
"type": "address"
},
{
"internalType": "uint256",
"name": "rewardAmount_",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "merkleRoot_",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "startTimestamp_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp_",
"type": "uint256"
}
],
"name": "createCampaign",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getInjector",
"outputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResource",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isUserClaimed",
"outputs": [
{
"internalType": "bool",
"name": "isClaimed",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "leaf_",
"type": "bytes32"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "isWhitelisted",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "campaignId_",
"type": "uint256"
},
{
"internalType": "address",
"name": "user_",
"type": "address"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "isWhitelistedUser",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"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": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votingContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506118e6806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063743ede761161009757806396826c531161006657806396826c5314610280578063bb65dc83146102ae578063c1fc006a146102d5578063d8ad4e1c146102ee57600080fd5b8063743ede76146102345780638cb941cc14610247578063921473821461025a57806395ab76341461026d57600080fd5b80633e3b5b19116100d35780633e3b5b19146101da57806369130451146101f85780636a25f2691461020b5780637274e30d1461021e57600080fd5b806301ffc9a714610105578063141961bc1461012e5780633778b64d1461018e5780633917caf2146101c5575b600080fd5b610118610113366004610c5c565b610301565b6040516101259190610c87565b60405180910390f35b61017c61013c366004610ca6565b60016020819052600091825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919086565b60405161012596959493929190610ce7565b6101b86040518060400160405280600b81526020016a20a4a92fa22927a82fab1960a91b81525081565b6040516101259190610d8c565b6101d86101d3366004610e03565b610353565b005b600080516020611891833981519152545b6040516101259190610e71565b6101d8610206366004610f7a565b610365565b610118610219366004610e03565b610387565b61022760005481565b6040516101259190610fd2565b610118610242366004610fe0565b6103c6565b6101d8610255366004611016565b6103e6565b6101d8610268366004611016565b610407565b61022761027b366004611037565b6104f9565b61011861028e3660046110af565b600260209081526000928352604080842090915290825290205460ff1681565b60408051808201909152600b81526a20a4a92fa22927a82fab1960a91b60208201526101b8565b6003546101eb906201000090046001600160a01b031681565b6101186102fc36600461112d565b610543565b60006001600160e01b031982166363c8929f60e01b148061033257506001600160e01b031982166336e447a160e21b145b8061034d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61035f8484848461054d565b50505050565b61036d610721565b6103833360008051602061189183398151915255565b5050565b60006103bb858560405160200161039e91906111b1565b6040516020818303038152906040528051906020012085856103c6565b90505b949350505050565b6000848152600160205260408120600501546103bb908490849087610775565b6103ee610721565b6104048160008051602061189183398151915255565b50565b600354610100900460ff16158080156104275750600354600160ff909116105b806104415750303b158015610441575060035460ff166001145b6104665760405162461bcd60e51b815260040161045d9061120e565b60405180910390fd5b6003805460ff191660011790558015610489576003805461ff0019166101001790555b6003805462010000600160b01b031916620100006001600160a01b038516021790558015610383576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104ed90600190611232565b60405180910390a15050565b6003546000906201000090046001600160a01b0316331461052c5760405162461bcd60e51b815260040161045d90611288565b610539868685858861078d565b9695505050505050565b60015b9392505050565b60008481526001602052604081205485910361057b5760405162461bcd60e51b815260040161045d906112dd565b60008581526002602090815260408083206001600160a01b03881684529091529020548590859060ff16156105c25760405162461bcd60e51b815260040161045d90611336565b868686866105d284848484610387565b6105ee5760405162461bcd60e51b815260040161045d9061138b565b60008b81526001602052604090206003015442101561061f5760405162461bcd60e51b815260040161045d906113e4565b60008b8152600160205260409020600401544211156106505760405162461bcd60e51b815260040161045d9061143c565b6001600260008d815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600160008d815260200190815260200160002090506106dc8160010160009054906101000a90046001600160a01b03168c83600201546107be565b80546040516001600160a01b038d1691907f5dd59f4285b36241394b73f8f7ae03d0290b030a86803cf2562ecf33eeb617bd90600090a3505050505050505050505050565b60006107396000805160206118918339815191525490565b90506001600160a01b038116158061075957506001600160a01b03811633145b6104045760405162461bcd60e51b815260040161045d90611480565b60008261078386868561087f565b1495945050505050565b600080600080815461079e906114a6565b918290555090506107b38188888888886108cb565b509695505050505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0384160161086657600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610831576040519150601f19603f3d011682016040523d82523d6000602084013e610836565b606091505b509150915061085e828260405180606001604052806035815260200161185c6035913961096c565b505050505050565b61087a6001600160a01b0384168383610985565b505050565b600081815b848110156108c2576108ae828787848181106108a2576108a26114bf565b905060200201356109db565b9150806108ba816114a6565b915050610884565b50949350505050565b60006108da8686868686610a07565b60008781526001602081905260409182902089815590810180546001600160a01b0319166001600160a01b038a1617905560028101879055600381018690556004810185905560058101849055905188907f76c63a84d266ca3b59e504a21147cd4e1b777747bbe163d4eeed9f2be951f11a90610958908490611585565b60405180910390a250959695505050505050565b6060831561097b575081610546565b6105468383610ab0565b61087a8363a9059cbb60e01b84846040516024016109a4929190611593565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ada565b60008183106109f7576000828152602084905260409020610546565b5060009182526020526040902090565b42831015610a275760405162461bcd60e51b815260040161045d906115fc565b828211610a465760405162461bcd60e51b815260040161045d9061165b565b80610a635760405162461bcd60e51b815260040161045d906116ac565b6001600160a01b038516610a895760405162461bcd60e51b815260040161045d90611701565b60008411610aa95760405162461bcd60e51b815260040161045d90611754565b5050505050565b815115610ac05781518083602001fd5b8060405162461bcd60e51b815260040161045d9190610d8c565b6000610b2f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b6c9092919063ffffffff16565b9050805160001480610b50575080806020019051810190610b509190611777565b61087a5760405162461bcd60e51b815260040161045d906117dd565b60606103be848460008585600080866001600160a01b03168587604051610b93919061180f565b60006040518083038185875af1925050503d8060008114610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b5091509150610be687838387610bf1565b979650505050505050565b60608315610c30578251600003610c29576001600160a01b0385163b610c295760405162461bcd60e51b815260040161045d9061184b565b50816103be565b6103be8383610ab0565b6001600160e01b031981165b811461040457600080fd5b803561034d81610c3a565b600060208284031215610c7157610c71600080fd5b60006103be8484610c51565b8015155b82525050565b6020810161034d8284610c7d565b80610c46565b803561034d81610c95565b600060208284031215610cbb57610cbb600080fd5b60006103be8484610c9b565b80610c81565b60006001600160a01b03821661034d565b610c8181610ccd565b60c08101610cf58289610cc7565b610d026020830188610cde565b610d0f6040830187610cc7565b610d1c6060830186610cc7565b610d296080830185610cc7565b610be660a0830184610cc7565b60005b83811015610d51578181015183820152602001610d39565b50506000910152565b6000610d64825190565b808452602084019350610d7b818560208601610d36565b601f01601f19169290920192915050565b602080825281016105468184610d5a565b610c4681610ccd565b803561034d81610d9d565b60008083601f840112610dc657610dc6600080fd5b50813567ffffffffffffffff811115610de157610de1600080fd5b602083019150836020820283011115610dfc57610dfc600080fd5b9250929050565b60008060008060608587031215610e1c57610e1c600080fd5b6000610e288787610c9b565b9450506020610e3987828801610da6565b935050604085013567ffffffffffffffff811115610e5957610e59600080fd5b610e6587828801610db1565b95989497509550505050565b6020810161034d8284610cde565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610ebb57610ebb610e7f565b6040525050565b6000610ecd60405190565b9050610ed98282610e95565b919050565b600067ffffffffffffffff821115610ef857610ef8610e7f565b601f19601f83011660200192915050565b82818337506000910152565b6000610f28610f2384610ede565b610ec2565b905082815260208101848484011115610f4357610f43600080fd5b610f4e848285610f09565b509392505050565b600082601f830112610f6a57610f6a600080fd5b81356103be848260208601610f15565b60008060408385031215610f9057610f90600080fd5b6000610f9c8585610da6565b925050602083013567ffffffffffffffff811115610fbc57610fbc600080fd5b610fc885828601610f56565b9150509250929050565b6020810161034d8284610cc7565b60008060008060608587031215610ff957610ff9600080fd5b60006110058787610c9b565b9450506020610e3987828801610c9b565b60006020828403121561102b5761102b600080fd5b60006103be8484610da6565b600080600080600060a0868803121561105257611052600080fd5b600061105e8888610da6565b955050602061106f88828901610c9b565b945050604061108088828901610c9b565b935050606061109188828901610c9b565b92505060806110a288828901610c9b565b9150509295509295909350565b600080604083850312156110c5576110c5600080fd5b60006110d18585610c9b565b9250506020610fc885828601610da6565b60008083601f8401126110f7576110f7600080fd5b50813567ffffffffffffffff81111561111257611112600080fd5b602083019150836001820283011115610dfc57610dfc600080fd5b60008060006040848603121561114557611145600080fd5b60006111518686610da6565b935050602084013567ffffffffffffffff81111561117157611171600080fd5b61117d868287016110e2565b92509250509250925092565b600061034d8260601b90565b600061034d82611189565b610c816111ac82610ccd565b611195565b6111bb81836111a0565b601401919050565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015290505b60400190565b6020808252810161034d816111c3565b600060ff821661034d565b610c818161121e565b6020810161034d8284611229565b602d8152602081017f41697244726f7056323a2063616c6c6572206973206e6f742074686520766f7481526c34b7339031b7b73a3930b1ba1760991b60208201529050611208565b6020808252810161034d81611240565b602a8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20646f6573208152693737ba1032bc34b9ba1760b11b60208201529050611208565b6020808252810161034d81611298565b602e8152602081017f4143616d706169676e41697244726f703a207573657220616c7265616479206381526d3630b4b6b2b2103932bbb0b9321760911b60208201529050611208565b6020808252810161034d816112ed565b602a8152602081017f4143616d706169676e41697244726f703a2075736572206973206e6f7420776881526934ba32b634b9ba32b21760b11b60208201529050611208565b6020808252810161034d81611346565b602e8152602081017f4143616d706169676e41697244726f703a2063616d706169676e206973206e6f81526d3a1039ba30b93a32b2103cb2ba1760911b60208201529050611208565b6020808252810161034d8161139b565b602d8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20686173206181526c363932b0b23c9032b73232b21760991b60208201529050611208565b6020808252810161034d816113f4565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f72000000000000815290505b60200190565b6020808252810161034d8161144c565b634e487b7160e01b600052601160045260246000fd5b6000600182016114b8576114b8611490565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60008161034d565b80546114e8816114d5565b6114f28482610cc7565b5050600181015461150281610ccd565b61150f6020850182610cde565b5050600281015461151f816114d5565b61152c6040850182610cc7565b5050600381015461153c816114d5565b6115496060850182610cc7565b50506004810154611559816114d5565b6115666080850182610cc7565b50506005810154611576816114d5565b905061087a60a0840182610cc7565b60c0810161034d82846114dd565b604081016115a18285610cde565b6105466020830184610cc7565b60338152602081017f4143616d706169676e41697244726f703a2073746172742074696d65206d75738152723a1031329034b7103a343290333aba3ab9329760691b60208201529050611208565b6020808252810161034d816115ae565b60348152602081017f4143616d706169676e41697244726f703a20656e642074696d65206d7573742081527331329030b33a32b91039ba30b93a103a34b6b29760611b60208201529050611208565b6020808252810161034d8161160c565b60268152602081017f4143616d706169676e41697244726f703a206d65726b6c6520726f6f74206973815265103d32b9379760d11b60208201529050611208565b6020808252810161034d8161166b565b602a8152602081017f4143616d706169676e41697244726f703a2072657761726420746f6b656e2069815269399034b73b30b634b21760b11b60208201529050611208565b6020808252810161034d816116bc565b60288152602081017f4143616d706169676e41697244726f703a2072657761726420616d6f756e742081526734b9903d32b9379760c11b60208201529050611208565b6020808252810161034d81611711565b801515610c46565b805161034d81611764565b60006020828403121561178c5761178c600080fd5b60006103be848461176c565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611208565b6020808252810161034d81611798565b60006117f7825190565b611805818560208601610d36565b9290920192915050565b61034d81836117ed565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000008152905061147a565b6020808252810161034d8161181956fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642e3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583a2646970667358221220e74720b7666efa846a6e5bf0b49c06e879e022414e8b721dab69fc470cf630d664736f6c63430008140033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063743ede761161009757806396826c531161006657806396826c5314610280578063bb65dc83146102ae578063c1fc006a146102d5578063d8ad4e1c146102ee57600080fd5b8063743ede76146102345780638cb941cc14610247578063921473821461025a57806395ab76341461026d57600080fd5b80633e3b5b19116100d35780633e3b5b19146101da57806369130451146101f85780636a25f2691461020b5780637274e30d1461021e57600080fd5b806301ffc9a714610105578063141961bc1461012e5780633778b64d1461018e5780633917caf2146101c5575b600080fd5b610118610113366004610c5c565b610301565b6040516101259190610c87565b60405180910390f35b61017c61013c366004610ca6565b60016020819052600091825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919086565b60405161012596959493929190610ce7565b6101b86040518060400160405280600b81526020016a20a4a92fa22927a82fab1960a91b81525081565b6040516101259190610d8c565b6101d86101d3366004610e03565b610353565b005b600080516020611891833981519152545b6040516101259190610e71565b6101d8610206366004610f7a565b610365565b610118610219366004610e03565b610387565b61022760005481565b6040516101259190610fd2565b610118610242366004610fe0565b6103c6565b6101d8610255366004611016565b6103e6565b6101d8610268366004611016565b610407565b61022761027b366004611037565b6104f9565b61011861028e3660046110af565b600260209081526000928352604080842090915290825290205460ff1681565b60408051808201909152600b81526a20a4a92fa22927a82fab1960a91b60208201526101b8565b6003546101eb906201000090046001600160a01b031681565b6101186102fc36600461112d565b610543565b60006001600160e01b031982166363c8929f60e01b148061033257506001600160e01b031982166336e447a160e21b145b8061034d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b61035f8484848461054d565b50505050565b61036d610721565b6103833360008051602061189183398151915255565b5050565b60006103bb858560405160200161039e91906111b1565b6040516020818303038152906040528051906020012085856103c6565b90505b949350505050565b6000848152600160205260408120600501546103bb908490849087610775565b6103ee610721565b6104048160008051602061189183398151915255565b50565b600354610100900460ff16158080156104275750600354600160ff909116105b806104415750303b158015610441575060035460ff166001145b6104665760405162461bcd60e51b815260040161045d9061120e565b60405180910390fd5b6003805460ff191660011790558015610489576003805461ff0019166101001790555b6003805462010000600160b01b031916620100006001600160a01b038516021790558015610383576003805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906104ed90600190611232565b60405180910390a15050565b6003546000906201000090046001600160a01b0316331461052c5760405162461bcd60e51b815260040161045d90611288565b610539868685858861078d565b9695505050505050565b60015b9392505050565b60008481526001602052604081205485910361057b5760405162461bcd60e51b815260040161045d906112dd565b60008581526002602090815260408083206001600160a01b03881684529091529020548590859060ff16156105c25760405162461bcd60e51b815260040161045d90611336565b868686866105d284848484610387565b6105ee5760405162461bcd60e51b815260040161045d9061138b565b60008b81526001602052604090206003015442101561061f5760405162461bcd60e51b815260040161045d906113e4565b60008b8152600160205260409020600401544211156106505760405162461bcd60e51b815260040161045d9061143c565b6001600260008d815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600160008d815260200190815260200160002090506106dc8160010160009054906101000a90046001600160a01b03168c83600201546107be565b80546040516001600160a01b038d1691907f5dd59f4285b36241394b73f8f7ae03d0290b030a86803cf2562ecf33eeb617bd90600090a3505050505050505050505050565b60006107396000805160206118918339815191525490565b90506001600160a01b038116158061075957506001600160a01b03811633145b6104045760405162461bcd60e51b815260040161045d90611480565b60008261078386868561087f565b1495945050505050565b600080600080815461079e906114a6565b918290555090506107b38188888888886108cb565b509695505050505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0384160161086657600080836001600160a01b03168360405160006040518083038185875af1925050503d8060008114610831576040519150601f19603f3d011682016040523d82523d6000602084013e610836565b606091505b509150915061085e828260405180606001604052806035815260200161185c6035913961096c565b505050505050565b61087a6001600160a01b0384168383610985565b505050565b600081815b848110156108c2576108ae828787848181106108a2576108a26114bf565b905060200201356109db565b9150806108ba816114a6565b915050610884565b50949350505050565b60006108da8686868686610a07565b60008781526001602081905260409182902089815590810180546001600160a01b0319166001600160a01b038a1617905560028101879055600381018690556004810185905560058101849055905188907f76c63a84d266ca3b59e504a21147cd4e1b777747bbe163d4eeed9f2be951f11a90610958908490611585565b60405180910390a250959695505050505050565b6060831561097b575081610546565b6105468383610ab0565b61087a8363a9059cbb60e01b84846040516024016109a4929190611593565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ada565b60008183106109f7576000828152602084905260409020610546565b5060009182526020526040902090565b42831015610a275760405162461bcd60e51b815260040161045d906115fc565b828211610a465760405162461bcd60e51b815260040161045d9061165b565b80610a635760405162461bcd60e51b815260040161045d906116ac565b6001600160a01b038516610a895760405162461bcd60e51b815260040161045d90611701565b60008411610aa95760405162461bcd60e51b815260040161045d90611754565b5050505050565b815115610ac05781518083602001fd5b8060405162461bcd60e51b815260040161045d9190610d8c565b6000610b2f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b6c9092919063ffffffff16565b9050805160001480610b50575080806020019051810190610b509190611777565b61087a5760405162461bcd60e51b815260040161045d906117dd565b60606103be848460008585600080866001600160a01b03168587604051610b93919061180f565b60006040518083038185875af1925050503d8060008114610bd0576040519150601f19603f3d011682016040523d82523d6000602084013e610bd5565b606091505b5091509150610be687838387610bf1565b979650505050505050565b60608315610c30578251600003610c29576001600160a01b0385163b610c295760405162461bcd60e51b815260040161045d9061184b565b50816103be565b6103be8383610ab0565b6001600160e01b031981165b811461040457600080fd5b803561034d81610c3a565b600060208284031215610c7157610c71600080fd5b60006103be8484610c51565b8015155b82525050565b6020810161034d8284610c7d565b80610c46565b803561034d81610c95565b600060208284031215610cbb57610cbb600080fd5b60006103be8484610c9b565b80610c81565b60006001600160a01b03821661034d565b610c8181610ccd565b60c08101610cf58289610cc7565b610d026020830188610cde565b610d0f6040830187610cc7565b610d1c6060830186610cc7565b610d296080830185610cc7565b610be660a0830184610cc7565b60005b83811015610d51578181015183820152602001610d39565b50506000910152565b6000610d64825190565b808452602084019350610d7b818560208601610d36565b601f01601f19169290920192915050565b602080825281016105468184610d5a565b610c4681610ccd565b803561034d81610d9d565b60008083601f840112610dc657610dc6600080fd5b50813567ffffffffffffffff811115610de157610de1600080fd5b602083019150836020820283011115610dfc57610dfc600080fd5b9250929050565b60008060008060608587031215610e1c57610e1c600080fd5b6000610e288787610c9b565b9450506020610e3987828801610da6565b935050604085013567ffffffffffffffff811115610e5957610e59600080fd5b610e6587828801610db1565b95989497509550505050565b6020810161034d8284610cde565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715610ebb57610ebb610e7f565b6040525050565b6000610ecd60405190565b9050610ed98282610e95565b919050565b600067ffffffffffffffff821115610ef857610ef8610e7f565b601f19601f83011660200192915050565b82818337506000910152565b6000610f28610f2384610ede565b610ec2565b905082815260208101848484011115610f4357610f43600080fd5b610f4e848285610f09565b509392505050565b600082601f830112610f6a57610f6a600080fd5b81356103be848260208601610f15565b60008060408385031215610f9057610f90600080fd5b6000610f9c8585610da6565b925050602083013567ffffffffffffffff811115610fbc57610fbc600080fd5b610fc885828601610f56565b9150509250929050565b6020810161034d8284610cc7565b60008060008060608587031215610ff957610ff9600080fd5b60006110058787610c9b565b9450506020610e3987828801610c9b565b60006020828403121561102b5761102b600080fd5b60006103be8484610da6565b600080600080600060a0868803121561105257611052600080fd5b600061105e8888610da6565b955050602061106f88828901610c9b565b945050604061108088828901610c9b565b935050606061109188828901610c9b565b92505060806110a288828901610c9b565b9150509295509295909350565b600080604083850312156110c5576110c5600080fd5b60006110d18585610c9b565b9250506020610fc885828601610da6565b60008083601f8401126110f7576110f7600080fd5b50813567ffffffffffffffff81111561111257611112600080fd5b602083019150836001820283011115610dfc57610dfc600080fd5b60008060006040848603121561114557611145600080fd5b60006111518686610da6565b935050602084013567ffffffffffffffff81111561117157611171600080fd5b61117d868287016110e2565b92509250509250925092565b600061034d8260601b90565b600061034d82611189565b610c816111ac82610ccd565b611195565b6111bb81836111a0565b601401919050565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015290505b60400190565b6020808252810161034d816111c3565b600060ff821661034d565b610c818161121e565b6020810161034d8284611229565b602d8152602081017f41697244726f7056323a2063616c6c6572206973206e6f742074686520766f7481526c34b7339031b7b73a3930b1ba1760991b60208201529050611208565b6020808252810161034d81611240565b602a8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20646f6573208152693737ba1032bc34b9ba1760b11b60208201529050611208565b6020808252810161034d81611298565b602e8152602081017f4143616d706169676e41697244726f703a207573657220616c7265616479206381526d3630b4b6b2b2103932bbb0b9321760911b60208201529050611208565b6020808252810161034d816112ed565b602a8152602081017f4143616d706169676e41697244726f703a2075736572206973206e6f7420776881526934ba32b634b9ba32b21760b11b60208201529050611208565b6020808252810161034d81611346565b602e8152602081017f4143616d706169676e41697244726f703a2063616d706169676e206973206e6f81526d3a1039ba30b93a32b2103cb2ba1760911b60208201529050611208565b6020808252810161034d8161139b565b602d8152602081017f4143616d706169676e41697244726f703a2063616d706169676e20686173206181526c363932b0b23c9032b73232b21760991b60208201529050611208565b6020808252810161034d816113f4565b601a8152602081017f446570656e64616e743a206e6f7420616e20696e6a6563746f72000000000000815290505b60200190565b6020808252810161034d8161144c565b634e487b7160e01b600052601160045260246000fd5b6000600182016114b8576114b8611490565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60008161034d565b80546114e8816114d5565b6114f28482610cc7565b5050600181015461150281610ccd565b61150f6020850182610cde565b5050600281015461151f816114d5565b61152c6040850182610cc7565b5050600381015461153c816114d5565b6115496060850182610cc7565b50506004810154611559816114d5565b6115666080850182610cc7565b50506005810154611576816114d5565b905061087a60a0840182610cc7565b60c0810161034d82846114dd565b604081016115a18285610cde565b6105466020830184610cc7565b60338152602081017f4143616d706169676e41697244726f703a2073746172742074696d65206d75738152723a1031329034b7103a343290333aba3ab9329760691b60208201529050611208565b6020808252810161034d816115ae565b60348152602081017f4143616d706169676e41697244726f703a20656e642074696d65206d7573742081527331329030b33a32b91039ba30b93a103a34b6b29760611b60208201529050611208565b6020808252810161034d8161160c565b60268152602081017f4143616d706169676e41697244726f703a206d65726b6c6520726f6f74206973815265103d32b9379760d11b60208201529050611208565b6020808252810161034d8161166b565b602a8152602081017f4143616d706169676e41697244726f703a2072657761726420746f6b656e2069815269399034b73b30b634b21760b11b60208201529050611208565b6020808252810161034d816116bc565b60288152602081017f4143616d706169676e41697244726f703a2072657761726420616d6f756e742081526734b9903d32b9379760c11b60208201529050611208565b6020808252810161034d81611711565b801515610c46565b805161034d81611764565b60006020828403121561178c5761178c600080fd5b60006103be848461176c565b602a8152602081017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529050611208565b6020808252810161034d81611798565b60006117f7825190565b611805818560208601610d36565b9290920192915050565b61034d81836117ed565b601d8152602081017f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000008152905061147a565b6020808252810161034d8161181956fe5b5147444b2d3031393030305d2d5472616e7366657272696e67206f66206e61746976652063757272656e6379206661696c65642e3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583a2646970667358221220e74720b7666efa846a6e5bf0b49c06e879e022414e8b721dab69fc470cf630d664736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}