60806040526005805463ffffffff60a81b1916600560a91b1763ffffffff60c81b1916600560ca1b1790553480156200003757600080fd5b5060405162001c7038038062001c70833981810160405260208110156200005d57600080fd5b5051604080518082018252600e81526d2234bb34b232b732102a37b5b2b760911b602082810191825283518085019094526003808552622224ab60e91b918501919091528251929392620000b29290620002d1565b508051620000c8906004906020840190620002d1565b50506005805460ff19166012179055506000620000e462000157565b60058054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000150816969e10de76676d08000006200015b565b506200037d565b3390565b6001600160a01b038216620001b7576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620001c5600083836200026a565b620001e1816002546200026f60201b62000f691790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200021491839062000f696200026f821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b505050565b600082820183811015620002ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000309576000855562000354565b82601f106200032457805160ff191683800117855562000354565b8280016001018555821562000354579182015b828111156200035457825182559160200191906001019062000337565b506200036292915062000366565b5090565b5b8082111562000362576000815560010162000367565b6118e3806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806367243482116100de57806395d89b4111610097578063a9059cbb11610071578063a9059cbb14610561578063d8a0c9271461058d578063dd62ed3e146105b0578063f2fde38b146105de57610173565b806395d89b41146104ff578063a457c2d714610507578063a7ccd63e1461053357610173565b8063672434821461039757806370a0823114610459578063715018a61461047f5780637314c378146104875780638c4bc81b146104b55780638da5cb5b146104db57610173565b806318160ddd1161013057806318160ddd146102d257806323b872dd146102ec578063313ce5671461032257806339509351146103405780635257b5661461036c5780635f1c06171461037457610173565b8063034268591461017857806306fdde03146101a8578063095ea7b3146102255780630d8aee87146102655780630e26bb1c1461028b57806314455d1b146102b1575b600080fd5b6101a66004803603604081101561018e57600080fd5b506001600160a01b0381351690602001351515610604565b005b6101b06106c2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ea5781810151838201526020016101d2565b50505050905090810190601f1680156102175780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102516004803603604081101561023b57600080fd5b506001600160a01b038135169060200135610758565b604080519115158252519081900360200190f35b6102516004803603602081101561027b57600080fd5b50356001600160a01b0316610776565b610251600480360360208110156102a157600080fd5b50356001600160a01b0316610794565b6102b96107b2565b6040805163ffffffff9092168252519081900360200190f35b6102da6107c5565b60408051918252519081900360200190f35b6102516004803603606081101561030257600080fd5b506001600160a01b038135811691602081013590911690604001356107cb565b61032a610852565b6040805160ff9092168252519081900360200190f35b6102516004803603604081101561035657600080fd5b506001600160a01b03813516906020013561085b565b6102b96108a9565b6101a66004803603602081101561038a57600080fd5b503563ffffffff166108bc565b6102da600480360360408110156103ad57600080fd5b8101906020810181356401000000008111156103c857600080fd5b8201836020820111156103da57600080fd5b803590602001918460208302840111640100000000831117156103fc57600080fd5b91939092909160208101903564010000000081111561041a57600080fd5b82018360208201111561042c57600080fd5b8035906020019184602083028401116401000000008311171561044e57600080fd5b509092509050610973565b6102da6004803603602081101561046f57600080fd5b50356001600160a01b0316610a2d565b6101a6610a48565b6101a66004803603604081101561049d57600080fd5b506001600160a01b0381351690602001351515610af5565b610251600480360360208110156104cb57600080fd5b50356001600160a01b0316610bb2565b6104e3610bd0565b604080516001600160a01b039092168252519081900360200190f35b6101b0610be4565b6102516004803603604081101561051d57600080fd5b506001600160a01b038135169060200135610c45565b6101a66004803603604081101561054957600080fd5b506001600160a01b0381351690602001351515610cad565b6102516004803603604081101561057757600080fd5b506001600160a01b038135169060200135610d6a565b6101a6600480360360208110156105a357600080fd5b503563ffffffff16610d7e565b6102da600480360360408110156105c657600080fd5b506001600160a01b0381358116916020013516610e35565b6101a6600480360360208110156105f457600080fd5b50356001600160a01b0316610e60565b8015610668576001600160a01b038216600081815260086020908152604091829020805460ff1916851515179055815192835290517fe013160af17979448b815e4acc72ceb45f5e78d682bdf7bdbba6206f1fb49ca49281900390910190a16106be565b6001600160a01b038216600081815260086020908152604091829020805460ff19169055815192835290517f9994b8a37dd3d7cbffc0414fcff5a1429bb953ba529427c5bbc4d59886caef559281900390910190a15b5050565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561074e5780601f106107235761010080835404028352916020019161074e565b820191906000526020600020905b81548152906001019060200180831161073157829003601f168201915b5050505050905090565b600061076c610765610fca565b8484610fce565b5060015b92915050565b6001600160a01b031660009081526008602052604090205460ff1690565b6001600160a01b031660009081526006602052604090205460ff1690565b600554600160a81b900463ffffffff1690565b60025490565b60006107d88484846110ba565b610848846107e4610fca565b610843856040518060600160405280602881526020016117d7602891396001600160a01b038a16600090815260016020526040812090610822610fca565b6001600160a01b0316815260208101919091526040016000205491906111e2565b610fce565b5060019392505050565b60055460ff1690565b600061076c610868610fca565b846108438560016000610879610fca565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610f69565b600554600160c81b900463ffffffff1690565b6108c4610fca565b60055461010090046001600160a01b03908116911614610919576040805162461bcd60e51b815260206004820181905260248201526000805160206117ff833981519152604482015290519081900360640190fd5b6005805463ffffffff8316600160a81b810263ffffffff60a81b199092169190911790915560408051918252517f2194450113e53fefa8ab181b7220ce5d667ee3b89d2f5540ead8fe0bb42cffe09181900360200190a150565b600061097d610fca565b60055461010090046001600160a01b039081169116146109d2576040805162461bcd60e51b815260206004820181905260248201526000805160206117ff833981519152604482015290519081900360640190fd5b60005b84811015610a2457610a1c6109e8610fca565b8787848181106109f457fe5b905060200201356001600160a01b0316868685818110610a1057fe5b90506020020135611279565b6001016109d5565b95945050505050565b6001600160a01b031660009081526020819052604090205490565b610a50610fca565b60055461010090046001600160a01b03908116911614610aa5576040805162461bcd60e51b815260206004820181905260248201526000805160206117ff833981519152604482015290519081900360640190fd5b60055460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360058054610100600160a81b0319169055565b8015610b59576001600160a01b038216600081815260066020908152604091829020805460ff1916851515179055815192835290517fec6cd45d8ef108208595c2fa365fe9abf046277b04935c715b420cf4a33392d49281900390910190a16106be565b6001600160a01b038216600081815260066020908152604091829020805460ff19169055815192835290517f5ddff49bd99e5ea6a1a9e35541cf0f4c889b43355cfdf4c58a8bf7893403c91b9281900390910190a15050565b6001600160a01b031660009081526007602052604090205460ff1690565b60055461010090046001600160a01b031690565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561074e5780601f106107235761010080835404028352916020019161074e565b600061076c610c52610fca565b84610843856040518060600160405280602581526020016118896025913960016000610c7c610fca565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906111e2565b8015610d11576001600160a01b038216600081815260076020908152604091829020805460ff1916851515179055815192835290517f0c2e9c1d40195e4740939021c7a878c88250d1269e5739816bfafcb5f38bec719281900390910190a16106be565b6001600160a01b038216600081815260076020908152604091829020805460ff19169055815192835290517f9c9d2c07c986f6efd2808d4b01ffe6737f7864de5371f48a4a394b5c2ba3fc1a9281900390910190a15050565b600061076c610d77610fca565b84846110ba565b610d86610fca565b60055461010090046001600160a01b03908116911614610ddb576040805162461bcd60e51b815260206004820181905260248201526000805160206117ff833981519152604482015290519081900360640190fd5b6005805463ffffffff8316600160c81b810263ffffffff60c81b199092169190911790915560408051918252517f97daa7c561eb2339af62e82142fcf66cd612417e3e6a2b39df7689c1571963c79181900360200190a150565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610e68610fca565b60055461010090046001600160a01b03908116911614610ebd576040805162461bcd60e51b815260206004820181905260248201526000805160206117ff833981519152604482015290519081900360640190fd5b6001600160a01b038116610f025760405162461bcd60e51b81526004018080602001828103825260268152602001806117486026913960400191505060405180910390fd5b6005546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082820183811015610fc3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b0383166110135760405162461bcd60e51b81526004018080602001828103825260248152602001806118656024913960400191505060405180910390fd5b6001600160a01b0382166110585760405162461bcd60e51b815260040180806020018281038252602281526020018061176e6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831660009081526008602052604090205460ff1680156110f05750600554600160c81b900463ffffffff1615155b1561112d5760055461112d908390611128906103e89061112290869063ffffffff600160c81b9091048116906113d416565b9061142d565b61146f565b6001600160a01b03821660009081526006602052604090205460ff1615801561116f57506001600160a01b03831660009081526007602052604090205460ff16155b80156111895750600554600160a81b900463ffffffff1615155b156111d2576005546000906111b8906103e89061112290859063ffffffff600160a81b9091048116906113d416565b90506111c4848261155f565b6111ce828261165b565b9150505b6111dd838383611279565b505050565b600081848411156112715760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561123657818101518382015260200161121e565b50505050905090810190601f1680156112635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166112be5760405162461bcd60e51b81526004018080602001828103825260258152602001806118406025913960400191505060405180910390fd5b6001600160a01b0382166113035760405162461bcd60e51b81526004018080602001828103825260238152602001806117036023913960400191505060405180910390fd5b61130e8383836111dd565b61134b81604051806060016040528060268152602001611790602691396001600160a01b03861660009081526020819052604090205491906111e2565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461137a9082610f69565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000826113e357506000610770565b828202828482816113f057fe5b0414610fc35760405162461bcd60e51b81526004018080602001828103825260218152602001806117b66021913960400191505060405180910390fd5b6000610fc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061169d565b6001600160a01b0382166114ca576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6114d6600083836111dd565b6002546114e39082610f69565b6002556001600160a01b0382166000908152602081905260409020546115099082610f69565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b0382166115a45760405162461bcd60e51b815260040180806020018281038252602181526020018061181f6021913960400191505060405180910390fd5b6115b0826000836111dd565b6115ed81604051806060016040528060228152602001611726602291396001600160a01b03851660009081526020819052604090205491906111e2565b6001600160a01b038316600090815260208190526040902055600254611613908261165b565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e2565b600081836116ec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561123657818101518382015260200161121e565b5060008385816116f857fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209771b854deb1d8eda1d3e70c4d8e310b4f29fd0748a1489d4dc5c3476b8ea91464736f6c6343000704003300000000000000000000000038f614ddd1b2127619be43fa6f596704c688459e