0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b09f126611610071578063b09f12661461025c578063b2bdfa7b14610264578063d28d885214610277578063dd62ed3e1461027f578063f2fde38b146102b857600080fd5b8063893d20e8146101f85780638da5cb5b1461021d57806395d89b411461022e578063a457c2d714610236578063a9059cbb1461024957600080fd5b8063313ce567116100f4578063313ce5671461018c57806332424aa3146101a557806339509351146101b257806370a08231146101c5578063715018a6146101ee57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cb565b60405161013b9190610a33565b60405180910390f35b610157610152366004610a9d565b61035d565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610ac7565b610374565b60045460ff165b60405160ff909116815260200161013b565b6004546101939060ff1681565b6101576101c0366004610a9d565b6103dd565b61016b6101d3366004610b03565b6001600160a01b031660009081526001602052604090205490565b6101f6610413565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6000546001600160a01b0316610205565b61012e6104bc565b610157610244366004610a9d565b6104cb565b610157610257366004610a9d565b61051a565b61012e610527565b600054610205906001600160a01b031681565b61012e6105b5565b61016b61028d366004610b1e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101f66102c6366004610b03565b6105c2565b6060600680546102da90610b51565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610b51565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b600061036a338484610628565b5060015b92915050565b600061038184848461074d565b6103d384336103ce85604051806060016040528060288152602001610bc8602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906108d3565b610628565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161036a9185906103ce908661090d565b6000546001600160a01b031633146104725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102da90610b51565b600061036a33846103ce85604051806060016040528060258152602001610c16602591393360009081526002602090815260408083206001600160a01b038d16845290915290205491906108d3565b600061036a33848461074d565b6005805461053490610b51565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610b51565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b505050505081565b6006805461053490610b51565b6000546001600160a01b0316331461061c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610469565b61062581610973565b50565b6001600160a01b03831661068a5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610469565b6001600160a01b0382166106eb5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610469565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107b15760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610469565b6001600160a01b0382166108135760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610469565b61085081604051806060016040528060268152602001610bf0602691396001600160a01b03861660009081526001602052604090205491906108d3565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461087f908261090d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107409085815260200190565b600081848411156108f75760405162461bcd60e51b81526004016104699190610a33565b5060006109048486610ba1565b95945050505050565b60008061091a8385610bb4565b90508381101561096c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610469565b9392505050565b6001600160a01b0381166109d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610469565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208083528351808285015260005b81811015610a6057858101830151858201604001528201610a44565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a9857600080fd5b919050565b60008060408385031215610ab057600080fd5b610ab983610a81565b946020939093013593505050565b600080600060608486031215610adc57600080fd5b610ae584610a81565b9250610af360208501610a81565b9150604084013590509250925092565b600060208284031215610b1557600080fd5b61096c82610a81565b60008060408385031215610b3157600080fd5b610b3a83610a81565b9150610b4860208401610a81565b90509250929050565b600181811c90821680610b6557607f821691505b602082108103610b8557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e610b8b565b8082018082111561036e5761036e610b8b56fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fb321c3f77ad48aaca2e64295044064e6d7a556f565ebf4091ac8c40080d7da164736f6c63430008120033
0x60806040523480156200001157600080fd5b5060405162000f6d38038062000f6d83398101604081905262000034916200014a565b6040805180820190915260038152625a524560e81b60208201526006906200005d908262000221565b506040805180820190915260038152625a524560e81b602082015260059062000087908262000221565b506004805460ff19166012179055600080546001600160a01b0383166001600160a01b0319909116811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36d314dc6448d9338c15b0a0000000060038190556001600160a01b038216600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620002ed565b6000602082840312156200015d57600080fd5b81516001600160a01b03811681146200017557600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001a757607f821691505b602082108103620001c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c57600081815260208120601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d6200017c565b62000255816200024e845462000192565b84620001ce565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c7080620002fd6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b09f126611610071578063b09f12661461025c578063b2bdfa7b14610264578063d28d885214610277578063dd62ed3e1461027f578063f2fde38b146102b857600080fd5b8063893d20e8146101f85780638da5cb5b1461021d57806395d89b411461022e578063a457c2d714610236578063a9059cbb1461024957600080fd5b8063313ce567116100f4578063313ce5671461018c57806332424aa3146101a557806339509351146101b257806370a08231146101c5578063715018a6146101ee57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102cb565b60405161013b9190610a33565b60405180910390f35b610157610152366004610a9d565b61035d565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610ac7565b610374565b60045460ff165b60405160ff909116815260200161013b565b6004546101939060ff1681565b6101576101c0366004610a9d565b6103dd565b61016b6101d3366004610b03565b6001600160a01b031660009081526001602052604090205490565b6101f6610413565b005b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6000546001600160a01b0316610205565b61012e6104bc565b610157610244366004610a9d565b6104cb565b610157610257366004610a9d565b61051a565b61012e610527565b600054610205906001600160a01b031681565b61012e6105b5565b61016b61028d366004610b1e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101f66102c6366004610b03565b6105c2565b6060600680546102da90610b51565b80601f016020809104026020016040519081016040528092919081815260200182805461030690610b51565b80156103535780601f1061032857610100808354040283529160200191610353565b820191906000526020600020905b81548152906001019060200180831161033657829003601f168201915b5050505050905090565b600061036a338484610628565b5060015b92915050565b600061038184848461074d565b6103d384336103ce85604051806060016040528060288152602001610bc8602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906108d3565b610628565b5060019392505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161036a9185906103ce908661090d565b6000546001600160a01b031633146104725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102da90610b51565b600061036a33846103ce85604051806060016040528060258152602001610c16602591393360009081526002602090815260408083206001600160a01b038d16845290915290205491906108d3565b600061036a33848461074d565b6005805461053490610b51565b80601f016020809104026020016040519081016040528092919081815260200182805461056090610b51565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b505050505081565b6006805461053490610b51565b6000546001600160a01b0316331461061c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610469565b61062581610973565b50565b6001600160a01b03831661068a5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610469565b6001600160a01b0382166106eb5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610469565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107b15760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610469565b6001600160a01b0382166108135760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610469565b61085081604051806060016040528060268152602001610bf0602691396001600160a01b03861660009081526001602052604090205491906108d3565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461087f908261090d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107409085815260200190565b600081848411156108f75760405162461bcd60e51b81526004016104699190610a33565b5060006109048486610ba1565b95945050505050565b60008061091a8385610bb4565b90508381101561096c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610469565b9392505050565b6001600160a01b0381166109d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610469565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208083528351808285015260005b81811015610a6057858101830151858201604001528201610a44565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a9857600080fd5b919050565b60008060408385031215610ab057600080fd5b610ab983610a81565b946020939093013593505050565b600080600060608486031215610adc57600080fd5b610ae584610a81565b9250610af360208501610a81565b9150604084013590509250925092565b600060208284031215610b1557600080fd5b61096c82610a81565b60008060408385031215610b3157600080fd5b610b3a83610a81565b9150610b4860208401610a81565b90509250929050565b600181811c90821680610b6557607f821691505b602082108103610b8557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e610b8b565b8082018082111561036e5761036e610b8b56fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fb321c3f77ad48aaca2e64295044064e6d7a556f565ebf4091ac8c40080d7da164736f6c63430008120033000000000000000000000000d68d1e60c55f37656c198ab434c95c33a84f34ca