0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b411461021f5780639a87e78c14610227578063a9059cbb1461023a578063dd62ed3e1461024d578063f2fde38b1461028657600080fd5b806370a08231146101c8578063715018a6146101f15780638da5cb5b146101fb5780638fd8ca9f1461020c57600080fd5b806323b872dd116100de57806323b872dd1461018e578063313ce567146101a157806349bd5a5e146101ac5780635516aebf146101bf57600080fd5b806306fdde0314610110578063095ea7b31461012e5780631694505e1461015157806318160ddd1461017c575b600080fd5b610118610299565b604051610125919061095b565b60405180910390f35b61014161013c366004610931565b61032b565b6040519015158152602001610125565b600b54610164906001600160a01b031681565b6040516001600160a01b039091168152602001610125565b6008545b604051908152602001610125565b61014161019c3660046108b9565b610342565b60075460ff16610180565b600a54610164906001600160a01b031681565b61018060095481565b6101806101d636600461086b565b6001600160a01b031660009081526002602052604090205490565b6101f961038b565b005b6000546001600160a01b0316610164565b6101f961021a3660046108f5565b61040e565b61011861043c565b6101f9610235366004610931565b61044b565b610141610248366004610931565b610479565b61018061025b366004610886565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101f961029436600461086b565b610486565b6060600580546102a890610a55565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490610a55565b80156103215780601f106102f657610100808354040283529160200191610321565b820191906000526020600020905b81548152906001019060200180831161030457829003601f168201915b5050505050905090565b6000610338338484610570565b5060015b92915050565b600061034f8484846105f7565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561038057600080fd5b506001949350505050565b6000546001600160a01b031633146103be5760405162461bcd60e51b81526004016103b5906109b0565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146104385760405162461bcd60e51b81526004016103b5906109b0565b5050565b6060600680546102a890610a55565b3360009081526004602052604090205460ff1661046757600080fd5b60009182526002602052604090912055565b60006103383384846105f7565b6000546001600160a01b031633146104b05760405162461bcd60e51b81526004016103b5906109b0565b6001600160a01b0381166105155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103b5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661058357600080fd5b6001600160a01b03821661059657600080fd5b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661060a57600080fd5b6001600160a01b03821661061d57600080fd5b6000811161062a57600080fd5b6001600160a01b03831660009081526002602052604081208054839290610652908490610a3e565b90915550506001600160a01b03831660009081526004602052604081205460ff1615801561069957506001600160a01b03831660009081526004602052604090205460ff16155b156106c1576106be60646106b86009548561075590919063ffffffff16565b906107db565b90505b60006106cd8284610a3e565b6001600160a01b0385166000908152600260205260408120805492935083929091906106fa9084906109e5565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074691815260200190565b60405180910390a35050505050565b6000826107645750600061033c565b60006107708385610a1f565b90508261077d85836109fd565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b5565b9392505050565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836108395760405162461bcd60e51b81526004016103b5919061095b565b50600061084684866109fd565b95945050505050565b80356001600160a01b038116811461086657600080fd5b919050565b60006020828403121561087d57600080fd5b6107d48261084f565b6000806040838503121561089957600080fd5b6108a28361084f565b91506108b06020840161084f565b90509250929050565b6000806000606084860312156108ce57600080fd5b6108d78461084f565b92506108e56020850161084f565b9150604084013590509250925092565b6000806040838503121561090857600080fd5b6109118361084f565b91506020830135801515811461092657600080fd5b809150509250929050565b6000806040838503121561094457600080fd5b61094d8361084f565b946020939093013593505050565b600060208083528351808285015260005b818110156109885785810183015185820160400152820161096c565b8181111561099a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109f8576109f8610a90565b500190565b600082610a1a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610a3957610a39610a90565b500290565b600082821015610a5057610a50610a90565b500390565b600181811c90821680610a6957607f821691505b60208210811415610a8a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209eef951d317ee3cc4863ff43341c271a01593e1a231309d08fa8fed71baf89f264736f6c63430008070033
0x60c0604052600e60808190526d6465666c6174696f6e206c61627360901b60a090815262000031916005919062000362565b506040805180820190915260048082526364656c6160e01b60209092019182526200005f9160069162000362565b506007805460ff191660129081179091556200007d90600a62000483565b6200008c90620493e062000544565b6008556003600955348015620000a157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008543360009081526002602090815260409182902092909255600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909263c45a01559260048082019391829003018186803b1580156200015857600080fd5b505afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000193919062000408565b6001600160a01b031663c9c65396600b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f057600080fd5b505afa15801562000205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022b919062000408565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200027357600080fd5b505af115801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae919062000408565b600a80546001600160a01b0319166001600160a01b0392831617905560008054909116815260046020526040808220805460ff199081166001908117909255308452828420805482168317905533808552929093208054909316179091556001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200035491815260200190565b60405180910390a3620005b9565b828054620003709062000566565b90600052602060002090601f016020900481019282620003945760008555620003df565b82601f10620003af57805160ff1916838001178555620003df565b82800160010185558215620003df579182015b82811115620003df578251825591602001919060010190620003c2565b50620003ed929150620003f1565b5090565b5b80821115620003ed5760008155600101620003f2565b6000602082840312156200041b57600080fd5b81516001600160a01b03811681146200043357600080fd5b9392505050565b600181815b808511156200047b5781600019048211156200045f576200045f620005a3565b808516156200046d57918102915b93841c93908002906200043f565b509250929050565b60006200043360ff8416836000826200049f575060016200053e565b81620004ae575060006200053e565b8160018114620004c75760028114620004d257620004f2565b60019150506200053e565b60ff841115620004e657620004e6620005a3565b50506001821b6200053e565b5060208310610133831016604e8410600b841016171562000517575081810a6200053e565b6200052383836200043a565b80600019048211156200053a576200053a620005a3565b0290505b92915050565b6000816000190483118215151615620005615762000561620005a3565b500290565b600181811c908216806200057b57607f821691505b602082108114156200059d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610adc80620005c96000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b411461021f5780639a87e78c14610227578063a9059cbb1461023a578063dd62ed3e1461024d578063f2fde38b1461028657600080fd5b806370a08231146101c8578063715018a6146101f15780638da5cb5b146101fb5780638fd8ca9f1461020c57600080fd5b806323b872dd116100de57806323b872dd1461018e578063313ce567146101a157806349bd5a5e146101ac5780635516aebf146101bf57600080fd5b806306fdde0314610110578063095ea7b31461012e5780631694505e1461015157806318160ddd1461017c575b600080fd5b610118610299565b604051610125919061095b565b60405180910390f35b61014161013c366004610931565b61032b565b6040519015158152602001610125565b600b54610164906001600160a01b031681565b6040516001600160a01b039091168152602001610125565b6008545b604051908152602001610125565b61014161019c3660046108b9565b610342565b60075460ff16610180565b600a54610164906001600160a01b031681565b61018060095481565b6101806101d636600461086b565b6001600160a01b031660009081526002602052604090205490565b6101f961038b565b005b6000546001600160a01b0316610164565b6101f961021a3660046108f5565b61040e565b61011861043c565b6101f9610235366004610931565b61044b565b610141610248366004610931565b610479565b61018061025b366004610886565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101f961029436600461086b565b610486565b6060600580546102a890610a55565b80601f01602080910402602001604051908101604052809291908181526020018280546102d490610a55565b80156103215780601f106102f657610100808354040283529160200191610321565b820191906000526020600020905b81548152906001019060200180831161030457829003601f168201915b5050505050905090565b6000610338338484610570565b5060015b92915050565b600061034f8484846105f7565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561038057600080fd5b506001949350505050565b6000546001600160a01b031633146103be5760405162461bcd60e51b81526004016103b5906109b0565b60405180910390fd5b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146104385760405162461bcd60e51b81526004016103b5906109b0565b5050565b6060600680546102a890610a55565b3360009081526004602052604090205460ff1661046757600080fd5b60009182526002602052604090912055565b60006103383384846105f7565b6000546001600160a01b031633146104b05760405162461bcd60e51b81526004016103b5906109b0565b6001600160a01b0381166105155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103b5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661058357600080fd5b6001600160a01b03821661059657600080fd5b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661060a57600080fd5b6001600160a01b03821661061d57600080fd5b6000811161062a57600080fd5b6001600160a01b03831660009081526002602052604081208054839290610652908490610a3e565b90915550506001600160a01b03831660009081526004602052604081205460ff1615801561069957506001600160a01b03831660009081526004602052604090205460ff16155b156106c1576106be60646106b86009548561075590919063ffffffff16565b906107db565b90505b60006106cd8284610a3e565b6001600160a01b0385166000908152600260205260408120805492935083929091906106fa9084906109e5565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074691815260200190565b60405180910390a35050505050565b6000826107645750600061033c565b60006107708385610a1f565b90508261077d85836109fd565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103b5565b9392505050565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836108395760405162461bcd60e51b81526004016103b5919061095b565b50600061084684866109fd565b95945050505050565b80356001600160a01b038116811461086657600080fd5b919050565b60006020828403121561087d57600080fd5b6107d48261084f565b6000806040838503121561089957600080fd5b6108a28361084f565b91506108b06020840161084f565b90509250929050565b6000806000606084860312156108ce57600080fd5b6108d78461084f565b92506108e56020850161084f565b9150604084013590509250925092565b6000806040838503121561090857600080fd5b6109118361084f565b91506020830135801515811461092657600080fd5b809150509250929050565b6000806040838503121561094457600080fd5b61094d8361084f565b946020939093013593505050565b600060208083528351808285015260005b818110156109885785810183015185820160400152820161096c565b8181111561099a576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109f8576109f8610a90565b500190565b600082610a1a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610a3957610a39610a90565b500290565b600082821015610a5057610a50610a90565b500390565b600181811c90821680610a6957607f821691505b60208210811415610a8a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209eef951d317ee3cc4863ff43341c271a01593e1a231309d08fa8fed71baf89f264736f6c634300080700330000000000000000000000000000000000000000000000000000000000b71b000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000666737267676e0000000000000000000000000000000000000000000000000000