0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b146100fd5780639cfc625e146101185780639fb7f6041461013b578063ea8ab3b81461014e578063f2fde38b1461016e57600080fd5b80630aaffd2a14610098578063715018a6146100ad5780637cc1f867146100b557806386d1a69f146100f5575b600080fd5b6100ab6100a6366004610a5c565b610181565b005b6100ab61025e565b6100bd6102d2565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a0015b60405180910390f35b6100ab61036a565b6000546040516001600160a01b0390911681526020016100ec565b6101206104ab565b604080519384526020840192909252908201526060016100ec565b6100ab610149366004610b60565b610558565b61016161015c366004610bc4565b610795565b6040516100ec9190610be6565b6100ab61017c366004610a5c565b610972565b6000546001600160a01b031633146101b45760405162461bcd60e51b81526004016101ab90610c42565b60405180910390fd5b6001600160a01b03811661020a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4c6f636b3a206164647265737320697320696e76616c696400000060448201526064016101ab565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d9060200160405180910390a150565b6000546001600160a01b031633146102885760405162461bcd60e51b81526004016101ab90610c42565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600154600254600480546040516370a0823160e01b8152309281019290925260009384938493849384936001600160a01b0390811693169183906370a0823190602401602060405180830381865afa158015610332573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103569190610c77565b600354945094509450945094509091929394565b60008060006103776104ab565b9250925092508282116103cc5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4c6f636b3a2063616e206e6f742072656c6561736500000000000060448201526064016101ab565b600382905580156104525760015460025460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af115801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190610c90565b505b600254604080516001600160a01b039092168252602082018390528101849052606081018390527f7b381718bec1e0dbc1241809ee9b55f3d783b95880307f002707fad981fa50699060800160405180910390a1505050565b600454600354600091829182918291429080805b84811015610548576000818152600560209081526040918290208251808401909352546001600160801b03808216808552600160801b909204169183019190915285101561050d5750610548565b6020810151610525906001600160801b031688610cc8565b96508261053181610ce0565b93505050808061054090610ce0565b9150506104bf565b5090979096509294509192505050565b6000546001600160a01b031633146105825760405162461bcd60e51b81526004016101ab90610c42565b8151815181146105df5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4c6f636b3a206172726179206c656e67746820697320696e76616c6044820152611a5960f21b60648201526084016101ab565b6004546000811561061857600560006105f9600185610cfb565b81526020810191909152604001600020546001600160801b031661061b565b60005b905060005b8381101561077e57600086828151811061063c5761063c610d12565b60200260200101519050600086838151811061065a5761065a610d12565b60200260200101519050816001600160801b0316846001600160801b0316106106c55760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4c6f636b3a2074696d6520697320696e76616c696400000000000060448201526064016101ab565b604080518082019091526001600160801b0380841682528216602082015260056000876106f181610ce0565b90825260208083019390935260409182016000208451948401516001600160801b03958616600160801b91871691909102179055815186851681529385169284019290925290965092945084927fc82347da04930d6ffa550345be398d839f8b760aa7edae486329e458770e8e3d910160405180910390a15050808061077690610ce0565b915050610620565b50816004541461078e5760048290555b5050505050565b60606000806107a48585610cfb565b6107af906001610cc8565b905060008167ffffffffffffffff8111156107cc576107cc610a8c565b60405190808252806020026020018201604052801561081157816020015b60408051808201909152600080825260208201528152602001906001900390816107ea5790505b509050855b8581116108ae576000818152600560205260409020546001600160801b031661083e576108ae565b6000818152600560209081526040918290208251808401909352546001600160801b038082168452600160801b9091041690820152828561087e81610ce0565b96508151811061089057610890610d12565b602002602001018190525080806108a690610ce0565b915050610816565b5060008367ffffffffffffffff8111156108ca576108ca610a8c565b60405190808252806020026020018201604052801561090f57816020015b60408051808201909152600080825260208201528152602001906001900390816108e85790505b50905060005b848110156109675782818151811061092f5761092f610d12565b602002602001015182828151811061094957610949610d12565b6020026020010181905250808061095f90610ce0565b915050610915565b509695505050505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016101ab90610c42565b6001600160a01b038116610a015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ab565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610a6e57600080fd5b81356001600160a01b0381168114610a8557600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b80356001600160801b0381168114610ab957600080fd5b919050565b600082601f830112610acf57600080fd5b8135602067ffffffffffffffff80831115610aec57610aec610a8c565b8260051b604051601f19603f83011681018181108482111715610b1157610b11610a8c565b604052938452858101830193838101925087851115610b2f57600080fd5b83870191505b84821015610b5557610b4682610aa2565b83529183019190830190610b35565b979650505050505050565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610abe565b93506020850135915080821115610bad57600080fd5b50610bba85828601610abe565b9150509250929050565b60008060408385031215610bd757600080fd5b50508035926020909101359150565b602080825282518282018190526000919060409081850190868401855b82811015610c3557815180516001600160801b0390811686529087015116868501529284019290850190600101610c03565b5091979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215610c8957600080fd5b5051919050565b600060208284031215610ca257600080fd5b81518015158114610a8557600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610cdb57610cdb610cb2565b500190565b6000600019821415610cf457610cf4610cb2565b5060010190565b600082821015610d0d57610d0d610cb2565b500390565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220f9c72c462f1e7f9392cd551a17e7dc5db530bc7a9f4456c2d9ca53a4390784f264736f6c634300080a0033
0x608060405234801561001057600080fd5b50604051610e5d380380610e5d83398101604081905261002f916100bd565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100f0565b80516001600160a01b03811681146100b857600080fd5b919050565b600080604083850312156100d057600080fd5b6100d9836100a1565b91506100e7602084016100a1565b90509250929050565b610d5e806100ff6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b146100fd5780639cfc625e146101185780639fb7f6041461013b578063ea8ab3b81461014e578063f2fde38b1461016e57600080fd5b80630aaffd2a14610098578063715018a6146100ad5780637cc1f867146100b557806386d1a69f146100f5575b600080fd5b6100ab6100a6366004610a5c565b610181565b005b6100ab61025e565b6100bd6102d2565b604080516001600160a01b039687168152959094166020860152928401919091526060830152608082015260a0015b60405180910390f35b6100ab61036a565b6000546040516001600160a01b0390911681526020016100ec565b6101206104ab565b604080519384526020840192909252908201526060016100ec565b6100ab610149366004610b60565b610558565b61016161015c366004610bc4565b610795565b6040516100ec9190610be6565b6100ab61017c366004610a5c565b610972565b6000546001600160a01b031633146101b45760405162461bcd60e51b81526004016101ab90610c42565b60405180910390fd5b6001600160a01b03811661020a5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4c6f636b3a206164647265737320697320696e76616c696400000060448201526064016101ab565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d9060200160405180910390a150565b6000546001600160a01b031633146102885760405162461bcd60e51b81526004016101ab90610c42565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600154600254600480546040516370a0823160e01b8152309281019290925260009384938493849384936001600160a01b0390811693169183906370a0823190602401602060405180830381865afa158015610332573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103569190610c77565b600354945094509450945094509091929394565b60008060006103776104ab565b9250925092508282116103cc5760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4c6f636b3a2063616e206e6f742072656c6561736500000000000060448201526064016101ab565b600382905580156104525760015460025460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af115801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190610c90565b505b600254604080516001600160a01b039092168252602082018390528101849052606081018390527f7b381718bec1e0dbc1241809ee9b55f3d783b95880307f002707fad981fa50699060800160405180910390a1505050565b600454600354600091829182918291429080805b84811015610548576000818152600560209081526040918290208251808401909352546001600160801b03808216808552600160801b909204169183019190915285101561050d5750610548565b6020810151610525906001600160801b031688610cc8565b96508261053181610ce0565b93505050808061054090610ce0565b9150506104bf565b5090979096509294509192505050565b6000546001600160a01b031633146105825760405162461bcd60e51b81526004016101ab90610c42565b8151815181146105df5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4c6f636b3a206172726179206c656e67746820697320696e76616c6044820152611a5960f21b60648201526084016101ab565b6004546000811561061857600560006105f9600185610cfb565b81526020810191909152604001600020546001600160801b031661061b565b60005b905060005b8381101561077e57600086828151811061063c5761063c610d12565b60200260200101519050600086838151811061065a5761065a610d12565b60200260200101519050816001600160801b0316846001600160801b0316106106c55760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e4c6f636b3a2074696d6520697320696e76616c696400000000000060448201526064016101ab565b604080518082019091526001600160801b0380841682528216602082015260056000876106f181610ce0565b90825260208083019390935260409182016000208451948401516001600160801b03958616600160801b91871691909102179055815186851681529385169284019290925290965092945084927fc82347da04930d6ffa550345be398d839f8b760aa7edae486329e458770e8e3d910160405180910390a15050808061077690610ce0565b915050610620565b50816004541461078e5760048290555b5050505050565b60606000806107a48585610cfb565b6107af906001610cc8565b905060008167ffffffffffffffff8111156107cc576107cc610a8c565b60405190808252806020026020018201604052801561081157816020015b60408051808201909152600080825260208201528152602001906001900390816107ea5790505b509050855b8581116108ae576000818152600560205260409020546001600160801b031661083e576108ae565b6000818152600560209081526040918290208251808401909352546001600160801b038082168452600160801b9091041690820152828561087e81610ce0565b96508151811061089057610890610d12565b602002602001018190525080806108a690610ce0565b915050610816565b5060008367ffffffffffffffff8111156108ca576108ca610a8c565b60405190808252806020026020018201604052801561090f57816020015b60408051808201909152600080825260208201528152602001906001900390816108e85790505b50905060005b848110156109675782818151811061092f5761092f610d12565b602002602001015182828151811061094957610949610d12565b6020026020010181905250808061095f90610ce0565b915050610915565b509695505050505050565b6000546001600160a01b0316331461099c5760405162461bcd60e51b81526004016101ab90610c42565b6001600160a01b038116610a015760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ab565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610a6e57600080fd5b81356001600160a01b0381168114610a8557600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b80356001600160801b0381168114610ab957600080fd5b919050565b600082601f830112610acf57600080fd5b8135602067ffffffffffffffff80831115610aec57610aec610a8c565b8260051b604051601f19603f83011681018181108482111715610b1157610b11610a8c565b604052938452858101830193838101925087851115610b2f57600080fd5b83870191505b84821015610b5557610b4682610aa2565b83529183019190830190610b35565b979650505050505050565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610abe565b93506020850135915080821115610bad57600080fd5b50610bba85828601610abe565b9150509250929050565b60008060408385031215610bd757600080fd5b50508035926020909101359150565b602080825282518282018190526000919060409081850190868401855b82811015610c3557815180516001600160801b0390811686529087015116868501529284019290850190600101610c03565b5091979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215610c8957600080fd5b5051919050565b600060208284031215610ca257600080fd5b81518015158114610a8557600080fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115610cdb57610cdb610cb2565b500190565b6000600019821415610cf457610cf4610cb2565b5060010190565b600082821015610d0d57610d0d610cb2565b500390565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220f9c72c462f1e7f9392cd551a17e7dc5db530bc7a9f4456c2d9ca53a4390784f264736f6c634300080a00330000000000000000000000003c48ca59bf2699e51d4974d4b6d284ae52076e5e0000000000000000000000009e2ba8b73be4474bdeb1a1db4b9fcec864b1001f