Loading
[ { "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": "tokens", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimEarning", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Reward", "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" } ], "name": "allInfoFor", "outputs": [ { "internalType": "bool", "name": "isSolved", "type": "bool" }, { "internalType": "uint256", "name": "totalTokens", "type": "uint256" }, { "internalType": "uint256", "name": "wethBalance", "type": "uint256" }, { "internalType": "uint256", "name": "userBalance", "type": "uint256" }, { "internalType": "uint256", "name": "userRewards", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "internalType": "uint256", "name": "_tokens", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "calculatePts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimExPoints", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "collectTradingFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isExpFinalized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "refund", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "solution", "outputs": [], "stateMutability": "nonpayable", "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": "_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" } ]
60806040523480156200001157600080fd5b50600080546001600160a81b03191674add1f470ff41b16034cb589bcee0c4c5ec8cf25500178155604080516312a9293f60e21b815290513092917368b3465833fb72a70ecdf485e0e4c7bd8665fc4591634aa4a4fc916004808201926020929091908290030181865afa1580156200008e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b49190620009b3565b90506000620000e96001600160a01b03808516908416106c0c9f2c9cd04674edea40000000683635c9adc5dea000006200026d565b5090507368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001659190620009b3565b60405163a167129560e01b81526001600160a01b03858116600483015284811660248301526127106044830152919091169063a1671295906064016020604051808303816000875af1158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e69190620009b3565b600180546001600160a01b0319166001600160a01b0392909216918217905560405163f637731d60e01b81526001600160a01b038381166004830152919091169063f637731d90602401600060405180830381600087803b1580156200024b57600080fd5b505af115801562000260573d6000803e3d6000fd5b5050505050505062000a95565b6000806000620002b78662000283578462000285565b855b871562000293578562000295565b865b620002a590600160c01b62000a11565b620002b1919062000a28565b620002f7565b9050620002c48162000342565b9150620002d360c88362000a48565b620002df908362000a6d565b9150620002ec8262000668565b925050935093915050565b80600260018201045b818110156200033c57809150600281828581620003215762000321620009e5565b040181620003335762000333620009e5565b04905062000300565b50919050565b60006401000276a36001600160a01b038316108015906200037f575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b620003b55760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b600160201b600160c01b03602083901b166001600160801b03811160071b81811c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106200044957607f810383901c915062000453565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1462000659576001600160a01b0389166200063b8262000668565b6001600160a01b031611156200065257816200065b565b806200065b565b815b9998505050505050505050565b60008060008360020b1262000681578260020b62000689565b8260020b6000035b9050620d89e8811115620006c45760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401620003ac565b600081600116600003620006dd57600160801b620006ef565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156200071a576ffff97272373d413259a46990580e213a0260801c5b60048216156200073a576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156200075a576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156200077a576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156200079a576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615620007ba576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615620007da576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615620007fb576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156200081c576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156200083d576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156200085e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156200087f576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615620008a0576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615620008c1576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615620008e2576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161562000904576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161562000925576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161562000945576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161562000963576b048a170391f7dc42444e8fa20260801c5b60008460020b131562000988578060001981620009845762000984620009e5565b0490505b6401000000008106156200099e576001620009a1565b60005b60ff16602082901c0192505050919050565b600060208284031215620009c657600080fd5b81516001600160a01b0381168114620009de57600080fd5b9392505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008262000a235762000a23620009e5565b500490565b808202811582820484141762000a425762000a42620009fb565b92915050565b60008260020b8062000a5e5762000a5e620009e5565b808360020b0791505092915050565b600282810b9082900b03627fffff198112627fffff8213171562000a425762000a42620009fb565b612d5b8062000aa56000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063590e1ae3116100c357806395d89b411161007c57806395d89b41146102e1578063a035e99014610305578063a9059cbb14610318578063ba5b79821461032b578063ce0b123814610346578063dd62ed3e1461035957600080fd5b8063590e1ae3146102955780635c48e82a1461029d578063704a1abd146102a557806370a08231146102b05780638129fc1c146102c35780638da5cb5b146102cb57600080fd5b806323b872dd1161011557806323b872dd146101fd578063313ce567146102105780634000aea01461022a57806342966c681461023d57806353f8b3031461025057806357f6b8121461025857600080fd5b806306fdde0314610152578063095ea7b31461018e57806313af4035146101b157806316f0115b146101c657806318160ddd146101eb575b600080fd5b6101786040518060400160405280600781526020016670726f626c656d60c81b81525081565b60405161018591906125da565b60405180910390f35b6101a161019c36600461263e565b610396565b6040519015158152602001610185565b6101c46101bf36600461266a565b6103ac565b005b6001546001600160a01b03165b6040516001600160a01b039091168152602001610185565b6002545b604051908152602001610185565b6101a161020b36600461268e565b610402565b610218601281565b60405160ff9091168152602001610185565b6101a16102383660046126cf565b61048f565b6101c461024b366004612758565b61055b565b6101c4610578565b61026b61026636600461266a565b610892565b6040805195151586526020860194909452928401919091526060830152608082015260a001610185565b6101c46109b4565b6101c4610b60565b60005460ff166101a1565b6101ef6102be36600461266a565b610bd6565b6101c4610bf1565b60005461010090046001600160a01b03166101d3565b61017860405180604001604052806005815260200164736f6c766560d81b81525081565b6101ef61031336600461266a565b6110c3565b6101a161032636600461263e565b61110f565b60055460065460408051928352602083019190915201610185565b6101c4610354366004612787565b61111c565b6101ef610367366004612838565b6001600160a01b0391821660009081526004602090815260408083209390941682526001909201909152205490565b60006103a3338484611c0c565b90505b92915050565b60005461010090046001600160a01b03166001600160a01b0316336001600160a01b0316146103da57600080fd5b600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831660009081526004602090815260408083203384526001019091528120548281101561043657600080fd5b600019811461047b576001600160a01b038516600090815260046020908152604080832033845260010190915281208054859290610475908490612887565b90915550505b610486858585611c78565b95945050505050565b60008061049b86610bd6565b90506104a8338787611c78565b506000816104b588610bd6565b6104bf9190612887565b9050863b63ffffffff81161561054d57604051636be32e7360e01b81526001600160a01b03891690636be32e739061050190339086908b908b9060040161289a565b6020604051808303816000875af1158015610520573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054491906128e2565b61054d57600080fd5b506001979650505050505050565b60005460ff161561056b57600080fd5b6105753382611dd2565b50565b60005461010090046001600160a01b03166001600160a01b0316336001600160a01b0316146105a657600080fd5b6000306001600160a01b03167368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190612914565b6001600160a01b031610905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac9190612914565b9050806001600160a01b031663fc6f7865604051806080016040528060006005015481526020016106eb6000546001600160a01b036101009091041690565b6001600160a01b031681526020018561070557600061070e565b6001600160801b035b6001600160801b031681526020018515610729576000610732565b6001600160801b035b6001600160801b03168152506040518263ffffffff1660e01b815260040161075a9190612931565b60408051808303816000875af1158015610778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079c9190612974565b5050806001600160a01b031663fc6f7865604051806080016040528060006006015481526020016107db6000546001600160a01b036101009091041690565b6001600160a01b03168152602001856107f55760006107fe565b6001600160801b035b6001600160801b031681526020018515610819576000610822565b6001600160801b035b6001600160801b03168152506040518263ffffffff1660e01b815260040161084a9190612931565b60408051808303816000875af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c9190612974565b50505050565b60008060008060006108a660005460ff1690565b94506108b160025490565b93507368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109299190612914565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561096f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109939190612998565b925061099e86610bd6565b91506109a9866110c3565b905091939590929450565b60005460ff166109c357600080fd5b6109cb610b60565b60006109d633610bd6565b9050600081116109e557600080fd5b60007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d9190612914565b90506000610a6a60025490565b6040516370a0823160e01b815230600482015284906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad49190612998565b0281610ae257610ae26129b1565b049050610aef3384611dd2565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c91906128e2565b6000610b6b336110c3565b90508015610575573360008181526004602052604090206002018054600160401b8402019055610b9d90309083611c78565b5060405181815233907ff0d28c3198ff7dee4b0a29d3c7de1e836b62fa825c07bb1f391eb50d7bb4fd569060200160405180910390a250565b6001600160a01b031660009081526004602052604090205490565b60005460ff1615610c0157600080fd5b60025415610c0e57600080fd5b600030905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190612914565b90506000826001600160a01b0316826001600160a01b031610905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e9190612914565b68327cb2734119d3b7a9601e1b60028190556001600160a01b0386166000818152600460205260408082208490555193945090929091600080516020612d0683398151915291610d7091815260200190565b60405180910390a3610d8f848268327cb2734119d3b7a9601e1b611c0c565b506000610db28368327cb2734119d3b7a9601e1b683635c9adc5dea00000611e4b565b9150506000610dd88468327cb2734119d3b7a9601e1b69152d02c7e14af6800000611e4b565b9150600090506064610df768327cb2734119d3b7a9601e1b600a6129c7565b610e0191906129de565b9050836001600160a01b0316638831645660405180610160016040528088610e29578a610e2b565b895b6001600160a01b031681526020018815610e45578a610e47565b895b6001600160a01b03168152612710602082015260400188610e685786610e73565b610e7360c8886129f2565b60020b81526020018815610e875786610e92565b610e928760c8612a17565b60020b815260200188610ea55784610ea8565b60005b81526020018815610eb95784610ebc565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610efe9190612a3c565b6080604051808303816000875af1158015610f1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f419190612b17565b5050506005556040805161016081019091526001600160a01b038516906388316456908088610f70578a610f72565b895b6001600160a01b031681526020018815610f8c578a610f8e565b895b6001600160a01b03168152612710602082015260400188610fb957610fb48760c8612a17565b610fbb565b855b60020b81526020018815610fd957610fd460c8886129f2565b610fdb565b855b60020b81526020018861100357610ffe8568327cb2734119d3b7a9601e1b612887565b611006565b60005b8152602001881561102c576110278568327cb2734119d3b7a9601e1b612887565b61102f565b60005b815260200160008152602001600081526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016110719190612a3c565b6080604051808303816000875af1158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190612b17565b50505060065550505050505050565b6001600160a01b038116600090815260046020526040812060020154600160401b906110ee84610bd6565b6003546110fb91906129c7565b6111059190612b53565b6103a691906129de565b60006103a3338484611c78565b60005460ff161561112c57600080fd5b805160411461113a57600080fd5b60008060006020840151925060408401519150606084015160001a90507351fbce81f7a484069f738ecf3a6b08db218187ae6001600160a01b03166001336040516020016111a0919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529082905280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000091830191909152603c820152605c0160408051601f198184030181528282528051602091820120600084529083018083525260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611247573d6000803e3d6000fd5b505050602060405103516001600160a01b03161461126457600080fd5b30600061127082610bd6565b905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190612914565b90506000836001600160a01b0316826001600160a01b031610905060007368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137d9190612914565b9050806001600160a01b031663fc6f786560405180608001604052806000600501548152602001886001600160a01b03168152602001856113c5576001600160801b036113c8565b60005b6001600160801b0316815260200185156113e9576001600160801b036113ec565b60005b6001600160801b03168152506040518263ffffffff1660e01b81526004016114149190612931565b60408051808303816000875af1158015611432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114569190612974565b505060055460405163133f757160e31b8152600091829182916001600160a01b038616916399fbab88916114909160040190815260200190565b61018060405180830381865afa1580156114ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d29190612b9f565b9b509b505050995050505050505050836001600160a01b0316630c49ccbe6040518060a001604052806000600501548152602001866001600160801b031681526020016000815260200160008152602001428152506040518263ffffffff1660e01b81526004016115439190612c80565b60408051808303816000875af1158015611561573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115859190612974565b505060055460405163133f757160e31b8152600481019190915260009081906001600160a01b038716906399fbab889060240161018060405180830381865afa1580156115d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fa9190612b9f565b9b509b5050505050505050505050856001600160a01b031663fc6f7865604051806080016040528060006005015481526020018d6001600160a01b031681526020018a61164e576001600160801b03611658565b6116588887612cc3565b6001600160801b031681526020018a15611679576001600160801b03611683565b6116838786612cc3565b6001600160801b03168152506040518263ffffffff1660e01b81526004016116ab9190612931565b60408051808303816000875af11580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190612974565b5050856001600160a01b031663fc6f7865604051806080016040528060006006015481526020018d6001600160a01b031681526020018a611735576001600160801b03611738565b60005b6001600160801b031681526020018a15611759576001600160801b0361175c565b60005b6001600160801b03168152506040518263ffffffff1660e01b81526004016117849190612931565b60408051808303816000875af11580156117a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c69190612974565b505060065460405163133f757160e31b815260048101919091526001600160a01b038716906399fbab889060240161018060405180830381865afa158015611812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118369190612b9f565b909192939495969798999a5090919293949596979899509091929394959697985090919293949596975090919293949596509091929394955090919293945090919250909150809550819650829750505050856001600160a01b0316630c49ccbe6040518060a001604052806000600601548152602001886001600160801b031681526020016000815260200160008152602001428152506040518263ffffffff1660e01b81526004016118ea9190612c80565b60408051808303816000875af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c9190612974565b505060065460405163133f757160e31b815260048101919091526001600160a01b038716906399fbab889060240161018060405180830381865afa158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190612b9f565b909192939495969798999a509091929394959697989950909192939495969798509091929394959697509091929394959650909192939495509091929394509091929350909192509091508092508193505050856001600160a01b031663fc6f7865604051806080016040528060006006015481526020018d6001600160a01b031681526020018a611a35576001600160801b03611a3f565b611a3f8887612cc3565b6001600160801b031681526020018a15611a60576001600160801b03611a6a565b611a6a8786612cc3565b6001600160801b03168152506040518263ffffffff1660e01b8152600401611a929190612931565b60408051808303816000875af1158015611ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad49190612974565b5050611af38a8a611ae48d610bd6565b611aee9190612887565b611dd2565b6040516370a0823160e01b81526001600160a01b038b8116600483015289169063a9059cbb90339060649084906370a0823190602401602060405180830381865afa158015611b46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6a9190612998565b611b759060196129c7565b611b7f91906129de565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bee91906128e2565b50506000805460ff1916600117905550505050505050505050505050565b6001600160a01b0383811660008181526004602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b600081611c8485610bd6565b1015611c8f57600080fd5b6001600160a01b0384166000818152600460205260408120805485900381556003546002909101805491860290910390553091821480611ce05750816001600160a01b0316856001600160a01b0316145b80611cf857506001546001600160a01b038681169116145b611d5f57506001600160a01b0381811660008181526004602090815260409182902080546064600a8a020490810182556003546002909201805492820290920190915591518281529193891691600080516020612d06833981519152910160405180910390a35b6001600160a01b038581166000818152600460209081526040918290208054868a03908101825560035460029092018054928202909201909155915182815291938a1691600080516020612d06833981519152910160405180910390a3611dc582611ec3565b5060019695505050505050565b80611ddc83610bd6565b1015611de757600080fd5b6002805482900381556001600160a01b03831660008181526004602052604080822080548690038155600354940180549486029094039093559151600080516020612d0683398151915290611e3f9085815260200190565b60405180910390a35050565b6000806000611e8b86611e5e5784611e60565b855b8715611e6c5785611e6e565b865b611e7c90600160c01b6129de565b611e8691906129c7565b611f43565b9050611e9681611f86565b9150611ea360c883612ce3565b611ead90836129f2565b9150611eb8826122a4565b925050935093915050565b801561057557611ed230610bd6565b611ee76102be6001546001600160a01b031690565b6002540303600160401b820281611f0057611f006129b1565b600380549290910490910190556040518181527f3ac0594a85a20354f9dc74f33728416d19ce00d04a406c108cc2dcf2cecea1349060200160405180910390a150565b80600260018201045b81811015611f8057809150600281828581611f6957611f696129b1565b040181611f7857611f786129b1565b049050611f4c565b50919050565b60006401000276a36001600160a01b03831610801590611fc2575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b611ff75760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c9790881196179094179092171790911717176080811061208b57607f810383901c9150612095565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1461229557886001600160a01b031661227a826122a4565b6001600160a01b0316111561228f5781612297565b80612297565b815b9998505050505050505050565b60008060008360020b126122bb578260020b6122c3565b8260020b6000035b9050620d89e88111156122fc5760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401611fee565b60008160011660000361231357600160801b612325565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612359576ffff97272373d413259a46990580e213a0260801c5b6004821615612378576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612397576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156123b6576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156123d5576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156123f4576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612413576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612433576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612453576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612473576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612493576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156124b3576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156124d3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156124f3576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612513576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612534576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612554576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612573576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612590576b048a170391f7dc42444e8fa20260801c5b60008460020b13156125b15780600019816125ad576125ad6129b1565b0490505b6401000000008106156125c55760016125c8565b60005b60ff16602082901c0192505050919050565b60006020808352835180602085015260005b81811015612608578581018301518582016040015282016125ec565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461057557600080fd5b6000806040838503121561265157600080fd5b823561265c81612629565b946020939093013593505050565b60006020828403121561267c57600080fd5b813561268781612629565b9392505050565b6000806000606084860312156126a357600080fd5b83356126ae81612629565b925060208401356126be81612629565b929592945050506040919091013590565b600080600080606085870312156126e557600080fd5b84356126f081612629565b935060208501359250604085013567ffffffffffffffff8082111561271457600080fd5b818701915087601f83011261272857600080fd5b81358181111561273757600080fd5b88602082850101111561274957600080fd5b95989497505060200194505050565b60006020828403121561276a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561279957600080fd5b813567ffffffffffffffff808211156127b157600080fd5b818401915084601f8301126127c557600080fd5b8135818111156127d7576127d7612771565b604051601f8201601f19908116603f011681019083821181831017156127ff576127ff612771565b8160405282815287602084870101111561281857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561284b57600080fd5b823561285681612629565b9150602083013561286681612629565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103a6576103a6612871565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000602082840312156128f457600080fd5b8151801515811461268757600080fd5b805161290f81612629565b919050565b60006020828403121561292657600080fd5b815161268781612629565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b6000806040838503121561298757600080fd5b505080516020909101519092909150565b6000602082840312156129aa57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b80820281158282048414176103a6576103a6612871565b6000826129ed576129ed6129b1565b500490565b600282810b9082900b03627fffff198112627fffff821317156103a6576103a6612871565b600281810b9083900b01627fffff8113627fffff19821217156103a6576103a6612871565b81516001600160a01b0316815261016081016020830151612a6860208401826001600160a01b03169052565b506040830151612a7f604084018262ffffff169052565b506060830151612a94606084018260020b9052565b506080830151612aa9608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151612aef828501826001600160a01b03169052565b505061014092830151919092015290565b80516001600160801b038116811461290f57600080fd5b60008060008060808587031215612b2d57600080fd5b84519350612b3d60208601612b00565b6040860151606090960151949790965092505050565b8181036000831280158383131683831282161715612b7357612b73612871565b5092915050565b805162ffffff8116811461290f57600080fd5b8051600281900b811461290f57600080fd5b6000806000806000806000806000806000806101808d8f031215612bc257600080fd5b8c516bffffffffffffffffffffffff81168114612bde57600080fd5b9b50612bec60208e01612904565b9a50612bfa60408e01612904565b9950612c0860608e01612904565b9850612c1660808e01612b7a565b9750612c2460a08e01612b8d565b9650612c3260c08e01612b8d565b9550612c4060e08e01612b00565b94506101008d015193506101208d01519250612c5f6101408e01612b00565b9150612c6e6101608e01612b00565b90509295989b509295989b509295989b565b600060a082019050825182526001600160801b03602084015116602083015260408301516040830152606083015160608301526080830151608083015292915050565b6001600160801b03828116828216039080821115612b7357612b73612871565b60008260020b80612cf657612cf66129b1565b808360020b079150509291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220aff5b04a8a43d6f5ed15e5db0e93bb497196240c964341e681e920cc11dcfa4c64736f6c63430008170033