0x608060405234801561001057600080fd5b506105a7806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d54b2fe14610051578063c4e14aec146100fc578063db5f065314610262578063f7c539f214610308575b600080fd5b6100876004803603606081101561006757600080fd5b506001600160a01b03813581169160208101359160409091013516610334565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100c15781810151838201526020016100a9565b50505050905090810190601f1680156100ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610087600480360361012081101561011357600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013581169260808101359091169160a0820135919081019060e0810160c082013564010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101eb57600080fd5b8201836020820111156101fd57600080fd5b8035906020019184600183028401116401000000008311171561021f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061037b915050565b6100876004803603602081101561027857600080fd5b81019060208101813564010000000081111561029357600080fd5b8201836020820111156102a557600080fd5b803590602001918460018302840111640100000000831117156102c757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506104c1945050505050565b6100876004803603604081101561031e57600080fd5b506001600160a01b038135169060200135610536565b604080516bffffffffffffffffffffffff19606086811b821660208401526034830186905284901b1660548201528151604881830301815260689091019091529392505050565b6060898989898989898989604051602001808a6001600160a01b03166001600160a01b031660601b8152601401898152602001886001600160a01b03166001600160a01b031660601b8152601401876001600160a01b03166001600160a01b031660601b8152601401866001600160a01b03166001600160a01b031660601b815260140185815260200184805190602001908083835b602083106104305780518252601f199092019160209182019101610411565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106104785780518252601f199092019160209182019101610459565b51815160001960209485036101000a0190811690199190911617905292019384525060408051808503815293909101905250985050505050505050509998505050505050505050565b606080826040516020018082805190602001908083835b602083106104f75780518252601f1990920191602091820191016104d8565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052905080915050919050565b6040805160609390931b6bffffffffffffffffffffffff191660208401526034808401929092528051808403909201825260549092019091529056fea265627a7a723158206d80cfc4c2d5e86b5c23c3a87b6826b1bac5e78ab8d6e81745e31a9b67efe5a964736f6c63430005110032