60806040526200003c60646200003560016200001e6009600a6200040d565b6200002e90633b9aca006200041d565b90620001ea565b906200027d565b6007553480156200004b575f80fd5b50604051620013a5380380620013a58339810160408190526200006e916200044d565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000bc6009600a6200040d565b620000cc90633b9aca006200041d565b335f81815260016020526040902091909155600480546001600160a01b0319169091179055620000ff6009600a6200040d565b6200010b90846200041d565b6006556005805460ff838116600160b81b0260ff60b81b19918616600160b01b029190911661ffff60b01b1990921691909117179055600160035f620001585f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055620001873390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001c06009600a6200040d565b620001d090633b9aca006200041d565b60405190815260200160405180910390a3505050620004f8565b5f825f03620001fb57505f62000277565b5f6200020883856200041d565b9050826200021785836200048b565b14620002745760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200027483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002c660201b60201c565b5f8183620002e95760405162461bcd60e51b81526004016200026b9190620004ab565b505f620002f784866200048b565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200035457815f190482111562000338576200033862000300565b808516156200034657918102915b93841c939080029062000319565b509250929050565b5f826200036c5750600162000277565b816200037a57505f62000277565b81600181146200039357600281146200039e57620003be565b600191505062000277565b60ff841115620003b257620003b262000300565b50506001821b62000277565b5060208310610133831016604e8410600b8410161715620003e3575081810a62000277565b620003ef838362000314565b805f190482111562000405576200040562000300565b029392505050565b5f6200027460ff8416836200035c565b808202811582820484141762000277576200027762000300565b805160ff8116811462000448575f80fd5b919050565b5f805f6060848603121562000460575f80fd5b83519250620004726020850162000437565b9150620004826040850162000437565b90509250925092565b5f82620004a657634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b81811015620004d857858101830151858201604001528201620004ba565b505f604082860101526040601f19601f8301168501019250505092915050565b610e9f80620005065f395ff3fe6080604052600436106100a8575f3560e01c806370a082311161006257806370a08231146101a2578063715018a6146101d65780638da5cb5b146101ea57806395d89b4114610210578063a9059cbb1461023e578063dd62ed3e1461025d575f80fd5b806306fdde03146100b3578063095ea7b3146100f657806318160ddd1461012557806323b872dd14610147578063313ce56714610166578063502aafc114610181575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b50604080518082019091526009815268416b69726120496e7560b81b60208201525b6040516100ed9190610b7b565b60405180910390f35b348015610101575f80fd5b50610115610110366004610be1565b6102a1565b60405190151581526020016100ed565b348015610130575f80fd5b506101396102b7565b6040519081526020016100ed565b348015610152575f80fd5b50610115610161366004610c09565b6102d7565b348015610171575f80fd5b50604051600981526020016100ed565b34801561018c575f80fd5b506101a061019b366004610c42565b61033e565b005b3480156101ad575f80fd5b506101396101bc366004610c7b565b6001600160a01b03165f9081526001602052604090205490565b3480156101e1575f80fd5b506101a06103c9565b3480156101f5575f80fd5b505f546040516001600160a01b0390911681526020016100ed565b34801561021b575f80fd5b5060408051808201909152600681526524414b49524160d01b60208201526100e0565b348015610249575f80fd5b50610115610258366004610be1565b61046a565b348015610268575f80fd5b50610139610277366004610c94565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6102ad338484610476565b5060015b92915050565b5f6102c46009600a610db9565b6102d290633b9aca00610dc7565b905090565b5f6102e384848461059a565b610334843361032f85604051806060016040528060288152602001610e42602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610861565b610476565b5060019392505050565b5f546001600160a01b0316331461039c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60058054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b5f546001600160a01b031633146104225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610393565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102ad33848461059a565b6001600160a01b0383166104d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610393565b6001600160a01b0382166105395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610393565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906105ba57506001600160a01b03821615155b80156105c557505f81115b6106115760405162461bcd60e51b815260206004820152601c60248201527f5a65726f2061646472657373206f72207a65726f20616d6f756e742e000000006044820152606401610393565b5f546001600160a01b0384811691161480159061063b57505f546001600160a01b03838116911614155b1561069957600554600160a01b900460ff166106995760405162461bcd60e51b815260206004820152601860248201527f53776170206973206e6f7420656e61626c6564207965742e00000000000000006044820152606401610393565b5f806106a58585610899565b90508015610762576005546001600160a01b03908116908516036107115761070a60646107046001600560159054906101000a900460ff1660ff1610156106ec575f6106fa565b600554600160b81b900460ff165b869060ff166108e0565b9061095e565b9150610751565b61074e60646107046001600560159054906101000a900460ff1660ff16101561073a575f6106fa565b6005548690600160b01b900460ff166108e0565b91505b61075b838361099f565b9250610808565b5f546001600160a01b0385811691161480159061078c57506005546001600160a01b038681169116145b80156107af57506001600160a01b0384165f9081526003602052604090205460ff165b80156107c857506005546001600160a81b90910460ff16105b156108085760065460058054919350600160a81b90910460ff169060156107ee83610dde565b91906101000a81548160ff021916908360ff160217905550505b811561083757305f9081526001602052604090205461082790836109e0565b305f908152600160205260409020555b305f9081526001602052604090205461084f90610a3e565b61085a858585610aac565b5050505050565b5f81848411156108845760405162461bcd60e51b81526004016103939190610b7b565b505f6108908486610dfc565b95945050505050565b6001600160a01b0382165f9081526003602052604081205460ff161580156108d957506001600160a01b0382165f9081526003602052604090205460ff16155b9392505050565b5f825f036108ef57505f6102b1565b5f6108fa8385610dc7565b9050826109078583610e0f565b146108d95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610393565b5f6108d983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b4f565b5f6108d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610861565b5f806109ec8385610e2e565b9050838110156108d95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610393565b600754811115610aa957305f90815260016020526040902054610a61908261099f565b305f90815260016020526040808220929092556004546001600160a01b031681522054610a8e90826109e0565b6004546001600160a01b03165f908152600160205260409020555b50565b6001600160a01b0383165f90815260016020526040902054610ace908261099f565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610afc90826109e0565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061058d9085815260200190565b5f8183610b6f5760405162461bcd60e51b81526004016103939190610b7b565b505f6108908486610e0f565b5f6020808352835180828501525f5b81811015610ba657858101830151858201604001528201610b8a565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610bdc575f80fd5b919050565b5f8060408385031215610bf2575f80fd5b610bfb83610bc6565b946020939093013593505050565b5f805f60608486031215610c1b575f80fd5b610c2484610bc6565b9250610c3260208501610bc6565b9150604084013590509250925092565b5f8060408385031215610c53575f80fd5b610c5c83610bc6565b915060208301358015158114610c70575f80fd5b809150509250929050565b5f60208284031215610c8b575f80fd5b6108d982610bc6565b5f8060408385031215610ca5575f80fd5b610cae83610bc6565b9150610cbc60208401610bc6565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610d1357815f1904821115610cf957610cf9610cc5565b80851615610d0657918102915b93841c9390800290610cde565b509250929050565b5f82610d29575060016102b1565b81610d3557505f6102b1565b8160018114610d4b5760028114610d5557610d71565b60019150506102b1565b60ff841115610d6657610d66610cc5565b50506001821b6102b1565b5060208310610133831016604e8410600b8410161715610d94575081810a6102b1565b610d9e8383610cd9565b805f1904821115610db157610db1610cc5565b029392505050565b5f6108d960ff841683610d1b565b80820281158282048414176102b1576102b1610cc5565b5f60ff821660ff8103610df357610df3610cc5565b60010192915050565b818103818111156102b1576102b1610cc5565b5f82610e2957634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156102b1576102b1610cc556fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a162dd8e38b18de3d3ad09bf8970442c74575598628278122cbbe7e36d305f1f64736f6c634300081400330000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064