[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_r", "type": "uint256" } ], "name": "create_name", "outputs": [ { "internalType": "string", "name": "gen_name", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gen_v", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "generate", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "harvest", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "info", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "owned_gens", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royalty_percentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_gen_v", "type": "uint256" } ], "name": "setGen_v", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percentage", "type": "uint256" } ], "name": "set_royalty", "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": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenIdToMinter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604080518082018252600b81526a283937b532b1ba1023b2b760a91b60208083019182528351808501909452600584526447656e2d3160d81b9084015281519192916200006291600091620005b4565b50805162000078906001906020840190620005b4565b505050620000956200008f6200055e60201b60201c565b62000562565b60076016819055610309601055670de0b6b3a7640000600f556001600c55602a600d556101f4600e55604080516101a0810182526101608101838152661198182323232360c91b610180830152815281518083018352838152660233030464630360cc1b6020828101919091528083019190915282518084018452848152661198181818232360c91b818301528284015282518084018452848152660233746464630360cc1b81830152606083015282518084018452848152662346463134393360c81b818301526080830152825180840184528481526611a3231818232360c91b8183015260a083015282518084018452848152660234646303030360cc1b8183015260c083015282518084018452848152660234646464630360cc1b8183015260e0830152825180840184528481526611a3232323232360c91b8183015261010083015282518084018452848152662344433134334360c81b81830181905261012084019190915283518085019094529383528201929092526101408201526200022690601390600b62000643565b50604080516103208101825260016102e08201818152603160f91b610300840152825282518084018452818152606360f81b6020828101919091528084019190915283518085018552828152601960fa1b818301528385015283518085018552828152603360f91b81830152606084015283518085018552828152606760f81b81830152608084015283518085018552828152600d60fb1b8183015260a084015283518085018552828152606960f81b8183015260c084015283518085018552828152603560f91b81830181905260e0850191909152845180860186528381528083019190915261010084015283518085018552828152606b60f81b8183015261012084015283518085018552828152601b60fa1b8183015261014084015283518085018552828152606d60f81b8183015261016084015283518085018552828152603760f91b8183015261018084015283518085018552828152600760fc1b818301526101a084015283518085018552828152607160f81b818301526101c084015283518085018552828152603960f91b818301526101e084015283518085018552828152607360f81b8183015261020084015283518085018552828152601d60fa1b8183015261022084015283518085018552828152603b60f91b8183015261024084015283518085018552828152607760f81b8183015261026084015283518085018552828152600f60fb1b8183015261028084015283518085018552828152607960f81b818301526102a08401528351808501909452908352603d60f91b908301526102c081019190915262000485906014906017620006a3565b506040805160e081018252600160a08201818152606160f81b60c0840152825282518084018452818152606560f81b6020828101919091528084019190915283518085018552828152606960f81b818301528385015283518085018552828152606f60f81b8183015260608401528351808501909452908352607560f81b9083015260808101919091526200051f906015906005620006f5565b50604080513360208201526103099181019190915242606082015260800160408051601f198184030181529190528051602090910120601155620007fe565b3390565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620005c290620007c1565b90600052602060002090601f016020900481019282620005e6576000855562000631565b82601f106200060157805160ff191683800117855562000631565b8280016001018555821562000631579182015b828111156200063157825182559160200191906001019062000614565b506200063f92915062000747565b5090565b82805482825590600052602060002090810192821562000695579160200282015b8281111562000695578251805162000684918491602090910190620005b4565b509160200191906001019062000664565b506200063f9291506200075e565b82805482825590600052602060002090810192821562000695579160200282015b82811115620006955782518051620006e4918491602090910190620005b4565b5091602001919060010190620006c4565b82805482825590600052602060002090810192821562000695579160200282015b8281111562000695578251805162000736918491602090910190620005b4565b509160200191906001019062000716565b5b808211156200063f576000815560010162000748565b808211156200063f5760006200077582826200077f565b506001016200075e565b5080546200078d90620007c1565b6000825580601f106200079e575050565b601f016020900490600052602060002090810190620007be919062000747565b50565b600181811c90821680620007d657607f821691505b60208210811415620007f857634e487b7160e01b600052602260045260246000fd5b50919050565b613c9d806200080e6000396000f3fe6080604052600436106101cd5760003560e01c80634f6ccce7116100f7578063854aaa4611610095578063b88d4fde11610064578063b88d4fde14610508578063c87b56dd14610528578063e985e9c514610548578063f2fde38b1461059157600080fd5b8063854aaa461461049f5780638da5cb5b146104b557806395d89b41146104d3578063a22cb465146104e857600080fd5b806370a08231116100d157806370a0823114610454578063715018a61461047457806371998f2d1461048957806382c60c421461036d57600080fd5b80634f6ccce7146103f45780636352211e14610414578063658547c21461043457600080fd5b806319e979e41161016f5780632a55205a1161013e5780632a55205a1461036d5780632f745c59146103ac57806342842e0e146103cc5780634641257d146103ec57600080fd5b806319e979e4146102e25780632218f1191461030f57806323b872dd146103455780632a1bbc341461036557600080fd5b8063081812fc116101ab578063081812fc1461024b578063095ea7b3146102835780630b6faa09146102a357806318160ddd146102c357600080fd5b806301ffc9a7146101d257806304a42c7f1461020757806306fdde0314610229575b600080fd5b3480156101de57600080fd5b506101f26101ed3660046131f2565b6105b1565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5061022761022236600461320f565b6105e3565b005b34801561023557600080fd5b5061023e61061b565b6040516101fe9190613280565b34801561025757600080fd5b5061026b61026636600461320f565b6106ad565b6040516001600160a01b0390911681526020016101fe565b34801561028f57600080fd5b5061022761029e3660046132af565b610735565b3480156102af57600080fd5b506102276102be36600461320f565b61084b565b3480156102cf57600080fd5b506009545b6040519081526020016101fe565b3480156102ee57600080fd5b506103026102fd3660046132d9565b61087a565b6040516101fe91906132f4565b34801561031b57600080fd5b5061026b61032a36600461320f565b6017602052600090815260409020546001600160a01b031681565b34801561035157600080fd5b50610227610360366004613338565b61091c565b61022761094d565b34801561037957600080fd5b5061038d610388366004613374565b610b83565b604080516001600160a01b0390931683526020830191909152016101fe565b3480156103b857600080fd5b506102d46103c73660046132af565b610bc3565b3480156103d857600080fd5b506102276103e7366004613338565b610c59565b610227610c74565b34801561040057600080fd5b506102d461040f36600461320f565b610cf6565b34801561042057600080fd5b5061026b61042f36600461320f565b610d89565b34801561044057600080fd5b5061023e61044f36600461320f565b610e00565b34801561046057600080fd5b506102d461046f3660046132d9565b6116b8565b34801561048057600080fd5b5061022761173f565b34801561049557600080fd5b506102d4600f5481565b3480156104ab57600080fd5b506102d460165481565b3480156104c157600080fd5b50600b546001600160a01b031661026b565b3480156104df57600080fd5b5061023e611775565b3480156104f457600080fd5b50610227610503366004613396565b611784565b34801561051457600080fd5b506102276105233660046133e8565b611849565b34801561053457600080fd5b5061023e61054336600461320f565b611881565b34801561055457600080fd5b506101f26105633660046134c4565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561059d57600080fd5b506102276105ac3660046132d9565b61188c565b600063152a902d60e11b6001600160e01b0319831614156105d457506001919050565b6105dd82611924565b92915050565b600b546001600160a01b031633146106165760405162461bcd60e51b815260040161060d906134f7565b60405180910390fd5b601655565b60606000805461062a9061352c565b80601f01602080910402602001604051908101604052809291908181526020018280546106569061352c565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106b882611949565b6107195760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161060d565b506000908152600460205260409020546001600160a01b031690565b600061074082610d89565b9050806001600160a01b0316836001600160a01b031614156107ae5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161060d565b336001600160a01b03821614806107ca57506107ca8133610563565b61083c5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161060d565b6108468383611966565b505050565b600b546001600160a01b031633146108755760405162461bcd60e51b815260040161060d906134f7565b600f55565b60606000610887836116b8565b905060008167ffffffffffffffff8111156108a4576108a46133d2565b6040519080825280602002602001820160405280156108cd578160200160208202803683370190505b50905060005b82811015610914576108e58582610bc3565b8282815181106108f7576108f7613567565b60209081029190910101528061090c81613593565b9150506108d3565b509392505050565b61092633826119d4565b6109425760405162461bcd60e51b815260040161060d906135ae565b610846838383611abe565b601054600c5411156109975760405162461bcd60e51b815260206004820152601360248201527211d95b995b995cda5cc818dbdb5c1b195d1959606a1b604482015260640161060d565b600f543410156109de5760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b604482015260640161060d565b6109ea33600c54611c69565b60138054600091906109fd8160016135ff565b601154610a0a91906135ff565b610a14919061362d565b81548110610a2457610a24613567565b906000526020600020018054610a399061352c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a659061352c565b8015610ab25780601f10610a8757610100808354040283529160200191610ab2565b820191906000526020600020905b815481529060010190602001808311610a9557829003601f168201915b505050505090506000610ac482611c87565b90506000610ad782601154600d54611cdf565b90506000610ae48261207b565b90506000610af3601154610e00565b90506000610b048383600c5461210e565b9050610b12600c5482612177565b600c8054600090815260176020526040902080546001600160a01b0319163317905554610b409060016135ff565b600c55604080513360208201526103099181019190915242606082015260800160408051601f198184030181529190528051602090910120601155505050505050565b6000806000606460165485610b989190613641565b610ba29190613660565b600095865260176020526040909520546001600160a01b0316959350505050565b6000610bce836116b8565b8210610c305760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161060d565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b61084683838360405180602001604052806000815250611849565b600b546001600160a01b03163314610c9e5760405162461bcd60e51b815260040161060d906134f7565b604051600090339047908381818185875af1925050503d8060008114610ce0576040519150601f19603f3d011682016040523d82523d6000602084013e610ce5565b606091505b5050905080610cf357600080fd5b50565b6000610d0160095490565b8210610d645760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161060d565b60098281548110610d7757610d77613567565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806105dd5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161060d565b6060600061029a33600c5485610e1691906135ff565b610309604051602001610e2b93929190613674565b6040516020818303038152906040528051906020012060001c610e4e919061362d565b9050600061022b33600c546005610e6591906135ff565b610e6f90876135ff565b610309604051602001610e8493929190613674565b6040516020818303038152906040528051906020012060001c610ea7919061362d565b905060006101bc33600c546004610ebe91906135ff565b610ec890886135ff565b610309604051602001610edd93929190613674565b6040516020818303038152906040528051906020012060001c610f00919061362d565b9050600061014d33600c546003610f1791906135ff565b610f2190896135ff565b610309604051602001610f3693929190613674565b6040516020818303038152906040528051906020012060001c610f59919061362d565b9050600060de33600c546002610f6f91906135ff565b610f79908a6135ff565b610309604051602001610f8e93929190613674565b6040516020818303038152906040528051906020012060001c610fb1919061362d565b90506000606f33600c546001610fc791906135ff565b610fd1908b6135ff565b610309604051602001610fe693929190613674565b6040516020818303038152906040528051906020012060001c611009919061362d565b905061014d8610156113c457601580546110248160016135ff565b61102e90896135ff565b611038919061362d565b8154811061104857611048613567565b906000526020600020016040516020016110629190613733565b60408051601f198184030181529190526014805491985088916110868160016135ff565b61109090896135ff565b61109a919061362d565b815481106110aa576110aa613567565b906000526020600020016040516020016110c592919061373f565b604051602081830303815290604052965060fc85111561126f57601480548891906110f18160016135ff565b6110fb90886135ff565b611105919061362d565b8154811061111557611115613567565b9060005260206000200160405160200161113092919061373f565b60408051601f198184030181529190526015805491985088916111548160016135ff565b61115e90876135ff565b611168919061362d565b8154811061117857611178613567565b9060005260206000200160405160200161119392919061373f565b60408051601f198184030181529190526014805491985088916111b78160016135ff565b6111c190866135ff565b6111cb919061362d565b815481106111db576111db613567565b906000526020600020016040516020016111f692919061373f565b60408051601f1981840301815291905260158054919850889161121a8160016135ff565b61122490856135ff565b61122e919061362d565b8154811061123e5761123e613567565b9060005260206000200160405160200161125992919061373f565b60405160208183030381529060405296506116ad565b601580548891906112818160016135ff565b61128b90886135ff565b611295919061362d565b815481106112a5576112a5613567565b906000526020600020016040516020016112c092919061373f565b60408051601f198184030181529190526014805491985088916112e48160016135ff565b6112ee90876135ff565b6112f8919061362d565b8154811061130857611308613567565b9060005260206000200160405160200161132392919061373f565b604051602081830303815290604052965060de8411156113b2576015805488919061134f8160016135ff565b61135990866135ff565b611363919061362d565b8154811061137357611373613567565b9060005260206000200160405160200161138e92919061373f565b60408051601f1981840301815291905260148054919850889161121a8160016135ff565b601480548891906111b78160016135ff565b601480548891906113d68160016135ff565b6113e0908a6135ff565b6113ea919061362d565b815481106113fa576113fa613567565b9060005260206000200160405160200161141592919061373f565b60408051601f198184030181529190526015805491985088916114398160016135ff565b61144390896135ff565b61144d919061362d565b8154811061145d5761145d613567565b9060005260206000200160405160200161147892919061373f565b604051602081830303815290604052965060de8411156114a457601480548891906110f18160016135ff565b601480548891906114b68160016135ff565b6114c090886135ff565b6114ca919061362d565b815481106114da576114da613567565b906000526020600020016040516020016114f592919061373f565b6040516020818303038152906040529650606f83111561158457601480548891906115218160016135ff565b61152b90876135ff565b611535919061362d565b8154811061154557611545613567565b9060005260206000200160405160200161156092919061373f565b60408051601f1981840301815291905260158054919850889161134f8160016135ff565b601480548891906115968160016135ff565b6115a090876135ff565b6115aa919061362d565b815481106115ba576115ba613567565b906000526020600020016040516020016115d592919061373f565b60408051601f198184030181529190526015805491985088916115f98160016135ff565b61160390866135ff565b61160d919061362d565b8154811061161d5761161d613567565b9060005260206000200160405160200161163892919061373f565b60408051601f1981840301815291905260148054919850889161165c8160016135ff565b61166690856135ff565b611670919061362d565b8154811061168057611680613567565b9060005260206000200160405160200161169b92919061373f565b60405160208183030381529060405296505b505050505050919050565b60006001600160a01b0382166117235760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161060d565b506001600160a01b031660009081526003602052604090205490565b600b546001600160a01b031633146117695760405162461bcd60e51b815260040161060d906134f7565b6117736000612202565b565b60606001805461062a9061352c565b6001600160a01b0382163314156117dd5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161060d565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61185333836119d4565b61186f5760405162461bcd60e51b815260040161060d906135ae565b61187b84848484612254565b50505050565b60606105dd82612287565b600b546001600160a01b031633146118b65760405162461bcd60e51b815260040161060d906134f7565b6001600160a01b03811661191b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161060d565b610cf381612202565b60006001600160e01b0319821663780e9d6360e01b14806105dd57506105dd826123de565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061199b82610d89565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006119df82611949565b611a405760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161060d565b6000611a4b83610d89565b9050806001600160a01b0316846001600160a01b03161480611a865750836001600160a01b0316611a7b846106ad565b6001600160a01b0316145b80611ab657506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b0316611ad182610d89565b6001600160a01b031614611b395760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161060d565b6001600160a01b038216611b9b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161060d565b611ba683838361242e565b611bb1600082611966565b6001600160a01b0383166000908152600360205260408120805460019290611bda908490613766565b90915550506001600160a01b0382166000908152600360205260408120805460019290611c089084906135ff565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611c83828260405180602001604052806000815250612439565b5050565b60606000611c9361246c565b90506000611ca082612595565b90506000611cae828661269b565b90506000611cbc82876126e9565b90506000611cc9826126fc565b9050611cd48161277d565b979650505050505050565b604080516020808201859052338284015261030960608084019190915283518084038201815260809093019093528151910120600090611d2090849061362d565b905080611d2b5750602a5b60005b8181101561204e5760006002600e54611d479190613660565b604080516020810189905290810184905261030960608201526080016040516020818303038152906040528051906020012060001c611d86919061362d565b905060006002600e54611d999190613660565b87611da58560016135ff565b60408051602081019390935282015261030960608201526080016040516020818303038152906040528051906020012060001c611de2919061362d565b905060006002600e54611df59190613660565b88611e018660026135ff565b60408051602081019390935282015261030960608201526080016040516020818303038152906040528051906020012060001c611e3e919061362d565b905060006002600e54611e519190613660565b89611e5d8760036135ff565b60408051602081019390935282015261030960608201526080016040516020818303038152906040528051906020012060001c611e9a919061362d565b90506000611ea785612857565b611eb085612857565b611eb985612857565b611ec285612857565b604051602001611ed5949392919061377d565b60405160208183030381529060405290506000611efe86600e54611ef99190613766565b612857565b611f0786612857565b611f1886600e54611ef99190613766565b611f2186612857565b604051602001611f34949392919061377d565b60405160208183030381529060405290506000611f5887600e54611ef99190613766565b611f6987600e54611ef99190613766565b611f7a87600e54611ef99190613766565b611f8b87600e54611ef99190613766565b604051602001611f9e949392919061377d565b60405160208183030381529060405290506000611fba88612857565b611fcb88600e54611ef99190613766565b611fd488612857565b611fe588600e54611ef99190613766565b604051602001611ff8949392919061377d565b60405160208183030381529060405290508a84848484604051602001612022959493929190613810565b6040516020818303038152906040529a505050505050505050808061204690613593565b915050611d2e565b50848260405160200161206292919061387b565b6040516020818303038152906040529150509392505050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000815250905060006120e1846040516020016120cd91906138bf565b604051602081830303815290604052612980565b905081816040516020016120f69291906138db565b60405160208183030381529060405292505050919050565b60408051808201909152601d81527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020820152606090806121668561215386612857565b886040516020016120cd9392919061390a565b6040516020016120629291906138db565b61218082611949565b6121e35760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161060d565b6000828152600660209081526040909120825161084692840190613143565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61225f848484611abe565b61226b84848484612ae8565b61187b5760405162461bcd60e51b815260040161060d906139e0565b606061229282611949565b6122f85760405162461bcd60e51b815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b606482015260840161060d565b600082815260066020526040812080546123119061352c565b80601f016020809104026020016040519081016040528092919081815260200182805461233d9061352c565b801561238a5780601f1061235f5761010080835404028352916020019161238a565b820191906000526020600020905b81548152906001019060200180831161236d57829003601f168201915b5050505050905060006123a860408051602081019091526000815290565b90508051600014156123bb575092915050565b8151156123d55780826040516020016120f69291906138db565b611ab684612be6565b60006001600160e01b031982166380ac58cd60e01b148061240f57506001600160e01b03198216635b5e139f60e01b145b806105dd57506301ffc9a760e01b6001600160e01b03198316146105dd565b610846838383612cbe565b6124438383612d76565b6124506000848484612ae8565b6108465760405162461bcd60e51b815260040161060d906139e0565b6060604051602001612581907f3c7376672076657273696f6e3d22312e312220786d6c6e733d22687474703a2f81527f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e60208201527f6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b2260408201527f2076696577426f783d2230203020353030203530302220656e61626c652d626160608201527f636b67726f756e643d226e65772030203020353030203530302220786d6c3a7360808201527f706163653d22707265736572766522207374796c653d226261636b67726f756e60a08201526e3216b1b7b637b91d313630b1b5911f60891b60c0820152600560f91b60cf82015260d00190565b604051602081830303815290604052905090565b606060405160200161266190661e39ba3cb6329f60c91b8152600560f91b60078201819052662e73766731207b60c81b6008830152600f8201819052757374726f6b652d6461736861727261793a203430303b60501b601083015260268201819052777374726f6b652d646173686f66667365743a20313634343b60401b6027830152603f82018190527f616e696d6174696f6e3a20646173682031357320696e66696e697465203b00006040830152605e8201819052607d60f81b605f830152606082015260610190565b604051602081830303815290604052905081816040516020016126859291906138db565b6040516020818303038152906040529050919050565b6060816040516020016126ae9190613a32565b604051602081830303815290604052905082816040516020016126d29291906138db565b604051602081830303815290604052905092915050565b6060816040516020016126ae9190613ae4565b6060604051602001612661907f3c646566733e3c66696c7465722069643d226631223e3c6665436f6e766f6c7681527f654d6174726978206b65726e656c4d61747269783d223120312030203020302060208201527f3020302031202d31222f3e3c2f66696c7465723e3c2f646566733e00000000006040820152605b0190565b6060604051602001612661907f3c7061746820636c6173733d2273766731222066696c7465723d2275726c282381527f66312922207374796c653d2266696c6c3a206e6f6e653b207374726f6b653a2060208201527f77686974653b207374726f6b652d77696474683a20302e393b207374726f6b6560408201527f2d6c696e656361703a20726f756e643b207374726f6b652d6c696e656a6f696e60608201527f3a20206d697465723b207374726f6b652d6d697465726c696d69743a20313b2260808201526310321e9160e11b60a082015260a40190565b60608161287b5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156128a5578061288f81613593565b915061289e9050600a83613660565b915061287f565b60008167ffffffffffffffff8111156128c0576128c06133d2565b6040519080825280601f01601f1916602001820160405280156128ea576020820181803683370190505b509050815b851561297757612900600182613766565b9050600061290f600a88613660565b61291a90600a613641565b6129249088613766565b61292f906030613b92565b905060008160f81b90508084848151811061294c5761294c613567565b60200101906001600160f81b031916908160001a90535061296e600a89613660565b975050506128ef565b50949350505050565b60608151600014156129a057505060408051602081019091526000815290565b6000604051806060016040528060408152602001613c2860409139905060006003845160026129cf91906135ff565b6129d99190613660565b6129e4906004613641565b905060006129f38260206135ff565b67ffffffffffffffff811115612a0b57612a0b6133d2565b6040519080825280601f01601f191660200182016040528015612a35576020820181803683370190505b509050818152600183018586518101602084015b81831015612aa35760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401612a49565b600389510660018114612abd5760028114612ace57612ada565b613d3d60f01b600119830152612ada565b603d60f81b6000198301525b509398975050505050505050565b60006001600160a01b0384163b15612bdb57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612b2c903390899088908890600401613bb7565b6020604051808303816000875af1925050508015612b67575060408051601f3d908101601f19168201909252612b6491810190613bf4565b60015b612bc1573d808015612b95576040519150601f19603f3d011682016040523d82523d6000602084013e612b9a565b606091505b508051612bb95760405162461bcd60e51b815260040161060d906139e0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611ab6565b506001949350505050565b6060612bf182611949565b612c555760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161060d565b6000612c6c60408051602081019091526000815290565b90506000815111612c8c5760405180602001604052806000815250612cb7565b80612c9684612eb5565b604051602001612ca79291906138db565b6040516020818303038152906040525b9392505050565b6001600160a01b038316612d1957612d1481600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b612d3c565b816001600160a01b0316836001600160a01b031614612d3c57612d3c8382612fb3565b6001600160a01b038216612d535761084681613050565b826001600160a01b0316826001600160a01b0316146108465761084682826130ff565b6001600160a01b038216612dcc5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161060d565b612dd581611949565b15612e225760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161060d565b612e2e6000838361242e565b6001600160a01b0382166000908152600360205260408120805460019290612e579084906135ff565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606081612ed95750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612f035780612eed81613593565b9150612efc9050600a83613660565b9150612edd565b60008167ffffffffffffffff811115612f1e57612f1e6133d2565b6040519080825280601f01601f191660200182016040528015612f48576020820181803683370190505b5090505b8415611ab657612f5d600183613766565b9150612f6a600a8661362d565b612f759060306135ff565b60f81b818381518110612f8a57612f8a613567565b60200101906001600160f81b031916908160001a905350612fac600a86613660565b9450612f4c565b60006001612fc0846116b8565b612fca9190613766565b60008381526008602052604090205490915080821461301d576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b60095460009061306290600190613766565b6000838152600a60205260408120546009805493945090928490811061308a5761308a613567565b9060005260206000200154905080600983815481106130ab576130ab613567565b6000918252602080832090910192909255828152600a909152604080822084905585825281205560098054806130e3576130e3613c11565b6001900381819060005260206000200160009055905550505050565b600061310a836116b8565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b82805461314f9061352c565b90600052602060002090601f01602090048101928261317157600085556131b7565b82601f1061318a57805160ff19168380011785556131b7565b828001600101855582156131b7579182015b828111156131b757825182559160200191906001019061319c565b506131c39291506131c7565b5090565b5b808211156131c357600081556001016131c8565b6001600160e01b031981168114610cf357600080fd5b60006020828403121561320457600080fd5b8135612cb7816131dc565b60006020828403121561322157600080fd5b5035919050565b60005b8381101561324357818101518382015260200161322b565b8381111561187b5750506000910152565b6000815180845261326c816020860160208601613228565b601f01601f19169290920160200192915050565b602081526000612cb76020830184613254565b80356001600160a01b03811681146132aa57600080fd5b919050565b600080604083850312156132c257600080fd5b6132cb83613293565b946020939093013593505050565b6000602082840312156132eb57600080fd5b612cb782613293565b6020808252825182820181905260009190848201906040850190845b8181101561332c57835183529284019291840191600101613310565b50909695505050505050565b60008060006060848603121561334d57600080fd5b61335684613293565b925061336460208501613293565b9150604084013590509250925092565b6000806040838503121561338757600080fd5b50508035926020909101359150565b600080604083850312156133a957600080fd5b6133b283613293565b9150602083013580151581146133c757600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156133fe57600080fd5b61340785613293565b935061341560208601613293565b925060408501359150606085013567ffffffffffffffff8082111561343957600080fd5b818701915087601f83011261344d57600080fd5b81358181111561345f5761345f6133d2565b604051601f8201601f19908116603f01168101908382118183101715613487576134876133d2565b816040528281528a60208487010111156134a057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156134d757600080fd5b6134e083613293565b91506134ee60208401613293565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061354057607f821691505b6020821081141561356157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156135a7576135a761357d565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156136125761361261357d565b500190565b634e487b7160e01b600052601260045260246000fd5b60008261363c5761363c613617565b500690565b600081600019048311821515161561365b5761365b61357d565b500290565b60008261366f5761366f613617565b500490565b6001600160a01b03939093168352602083019190915261ffff16604082015260600190565b8054600090600181811c90808316806136b357607f831692505b60208084108214156136d557634e487b7160e01b600052602260045260246000fd5b8180156136e957600181146136fa57613727565b60ff19861689528489019650613727565b60008881526020902060005b8681101561371f5781548b820152908501908301613706565b505084890196505b50505050505092915050565b6000612cb78284613699565b60008351613751818460208801613228565b61375d81840185613699565b95945050505050565b6000828210156137785761377861357d565b500390565b604d60f81b815260008551613799816001850160208a01613228565b8083019050600160fd1b80600183015286516137bc816002850160208b01613228565b6002920191820181905285516137d9816003850160208a01613228565b600392019182015283516137f4816004840160208801613228565b602d60f91b600492909101918201526005019695505050505050565b60008651613822818460208b01613228565b865190830190613836818360208b01613228565b8651910190613849818360208a01613228565b855191019061385c818360208901613228565b845191019061386f818360208801613228565b01979650505050505050565b6000835161388d818460208801613228565b8351908301906138a1818360208801613228565b691110179f1e17b9bb339f60b11b9101908152600a01949350505050565b600082516138d1818460208701613228565b9190910192915050565b600083516138ed818460208801613228565b835190830190613901818360208801613228565b01949350505050565b693d913730b6b2911d101160b11b8152835160009061393081600a850160208901613228565b6201116160ed1b600a9184019182018190527f226465736372697074696f6e223a202247656e31204e303a0000000000000000600d830152855161397b816025850160208a01613228565b60259201918201527101130ba3a3934b13aba32b9911d10111116160751b6028820152691134b6b0b3b2911d101160b11b603a82015283516139c4816044840160208801613228565b61227d60f01b6044929091019182015260460195945050505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b70406b65796672616d65732064617368207b60781b81526000600560f91b8060118401526566726f6d207b60d01b6012840152806018840152777374726f6b652d646173686f66667365743a20313634343b60401b601984015280603184015267039ba3937b5b29d160c51b60328401528351613ab681603a860160208801613228565b603b60f81b603a9490910193840152603b8301819052607d60f81b603c840152603d83015250603e01919050565b63746f207b60e01b81526000600560f91b806004840152757374726f6b652d6461736861727261793a203832323b60501b600584015280601b84015267039ba3937b5b29d160c51b601c8401528351613b44816024860160208801613228565b8084019050603b60f81b6024820152816025820152607d60f81b8060268301528260278301528060288301525081602982015261375d602a8201671e17b9ba3cb6329f60c11b815260080190565b600060ff821660ff84168060ff03821115613baf57613baf61357d565b019392505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613bea90830184613254565b9695505050505050565b600060208284031215613c0657600080fd5b8151612cb7816131dc565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220804b3b93c1cc33105038246520a7ee310cb6aa3da78e434829a3f66099e1641664736f6c634300080b0033