0x608060405234801561001057600080fd5b50600436106100785760003560e01c80632eb4a7ab1461007d5780633d13f874146100b7578063715018a6146100cc57806373b2e80e146100d45780638da5cb5b14610107578063ce261d101461011c578063f2fde38b1461012f578063fc0c546a14610142575b600080fd5b6100a47f4368ac6506a785e966e00cabb073ee904a4005c9b36ff555494fd6ef935a5b1a81565b6040519081526020015b60405180910390f35b6100ca6100c53660046106f8565b610169565b005b6100ca6103ba565b6100f76100e2366004610781565b60016020526000908152604090205460ff1681565b60405190151581526020016100ae565b61010f6103f5565b6040516100ae91906107a3565b6100ca61012a3660046107b7565b610404565b6100ca61013d366004610781565b610562565b61010f7f000000000000000000000000a23c1194d421f252b4e6d5edcc3205f7650a4ebe81565b6001600160a01b03841660009081526001602052604090205460ff16156101a357604051630c8d9eab60e31b815260040160405180910390fd5b6040516001600160601b0319606086901b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006102418484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f4368ac6506a785e966e00cabb073ee904a4005c9b36ff555494fd6ef935a5b1a92508691506106029050565b9050806102615760405163452c2df160e11b815260040160405180910390fd5b6001600160a01b03808716600090815260016020819052604091829020805460ff191690911790555163a9059cbb60e01b81527f000000000000000000000000a23c1194d421f252b4e6d5edcc3205f7650a4ebe9091169063a9059cbb906102cf90899089906004016107e1565b6020604051808303816000875af11580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031291906107fa565b61036f5760405162461bcd60e51b815260206004820152602360248201527f4d65726b6c654469737472696275746f723a205472616e73666572206661696c60448201526232b21760e91b60648201526084015b60405180910390fd5b856001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4866040516103aa91815260200190565b60405180910390a2505050505050565b336103c36103f5565b6001600160a01b0316146103e95760405162461bcd60e51b81526004016103669061081c565b6103f36000610618565b565b6000546001600160a01b031690565b3361040d6103f5565b6001600160a01b0316146104335760405162461bcd60e51b81526004016103669061081c565b6000811180156104b057506040516370a0823160e01b815281906001600160a01b038416906370a082319061046c9030906004016107a3565b602060405180830381865afa158015610489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ad9190610851565b10155b6104e45760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610366565b60405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb9061051290339085906004016107e1565b6020604051808303816000875af1158015610531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055591906107fa565b61055e57600080fd5b5050565b3361056b6103f5565b6001600160a01b0316146105915760405162461bcd60e51b81526004016103669061081c565b6001600160a01b0381166105f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610366565b6105ff81610618565b50565b60008261060f8584610668565b14949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b84518110156106d457600085828151811061068a5761068a61086a565b602002602001015190508083116106b057600083815260208290526040902092506106c1565b600081815260208490526040902092505b50806106cc81610880565b91505061066d565b509392505050565b80356001600160a01b03811681146106f357600080fd5b919050565b6000806000806060858703121561070e57600080fd5b610717856106dc565b93506020850135925060408501356001600160401b038082111561073a57600080fd5b818701915087601f83011261074e57600080fd5b81358181111561075d57600080fd5b8860208260051b850101111561077257600080fd5b95989497505060200194505050565b60006020828403121561079357600080fd5b61079c826106dc565b9392505050565b6001600160a01b0391909116815260200190565b600080604083850312156107ca57600080fd5b6107d3836106dc565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561080c57600080fd5b8151801515811461079c57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561086357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016108a057634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f1a0d9c2bbbcd4bed8dbab02f3807f3d2d670b428b434082587373b6b4c9725864736f6c634300080d0033
0x60c060405234801561001057600080fd5b506040516109d03803806109d083398101604081905261002f916100a8565b61003833610058565b60805273a23c1194d421f252b4e6d5edcc3205f7650a4ebe60a0526100c1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100ba57600080fd5b5051919050565b60805160a0516108dd6100f36000396000818161014701526102960152600081816082015261021601526108dd6000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80632eb4a7ab1461007d5780633d13f874146100b7578063715018a6146100cc57806373b2e80e146100d45780638da5cb5b14610107578063ce261d101461011c578063f2fde38b1461012f578063fc0c546a14610142575b600080fd5b6100a47f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100ca6100c53660046106f8565b610169565b005b6100ca6103ba565b6100f76100e2366004610781565b60016020526000908152604090205460ff1681565b60405190151581526020016100ae565b61010f6103f5565b6040516100ae91906107a3565b6100ca61012a3660046107b7565b610404565b6100ca61013d366004610781565b610562565b61010f7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b03841660009081526001602052604090205460ff16156101a357604051630c8d9eab60e31b815260040160405180910390fd5b6040516001600160601b0319606086901b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006102418484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506106029050565b9050806102615760405163452c2df160e11b815260040160405180910390fd5b6001600160a01b03808716600090815260016020819052604091829020805460ff191690911790555163a9059cbb60e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906102cf90899089906004016107e1565b6020604051808303816000875af11580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031291906107fa565b61036f5760405162461bcd60e51b815260206004820152602360248201527f4d65726b6c654469737472696275746f723a205472616e73666572206661696c60448201526232b21760e91b60648201526084015b60405180910390fd5b856001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4866040516103aa91815260200190565b60405180910390a2505050505050565b336103c36103f5565b6001600160a01b0316146103e95760405162461bcd60e51b81526004016103669061081c565b6103f36000610618565b565b6000546001600160a01b031690565b3361040d6103f5565b6001600160a01b0316146104335760405162461bcd60e51b81526004016103669061081c565b6000811180156104b057506040516370a0823160e01b815281906001600160a01b038416906370a082319061046c9030906004016107a3565b602060405180830381865afa158015610489573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ad9190610851565b10155b6104e45760405162461bcd60e51b815260206004820152600560248201526422b93937b960d91b6044820152606401610366565b60405163a9059cbb60e01b81526001600160a01b0383169063a9059cbb9061051290339085906004016107e1565b6020604051808303816000875af1158015610531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055591906107fa565b61055e57600080fd5b5050565b3361056b6103f5565b6001600160a01b0316146105915760405162461bcd60e51b81526004016103669061081c565b6001600160a01b0381166105f65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610366565b6105ff81610618565b50565b60008261060f8584610668565b14949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b84518110156106d457600085828151811061068a5761068a61086a565b602002602001015190508083116106b057600083815260208290526040902092506106c1565b600081815260208490526040902092505b50806106cc81610880565b91505061066d565b509392505050565b80356001600160a01b03811681146106f357600080fd5b919050565b6000806000806060858703121561070e57600080fd5b610717856106dc565b93506020850135925060408501356001600160401b038082111561073a57600080fd5b818701915087601f83011261074e57600080fd5b81358181111561075d57600080fd5b8860208260051b850101111561077257600080fd5b95989497505060200194505050565b60006020828403121561079357600080fd5b61079c826106dc565b9392505050565b6001600160a01b0391909116815260200190565b600080604083850312156107ca57600080fd5b6107d3836106dc565b946020939093013593505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561080c57600080fd5b8151801515811461079c57600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561086357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016108a057634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f1a0d9c2bbbcd4bed8dbab02f3807f3d2d670b428b434082587373b6b4c9725864736f6c634300080d00334368ac6506a785e966e00cabb073ee904a4005c9b36ff555494fd6ef935a5b1a