0x60806040526000600a556000600b553480156200001b57600080fd5b5060405162001546380380620015468339810160408190526200003e91620002df565b604080518082018252600c81526b149958da185c99d955195cdd60a21b6020808301918252835180850190945260078452661490d1d51154d560ca1b90840152815185939162000092916003919062000239565b508051620000a890600490602084019062000239565b5050506001600160a01b038116620001075760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600580546001600160a01b0383166001600160a01b0319918216811790925560078054909116821790556040516000907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c908290a35062000169338262000171565b50506200037b565b80620001b55760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742063616e6e6f7420626520360741b6044820152606401620000fe565b6001600160a01b038216600090815260086020526040902054620001db90829062000319565b6001600160a01b0383166000818152600860205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200022d9085815260200190565b60405180910390a35050565b82805462000247906200033e565b90600052602060002090601f0160209004810192826200026b5760008555620002b6565b82601f106200028657805160ff1916838001178555620002b6565b82800160010185558215620002b6579182015b82811115620002b657825182559160200191906001019062000299565b50620002c4929150620002c8565b5090565b5b80821115620002c45760008155600101620002c9565b60008060408385031215620002f2578182fd5b82516001600160a01b038116811462000309578283fd5b6020939093015192949293505050565b600082198211156200033957634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200035357607f821691505b602082108114156200037557634e487b7160e01b600052602260045260246000fd5b50919050565b6111bb806200038b6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806379ba5097116100de578063a9059cbb11610097578063d68f617011610071578063d68f61701461038a578063dd62ed3e1461039d578063df401a96146103b0578063e5981a42146103c357600080fd5b8063a9059cbb1461035b578063be20a8f01461036e578063c5ac0ded1461038157600080fd5b806379ba5097146102ec5780637b61c320146102f45780638da5cb5b1461031a57806395d89b411461032d5780639d11877014610335578063a457c2d71461034857600080fd5b8063313ce5671161014b57806353a47bb71161012557806353a47bb71461025a57806356851060146102855780636c02a9311461029857806370a08231146102c357600080fd5b8063313ce5671461022557806333393efa14610234578063395093511461024757600080fd5b806306fdde031461019357806309260db7146101b1578063095ea7b3146101d25780631627540c146101f557806318160ddd1461020a57806323b872dd14610212575b600080fd5b61019b6103d6565b6040516101a89190610fd9565b60405180910390f35b6101c46101bf366004610fc1565b610468565b6040519081526020016101a8565b6101e56101e0366004610f98565b6104e2565b60405190151581526020016101a8565b610208610203366004610f0a565b610566565b005b600a546101c4565b6101e5610220366004610f5d565b6105da565b604051601281526020016101a8565b610208610242366004610f98565b6107b7565b6101e5610255366004610f98565b610861565b60065461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a8565b6101e5610293366004610fc1565b61088d565b61019b6040518060400160405280600c81526020016b149958da185c99d955195cdd60a21b81525081565b6101c46102d1366004610f0a565b6001600160a01b031660009081526008602052604090205490565b6102086108c8565b61019b604051806040016040528060078152602001661490d1d51154d560ca1b81525081565b60055461026d906001600160a01b031681565b61019b6109a6565b610208610343366004610fc1565b6109b5565b6101e5610356366004610f98565b6109c2565b6101e5610369366004610f98565b610a48565b60075461026d906001600160a01b031681565b6101c4600b5481565b610208610398366004610f0a565b610b8b565b6101c46103ab366004610f2b565b610c07565b6101e56103be366004610f98565b610c32565b6101e56103d1366004610f98565b610cce565b6060600380546103e5906110f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610411906110f4565b801561045e5780601f106104335761010080835404028352916020019161045e565b820191906000526020600020905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b6000600b546000141561047d57506000919050565b6000600b548361048d9190611086565b9050600061049c6001836110dd565b600b549091506000906104af818461109e565b6104b991906110be565b90506000612710600b54836104ce91906110be565b6104d8919061109e565b9695505050505050565b60006001600160a01b0383166105135760405162461bcd60e51b815260040161050a90611057565b60405180910390fd5b3360008181526009602090815260408083206001600160a01b038816808552908352928190208690555185815291929160008051602061116683398151915291015b60405180910390a350600192915050565b6005546001600160a01b031633146105905760405162461bcd60e51b815260040161050a9061102c565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b60006001600160a01b0383166106025760405162461bcd60e51b815260040161050a90611057565b6001600160a01b0384166000908152600860205260409020546106269083906110dd565b6001600160a01b03851660009081526008602052604081209190915561064b83610468565b9050600061065982856110dd565b6001600160a01b038616600090815260086020526040902054909150610680908290611086565b6001600160a01b0380871660009081526008602052604080822093909355600754909116815220546106b3908390611086565b6007546001600160a01b0390811660009081526008602090815260408083209490945591891681526009825282812033825290915220546106f59085906110dd565b6001600160a01b03871660008181526009602090815260408083203380855290835292819020859055519384529092600080516020611166833981519152910160405180910390a3846001600160a01b0316866001600160a01b03166000805160206111468339815191528360405161077091815260200190565b60405180910390a36007546040518381526001600160a01b03918216918816906000805160206111468339815191529060200160405180910390a350600195945050505050565b6001600160a01b03821660009081526009602090815260408083203384529091529020546107e69082906110dd565b6001600160a01b03831660009081526009602090815260408083203384529091529020556108148282610d25565b6001600160a01b0382166000818152600960209081526040808320338085529083529281902054905190815291929160008051602061116683398151915291015b60405180910390a35050565b6000336108838185856108748383610c07565b61087e9190611086565b610de1565b5060019392505050565b6005546000906001600160a01b031633146108ba5760405162461bcd60e51b815260040161050a9061102c565b50600b81905560015b919050565b6006546001600160a01b031633146109405760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b606482015260840161050a565b6006546005546040516001600160a01b0392831692909116907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a360068054600580546001600160a01b03199081166001600160a01b03841617909155169055565b6060600480546103e5906110f4565b6109bf3382610d25565b50565b600033816109d08286610c07565b905083811015610a305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161050a565b610a3d8286868403610de1565b506001949350505050565b60006001600160a01b038316610a705760405162461bcd60e51b815260040161050a90611057565b6000610a7b83610468565b90506000610a8982856110dd565b33600090815260086020526040902054909150610aa79085906110dd565b33600090815260086020526040808220929092556001600160a01b03871681522054610ad4908290611086565b6001600160a01b038087166000908152600860205260408082209390935560075490911681522054610b07908390611086565b6007546001600160a01b039081166000908152600860209081526040918290209390935551838152908716913391600080516020611146833981519152910160405180910390a36007546040518381526001600160a01b039091169033906000805160206111468339815191529060200160405180910390a3506001949350505050565b6005546001600160a01b03163314610bb55760405162461bcd60e51b815260040161050a9061102c565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fca64dacef441dda80aed5ad77e51d3815217917007a7dd22d3a7c2d22502ec0890600090a35050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b60006001600160a01b038316610c5a5760405162461bcd60e51b815260040161050a90611057565b3360009081526009602090815260408083206001600160a01b0387168452909152902054610c899083906110dd565b3360008181526009602090815260408083206001600160a01b038916808552908352928190208590555193845290926000805160206111668339815191529101610555565b60006001600160a01b038316610cf65760405162461bcd60e51b815260040161050a90611057565b3360009081526009602090815260408083206001600160a01b0387168452909152902054610c89908390611086565b80610d675760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742043616e6e6f7420626520360741b604482015260640161050a565b6001600160a01b038216600090815260086020526040902054610d8b9082906110dd565b6001600160a01b038316600090815260086020526040902055600a54610db29082906110dd565b600a556040518181526000906001600160a01b0384169060008051602061114683398151915290602001610855565b6001600160a01b038316610e435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050a565b6001600160a01b038216610ea45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050a565b6001600160a01b038381166000818152600160209081526040808320948716808452948252918290208590559051848152600080516020611166833981519152910160405180910390a3505050565b80356001600160a01b03811681146108c357600080fd5b600060208284031215610f1b578081fd5b610f2482610ef3565b9392505050565b60008060408385031215610f3d578081fd5b610f4683610ef3565b9150610f5460208401610ef3565b90509250929050565b600080600060608486031215610f71578081fd5b610f7a84610ef3565b9250610f8860208501610ef3565b9150604084013590509250925092565b60008060408385031215610faa578182fd5b610fb383610ef3565b946020939093013593505050565b600060208284031215610fd2578081fd5b5035919050565b6000602080835283518082850152825b8181101561100557858101830151858201604001528201610fe9565b818111156110165783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152702cb7ba9030b932903737ba1027bbb732b960791b604082015260600190565b6020808252601590820152740416464726573732063616e6e6f742062652030783605c1b604082015260600190565b600082198211156110995761109961112f565b500190565b6000826110b957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156110d8576110d861112f565b500290565b6000828210156110ef576110ef61112f565b500390565b600181811c9082168061110857607f821691505b6020821081141561112957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212201c14f34272768f3b0416f319d93d650a0ded88709c07234a1a11858d8a74028e64736f6c634300080400330000000000000000000000003c2465d88c6546eac6f9aa6f79081ad874ca2e8b0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806379ba5097116100de578063a9059cbb11610097578063d68f617011610071578063d68f61701461038a578063dd62ed3e1461039d578063df401a96146103b0578063e5981a42146103c357600080fd5b8063a9059cbb1461035b578063be20a8f01461036e578063c5ac0ded1461038157600080fd5b806379ba5097146102ec5780637b61c320146102f45780638da5cb5b1461031a57806395d89b411461032d5780639d11877014610335578063a457c2d71461034857600080fd5b8063313ce5671161014b57806353a47bb71161012557806353a47bb71461025a57806356851060146102855780636c02a9311461029857806370a08231146102c357600080fd5b8063313ce5671461022557806333393efa14610234578063395093511461024757600080fd5b806306fdde031461019357806309260db7146101b1578063095ea7b3146101d25780631627540c146101f557806318160ddd1461020a57806323b872dd14610212575b600080fd5b61019b6103d6565b6040516101a89190610fd9565b60405180910390f35b6101c46101bf366004610fc1565b610468565b6040519081526020016101a8565b6101e56101e0366004610f98565b6104e2565b60405190151581526020016101a8565b610208610203366004610f0a565b610566565b005b600a546101c4565b6101e5610220366004610f5d565b6105da565b604051601281526020016101a8565b610208610242366004610f98565b6107b7565b6101e5610255366004610f98565b610861565b60065461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101a8565b6101e5610293366004610fc1565b61088d565b61019b6040518060400160405280600c81526020016b149958da185c99d955195cdd60a21b81525081565b6101c46102d1366004610f0a565b6001600160a01b031660009081526008602052604090205490565b6102086108c8565b61019b604051806040016040528060078152602001661490d1d51154d560ca1b81525081565b60055461026d906001600160a01b031681565b61019b6109a6565b610208610343366004610fc1565b6109b5565b6101e5610356366004610f98565b6109c2565b6101e5610369366004610f98565b610a48565b60075461026d906001600160a01b031681565b6101c4600b5481565b610208610398366004610f0a565b610b8b565b6101c46103ab366004610f2b565b610c07565b6101e56103be366004610f98565b610c32565b6101e56103d1366004610f98565b610cce565b6060600380546103e5906110f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610411906110f4565b801561045e5780601f106104335761010080835404028352916020019161045e565b820191906000526020600020905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b6000600b546000141561047d57506000919050565b6000600b548361048d9190611086565b9050600061049c6001836110dd565b600b549091506000906104af818461109e565b6104b991906110be565b90506000612710600b54836104ce91906110be565b6104d8919061109e565b9695505050505050565b60006001600160a01b0383166105135760405162461bcd60e51b815260040161050a90611057565b60405180910390fd5b3360008181526009602090815260408083206001600160a01b038816808552908352928190208690555185815291929160008051602061116683398151915291015b60405180910390a350600192915050565b6005546001600160a01b031633146105905760405162461bcd60e51b815260040161050a9061102c565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290600090a250565b60006001600160a01b0383166106025760405162461bcd60e51b815260040161050a90611057565b6001600160a01b0384166000908152600860205260409020546106269083906110dd565b6001600160a01b03851660009081526008602052604081209190915561064b83610468565b9050600061065982856110dd565b6001600160a01b038616600090815260086020526040902054909150610680908290611086565b6001600160a01b0380871660009081526008602052604080822093909355600754909116815220546106b3908390611086565b6007546001600160a01b0390811660009081526008602090815260408083209490945591891681526009825282812033825290915220546106f59085906110dd565b6001600160a01b03871660008181526009602090815260408083203380855290835292819020859055519384529092600080516020611166833981519152910160405180910390a3846001600160a01b0316866001600160a01b03166000805160206111468339815191528360405161077091815260200190565b60405180910390a36007546040518381526001600160a01b03918216918816906000805160206111468339815191529060200160405180910390a350600195945050505050565b6001600160a01b03821660009081526009602090815260408083203384529091529020546107e69082906110dd565b6001600160a01b03831660009081526009602090815260408083203384529091529020556108148282610d25565b6001600160a01b0382166000818152600960209081526040808320338085529083529281902054905190815291929160008051602061116683398151915291015b60405180910390a35050565b6000336108838185856108748383610c07565b61087e9190611086565b610de1565b5060019392505050565b6005546000906001600160a01b031633146108ba5760405162461bcd60e51b815260040161050a9061102c565b50600b81905560015b919050565b6006546001600160a01b031633146109405760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b606482015260840161050a565b6006546005546040516001600160a01b0392831692909116907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a360068054600580546001600160a01b03199081166001600160a01b03841617909155169055565b6060600480546103e5906110f4565b6109bf3382610d25565b50565b600033816109d08286610c07565b905083811015610a305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161050a565b610a3d8286868403610de1565b506001949350505050565b60006001600160a01b038316610a705760405162461bcd60e51b815260040161050a90611057565b6000610a7b83610468565b90506000610a8982856110dd565b33600090815260086020526040902054909150610aa79085906110dd565b33600090815260086020526040808220929092556001600160a01b03871681522054610ad4908290611086565b6001600160a01b038087166000908152600860205260408082209390935560075490911681522054610b07908390611086565b6007546001600160a01b039081166000908152600860209081526040918290209390935551838152908716913391600080516020611146833981519152910160405180910390a36007546040518381526001600160a01b039091169033906000805160206111468339815191529060200160405180910390a3506001949350505050565b6005546001600160a01b03163314610bb55760405162461bcd60e51b815260040161050a9061102c565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fca64dacef441dda80aed5ad77e51d3815217917007a7dd22d3a7c2d22502ec0890600090a35050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b60006001600160a01b038316610c5a5760405162461bcd60e51b815260040161050a90611057565b3360009081526009602090815260408083206001600160a01b0387168452909152902054610c899083906110dd565b3360008181526009602090815260408083206001600160a01b038916808552908352928190208590555193845290926000805160206111668339815191529101610555565b60006001600160a01b038316610cf65760405162461bcd60e51b815260040161050a90611057565b3360009081526009602090815260408083206001600160a01b0387168452909152902054610c89908390611086565b80610d675760405162461bcd60e51b81526020600482015260126024820152710416d6f756e742043616e6e6f7420626520360741b604482015260640161050a565b6001600160a01b038216600090815260086020526040902054610d8b9082906110dd565b6001600160a01b038316600090815260086020526040902055600a54610db29082906110dd565b600a556040518181526000906001600160a01b0384169060008051602061114683398151915290602001610855565b6001600160a01b038316610e435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050a565b6001600160a01b038216610ea45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050a565b6001600160a01b038381166000818152600160209081526040808320948716808452948252918290208590559051848152600080516020611166833981519152910160405180910390a3505050565b80356001600160a01b03811681146108c357600080fd5b600060208284031215610f1b578081fd5b610f2482610ef3565b9392505050565b60008060408385031215610f3d578081fd5b610f4683610ef3565b9150610f5460208401610ef3565b90509250929050565b600080600060608486031215610f71578081fd5b610f7a84610ef3565b9250610f8860208501610ef3565b9150604084013590509250925092565b60008060408385031215610faa578182fd5b610fb383610ef3565b946020939093013593505050565b600060208284031215610fd2578081fd5b5035919050565b6000602080835283518082850152825b8181101561100557858101830151858201604001528201610fe9565b818111156110165783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152702cb7ba9030b932903737ba1027bbb732b960791b604082015260600190565b6020808252601590820152740416464726573732063616e6e6f742062652030783605c1b604082015260600190565b600082198211156110995761109961112f565b500190565b6000826110b957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156110d8576110d861112f565b500290565b6000828210156110ef576110ef61112f565b500390565b600181811c9082168061110857607f821691505b6020821081141561112957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212201c14f34272768f3b0416f319d93d650a0ded88709c07234a1a11858d8a74028e64736f6c63430008040033