@credenza-web3/contracts
Version:
Credenza Contracts
1,024 lines • 62.5 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "CredenzaToken",
"sourceName": "contracts/tokens/CredenzaToken.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": 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": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "addAvailableCurrencyTokenContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "addOwner",
"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": "amount",
"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": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestedAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "buyWithEther",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestedAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "currencyTokenContract",
"type": "address"
}
],
"name": "buyWithToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestedAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "buyWithToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "clearOwners",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getAvailableCurrencyTokenContractsList",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getBeneficiaryAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDefaultCurrencyTokenContract",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDescription",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "getDropAvailableAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getDropAvailableTotalAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getDropPerAddressLimit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getDropTotalLimit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "getDroppedAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getDroppedTotalAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getOwners",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getPriceEther",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getPriceFiat",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "currencyContract",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getPriceToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getPriceToken",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getTrustedForwarder",
"outputs": [
{
"internalType": "address",
"name": "forwarder",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getVersion",
"outputs": [
{
"internalType": "string",
"name": "version",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "isAvailableCurrencyTokenContract",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "isOwner",
"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": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "removeAvailableCurrencyTokenContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "removeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "requestToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "addr",
"type": "address"
}
],
"name": "setBeneficiaryAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenContract",
"type": "address"
}
],
"name": "setDefaultCurrencyTokenContractAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "setDescription",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "setDropPerAddressLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "setDropTotalLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "setName",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "setPriceEther",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "setPriceFiat",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "setPriceToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "currencyContract",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "setPriceToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "setSymbol",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_forwarder",
"type": "address"
}
],
"name": "setTrustedForwarder",
"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": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"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": "amount",
"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": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801562000010575f80fd5b506040518060400160405280601581526020017f43726564656e7a612053746f7265642056616c756500000000000000000000008152506040518060400160405280600481526020016310d4915160e21b8152508160039081620000759190620002a6565b506004620000848282620002a6565b505050620000a16200009b620000a760201b60201c565b620000b7565b6200036e565b5f620000b2620001d1565b905090565b6006541580620000ed5750620000ed620000d0620000a7565b6001600160a01b03165f9081526005602052604090205460ff1690565b620001495760405162461bcd60e51b815260206004820152602260248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604482015261371760f11b606482015260840160405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16620001ce576001600160a01b0381165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790555b50565b5f60143610801590620001ee57506008546001600160a01b031633145b1562000201575060131936013560601c90565b503390565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200022f57607f821691505b6020821081036200024e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002a1575f81815260208120601f850160051c810160208610156200027c5750805b601f850160051c820191505b818110156200029d5782815560010162000288565b5050505b505050565b81516001600160401b03811115620002c257620002c262000206565b620002da81620002d384546200021a565b8462000254565b602080601f83116001811462000310575f8415620002f85750858301515b5f19600386901b1c1916600185901b1785556200029d565b5f85815260208120601f198616915b8281101562000340578886015182559484019460019091019084016200031f565b50858210156200035e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b612681806200037c5f395ff3fe608060405260043610610326575f3560e01c8063609d58ad116101a3578063adfadad3116100f2578063d1eff89511610092578063da7422281161006d578063da742228146109ec578063dd62ed3e14610a0b578063e1461f1214610a2a578063ec6be06e14610a55575f80fd5b8063d1eff89514610991578063d36223f1146109ae578063d93f5bed146109cd575f80fd5b8063b84c8246116100cd578063b84c82461461090b578063c47f00271461092a578063cafc72d314610949578063ce1b815f14610974575f80fd5b8063adfadad31461088a578063b33a599f146108b5578063b68de974146108d4575f80fd5b806388d0f86a1161015d57806395d89b411161013857806395d89b4114610824578063a0e67e2b14610838578063a457c2d71461084c578063a9059cbb1461086b575f80fd5b806388d0f86a146107c75780638e1b5aa9146107e657806390c3f38f14610805575f80fd5b8063609d58ad146106f65780637065cb481461072157806370a0823114610740578063724e5c17146107745780638003e27f1461079357806380dc439e146107b4575f80fd5b80632217e975116102795780633de4fdc8116102195780635260f5e6116101f45780635260f5e61461067657806355349e671461068a578063572b6c05146106a9578063578680be146106d7575f80fd5b80633de4fdc81461061957806340c10f19146106385780634fe5053114610657575f80fd5b8063313ce56711610254578063313ce567146105a1578063346b327b146105bc57806339509351146105db5780633a932dba146105fa575f80fd5b80632217e9751461052c57806323b872dd1461054b5780632f54bf6e1461056a575f80fd5b806316bef596116102e457806318160ddd116102bf57806318160ddd146104a4578063192c1756146104b85780631a092541146104f95780631abe7cb31461050d575f80fd5b806316bef59614610433578063173825d914610464578063177ed0f314610485575f80fd5b8062fbe0c51461032a57806301ffc9a714610368578063031f5c871461039757806306fdde03146103b6578063095ea7b3146103d75780630d8e6e2c146103f6575b5f80fd5b348015610335575f80fd5b50610355610344366004611fb7565b5f9081526011602052604090205490565b6040519081526020015b60405180910390f35b348015610373575f80fd5b50610387610382366004611fce565b610a74565b604051901515815260200161035f565b3480156103a2575f80fd5b506103556103b1366004612009565b610ac5565b3480156103c1575f80fd5b506103ca610aec565b60405161035f9190612033565b3480156103e2575f80fd5b506103876103f1366004612009565b610b7c565b348015610401575f80fd5b5060408051808201909152601581527443726564656e7a61546f6b656e207620312e302e3160581b60208201526103ca565b34801561043e575f80fd5b50600c546001600160a01b03165b6040516001600160a01b03909116815260200161035f565b34801561046f575f80fd5b5061048361047e36600461207e565b610b9d565b005b348015610490575f80fd5b5061035561049f366004611fb7565b610c6b565b3480156104af575f80fd5b50600254610355565b3480156104c3575f80fd5b506103556104d2366004612099565b5f9182526012602090815260408084206001600160a01b0393909316845291905290205490565b348015610504575f80fd5b506103ca610c83565b348015610518575f80fd5b506104836105273660046120c7565b610c92565b348015610537575f80fd5b50610355610546366004611fb7565b610cd4565b348015610556575f80fd5b506103876105653660046120e7565b610d20565b348015610575575f80fd5b5061038761058436600461207e565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156105ac575f80fd5b506040516006815260200161035f565b3480156105c7575f80fd5b506104836105d6366004612125565b610d4d565b3480156105e6575f80fd5b506103876105f5366004612009565b610dd0565b348015610605575f80fd5b5061048361061436600461207e565b610dfb565b348015610624575f80fd5b5061048361063336600461207e565b610e4c565b348015610643575f80fd5b50610483610652366004612009565b610f01565b348015610662575f80fd5b506104836106713660046120c7565b610f55565b348015610681575f80fd5b50610483610f97565b348015610695575f80fd5b506104836106a43660046120c7565b61103e565b3480156106b4575f80fd5b506103876106c336600461207e565b6008546001600160a01b0391821691161490565b3480156106e2575f80fd5b506104836106f13660046120c7565b611080565b348015610701575f80fd5b50610355610710366004611fb7565b5f9081526010602052604090205490565b34801561072c575f80fd5b5061048361073b36600461207e565b6110c8565b34801561074b575f80fd5b5061035561075a36600461207e565b6001600160a01b03165f9081526020819052604090205490565b34801561077f575f80fd5b5061048361078e36600461215b565b61117d565b34801561079e575f80fd5b506107a76111ba565b60405161035f91906121a2565b6104836107c2366004612125565b611219565b3480156107d2575f80fd5b506104836107e13660046120c7565b611293565b3480156107f1575f80fd5b50610355610800366004612099565b6112d5565b348015610810575f80fd5b5061048361081f366004612202565b611369565b34801561082f575f80fd5b506103ca6113a6565b348015610843575f80fd5b506107a76113b5565b348015610857575f80fd5b50610387610866366004612009565b611413565b348015610876575f80fd5b50610387610885366004612009565b611497565b348015610895575f80fd5b506103556108a4366004611fb7565b5f908152600a602052604090205490565b3480156108c0575f80fd5b506104836108cf36600461207e565b6114ae565b3480156108df575f80fd5b506103876108ee36600461207e565b6001600160a01b03165f908152600d602052604090205460ff1690565b348015610916575f80fd5b50610483610925366004612202565b611570565b348015610935575f80fd5b50610483610944366004612202565b6115ad565b348015610954575f80fd5b50610355610963366004611fb7565b5f9081526013602052604090205490565b34801561097f575f80fd5b506008546001600160a01b031661044c565b34801561099c575f80fd5b50600f546001600160a01b031661044c565b3480156109b9575f80fd5b506104836109c8366004612125565b6115ea565b3480156109d8575f80fd5b506104836109e73660046122ad565b611648565b3480156109f7575f80fd5b50610483610a0636600461207e565b61169e565b348015610a16575f80fd5b50610355610a253660046122df565b6116ed565b348015610a35575f80fd5b50610355610a44366004611fb7565b5f9081526009602052604090205490565b348015610a60575f80fd5b50610483610a6f36600461207e565b611717565b5f6001600160e01b031982166336372b0760e01b1480610aa457506001600160e01b0319821663a219a02560e01b145b80610abf57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03919091165f908152600b60209081526040808320938352929052205490565b606060148054610afb9061230b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b279061230b565b8015610b725780601f10610b4957610100808354040283529160200191610b72565b820191905f5260205f20905b815481529060010190602001808311610b5557829003601f168201915b5050505050905090565b5f80610b8661176a565b9050610b93818585611778565b5060019392505050565b6006541580610bb25750610bb261058461176a565b610bd75760405162461bcd60e51b8152600401610bce90612343565b60405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16610c3e5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610bce565b6001600160a01b0381165f908152600560205260409020805460ff19169055610c6860068261189b565b50565b600c545f90610abf906001600160a01b031683610ac5565b606060078054610afb9061230b565b6006541580610ca75750610ca761058461176a565b610cc35760405162461bcd60e51b8152600401610bce90612343565b5f9182526009602052604090912055565b5f81815260106020908152604080832054601390925282205482911115610abf575f83815260136020908152604080832054601090925290912054610d199190612399565b9392505050565b5f80610d2a61176a565b9050610d3785828561199a565b610d42858585611a0c565b506001949350505050565b5f610d5a6006600a61248c565b610d64908461249a565b905080610d715f846112d5565b1015610db55760405162461bcd60e51b8152602060048201526013602482015272111c9bdc081b1a5b5a5d08195e18d959591959606a1b6044820152606401610bce565b610dc05f8284611bae565b610dca8282611c0b565b50505050565b5f80610dda61176a565b9050610b93818585610dec85896116ed565b610df691906124b1565b611778565b6006541580610e105750610e1061058461176a565b610e2c5760405162461bcd60e51b8152600401610bce90612343565b600c80546001600160a01b0319166001600160a01b038316179055610c68815b6006541580610e615750610e6161058461176a565b610e7d5760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f908152600d602052604090205460ff16610c68576001600160a01b03165f818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b6006541580610f165750610f1661058461176a565b610f325760405162461bcd60e51b8152600401610bce90612343565b610f5182610f426006600a61248c565b610f4c908461249a565b611c0b565b5050565b6006541580610f6a5750610f6a61058461176a565b610f865760405162461bcd60e51b8152600401610bce90612343565b5f9182526010602052604090912055565b6006541580610fac5750610fac61058461176a565b610fc85760405162461bcd60e51b8152600401610bce90612343565b5f5b600654811015611030575f60055f60068481548110610feb57610feb6124c4565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580611028816124d8565b915050610fca565b5061103c60065f611f89565b565b6006541580611053575061105361058461176a565b61106f5760405162461bcd60e51b8152600401610bce90612343565b5f9182526011602052604090912055565b6006541580611095575061109561058461176a565b6110b15760405162461bcd60e51b8152600401610bce90612343565b600c54610f51906001600160a01b03168383611648565b60065415806110dd57506110dd61058461176a565b6110f95760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f9081526005602052604090205460ff16610c68576001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b6044820152606401610bce565b6060600e805480602002602001604051908101604052809291908181526020018280548015610b7257602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116111f2575050505050905090565b600f546001600160a01b03165f9081526020819052604090205482111561126d5760405162461bcd60e51b815260206004820152600860248201526714d3d31117d3d55560c21b6044820152606401610bce565b6112775f83611cc8565b600f5461128e906001600160a01b03168284611a0c565b505050565b60065415806112a857506112a861058461176a565b6112c45760405162461bcd60e51b8152600401610bce90612343565b5f918252600a602052604090912055565b5f806112e084610cd4565b5f85815260116020908152604080832054601283528184206001600160a01b038916855290925282205492935090911015611350575f8581526012602090815260408083206001600160a01b038816845282528083205488845260119092529091205461134d9190612399565b90505b80821115611361579150610abf9050565b509050610abf565b600654158061137e575061137e61058461176a565b61139a5760405162461bcd60e51b8152600401610bce90612343565b6007610f518282612535565b606060158054610afb9061230b565b60606006805480602002602001604051908101604052809291908181526020018280548015610b7257602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116111f2575050505050905090565b5f8061141d61176a565b90505f61142a82866116ed565b90508381101561148a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bce565b610d428286868403611778565b5f806114a161176a565b9050610b93818585611a0c565b60065415806114c357506114c361058461176a565b6114df5760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f908152600d602052604090205460ff166115465760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c656044820152606401610bce565b6001600160a01b0381165f908152600d60205260409020805460ff19169055610c68600e8261189b565b6006541580611585575061158561058461176a565b6115a15760405162461bcd60e51b8152600401610bce90612343565b6015610f518282612535565b60065415806115c257506115c261058461176a565b6115de5760405162461bcd60e51b8152600401610bce90612343565b6014610f518282612535565b600f546001600160a01b03165f9081526020819052604090205482111561163e5760405162461bcd60e51b815260206004820152600860248201526714d3d31117d3d55560c21b6044820152606401610bce565b6112775f83611db1565b600654158061165d575061165d61058461176a565b6116795760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b039092165f908152600b602090815260408083209383529290522055565b60065415806116b357506116b361058461176a565b6116cf5760405162461bcd60e51b8152600401610bce90612343565b600880546001600160a01b0319166001600160a01b03831617905550565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b600654158061172c575061172c61058461176a565b6117485760405162461bcd60e51b8152600401610bce90612343565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f611773611dca565b905090565b6001600160a01b0383166117da5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bce565b6001600160a01b03821661183b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5b825481101561128e57816001600160a01b03168382815481106118c2576118c26124c4565b5f918252602090912001546001600160a01b03160361198857825483906118eb90600190612399565b815481106118fb576118fb6124c4565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110611928576119286124c4565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480611963576119636125f1565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80611992816124d8565b91505061189d565b5f6119a584846116ed565b90505f198114610dca57818110156119ff5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610bce565b610dca8484848403611778565b6001600160a01b038316611a705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bce565b6001600160a01b038216611ad25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bce565b6001600160a01b0383165f9081526020819052604090205481811015611b495760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610bce565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dca565b5f8381526012602090815260408083206001600160a01b038516845290915281208054849290611bdf9084906124b1565b90915550505f8381526013602052604081208054849290611c019084906124b1565b9091555050505050565b6001600160a01b038216611c615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610bce565b8060025f828254611c7291906124b1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f828152600a602052604081205411611cf35760405162461bcd60e51b8152600401610bce90612605565b600f546001600160a01b0316611d1b5760405162461bcd60e51b8152600401610bce90612605565b5f828152600a6020526040812054611d3490839061249a565b905080341015611d7b5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b6044820152606401610bce565b600f546040516001600160a01b03909116903480156108fc02915f818181858888f19350505050158015610dca573d5f803e3d5ffd5b600c54610f5190839083906001600160a01b0316611dfd565b5f60143610801590611de657506008546001600160a01b031633145b15611df8575060131936013560601c90565b503390565b6001600160a01b0381165f908152600d602052604090205460ff16611e645760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f52544544006044820152606401610bce565b5f611e6f8285610ac5565b11611e8c5760405162461bcd60e51b8152600401610bce90612605565b600f546001600160a01b0316611eb45760405162461bcd60e51b8152600401610bce90612605565b6001600160a01b038116611eda5760405162461bcd60e51b8152600401610bce90612605565b5f611ee58285610ac5565b611eef908461249a565b9050816001600160a01b0381166323b872dd611f0961176a565b600f5460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604481018590526064016020604051808303815f875af1158015611f5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f81919061262c565b505050505050565b5080545f8255905f5260205f2090810190610c6891905b80821115611fb3575f8155600101611fa0565b5090565b5f60208284031215611fc7575f80fd5b5035919050565b5f60208284031215611fde575f80fd5b81356001600160e01b031981168114610d19575f80fd5b6001600160a01b0381168114610c68575f80fd5b5f806040838503121561201a575f80fd5b823561202581611ff5565b946020939093013593505050565b5f6020808352835180828501525f5b8181101561205e57858101830151858201604001528201612042565b505f604082860101526040601f19601f8301168501019250505092915050565b5f6020828403121561208e575f80fd5b8135610d1981611ff5565b5f80604083850312156120aa575f80fd5b8235915060208301356120bc81611ff5565b809150509250929050565b5f80604083850312156120d8575f80fd5b50508035926020909101359150565b5f805f606084860312156120f9575f80fd5b833561210481611ff5565b9250602084013561211481611ff5565b929592945050506040919091013590565b5f805f60608486031215612137575f80fd5b8335925060208401359150604084013561215081611ff5565b809150509250925092565b5f805f806080858703121561216e575f80fd5b8435935060208501359250604085013561218781611ff5565b9150606085013561219781611ff5565b939692955090935050565b602080825282518282018190525f9190848201906040850190845b818110156121e25783516001600160a01b0316835292840192918401916001016121bd565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215612212575f80fd5b813567ffffffffffffffff80821115612229575f80fd5b818401915084601f83011261223c575f80fd5b81358181111561224e5761224e6121ee565b604051601f8201601f19908116603f01168101908382118183101715612276576122766121ee565b8160405282815287602084870101111561228e575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f805f606084860312156122bf575f80fd5b83356122ca81611ff5565b95602085013595506040909401359392505050565b5f80604083850312156122f0575f80fd5b82356122fb81611ff5565b915060208301356120bc81611ff5565b600181811c9082168061231f57607f821691505b60208210810361233d57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612385565b600181815b808511156123e657815f19048211156123cc576123cc612385565b808516156123d957918102915b93841c93908002906123b1565b509250929050565b5f826123fc57506001610abf565b8161240857505f610abf565b816001811461241e576002811461242857612444565b6001915050610abf565b60ff84111561243957612439612385565b50506001821b610abf565b5060208310610133831016604e8410600b8410161715612467575081810a610abf565b61247183836123ac565b805f190482111561248457612484612385565b029392505050565b5f610d1960ff8416836123ee565b8082028115828204841417610abf57610abf612385565b80820180821115610abf57610abf612385565b634e487b7160e01b5f52603260045260245ffd5b5f600182016124e9576124e9612385565b5060010190565b601f82111561128e575f81815260208120601f850160051c810160208610156125165750805b601f850160051c820191505b81811015611f8157828155600101612522565b815167ffffffffffffffff81111561254f5761254f6121ee565b6125638161255d845461230b565b846124f0565b602080601f831160018114612596575f841561257f5750858301515b5f19600386901b1c1916600185901b178555611f81565b5f85815260208120601f198616915b828110156125c4578886015182559484019460019091019084016125a5565b50858210156125e157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603160045260245ffd5b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b5f6020828403121561263c575f80fd5b81518015158114610d19575f80fdfea2646970667358221220997760f6a792207538e7684412f9247e36065de936d8edd7b8c1abe2e327452864736f6c63430008140033",
"deployedBytecode": "0x608060405260043610610326575f3560e01c8063609d58ad116101a3578063adfadad3116100f2578063d1eff89511610092578063da7422281161006d578063da742228146109ec578063dd62ed3e14610a0b578063e1461f1214610a2a578063ec6be06e14610a55575f80fd5b8063d1eff89514610991578063d36223f1146109ae578063d93f5bed146109cd575f80fd5b8063b84c8246116100cd578063b84c82461461090b578063c47f00271461092a578063cafc72d314610949578063ce1b815f14610974575f80fd5b8063adfadad31461088a578063b33a599f146108b5578063b68de974146108d4575f80fd5b806388d0f86a1161015d57806395d89b411161013857806395d89b4114610824578063a0e67e2b14610838578063a457c2d71461084c578063a9059cbb1461086b575f80fd5b806388d0f86a146107c75780638e1b5aa9146107e657806390c3f38f14610805575f80fd5b8063609d58ad146106f65780637065cb481461072157806370a0823114610740578063724e5c17146107745780638003e27f1461079357806380dc439e146107b4575f80fd5b80632217e975116102795780633de4fdc8116102195780635260f5e6116101f45780635260f5e61461067657806355349e671461068a578063572b6c05146106a9578063578680be146106d7575f80fd5b80633de4fdc81461061957806340c10f19146106385780634fe5053114610657575f80fd5b8063313ce56711610254578063313ce567146105a1578063346b327b146105bc57806339509351146105db5780633a932dba146105fa575f80fd5b80632217e9751461052c57806323b872dd1461054b5780632f54bf6e1461056a575f80fd5b806316bef596116102e457806318160ddd116102bf57806318160ddd146104a4578063192c1756146104b85780631a092541146104f95780631abe7cb31461050d575f80fd5b806316bef59614610433578063173825d914610464578063177ed0f314610485575f80fd5b8062fbe0c51461032a57806301ffc9a714610368578063031f5c871461039757806306fdde03146103b6578063095ea7b3146103d75780630d8e6e2c146103f6575b5f80fd5b348015610335575f80fd5b50610355610344366004611fb7565b5f9081526011602052604090205490565b6040519081526020015b60405180910390f35b348015610373575f80fd5b50610387610382366004611fce565b610a74565b604051901515815260200161035f565b3480156103a2575f80fd5b506103556103b1366004612009565b610ac5565b3480156103c1575f80fd5b506103ca610aec565b60405161035f9190612033565b3480156103e2575f80fd5b506103876103f1366004612009565b610b7c565b348015610401575f80fd5b5060408051808201909152601581527443726564656e7a61546f6b656e207620312e302e3160581b60208201526103ca565b34801561043e575f80fd5b50600c546001600160a01b03165b6040516001600160a01b03909116815260200161035f565b34801561046f575f80fd5b5061048361047e36600461207e565b610b9d565b005b348015610490575f80fd5b5061035561049f366004611fb7565b610c6b565b3480156104af575f80fd5b50600254610355565b3480156104c3575f80fd5b506103556104d2366004612099565b5f9182526012602090815260408084206001600160a01b0393909316845291905290205490565b348015610504575f80fd5b506103ca610c83565b348015610518575f80fd5b506104836105273660046120c7565b610c92565b348015610537575f80fd5b50610355610546366004611fb7565b610cd4565b348015610556575f80fd5b506103876105653660046120e7565b610d20565b348015610575575f80fd5b5061038761058436600461207e565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156105ac575f80fd5b506040516006815260200161035f565b3480156105c7575f80fd5b506104836105d6366004612125565b610d4d565b3480156105e6575f80fd5b506103876105f5366004612009565b610dd0565b348015610605575f80fd5b5061048361061436600461207e565b610dfb565b348015610624575f80fd5b5061048361063336600461207e565b610e4c565b348015610643575f80fd5b50610483610652366004612009565b610f01565b348015610662575f80fd5b506104836106713660046120c7565b610f55565b348015610681575f80fd5b50610483610f97565b348015610695575f80fd5b506104836106a43660046120c7565b61103e565b3480156106b4575f80fd5b506103876106c336600461207e565b6008546001600160a01b0391821691161490565b3480156106e2575f80fd5b506104836106f13660046120c7565b611080565b348015610701575f80fd5b50610355610710366004611fb7565b5f9081526010602052604090205490565b34801561072c575f80fd5b5061048361073b36600461207e565b6110c8565b34801561074b575f80fd5b5061035561075a36600461207e565b6001600160a01b03165f9081526020819052604090205490565b34801561077f575f80fd5b5061048361078e36600461215b565b61117d565b34801561079e575f80fd5b506107a76111ba565b60405161035f91906121a2565b6104836107c2366004612125565b611219565b3480156107d2575f80fd5b506104836107e13660046120c7565b611293565b3480156107f1575f80fd5b50610355610800366004612099565b6112d5565b348015610810575f80fd5b5061048361081f366004612202565b611369565b34801561082f575f80fd5b506103ca6113a6565b348015610843575f80fd5b506107a76113b5565b348015610857575f80fd5b50610387610866366004612009565b611413565b348015610876575f80fd5b50610387610885366004612009565b611497565b348015610895575f80fd5b506103556108a4366004611fb7565b5f908152600a602052604090205490565b3480156108c0575f80fd5b506104836108cf36600461207e565b6114ae565b3480156108df575f80fd5b506103876108ee36600461207e565b6001600160a01b03165f908152600d602052604090205460ff1690565b348015610916575f80fd5b50610483610925366004612202565b611570565b348015610935575f80fd5b50610483610944366004612202565b6115ad565b348015610954575f80fd5b50610355610963366004611fb7565b5f9081526013602052604090205490565b34801561097f575f80fd5b506008546001600160a01b031661044c565b34801561099c575f80fd5b50600f546001600160a01b031661044c565b3480156109b9575f80fd5b506104836109c8366004612125565b6115ea565b3480156109d8575f80fd5b506104836109e73660046122ad565b611648565b3480156109f7575f80fd5b50610483610a0636600461207e565b61169e565b348015610a16575f80fd5b50610355610a253660046122df565b6116ed565b348015610a35575f80fd5b50610355610a44366004611fb7565b5f9081526009602052604090205490565b348015610a60575f80fd5b50610483610a6f36600461207e565b611717565b5f6001600160e01b031982166336372b0760e01b1480610aa457506001600160e01b0319821663a219a02560e01b145b80610abf57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b03919091165f908152600b60209081526040808320938352929052205490565b606060148054610afb9061230b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b279061230b565b8015610b725780601f10610b4957610100808354040283529160200191610b72565b820191905f5260205f20905b815481529060010190602001808311610b5557829003601f168201915b5050505050905090565b5f80610b8661176a565b9050610b93818585611778565b5060019392505050565b6006541580610bb25750610bb261058461176a565b610bd75760405162461bcd60e51b8152600401610bce90612343565b60405180910390fd5b6001600160a01b0381165f9081526005602052604090205460ff16610c3e5760405162461bcd60e51b815260206004820152601e60248201527f5461726765742061646472657373206973206e6f7420616e206f776e657200006044820152606401610bce565b6001600160a01b0381165f908152600560205260409020805460ff19169055610c6860068261189b565b50565b600c545f90610abf906001600160a01b031683610ac5565b606060078054610afb9061230b565b6006541580610ca75750610ca761058461176a565b610cc35760405162461bcd60e51b8152600401610bce90612343565b5f9182526009602052604090912055565b5f81815260106020908152604080832054601390925282205482911115610abf575f83815260136020908152604080832054601090925290912054610d199190612399565b9392505050565b5f80610d2a61176a565b9050610d3785828561199a565b610d42858585611a0c565b506001949350505050565b5f610d5a6006600a61248c565b610d64908461249a565b905080610d715f846112d5565b1015610db55760405162461bcd60e51b8152602060048201526013602482015272111c9bdc081b1a5b5a5d08195e18d959591959606a1b6044820152606401610bce565b610dc05f8284611bae565b610dca8282611c0b565b50505050565b5f80610dda61176a565b9050610b93818585610dec85896116ed565b610df691906124b1565b611778565b6006541580610e105750610e1061058461176a565b610e2c5760405162461bcd60e51b8152600401610bce90612343565b600c80546001600160a01b0319166001600160a01b038316179055610c68815b6006541580610e615750610e6161058461176a565b610e7d5760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f908152600d602052604090205460ff16610c68576001600160a01b03165f818152600d60205260408120805460ff19166001908117909155600e805491820181559091527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319169091179055565b6006541580610f165750610f1661058461176a565b610f325760405162461bcd60e51b8152600401610bce90612343565b610f5182610f426006600a61248c565b610f4c908461249a565b611c0b565b5050565b6006541580610f6a5750610f6a61058461176a565b610f865760405162461bcd60e51b8152600401610bce90612343565b5f9182526010602052604090912055565b6006541580610fac5750610fac61058461176a565b610fc85760405162461bcd60e51b8152600401610bce90612343565b5f5b600654811015611030575f60055f60068481548110610feb57610feb6124c4565b5f918252602080832091909101546001600160a01b031683528201929092526040019020805460ff191691151591909117905580611028816124d8565b915050610fca565b5061103c60065f611f89565b565b6006541580611053575061105361058461176a565b61106f5760405162461bcd60e51b8152600401610bce90612343565b5f9182526011602052604090912055565b6006541580611095575061109561058461176a565b6110b15760405162461bcd60e51b8152600401610bce90612343565b600c54610f51906001600160a01b03168383611648565b60065415806110dd57506110dd61058461176a565b6110f95760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f9081526005602052604090205460ff16610c68576001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b60405162461bcd60e51b815260206004820152601260248201527113d4115490551253d397d11254d05093115160721b6044820152606401610bce565b6060600e805480602002602001604051908101604052809291908181526020018280548015610b7257602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116111f2575050505050905090565b600f546001600160a01b03165f9081526020819052604090205482111561126d5760405162461bcd60e51b815260206004820152600860248201526714d3d31117d3d55560c21b6044820152606401610bce565b6112775f83611cc8565b600f5461128e906001600160a01b03168284611a0c565b505050565b60065415806112a857506112a861058461176a565b6112c45760405162461bcd60e51b8152600401610bce90612343565b5f918252600a602052604090912055565b5f806112e084610cd4565b5f85815260116020908152604080832054601283528184206001600160a01b038916855290925282205492935090911015611350575f8581526012602090815260408083206001600160a01b038816845282528083205488845260119092529091205461134d9190612399565b90505b80821115611361579150610abf9050565b509050610abf565b600654158061137e575061137e61058461176a565b61139a5760405162461bcd60e51b8152600401610bce90612343565b6007610f518282612535565b606060158054610afb9061230b565b60606006805480602002602001604051908101604052809291908181526020018280548015610b7257602002820191905f5260205f209081546001600160a01b031681526001909101906020018083116111f2575050505050905090565b5f8061141d61176a565b90505f61142a82866116ed565b90508381101561148a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bce565b610d428286868403611778565b5f806114a161176a565b9050610b93818585611a0c565b60065415806114c357506114c361058461176a565b6114df5760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b0381165f908152600d602052604090205460ff166115465760405162461bcd60e51b815260206004820181905260248201527f54617267657420636f6e7472616374206973206e6f7420617661696c61626c656044820152606401610bce565b6001600160a01b0381165f908152600d60205260409020805460ff19169055610c68600e8261189b565b6006541580611585575061158561058461176a565b6115a15760405162461bcd60e51b8152600401610bce90612343565b6015610f518282612535565b60065415806115c257506115c261058461176a565b6115de5760405162461bcd60e51b8152600401610bce90612343565b6014610f518282612535565b600f546001600160a01b03165f9081526020819052604090205482111561163e5760405162461bcd60e51b815260206004820152600860248201526714d3d31117d3d55560c21b6044820152606401610bce565b6112775f83611db1565b600654158061165d575061165d61058461176a565b6116795760405162461bcd60e51b8152600401610bce90612343565b6001600160a01b039092165f908152600b602090815260408083209383529290522055565b60065415806116b357506116b361058461176a565b6116cf5760405162461bcd60e51b8152600401610bce90612343565b600880546001600160a01b0319166001600160a01b03831617905550565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b600654158061172c575061172c61058461176a565b6117485760405162461bcd60e51b8152600401610bce90612343565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f611773611dca565b905090565b6001600160a01b0383166117da5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bce565b6001600160a01b03821661183b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bce565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f5b825481101561128e57816001600160a01b03168382815481106118c2576118c26124c4565b5f918252602090912001546001600160a01b03160361198857825483906118eb90600190612399565b815481106118fb576118fb6124c4565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110611928576119286124c4565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480611963576119636125f1565b5f8281526020902081015f1990810180546001600160a01b0319169055019055505050565b80611992816124d8565b91505061189d565b5f6119a584846116ed565b90505f198114610dca57818110156119ff5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610bce565b610dca8484848403611778565b6001600160a01b038316611a705760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bce565b6001600160a01b038216611ad25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bce565b6001600160a01b0383165f9081526020819052604090205481811015611b495760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610bce565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dca565b5f8381526012602090815260408083206001600160a01b038516845290915281208054849290611bdf9084906124b1565b90915550505f8381526013602052604081208054849290611c019084906124b1565b9091555050505050565b6001600160a01b038216611c615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610bce565b8060025f828254611c7291906124b1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f828152600a602052604081205411611cf35760405162461bcd60e51b8152600401610bce90612605565b600f546001600160a01b0316611d1b5760405162461bcd60e51b8152600401610bce90612605565b5f828152600a6020526040812054611d3490839061249a565b905080341015611d7b5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f56414c554560701b6044820152606401610bce565b600f546040516001600160a01b03909116903480156108fc02915f818181858888f19350505050158015610dca573d5f803e3d5ffd5b600c54610f5190839083906001600160a01b0316611dfd565b5f60143610801590611de657506008546001600160a01b031633145b15611df8575060131936013560601c90565b503390565b6001600160a01b0381165f908152600d602052604090205460ff16611e645760405162461bcd60e51b815260206004820152601f60248201527f43555252454e43595f434f4e54524143545f4e4f545f535550504f52544544006044820152606401610bce565b5f611e6f8285610ac5565b11611e8c5760405162461bcd60e51b8152600401610bce90612605565b600f546001600160a01b0316611eb45760405162461bcd60e51b8152600401610bce90612605565b6001600160a01b038116611eda5760405162461bcd60e51b8152600401610bce90612605565b5f611ee58285610ac5565b611eef908461249a565b9050816001600160a01b0381166323b872dd611f0961176a565b600f5460405160e084901b6001600160e01b03191681526001600160a01b03928316600482015291166024820152604481018590526064016020604051808303815f875af1158015611f5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f81919061262c565b505050505050565b5080545f8255905f5260205f2090810190610c6891905b80821115611fb3575f8155600101611fa0565b5090565b5f60208284031215611fc7575f80fd5b5035919050565b5f60208284031215611fde575f80fd5b81356001600160e01b031981168114610d19575f80fd5b6001600160a01b0381168114610c68575f80fd5b5f806040838503121561201a575f80fd5b823561202581611ff5565b946020939093013593505050565b5f6020808352835180828501525f5b8181101561205e57858101830151858201604001528201612042565b505f604082860101526040601f19601f8301168501019250505092915050565b5f6020828403121561208e575f80fd5b8135610d1981611ff5565b5f80604083850312156120aa575f80fd5b8235915060208301356120bc81611ff5565b809150509250929050565b5f80604083850312156120d8575f80fd5b50508035926020909101359150565b5f805f606084860312156120f9575f80fd5b833561210481611ff5565b9250602084013561211481611ff5565b929592945050506040919091013590565b5f805f60608486031215612137575f80fd5b8335925060208401359150604084013561215081611ff5565b809150509250925092565b5f805f806080858703121561216e575f80fd5b8435935060208501359250604085013561218781611ff5565b9150606085013561219781611ff5565b939692955090935050565b602080825282518282018190525f9190848201906040850190845b818110156121e25783516001600160a01b0316835292840192918401916001016121bd565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215612212575f80fd5b813567ffffffffffffffff80821115612229575f80fd5b818401915084601f83011261223c575f80fd5b81358181111561224e5761224e6121ee565b604051601f8201601f19908116603f01168101908382118183101715612276576122766121ee565b8160405282815287602084870101111561228e575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f805f606084860312156122bf575f80fd5b83356122ca81611ff5565b95602085013595506040909401359392505050565b5f80604083850312156122f0575f80fd5b82356122fb81611ff5565b915060208301356120bc81611ff5565b600181811c9082168061231f57607f821691505b60208210810361233d57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f604082015261371760f11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612385565b600181815b808511156123e657815f19048211156123cc576123cc612385565b808516156123d957918102915b93841c93908002906123b1565b509250929050565b5f826123fc57506001610abf565b8161240857505f610abf565b816001811461241e576002811461242857612444565b6001915050610abf565b60ff84111561243957612439612385565b50506001821b610abf565b5060208310610133831016604e8410600b8410161715612467575081810a610abf565b61247183836123ac565b805f190482111561248457612484612385565b029392505050565b5f610d1960ff8416836123ee565b8082028115828204841417610abf57610abf612385565b80820180821115610abf57610abf612385565b634e487b7160e01b5f52603260045260245ffd5b5f600182016124e9576124e9612385565b5060010190565b601f82111561128e575f81815260208120601f850160051c810160208610156125165750805b601f850160051c820191505b81811015611f8157828155600101612522565b815167ffffffffffffffff81111561254f5761254f6121ee565b6125638161255d845461230b565b846124f0565b602080601f831160018114612596575f841561257f5750858301515b5f19600386901b1c1916600185901b178555611f81565b5f85815260208120601f198616915b828110156125c4578886015182559484019460019091019084016125a5565b50858210156125e157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603160045260245ffd5b6020808252600d908201526c14d1531317d11254d050931151609a1b604082015260600190565b5f6020828403121561263c575f80fd5b81518015158114610d19575f80fdfea2646970667358221220997760f6a792207538e7684412f9247e36065de936d8edd7b8c1abe2e327452864736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}