[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "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": "tokens", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_user", "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": "_tokens", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "collectTradingFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "concentratedPercent", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creatorFee", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialMarketCap", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_creator", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_totalSupply", "type": "uint256" }, { "internalType": "uint256", "name": "_initialMarketCap", "type": "uint256" }, { "internalType": "uint256", "name": "_upperMarketCap", "type": "uint256" }, { "internalType": "uint256", "name": "_concentratedPercent", "type": "uint256" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "lock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "positions", "outputs": [ { "internalType": "uint256", "name": "lower", "type": "uint256" }, { "internalType": "uint256", "name": "upper", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "source", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "team", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "_tokens", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokens", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "transferAndCall", "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": "_tokens", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upperMarketCap", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561000f575f80fd5b506131b18061001d5f395ff3fe608060405260043610610131575f3560e01c806367e828bf116100a8578063a9059cbb1161006d578063a9059cbb14610329578063ba5b798214610348578063bdaaa6401461036f578063dd62ed3e14610383578063e88958dc146103cb578063f83d08ba146103df575f80fd5b806367e828bf1461029857806370a08231146102ac57806385f2aef2146102e0578063947f66901461030257806395d89b4114610315575f80fd5b806318160ddd116100f957806318160ddd146101ec57806323b872dd1461020a578063313ce567146102295780633b5f19351461024f5780634000aea01461026357806353f8b30314610282575f80fd5b806302d05d3f1461013557806306fdde031461016b578063095ea7b31461018c5780630bb68bd2146101bb57806316f0115b146101cf575b5f80fd5b348015610140575f80fd5b506004546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b348015610176575f80fd5b5061017f6103f3565b6040516101629190612017565b348015610197575f80fd5b506101ab6101a6366004612060565b61047e565b6040519015158152602001610162565b3480156101c6575f80fd5b5061017f610493565b3480156101da575f80fd5b506003546001600160a01b031661014e565b3480156101f7575f80fd5b506005545b604051908152602001610162565b348015610215575f80fd5b506101ab61022436600461208a565b6104d4565b348015610234575f80fd5b5061023d601281565b60405160ff9091168152602001610162565b34801561025a575f80fd5b5061017f610551565b34801561026e575f80fd5b506101ab61027d3660046120c8565b610575565b34801561028d575f80fd5b50610296610616565b005b3480156102a3575f80fd5b5061017f610879565b3480156102b7575f80fd5b506101fc6102c636600461214a565b6001600160a01b03165f908152600a602052604090205490565b3480156102eb575f80fd5b5060025461010090046001600160a01b031661014e565b610296610310366004612202565b610895565b348015610320575f80fd5b5061017f610a86565b348015610334575f80fd5b506101ab610343366004612060565b610a93565b348015610353575f80fd5b50600b54600c5460408051928352602083019190915201610162565b34801561037a575f80fd5b5061017f610a9f565b34801561038e575f80fd5b506101fc61039d36600461229f565b6001600160a01b039182165f908152600a602090815260408083209390941682526001909201909152205490565b3480156103d6575f80fd5b5061017f610ab3565b3480156103ea575f80fd5b50610296610ac8565b5f80546103ff906122d6565b80601f016020809104026020016040519081016040528092919081815260200182805461042b906122d6565b80156104765780601f1061044d57610100808354040283529160200191610476565b820191905f5260205f20905b81548152906001019060200180831161045957829003601f168201915b505050505081565b5f61048a338484610af2565b90505b92915050565b6008546060906104b0906104a890606461231c565b600380610b5e565b6040516020016104c09190612333565b604051602081830303815290604052905090565b6001600160a01b0383165f908152600a6020908152604080832033845260010190915281205482811015610506575f80fd5b5f19811461053b576001600160a01b0385165f908152600a602090815260408083203384526001019091529020805484900390555b610546858585610e76565b9150505b9392505050565b606061056560026004015460126005610b5e565b6040516020016104c09190612357565b5f610581338686610e76565b50843b63ffffffff81161561060a57604051636be32e7360e01b81526001600160a01b03871690636be32e73906105c290339089908990899060040161237e565b6020604051808303815f875af11580156105de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060291906123c5565b61060a575f80fd5b50600195945050505050565b5f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610667573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068b91906123e4565b600b549091501561075457806001600160a01b031663fc6f7865604051806080016040528060026009015481526020016106d36002546001600160a01b036101009091041690565b6001600160a01b031681526001600160801b0360208201819052604091820152516001600160e01b031960e084901b16815261071291906004016123ff565b60408051808303815f875af115801561072d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107519190612442565b50505b806001600160a01b031663fc6f786560405180608001604052806002600a015481526020016107916002546001600160a01b036101009091041690565b6001600160a01b031681526001600160801b0360208201819052604091820152516001600160e01b031960e084901b1681526107d091906004016123ff565b60408051808303815f875af11580156107eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080f9190612442565b505060025f0160019054906101000a90046001600160a01b03166001600160a01b031663476343ee6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610860575f80fd5b505af1158015610872573d5f803e3d5ffd5b5050505050565b6040518060600160405280603681526020016131466036913981565b60025460ff16156108a4575f80fd5b600554156108b0575f80fd5b5f87511180156108c257506020875111155b6108ca575f80fd5b5f86511180156108dc57506020865111155b6108e4575f80fd5b662386f26fc10000851015801561090957506d314dc6448d9338c15b0a000000008511155b610911575f80fd5b5f8411801561091f57508383115b610927575f80fd5b6103e88210610934575f80fd5b6103e88110610941575f80fd5b60405161094d90611fe8565b604051809103905ff080158015610966573d5f803e3d5ffd5b5060028054610100600160a81b0319166101006001600160a01b039384168102919091179182905560405163189acdbd60e31b81528b8416600482015291049091169063c4d66de8906024015f604051808303815f87803b1580156109c9575f80fd5b505af11580156109db573d5f803e3d5ffd5b5050600480546001600160a01b0319166001600160a01b038c16179055505f9050610a0688826124b2565b506001610a1387826124b2565b506005859055305f818152600a60209081526040808320899055518881527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36006849055600783905560088290556009819055610a7c84848484610f0c565b5050505050505050565b600180546103ff906122d6565b5f61048a338484610e76565b606061056560026005015460126005610b5e565b6009546060906104b0906104a890606461231c565b60025460ff1615610ad7575f80fd5b60055415610ae3575f80fd5b6002805460ff19166001179055565b6001600160a01b038381165f818152600a602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b60605f828411610b6e5783610b70565b825b90505f818511610b80575f610b8a565b610b8a828661256e565b610b9590600a612661565b610b9f9087612680565b9050805f03610bcb57604051806040016040528060018152602001600360fc1b8152509250505061054a565b6001815b6009811115610bf757610be3600a82612680565b905081610bef81612693565b925050610bcf565b838211610c0e57610c098460016126ab565b610c10565b815b90505f610c1e8560016126ab565b8211610c2a575f610c63565b846001610c37828561256e565b610c41919061256e565b11610c61576001610c52868461256e565b610c5c919061256e565b610c63565b845b90505f5b610c71828461256e565b811015610e69575f610c83858561256e565b8210610cc557600a6001610c97848761256e565b610ca1919061256e565b610cac90600a612661565b610cb69088612680565b610cc091906126be565b610cc7565b5f5b6040805160018082528183019092529192505f9190602082018180368337019050509050610cf68260306126d1565b60f81b815f81518110610d0b57610d0b6126ea565b60200101906001600160f81b03191690815f1a9053508881604051602001610d349291906126fe565b60408051601f1981840301815291905298506001610d52898761256e565b610d5c919061256e565b831015610dbd576003610d6f898761256e565b610d7991906126be565b6003610d868560016126ab565b610d9091906126be565b03610db85788604051602001610da6919061272c565b60405160208183030381529060405298505b610e54565b600183610dca868861256e565b610dd4919061256e565b610dde919061256e565b610de990600a612661565b610df485600a612661565b610dfe9089612680565b610e0891906126be565b5f03610e15575050610e69565b6001610e21898761256e565b610e2b919061256e565b8303610e545788604051602001610e429190612750565b60405160208183030381529060405298505b50508080610e6190612693565b915050610c67565b5050505050509392505050565b5f808211610e82575f80fd5b81610ea1856001600160a01b03165f908152600a602052604090205490565b1015610eab575f80fd5b6001600160a01b038085165f818152600a6020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b4c9086815260200190565b5f3090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8591906123e4565b90506001600160a01b03808316908216105f610faa82610fa460055490565b8a6118e4565b5090507368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102191906123e4565b60405163a167129560e01b81526001600160a01b03868116600483015285811660248301526127106044830152919091169063a1671295906064016020604051808303815f875af1158015611078573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109c91906123e4565b600380546001600160a01b0319166001600160a01b0392909216918217905560405163f637731d60e01b81526001600160a01b038381166004830152919091169063f637731d906024015f604051808303815f87803b1580156110fd575f80fd5b505af115801561110f573d5f803e3d5ffd5b505050505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611164573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118891906123e4565b905061119d858261119860055490565b610af2565b505f6111b2846111ac60055490565b8c6118e4565b9150505f6111c3856111ac60055490565b9150505f6103e86111d360055490565b8b02816111e2576111e261266c565b049050801561149557881561133e57836001600160a01b0316638831645660405180610160016040528089611217578b611219565b8a5b6001600160a01b031681526020018915611233578b611235565b8a5b6001600160a01b03168152612710602082015260400189611256578661125b565b60c887035b60020b8152602001891561126f5786611274565b8660c8015b60020b81526020018961128d576103e8858e020461128f565b5f5b815260200189156112a6576103e8858e02046112a8565b5f5b81526020015f81526020015f81526020016112cb6004546001600160a01b031690565b6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016112f99190612774565b6080604051808303815f875af1158015611315573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113399190612838565b505050505b836001600160a01b0316638831645660405180610160016040528089611364578b611366565b8a5b6001600160a01b031681526020018915611380578b611382565b8a5b6001600160a01b031681526127106020820152604001896113a357866113a8565b60c887035b60020b815260200189156113bc57866113c1565b8660c8015b60020b8152602001896113dc576103e88d81038602046113de565b5f5b815260200189156113f7576103e88d81038602046113f9565b5f5b81526020015f81526020015f81526020018b6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016114399190612774565b6080604051808303815f875af1158015611455573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114799190612838565b505050600b558561148d578260c801611492565b60c883035b92505b881561161057836001600160a01b03166388316456604051806101600160405280896114c1578b6114c3565b8a5b6001600160a01b0316815260200189156114dd578b6114df565b8a5b6001600160a01b031681526127106020820152604001896115005786611502565b855b60020b815260200189156115165786611518565b855b60020b815260200189611548576103e88d8661153360055490565b0302816115425761154261266c565b0461154a565b5f5b81526020018915611578576103e88d8661156360055490565b0302816115725761157261266c565b0461157a565b5f5b81526020015f81526020015f815260200161159d6004546001600160a01b031690565b6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016115cb9190612774565b6080604051808303815f875af11580156115e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061160b9190612838565b505050505b836001600160a01b0316638831645660405180610160016040528089611636578b611638565b8a5b6001600160a01b031681526020018915611652578b611654565b8a5b6001600160a01b031681526127106020820152604001896116755786611677565b855b60020b8152602001891561168b578661168d565b855b60020b8152602001896116c1576103e88d6103e803866116ac60055490565b0302816116bb576116bb61266c565b046116c3565b5f5b815260200189156116f5576103e88d6103e803866116e060055490565b0302816116ef576116ef61266c565b046116f7565b5f5b81526020015f81526020015f81526020018b6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016117379190612774565b6080604051808303815f875af1158015611753573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117779190612838565b505050600c556001600160a01b03881631156118d6577368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b03166304e45aaf896001600160a01b0316316040518060e001604052808b6001600160a01b031681526020018c6001600160a01b0316815260200161271062ffffff1681526020016118036004546001600160a01b031690565b6001600160a01b0390811682528d8116316020808401919091525f604080850182905260609485019190915280516001600160e01b031960e089901b168152855184166004820152918501518316602483015284015162ffffff16604482015291830151811660648301526080830151608483015260a083015160a483015260c09092015190911660c482015260e40160206040518083038185885af11580156118af573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118d4919061287e565b505b505050505050505050505050565b5f805f611922866118f557846118f7565b855b87156119035785611905565b865b61191390600160c01b612680565b61191d919061231c565b61195a565b905061192d8161199d565b915061193a60c883612895565b61194490836128b6565b915061194f82611cba565b925050935093915050565b80600260018201045b81811015611997578091506002818285816119805761198061266c565b04018161198f5761198f61266c565b049050611963565b50919050565b5f6401000276a36001600160a01b038316108015906119d8575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611a0d5760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611aa157607f810383901c9150611aab565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611cab57886001600160a01b0316611c9082611cba565b6001600160a01b03161115611ca55781611cad565b80611cad565b815b9998505050505050505050565b5f805f8360020b12611ccf578260020b611cd6565b8260020b5f035b9050620d89e8811115611d0f5760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401611a04565b5f816001165f03611d2457600160801b611d36565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611d6a576ffff97272373d413259a46990580e213a0260801c5b6004821615611d89576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611da8576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611dc7576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611de6576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611e05576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611e24576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611e44576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611e64576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611e84576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611ea4576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611ec4576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611ee4576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611f04576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611f24576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611f45576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611f65576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611f84576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611fa1576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611fc057805f1981611fbc57611fbc61266c565b0490505b640100000000810615611fd4576001611fd6565b5f5b60ff16602082901c0192505050919050565b61086a806128dc83390190565b5f5b8381101561200f578181015183820152602001611ff7565b50505f910152565b602081525f8251806020840152612035816040850160208701611ff5565b601f01601f19169190910160400192915050565b6001600160a01b038116811461205d575f80fd5b50565b5f8060408385031215612071575f80fd5b823561207c81612049565b946020939093013593505050565b5f805f6060848603121561209c575f80fd5b83356120a781612049565b925060208401356120b781612049565b929592945050506040919091013590565b5f805f80606085870312156120db575f80fd5b84356120e681612049565b935060208501359250604085013567ffffffffffffffff80821115612109575f80fd5b818701915087601f83011261211c575f80fd5b81358181111561212a575f80fd5b88602082850101111561213b575f80fd5b95989497505060200194505050565b5f6020828403121561215a575f80fd5b813561054a81612049565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612188575f80fd5b813567ffffffffffffffff808211156121a3576121a3612165565b604051601f8301601f19908116603f011681019082821181831017156121cb576121cb612165565b816040528381528660208588010111156121e3575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f805f805f80610100898b03121561221a575f80fd5b883561222581612049565b9750602089013567ffffffffffffffff80821115612241575f80fd5b61224d8c838d01612179565b985060408b0135915080821115612262575f80fd5b5061226f8b828c01612179565b989b979a5097986060810135985060808101359760a0820135975060c0820135965060e090910135945092505050565b5f80604083850312156122b0575f80fd5b82356122bb81612049565b915060208301356122cb81612049565b809150509250929050565b600181811c908216806122ea57607f821691505b60208210810361199757634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761048d5761048d612308565b5f8251612344818460208701611ff5565b602560f81b920191825250600101919050565b5f8251612368818460208701611ff5565b630408aa8960e31b920191825250600401919050565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f602082840312156123d5575f80fd5b8151801515811461054a575f80fd5b5f602082840312156123f4575f80fd5b815161054a81612049565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f8060408385031215612453575f80fd5b505080516020909101519092909150565b601f8211156124ad575f81815260208120601f850160051c8101602086101561248a5750805b601f850160051c820191505b818110156124a957828155600101612496565b5050505b505050565b815167ffffffffffffffff8111156124cc576124cc612165565b6124e0816124da84546122d6565b84612464565b602080601f831160018114612513575f84156124fc5750858301515b5f19600386901b1c1916600185901b1785556124a9565b5f85815260208120601f198616915b8281101561254157888601518255948401946001909101908401612522565b508582101561255e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561048d5761048d612308565b600181815b808511156125bb57815f19048211156125a1576125a1612308565b808516156125ae57918102915b93841c9390800290612586565b509250929050565b5f826125d15750600161048d565b816125dd57505f61048d565b81600181146125f357600281146125fd57612619565b600191505061048d565b60ff84111561260e5761260e612308565b50506001821b61048d565b5060208310610133831016604e8410600b841016171561263c575081810a61048d565b6126468383612581565b805f190482111561265957612659612308565b029392505050565b5f61048a83836125c3565b634e487b7160e01b5f52601260045260245ffd5b5f8261268e5761268e61266c565b500490565b5f600182016126a4576126a4612308565b5060010190565b8082018082111561048d5761048d612308565b5f826126cc576126cc61266c565b500690565b60ff818116838216019081111561048d5761048d612308565b634e487b7160e01b5f52603260045260245ffd5b5f835161270f818460208801611ff5565b835190830190612723818360208801611ff5565b01949350505050565b5f825161273d818460208701611ff5565b600b60fa1b920191825250600101919050565b5f8251612761818460208701611ff5565b601760f91b920191825250600101919050565b81516001600160a01b03168152610160810160208301516127a060208401826001600160a01b03169052565b5060408301516127b7604084018262ffffff169052565b5060608301516127cc606084018260020b9052565b5060808301516127e1608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151612827828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f806080858703121561284b575f80fd5b8451935060208501516001600160801b0381168114612868575f80fd5b6040860151606090960151949790965092505050565b5f6020828403121561288e575f80fd5b5051919050565b5f8260020b806128a7576128a761266c565b808360020b0791505092915050565b600282810b9082900b03627fffff198112627fffff8213171561048d5761048d61230856fe608060405234801561000f575f80fd5b5061084d8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063894760691161004c5780638947606914610117578063c4d66de814610136578063e086e5ec14610155578063fc0c546a14610169575f80fd5b80633a98ef3914610087578063476343ee146100af5780634c02f62e146100c557806357a858fc146100d9575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b5061009c60015481565b6040519081526020015b60405180910390f35b3480156100ba575f80fd5b506100c36101a0565b005b3480156100d0575f80fd5b506100c36101bf565b3480156100e4575f80fd5b506100f86100f33660046106ea565b610236565b604080516001600160a01b0390931683526020830191909152016100a6565b348015610122575f80fd5b506100c3610131366004610715565b61026b565b348015610141575f80fd5b506100c3610150366004610715565b61052f565b348015610160575f80fd5b506100c3610599565b348015610174575f80fd5b50600254610188906001600160a01b031681565b6040516001600160a01b0390911681526020016100a6565b6101a86101bf565b6002546101bd906001600160a01b031661026b565b565b6101bd7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610212573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101319190610737565b5f8181548110610244575f80fd5b5f918252602090912060029091020180546001909101546001600160a01b03909116915082565b5f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e09190610737565b9050806001600160a01b0316826001600160a01b0316036103c0576040516370a0823160e01b81523060048201526001600160a01b03821690632e1a7d4d9082906370a0823190602401602060405180830381865afa158015610345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103699190610752565b6040518263ffffffff1660e01b815260040161038791815260200190565b5f604051808303815f87803b15801561039e575f80fd5b505af11580156103b0573d5f803e3d5ffd5b505050506103bc610599565b5050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104289190610752565b9050801561052a575f5b5f54811015610528575f80828154811061044e5761044e610769565b5f9182526020918290206040805180820190915260029092020180546001600160a01b03908116808452600192830154948401859052915492945088169263a9059cbb929061049d9088610791565b6104a791906107ae565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156104ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051391906107cd565b50508080610520906107ec565b915050610432565b505b505050565b6001541561053b575f80fd5b600280546001600160a01b0319163317905561055881600361063c565b61057773e6c791fbd46db3f4eda5f7bb76474f4fa530733e600261063c565b61059673c28c9da0f8a500dffc16ff09a3dd1cc4c530d346600161063c565b50565b478015610596575f5b5f548110156103bc575f8082815481106105be576105be610769565b5f9182526020918290206040805180820190915260029092020180546001600160a01b03168083526001918201549383018490529054919350916108fc91906106079087610791565b61061191906107ae565b6040518115909202915f818181858888f1935050505050508080610634906107ec565b9150506105a2565b604080518082019091526001600160a01b038381168252602082018381525f80546001808201835582805294517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600290920291820180546001600160a01b031916919095161790935590517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564909201919091558154839291906106e1908490610804565b90915550505050565b5f602082840312156106fa575f80fd5b5035919050565b6001600160a01b0381168114610596575f80fd5b5f60208284031215610725575f80fd5b813561073081610701565b9392505050565b5f60208284031215610747575f80fd5b815161073081610701565b5f60208284031215610762575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107a8576107a861077d565b92915050565b5f826107c857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156107dd575f80fd5b81518015158114610730575f80fd5b5f600182016107fd576107fd61077d565b5060010190565b808201808211156107a8576107a861077d56fea26469706673582212205a7d6207f78ca60fa96c729b5948f291193052a1303377654ac9c3ef10d5ae3a64736f6c6343000815003343726561746564207769746820426f73736d616e27732042616b657279202862616b6572792e6d756c6c65742e6361706974616c2921a2646970667358221220d15a9c359bb5a5fd7a5ffce6c29d3ea55d4d85e9848f95dfc71def0599c5044e64736f6c63430008150033