0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d238061007e6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101175780638da5cb5b1461011f578063bcdb446b1461013a578063f2fde38b14610142578063f8b2cb4f1461015557600080fd5b8063068e7ca1146100a357806316114acd146100c95780631aa51318146100de57806326a215ec146100f157806343cf6f2414610104575b600080fd5b6100b66100b13660046109b0565b610168565b6040519081526020015b60405180910390f35b6100dc6100d7366004610a0c565b610193565b005b6100dc6100ec3660046109b0565b610283565b6100b66100ff366004610a27565b6104c6565b6100b6610112366004610aa6565b610504565b6100dc61062b565b6000546040516001600160a01b0390911681526020016100c0565b6100dc61063f565b6100dc610150366004610a0c565b610676565b6100b6610163366004610a0c565b6106ec565b60008061017787868686610504565b9050600061018787868885610504565b98975050505050505050565b61019b610760565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156101eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020f9190610af1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027e9190610b0a565b505050565b61028b610760565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156102d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f69190610af1565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103649190610af1565b9050610372878686866107ba565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa1580156103b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dd9190610af1565b905060006103eb8383610b42565b90506103f9888789846107ba565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190610af1565b90508481116104ba5760405162461bcd60e51b815260206004820152601e60248201527f54726164652052657665727465642c204e6f2050726f666974204d616465000060448201526064015b60405180910390fd5b50505050505050505050565b6000806104d589878786610504565b905060006104e589878785610504565b905060006104f589878a85610504565b9b9a5050505050505050505050565b6040805160028082526060808301845260009390929190602083019080368337019050509050848160008151811061053e5761053e610b71565b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061057257610572610b71565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b815260009188169063d06ca61f906105b19087908690600401610bcb565b600060405180830381865afa1580156105ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f69190810190610bec565b905080600183516106079190610b42565b8151811061061757610617610b71565b602002602001015192505050949350505050565b610633610760565b61063d6000610944565b565b610647610760565b60405133904780156108fc02916000818181858888f19350505050158015610673573d6000803e3d6000fd5b50565b61067e610760565b6001600160a01b0381166106e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b1565b61067381610944565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190610af1565b9392505050565b6000546001600160a01b0316331461063d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b1565b60405163095ea7b360e01b81526001600160a01b0385811660048301526024820183905284169063095ea7b3906044016020604051808303816000875af1158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d9190610b0a565b506040805160028082526060808301845292602083019080368337019050509050838160008151811061086257610862610b71565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061089657610896610b71565b6001600160a01b039092166020928302919091019091015260006108bc4261012c610c9e565b6040516338ed173960e01b81529091506001600160a01b038716906338ed1739906108f4908690600190879030908890600401610cb1565b6000604051808303816000875af1158015610913573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261093b9190810190610bec565b50505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146109ab57600080fd5b919050565b600080600080600060a086880312156109c857600080fd5b6109d186610994565b94506109df60208701610994565b93506109ed60408701610994565b92506109fb60608701610994565b949793965091946080013592915050565b600060208284031215610a1e57600080fd5b61075982610994565b600080600080600080600060e0888a031215610a4257600080fd5b610a4b88610994565b9650610a5960208901610994565b9550610a6760408901610994565b9450610a7560608901610994565b9350610a8360808901610994565b9250610a9160a08901610994565b915060c0880135905092959891949750929550565b60008060008060808587031215610abc57600080fd5b610ac585610994565b9350610ad360208601610994565b9250610ae160408601610994565b9396929550929360600135925050565b600060208284031215610b0357600080fd5b5051919050565b600060208284031215610b1c57600080fd5b8151801515811461075957600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5557610b55610b2c565b92915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015610bc05781516001600160a01b031687529582019590820190600101610b9b565b509495945050505050565b828152604060208201526000610be46040830184610b87565b949350505050565b60006020808385031215610bff57600080fd5b825167ffffffffffffffff80821115610c1757600080fd5b818501915085601f830112610c2b57600080fd5b815181811115610c3d57610c3d610b5b565b8060051b604051601f19603f83011681018181108582111715610c6257610c62610b5b565b604052918252848201925083810185019188831115610c8057600080fd5b938501935b8285101561018757845184529385019392850192610c85565b80820180821115610b5557610b55610b2c565b85815284602082015260a060408201526000610cd060a0830186610b87565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220e711eeef4e881b15dbc8c33400220d988986031725e26fde2e79c04098c39b2b64736f6c63430008110033
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101175780638da5cb5b1461011f578063bcdb446b1461013a578063f2fde38b14610142578063f8b2cb4f1461015557600080fd5b8063068e7ca1146100a357806316114acd146100c95780631aa51318146100de57806326a215ec146100f157806343cf6f2414610104575b600080fd5b6100b66100b13660046109b0565b610168565b6040519081526020015b60405180910390f35b6100dc6100d7366004610a0c565b610193565b005b6100dc6100ec3660046109b0565b610283565b6100b66100ff366004610a27565b6104c6565b6100b6610112366004610aa6565b610504565b6100dc61062b565b6000546040516001600160a01b0390911681526020016100c0565b6100dc61063f565b6100dc610150366004610a0c565b610676565b6100b6610163366004610a0c565b6106ec565b60008061017787868686610504565b9050600061018787868885610504565b98975050505050505050565b61019b610760565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156101eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020f9190610af1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027e9190610b0a565b505050565b61028b610760565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156102d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f69190610af1565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610340573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103649190610af1565b9050610372878686866107ba565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa1580156103b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dd9190610af1565b905060006103eb8383610b42565b90506103f9888789846107ba565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190610af1565b90508481116104ba5760405162461bcd60e51b815260206004820152601e60248201527f54726164652052657665727465642c204e6f2050726f666974204d616465000060448201526064015b60405180910390fd5b50505050505050505050565b6000806104d589878786610504565b905060006104e589878785610504565b905060006104f589878a85610504565b9b9a5050505050505050505050565b6040805160028082526060808301845260009390929190602083019080368337019050509050848160008151811061053e5761053e610b71565b60200260200101906001600160a01b031690816001600160a01b031681525050838160018151811061057257610572610b71565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b815260009188169063d06ca61f906105b19087908690600401610bcb565b600060405180830381865afa1580156105ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f69190810190610bec565b905080600183516106079190610b42565b8151811061061757610617610b71565b602002602001015192505050949350505050565b610633610760565b61063d6000610944565b565b610647610760565b60405133904780156108fc02916000818181858888f19350505050158015610673573d6000803e3d6000fd5b50565b61067e610760565b6001600160a01b0381166106e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b1565b61067381610944565b6040516370a0823160e01b815230600482015260009081906001600160a01b038416906370a0823190602401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190610af1565b9392505050565b6000546001600160a01b0316331461063d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b1565b60405163095ea7b360e01b81526001600160a01b0385811660048301526024820183905284169063095ea7b3906044016020604051808303816000875af1158015610809573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082d9190610b0a565b506040805160028082526060808301845292602083019080368337019050509050838160008151811061086257610862610b71565b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061089657610896610b71565b6001600160a01b039092166020928302919091019091015260006108bc4261012c610c9e565b6040516338ed173960e01b81529091506001600160a01b038716906338ed1739906108f4908690600190879030908890600401610cb1565b6000604051808303816000875af1158015610913573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261093b9190810190610bec565b50505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146109ab57600080fd5b919050565b600080600080600060a086880312156109c857600080fd5b6109d186610994565b94506109df60208701610994565b93506109ed60408701610994565b92506109fb60608701610994565b949793965091946080013592915050565b600060208284031215610a1e57600080fd5b61075982610994565b600080600080600080600060e0888a031215610a4257600080fd5b610a4b88610994565b9650610a5960208901610994565b9550610a6760408901610994565b9450610a7560608901610994565b9350610a8360808901610994565b9250610a9160a08901610994565b915060c0880135905092959891949750929550565b60008060008060808587031215610abc57600080fd5b610ac585610994565b9350610ad360208601610994565b9250610ae160408601610994565b9396929550929360600135925050565b600060208284031215610b0357600080fd5b5051919050565b600060208284031215610b1c57600080fd5b8151801515811461075957600080fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5557610b55610b2c565b92915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015610bc05781516001600160a01b031687529582019590820190600101610b9b565b509495945050505050565b828152604060208201526000610be46040830184610b87565b949350505050565b60006020808385031215610bff57600080fd5b825167ffffffffffffffff80821115610c1757600080fd5b818501915085601f830112610c2b57600080fd5b815181811115610c3d57610c3d610b5b565b8060051b604051601f19603f83011681018181108582111715610c6257610c62610b5b565b604052918252848201925083810185019188831115610c8057600080fd5b938501935b8285101561018757845184529385019392850192610c85565b80820180821115610b5557610b55610b2c565b85815284602082015260a060408201526000610cd060a0830186610b87565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220e711eeef4e881b15dbc8c33400220d988986031725e26fde2e79c04098c39b2b64736f6c63430008110033