0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063d95b63711161007c578063d95b637114610533578063dd62ed3e14610561578063f2fde38b1461058f578063fad8b32a146105b5578063fc673c4f146105db578063fe9d9303146106ae57610158565b80638da5cb5b1461042a5780638f32d59b1461044e578063959b8c3f1461045657806395d89b411461047c5780639bd9bbc614610484578063a9059cbb1461050757610158565b8063313ce56711610115578063313ce567146102ca57806340c10f19146102e8578063556f0dc71461031657806362ad1b831461031e57806370a08231146103fc578063715018a61461042257610158565b806306e485381461015d57806306fdde03146101b5578063095ea7b31461023257806318160ddd1461027257806322f4596f1461028c57806323b872dd14610294575b600080fd5b610165610723565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b6101bd610785565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f75781810151838201526020016101df565b50505050905090810190601f1680156102245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025e6004803603604081101561024857600080fd5b506001600160a01b038135169060200135610812565b604080519115158252519081900360200190f35b61027a61082a565b60408051918252519081900360200190f35b61027a610830565b61025e600480360360608110156102aa57600080fd5b506001600160a01b03813581169160208101359091169060400135610843565b6102d26109a8565b6040805160ff9092168252519081900360200190f35b610314600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001356109ad565b005b61027a610a37565b610314600480360360a081101561033457600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460018302840111600160201b831117156103a157600080fd5b919390929091602081019035600160201b8111156103be57600080fd5b8201836020820111156103d057600080fd5b803590602001918460018302840111600160201b831117156103f157600080fd5b509092509050610a3c565b61027a6004803603602081101561041257600080fd5b50356001600160a01b0316610b04565b610314610b1f565b610432610bc2565b604080516001600160a01b039092168252519081900360200190f35b61025e610bd1565b6103146004803603602081101561046c57600080fd5b50356001600160a01b0316610be2565b6101bd610ce3565b6103146004803603606081101561049a57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111600160201b831117156104fc57600080fd5b509092509050610d44565b61025e6004803603604081101561051d57600080fd5b506001600160a01b038135169060200135610d9e565b61025e6004803603604081101561054957600080fd5b506001600160a01b0381358116916020013516610e70565b61027a6004803603604081101561057757600080fd5b506001600160a01b0381358116916020013516610f12565b610314600480360360208110156105a557600080fd5b50356001600160a01b0316610f3d565b610314600480360360208110156105cb57600080fd5b50356001600160a01b0316610fa2565b610314600480360360808110156105f157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561062057600080fd5b82018360208201111561063257600080fd5b803590602001918460018302840111600160201b8311171561065357600080fd5b919390929091602081019035600160201b81111561067057600080fd5b82018360208201111561068257600080fd5b803590602001918460018302840111600160201b831117156106a357600080fd5b5090925090506110a3565b610314600480360360408110156106c457600080fd5b81359190810190604081016020820135600160201b8111156106e557600080fd5b8201836020820111156106f757600080fd5b803590602001918460018302840111600160201b8311171561071857600080fd5b509092509050611166565b6060600580548060200260200160405190810160405280929190818152602001828054801561077b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161075d575b5050505050905090565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561077b5780601f106107e65761010080835404028352916020019161077b565b820191906000526020600020905b8154815290600101906020018083116107f457509395945050505050565b6000336108208185856111b6565b5060019392505050565b60025490565b6ec097ce7bc90715b34b9f100000000081565b60006001600160a01b03831661088a5760405162461bcd60e51b81526004018080602001828103825260248152602001806120a26024913960400191505060405180910390fd5b6001600160a01b0384166108cf5760405162461bcd60e51b81526004018080602001828103825260268152602001806120f26026913960400191505060405180910390fd5b600033905061090081868686604051806020016040528060008152506040518060200160405280600081525061125d565b61092c818686866040518060200160405280600081525060405180602001604052806000815250611494565b6001600160a01b0380861660009081526009602090815260408083209385168352929052205461096f908690839061096a908763ffffffff61169416565b6111b6565b61099d81868686604051806020016040528060008152506040518060200160405280600081525060006116f1565b506001949350505050565b601290565b806109b6610bd1565b610a07576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a323384846040518060200160405280600081525060405180602001604052806000815250611981565b505050565b600190565b610a463388610e70565b610a815760405162461bcd60e51b815260040180806020018281038252602c8152602001806120c6602c913960400191505060405180910390fd5b610afb3388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525060019250611bb9915050565b50505050505050565b6001600160a01b031660009081526001602052604090205490565b610b27610bd1565b610b78576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b600a546001600160a01b031690565b600a546001600160a01b0316331490565b336001600160a01b0382161415610c2a5760405162461bcd60e51b81526004018080602001828103825260248152602001806120106024913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff1615610c7b573360009081526008602090815260408083206001600160a01b03851684529091529020805460ff19169055610caa565b3360009081526007602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561077b5780601f106107e65761010080835404028352916020019161077b565b610d983333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150611bb99050565b50505050565b60006001600160a01b038316610de55760405162461bcd60e51b81526004018080602001828103825260248152602001806120a26024913960400191505060405180910390fd5b6000339050610e1681828686604051806020016040528060008152506040518060200160405280600081525061125d565b610e42818286866040518060200160405280600081525060405180602001604052806000815250611494565b61082081828686604051806020016040528060008152506040518060200160405280600081525060006116f1565b6000816001600160a01b0316836001600160a01b03161480610edb57506001600160a01b03831660009081526006602052604090205460ff168015610edb57506001600160a01b0380831660009081526008602090815260408083209387168352929052205460ff16155b80610f0b57506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610f45610bd1565b610f96576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f9f81611c84565b50565b6001600160a01b038116331415610fea5760405162461bcd60e51b81526004018080602001828103825260218152602001806120346021913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff161561103e573360009081526008602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561106a565b3360009081526007602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b6110ad3387610e70565b6110e85760405162461bcd60e51b815260040180806020018281038252602c8152602001806120c6602c913960400191505060405180910390fd5b61115e33878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b018190048102820181019092528981529250899150889081908401838280828437600092019190915250611d2592505050565b505050505050565b610a3233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611d25915050565b6001600160a01b0382166111fb5760405162461bcd60e51b81526004018080602001828103825260238152602001806121186023913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600080546040805163555ddc6560e11b81526001600160a01b0389811660048301527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248301529151919092169163aabbb8ca916044808301926020929190829003018186803b1580156112d157600080fd5b505afa1580156112e5573d6000803e3d6000fd5b505050506040513d60208110156112fb57600080fd5b505190506001600160a01b03811615610afb57806001600160a01b03166375ab97828888888888886040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156113c15781810151838201526020016113a9565b50505050905090810190601f1680156113ee5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611421578181015183820152602001611409565b50505050905090810190601f16801561144e5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b0385166000908152600160205260409020546114bd908463ffffffff61169416565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546114f2908463ffffffff611f4516565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156115a457818101518382015260200161158c565b50505050905090810190601f1680156115d15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156116045781810151838201526020016115ec565b50505050905090810190601f1680156116315780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b6000828211156116eb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080546040805163555ddc6560e11b81526001600160a01b0389811660048301527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301529151919092169163aabbb8ca916044808301926020929190829003018186803b15801561176557600080fd5b505afa158015611779573d6000803e3d6000fd5b505050506040513d602081101561178f57600080fd5b505190506001600160a01b0381161561192357806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561185457818101518382015260200161183c565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156118b457818101518382015260200161189c565b50505050905090810190601f1680156118e15780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561190657600080fd5b505af115801561191a573d6000803e3d6000fd5b50505050611977565b81156119775761193b866001600160a01b0316611f9f565b156119775760405162461bcd60e51b815260040180806020018281038252604d815260200180612055604d913960600191505060405180910390fd5b5050505050505050565b6001600160a01b0384166119dc576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6002546119ef908463ffffffff611f4516565b6002556001600160a01b038416600090815260016020526040902054611a1b908463ffffffff611f4516565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550611a558560008686868660016116f1565b836001600160a01b0316856001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ad4578181015183820152602001611abc565b50505050905090810190601f168015611b015780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611b34578181015183820152602001611b1c565b50505050905090810190601f168015611b615780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516001600160a01b038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b6001600160a01b038616611bfe5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fa66022913960400191505060405180910390fd5b6001600160a01b038516611c59576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611c6787878787878761125d565b611c75878787878787611494565b610afb878787878787876116f1565b6001600160a01b038116611cc95760405162461bcd60e51b8152600401808060200182810382526026815260200180611fc86026913960400191505060405180910390fd5b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038416611d6a5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fee6022913960400191505060405180910390fd5b611d798585600086868661125d565b600254611d8c908463ffffffff61169416565b6002556001600160a01b038416600090815260016020526040902054611db8908463ffffffff61169416565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e60578181015183820152602001611e48565b50505050905090810190601f168015611e8d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611ec0578181015183820152602001611ea8565b50505050905090810190601f168015611eed5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b600082820183811015610f0b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3b15159056fe4552433737373a2073656e642066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e744552433737373a207472616e7366657220746f20746865207a65726f20616464726573734552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a723158203247d2a15cbc6a2c2b7d26684012777722a84cc94bace7893c645ceb14c87aac64736f6c634300050c0032
0x6080604052600080546001600160a01b031916731820a4b7618bde71dce8cdc73aab6c95905fad241790553480156200003757600080fd5b50604080518082018252600e81527f4c6f7473206f66204c617567687300000000000000000000000000000000000060208083019182528351808501855260038082527f4c4f4c0000000000000000000000000000000000000000000000000000000000828401528551600081529283019095528351939490939192620000be9262000311565b508151620000d490600490602085019062000311565b508051620000ea90600590602084019062000396565b5060005b6005548110156200014a57600160066000600584815481106200010d57fe5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101620000ee565b5060008054604080517f455243373737546f6b656e0000000000000000000000000000000000000000008152815190819003600b0181207f29965a1d00000000000000000000000000000000000000000000000000000000825230600483018190526024830191909152604482015290516001600160a01b03909216926329965a1d9260648084019382900301818387803b158015620001e957600080fd5b505af1158015620001fe573d6000803e3d6000fd5b505060008054604080517f4552433230546f6b656e000000000000000000000000000000000000000000008152815190819003600a0181207f29965a1d00000000000000000000000000000000000000000000000000000000825230600483018190526024830191909152604482015290516001600160a01b0390921694506329965a1d9350606480820193929182900301818387803b158015620002a257600080fd5b505af1158015620002b7573d6000803e3d6000fd5b5050600a80546001600160a01b0319163317908190556040516001600160a01b03919091169550600094507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e093508492509050a362000443565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035457805160ff191683800117855562000384565b8280016001018555821562000384579182015b828111156200038457825182559160200191906001019062000367565b5062000392929150620003fc565b5090565b828054828255906000526020600020908101928215620003ee579160200282015b82811115620003ee57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003b7565b50620003929291506200041c565b6200041991905b8082111562000392576000815560010162000403565b90565b6200041991905b80821115620003925780546001600160a01b031916815560010162000423565b61216f80620004536000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063d95b63711161007c578063d95b637114610533578063dd62ed3e14610561578063f2fde38b1461058f578063fad8b32a146105b5578063fc673c4f146105db578063fe9d9303146106ae57610158565b80638da5cb5b1461042a5780638f32d59b1461044e578063959b8c3f1461045657806395d89b411461047c5780639bd9bbc614610484578063a9059cbb1461050757610158565b8063313ce56711610115578063313ce567146102ca57806340c10f19146102e8578063556f0dc71461031657806362ad1b831461031e57806370a08231146103fc578063715018a61461042257610158565b806306e485381461015d57806306fdde03146101b5578063095ea7b31461023257806318160ddd1461027257806322f4596f1461028c57806323b872dd14610294575b600080fd5b610165610723565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b6101bd610785565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f75781810151838201526020016101df565b50505050905090810190601f1680156102245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025e6004803603604081101561024857600080fd5b506001600160a01b038135169060200135610812565b604080519115158252519081900360200190f35b61027a61082a565b60408051918252519081900360200190f35b61027a610830565b61025e600480360360608110156102aa57600080fd5b506001600160a01b03813581169160208101359091169060400135610843565b6102d26109a8565b6040805160ff9092168252519081900360200190f35b610314600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001356109ad565b005b61027a610a37565b610314600480360360a081101561033457600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561036e57600080fd5b82018360208201111561038057600080fd5b803590602001918460018302840111600160201b831117156103a157600080fd5b919390929091602081019035600160201b8111156103be57600080fd5b8201836020820111156103d057600080fd5b803590602001918460018302840111600160201b831117156103f157600080fd5b509092509050610a3c565b61027a6004803603602081101561041257600080fd5b50356001600160a01b0316610b04565b610314610b1f565b610432610bc2565b604080516001600160a01b039092168252519081900360200190f35b61025e610bd1565b6103146004803603602081101561046c57600080fd5b50356001600160a01b0316610be2565b6101bd610ce3565b6103146004803603606081101561049a57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111600160201b831117156104fc57600080fd5b509092509050610d44565b61025e6004803603604081101561051d57600080fd5b506001600160a01b038135169060200135610d9e565b61025e6004803603604081101561054957600080fd5b506001600160a01b0381358116916020013516610e70565b61027a6004803603604081101561057757600080fd5b506001600160a01b0381358116916020013516610f12565b610314600480360360208110156105a557600080fd5b50356001600160a01b0316610f3d565b610314600480360360208110156105cb57600080fd5b50356001600160a01b0316610fa2565b610314600480360360808110156105f157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561062057600080fd5b82018360208201111561063257600080fd5b803590602001918460018302840111600160201b8311171561065357600080fd5b919390929091602081019035600160201b81111561067057600080fd5b82018360208201111561068257600080fd5b803590602001918460018302840111600160201b831117156106a357600080fd5b5090925090506110a3565b610314600480360360408110156106c457600080fd5b81359190810190604081016020820135600160201b8111156106e557600080fd5b8201836020820111156106f757600080fd5b803590602001918460018302840111600160201b8311171561071857600080fd5b509092509050611166565b6060600580548060200260200160405190810160405280929190818152602001828054801561077b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161075d575b5050505050905090565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561077b5780601f106107e65761010080835404028352916020019161077b565b820191906000526020600020905b8154815290600101906020018083116107f457509395945050505050565b6000336108208185856111b6565b5060019392505050565b60025490565b6ec097ce7bc90715b34b9f100000000081565b60006001600160a01b03831661088a5760405162461bcd60e51b81526004018080602001828103825260248152602001806120a26024913960400191505060405180910390fd5b6001600160a01b0384166108cf5760405162461bcd60e51b81526004018080602001828103825260268152602001806120f26026913960400191505060405180910390fd5b600033905061090081868686604051806020016040528060008152506040518060200160405280600081525061125d565b61092c818686866040518060200160405280600081525060405180602001604052806000815250611494565b6001600160a01b0380861660009081526009602090815260408083209385168352929052205461096f908690839061096a908763ffffffff61169416565b6111b6565b61099d81868686604051806020016040528060008152506040518060200160405280600081525060006116f1565b506001949350505050565b601290565b806109b6610bd1565b610a07576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610a323384846040518060200160405280600081525060405180602001604052806000815250611981565b505050565b600190565b610a463388610e70565b610a815760405162461bcd60e51b815260040180806020018281038252602c8152602001806120c6602c913960400191505060405180910390fd5b610afb3388888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a915089908190840183828082843760009201919091525060019250611bb9915050565b50505050505050565b6001600160a01b031660009081526001602052604090205490565b610b27610bd1565b610b78576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b600a546001600160a01b031690565b600a546001600160a01b0316331490565b336001600160a01b0382161415610c2a5760405162461bcd60e51b81526004018080602001828103825260248152602001806120106024913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff1615610c7b573360009081526008602090815260408083206001600160a01b03851684529091529020805460ff19169055610caa565b3360009081526007602090815260408083206001600160a01b03851684529091529020805460ff191660011790555b60405133906001600160a01b038316907ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f990600090a350565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561077b5780601f106107e65761010080835404028352916020019161077b565b610d983333868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805160208101909152908152925060019150611bb99050565b50505050565b60006001600160a01b038316610de55760405162461bcd60e51b81526004018080602001828103825260248152602001806120a26024913960400191505060405180910390fd5b6000339050610e1681828686604051806020016040528060008152506040518060200160405280600081525061125d565b610e42818286866040518060200160405280600081525060405180602001604052806000815250611494565b61082081828686604051806020016040528060008152506040518060200160405280600081525060006116f1565b6000816001600160a01b0316836001600160a01b03161480610edb57506001600160a01b03831660009081526006602052604090205460ff168015610edb57506001600160a01b0380831660009081526008602090815260408083209387168352929052205460ff16155b80610f0b57506001600160a01b0380831660009081526007602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610f45610bd1565b610f96576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610f9f81611c84565b50565b6001600160a01b038116331415610fea5760405162461bcd60e51b81526004018080602001828103825260218152602001806120346021913960400191505060405180910390fd5b6001600160a01b03811660009081526006602052604090205460ff161561103e573360009081526008602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561106a565b3360009081526007602090815260408083206001600160a01b03851684529091529020805460ff191690555b60405133906001600160a01b038316907f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa190600090a350565b6110ad3387610e70565b6110e85760405162461bcd60e51b815260040180806020018281038252602c8152602001806120c6602c913960400191505060405180910390fd5b61115e33878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8b018190048102820181019092528981529250899150889081908401838280828437600092019190915250611d2592505050565b505050505050565b610a3233338585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250611d25915050565b6001600160a01b0382166111fb5760405162461bcd60e51b81526004018080602001828103825260238152602001806121186023913960400191505060405180910390fd5b6001600160a01b03808416600081815260096020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600080546040805163555ddc6560e11b81526001600160a01b0389811660048301527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248301529151919092169163aabbb8ca916044808301926020929190829003018186803b1580156112d157600080fd5b505afa1580156112e5573d6000803e3d6000fd5b505050506040513d60208110156112fb57600080fd5b505190506001600160a01b03811615610afb57806001600160a01b03166375ab97828888888888886040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156113c15781810151838201526020016113a9565b50505050905090810190601f1680156113ee5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611421578181015183820152602001611409565b50505050905090810190601f16801561144e5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561147357600080fd5b505af1158015611487573d6000803e3d6000fd5b5050505050505050505050565b6001600160a01b0385166000908152600160205260409020546114bd908463ffffffff61169416565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546114f2908463ffffffff611f4516565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156115a457818101518382015260200161158c565b50505050905090810190601f1680156115d15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156116045781810151838201526020016115ec565b50505050905090810190601f1680156116315780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b6000828211156116eb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080546040805163555ddc6560e11b81526001600160a01b0389811660048301527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248301529151919092169163aabbb8ca916044808301926020929190829003018186803b15801561176557600080fd5b505afa158015611779573d6000803e3d6000fd5b505050506040513d602081101561178f57600080fd5b505190506001600160a01b0381161561192357806001600160a01b03166223de298989898989896040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b031681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561185457818101518382015260200161183c565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156118b457818101518382015260200161189c565b50505050905090810190601f1680156118e15780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561190657600080fd5b505af115801561191a573d6000803e3d6000fd5b50505050611977565b81156119775761193b866001600160a01b0316611f9f565b156119775760405162461bcd60e51b815260040180806020018281038252604d815260200180612055604d913960600191505060405180910390fd5b5050505050505050565b6001600160a01b0384166119dc576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b6002546119ef908463ffffffff611f4516565b6002556001600160a01b038416600090815260016020526040902054611a1b908463ffffffff611f4516565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550611a558560008686868660016116f1565b836001600160a01b0316856001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ad4578181015183820152602001611abc565b50505050905090810190601f168015611b015780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611b34578181015183820152602001611b1c565b50505050905090810190601f168015611b615780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516001600160a01b038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b6001600160a01b038616611bfe5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fa66022913960400191505060405180910390fd5b6001600160a01b038516611c59576040805162461bcd60e51b815260206004820181905260248201527f4552433737373a2073656e6420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611c6787878787878761125d565b611c75878787878787611494565b610afb878787878787876116f1565b6001600160a01b038116611cc95760405162461bcd60e51b8152600401808060200182810382526026815260200180611fc86026913960400191505060405180910390fd5b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038416611d6a5760405162461bcd60e51b8152600401808060200182810382526022815260200180611fee6022913960400191505060405180910390fd5b611d798585600086868661125d565b600254611d8c908463ffffffff61169416565b6002556001600160a01b038416600090815260016020526040902054611db8908463ffffffff61169416565b60016000866001600160a01b03166001600160a01b0316815260200190815260200160002081905550836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015611e60578181015183820152602001611e48565b50505050905090810190601f168015611e8d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611ec0578181015183820152602001611ea8565b50505050905090810190601f168015611eed5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a36040805184815290516000916001600160a01b038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050505050565b600082820183811015610f0b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3b15159056fe4552433737373a2073656e642066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f724552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e744552433737373a207472616e7366657220746f20746865207a65726f20616464726573734552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a20617070726f766520746f20746865207a65726f2061646472657373a265627a7a723158203247d2a15cbc6a2c2b7d26684012777722a84cc94bace7893c645ceb14c87aac64736f6c634300050c0032