//
0x608060405234801561001057600080fd5b506100226001600160e01b0361002716565b610119565b61003a60ff6001600160e01b0361003d16565b50565b603354600090610100900460ff16156100b5578160ff1660011480156100725750610070306001600160e01b0361011316565b155b6100ad5760405162461bcd60e51b815260040180806020018281038252602e815260200180611093602e913960400191505060405180910390fd5b50600061010e565b60335460ff8084169116106100fb5760405162461bcd60e51b815260040180806020018281038252602e815260200180611093602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b3b151590565b610f6b806101286000396000f3fe608060405234801561001057600080fd5b50600436106101115760003560e01c80638da5cb5b116100ad578063b140384b11610071578063b140384b14610289578063c0324c7714610291578063e30c3978146102b4578063ecda10f5146102bc578063f2fde38b146102c457610111565b80638da5cb5b146101b25780638f32d59b146101ba57806390107afe146101d6578063a20baee614610204578063a3f4df7e1461020c57610111565b80630b622ab2146101165780630fc83da31461013a5780631f7af3c31461015457806346ad34d91461015c5780634e5c995714610164578063614d2ab61461016c57806361ec893d1461019a57806379ba5097146101a25780638129fc1c146101aa575b600080fd5b61011e6102ea565b604080516001600160a01b039092168252519081900360200190f35b6101426102f9565b60408051918252519081900360200190f35b61011e6102ff565b61014261030e565b6101426103a7565b6101986004803603604081101561018257600080fd5b506001600160a01b0381351690602001356103ad565b005b61014261043b565b610198610440565b61019861049b565b61011e610513565b6101c2610522565b604080519115158252519081900360200190f35b610198600480360360408110156101ec57600080fd5b506001600160a01b0381358116916020013516610533565b6101426106b7565b6102146106c3565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024e578181015183820152602001610236565b50505050905090810190601f16801561027b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101426106f0565b610198600480360360408110156102a757600080fd5b50803590602001356106f6565b61011e6107c2565b6101426107d1565b610198600480360360208110156102da57600080fd5b50356001600160a01b03166107d7565b6037546001600160a01b031681565b60345481565b6036546001600160a01b031681565b600061031861087c565b600061034c670de0b6b3a76400006103406103316108c7565b6035549063ffffffff61092b16565b9063ffffffff61098d16565b90506000610365603854836109cf90919063ffffffff16565b60388390556040805184815290519192507f033068abf93bdec23e781d0a3b3f3e688bfa8471c68b629ad68652cdc63a6e49919081900360200190a191505090565b60355481565b6103b561087c565b6036546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561040b57600080fd5b505af115801561041f573d6000803e3d6000fd5b505050506040513d602081101561043557600080fd5b50505050565b603c81565b338061044a6107c2565b6001600160a01b03161461048f5760405162461bcd60e51b8152600401808060200182810382526029815260200180610e7b6029913960400191505060405180910390fd5b61049881610a11565b50565b60006104a76001610a6b565b905080156104bf576033805461ff0019166101001790555b6104c7610b38565b426039558015610498576033805461ff0019169055604080516001815290517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989181900360200190a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b61053b610522565b61057a576040805162461bcd60e51b81526020600482018190526024820152600080516020610ef3833981519152604482015290519081900360640190fd5b61058382610b7b565b61058c81610b7b565b603680546001600160a01b038085166001600160a01b0319928316179283905560378054858316931692909217909155604080516370a0823160e01b81523060048201529051600093909216916370a0823191602480820192602092909190829003018186803b1580156105ff57600080fd5b505afa158015610613573d6000803e3d6000fd5b505050506040513d602081101561062957600080fd5b505160355490915081101561063a57fe5b604080516001600160a01b038516815290517fb0c89119a7c10e4c2d02306921ba368ac83d0e4b302337916017485c2791bec59181900360200190a1604080516001600160a01b038416815290517f45c53611bc8ba9e11f4f8173bda9e3faf89c395ddb83f9a55230b156828db3159181900360200190a1505050565b670de0b6b3a764000081565b60405180604001604052806011815260200170436f6d6d756e69747949737375616e636560781b81525081565b60385481565b6106fe610522565b61073d576040805162461bcd60e51b81526020600482018190526024820152600080516020610ef3833981519152604482015290519081900360640190fd5b603454604080519182526020820184905280517f9c48cb51924890884cf8b975b7bc0c4749aae2acb2429236437b73a96f460d089281900390910190a1603554604080519182526020820183905280517fb4d96b3a6638191d0f6aefa0fdc4d99af3592f4c97480e31feeb977723c63b539281900390910190a1603491909155603555565b6001546001600160a01b031690565b60395481565b6107df610522565b61081e576040805162461bcd60e51b81526020600482018190526024820152600080516020610ef3833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b038316908117909155610844610513565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6037546001600160a01b031633146108c55760405162461bcd60e51b8152600401808060200182810382526023815260200180610f136023913960400191505060405180910390fd5b565b6000806108e4603c610340603954426109cf90919063ffffffff16565b905060006108f460345483610c2e565b90506000610910670de0b6b3a76400008363ffffffff6109cf16565b9050670de0b6b3a764000081111561092457fe5b9250505090565b60008261093a57506000610987565b8282028284828161094757fe5b04146109845760405162461bcd60e51b8152600401808060200182810382526021815260200180610ed26021913960400191505060405180910390fd5b90505b92915050565b600061098483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ce3565b600061098483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d85565b600180546001600160a01b0319908116909155600080546001600160a01b03848116938216841783556040519116929183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b603354600090610100900460ff1615610ada578160ff166001148015610a975750610a9530610ddf565b155b610ad25760405162461bcd60e51b815260040180806020018281038252602e815260200180610ea4602e913960400191505060405180910390fd5b506000610b33565b60335460ff808416911610610b205760405162461bcd60e51b815260040180806020018281038252602e815260200180610ea4602e913960400191505060405180910390fd5b506033805460ff191660ff831617905560015b919050565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350565b6001600160a01b038116610bd6576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80610c2a576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b5050565b6000631f540500821115610c4457631f54050091505b81610c585750670de0b6b3a7640000610987565b670de0b6b3a764000083835b6001811115610ccf5760028106610c9957610c7f8283610de5565b9150610c9281600263ffffffff61098d16565b9050610cca565b610ca38284610de5565b9250610caf8283610de5565b9150610cc7600261034083600163ffffffff6109cf16565b90505b610c64565b610cd98284610de5565b9695505050505050565b60008183610d6f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d34578181015183820152602001610d1c565b50505050905090810190601f168015610d615780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610d7b57fe5b0495945050505050565b60008184841115610dd75760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d34578181015183820152602001610d1c565b505050900390565b3b151590565b600080610df8848463ffffffff61092b16565b9050610e18670de0b6b3a7640000610340836706f05b59d3b20000610e20565b949350505050565b600082820183811015610984576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6d6d756e69747949737375616e63653a2063616c6c6572206973206e6f74205350a2646970667358221220128ff1f8e0851e57f4926a9e4d59a226e0b6165d95fe5e8e4edf34c61472604564736f6c634300060b0033496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564