60806040526006805460ff60a01b1916600160a01b1790555f60085560fa60095562000029601290565b6200003690600a62000676565b6200004890655af3107a40006200068d565b600a5560126200005a90600a62000676565b6200006a906302faf0806200068d565b600b55600c80546001600160a81b031916905560405162001b58388190039081908339810160408190526200009f9162000781565b3382826003620000b0838262000884565b506004620000bf828262000884565b5050506001600160a01b038116620000f157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b620000fc81620002fa565b50600c80546001600160a01b0319166001600160a01b038516179055600a546200012a905f9033906200034b565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620001629033905f196200047a565b60065f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d991906200094c565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000239573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025f91906200094c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d091906200094c565b600780546001600160a01b0319166001600160a01b0392909216919091179055506200097e915050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b03831662000379578060025f8282546200036d919062000968565b90915550620003eb9050565b6001600160a01b0383165f9081526020819052604090205481811015620003cd5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000e8565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216620004095760028054829003905562000427565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200046d91815260200190565b60405180910390a3505050565b6200048983838360016200048e565b505050565b6001600160a01b038416620004b95760405163e602df0560e01b81525f6004820152602401620000e8565b6001600160a01b038316620004e457604051634a1406b160e11b81525f6004820152602401620000e8565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156200056157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516200055891815260200190565b60405180910390a35b50505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005bb57815f19048211156200059f576200059f62000567565b80851615620005ad57918102915b93841c939080029062000580565b509250929050565b5f82620005d35750600162000670565b81620005e157505f62000670565b8160018114620005fa5760028114620006055762000625565b600191505062000670565b60ff84111562000619576200061962000567565b50506001821b62000670565b5060208310610133831016604e8410600b84101617156200064a575081810a62000670565b6200065683836200057b565b805f19048211156200066c576200066c62000567565b0290505b92915050565b5f6200068660ff841683620005c3565b9392505050565b808202811582820484141762000670576200067062000567565b80516001600160a01b0381168114620006be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112620006e7575f80fd5b81516001600160401b0380821115620007045762000704620006c3565b604051601f8301601f19908116603f011681019082821181831017156200072f576200072f620006c3565b816040528381526020925086838588010111156200074b575f80fd5b5f91505b838210156200076e57858201830151818301840152908201906200074f565b5f93810190920192909252949350505050565b5f805f6060848603121562000794575f80fd5b6200079f84620006a7565b60208501519093506001600160401b0380821115620007bc575f80fd5b620007ca87838801620006d7565b93506040860151915080821115620007e0575f80fd5b50620007ef86828701620006d7565b9150509250925092565b600181811c908216806200080e57607f821691505b6020821081036200082d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000489575f81815260208120601f850160051c810160208610156200085b5750805b601f850160051c820191505b818110156200087c5782815560010162000867565b505050505050565b81516001600160401b03811115620008a057620008a0620006c3565b620008b881620008b18454620007f9565b8462000833565b602080601f831160018114620008ee575f8415620008d65750858301515b5f19600386901b1c1916600185901b1785556200087c565b5f85815260208120601f198616915b828110156200091e57888601518255948401946001909101908401620008fd565b50858210156200093c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200095d575f80fd5b6200068682620006a7565b8082018082111562000670576200067062000567565b6111cc806200098c5f395ff3fe608060405260043610610164575f3560e01c806370a08231116100cd578063a9059cbb11610087578063e18ed57b11610062578063e18ed57b14610419578063f2fde38b14610438578063f53bc83514610457578063ffb54a9914610476575f80fd5b8063a9059cbb146103a2578063c9567bf9146103c1578063dd62ed3e146103d5575f80fd5b806370a08231146102f557806370db69d614610329578063715018a61461033e5780638873b15f146103525780638da5cb5b1461037157806395d89b411461038e575f80fd5b806349bd5a5e1161011e57806349bd5a5e146102415780634dacf3f5146102785780634f7041a5146102985780635bc26e28146102ad57806360eb5972146102cc57806362f837ef146102e0575f80fd5b806304db6e681461016f57806306fdde0314610190578063095ea7b3146101ba57806318160ddd146101e957806323b872dd14610207578063313ce56714610226575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018e610189366004610ed3565b610496565b005b34801561019b575f80fd5b506101a46104c0565b6040516101b19190610eec565b60405180910390f35b3480156101c5575f80fd5b506101d96101d4366004610f37565b610550565b60405190151581526020016101b1565b3480156101f4575f80fd5b506002545b6040519081526020016101b1565b348015610212575f80fd5b506101d9610221366004610f5f565b610569565b348015610231575f80fd5b50604051601281526020016101b1565b34801561024c575f80fd5b50600754610260906001600160a01b031681565b6040516001600160a01b0390911681526020016101b1565b348015610283575f80fd5b506006546101d990600160a01b900460ff1681565b3480156102a3575f80fd5b506101f960085481565b3480156102b8575f80fd5b5061018e6102c7366004610f98565b61058c565b3480156102d7575f80fd5b5061018e61059f565b3480156102eb575f80fd5b506101f960095481565b348015610300575f80fd5b506101f961030f366004610ed3565b6001600160a01b03165f9081526020819052604090205490565b348015610334575f80fd5b506101f9600b5481565b348015610349575f80fd5b5061018e6105c8565b34801561035d575f80fd5b5061018e61036c366004610ed3565b6105db565b34801561037c575f80fd5b506005546001600160a01b0316610260565b348015610399575f80fd5b506101a4610605565b3480156103ad575f80fd5b506101d96103bc366004610f37565b610614565b3480156103cc575f80fd5b5061018e610621565b3480156103e0575f80fd5b506101f96103ef366004610fb8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610424575f80fd5b506101f9610433366004610fe9565b61063e565b348015610443575f80fd5b5061018e610452366004610ed3565b610679565b348015610462575f80fd5b5061018e610471366004610fe9565b6106bb565b348015610481575f80fd5b50600c546101d990600160a01b900460ff1681565b61049e6106df565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6060600380546104cf90611000565b80601f01602080910402602001604051908101604052809291908181526020018280546104fb90611000565b80156105465780601f1061051d57610100808354040283529160200191610546565b820191905f5260205f20905b81548152906001019060200180831161052957829003601f168201915b5050505050905090565b5f3361055d81858561070c565b60019150505b92915050565b5f3361057685828561071e565b610581858585610799565b506001949350505050565b6105946106df565b600891909155600955565b6105a76106df565b6006805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6105d06106df565b6105d95f6107f6565b565b6105e36106df565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546104cf90611000565b5f3361055d818585610799565b6106296106df565b600c805460ff60a01b1916600160a01b179055565b5f805f90505f6106656103e861065f6008548761084790919063ffffffff16565b906108cc565b9050610671818361104c565b949350505050565b6106816106df565b6001600160a01b0381166106af57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6106b8816107f6565b50565b6106c36106df565b6106cf6012600a61113f565b6106d9908261114d565b600b5550565b6005546001600160a01b031633146105d95760405163118cdaa760e01b81523360048201526024016106a6565b610719838383600161090d565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610793578181101561078557604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016106a6565b61079384848484035f61090d565b50505050565b6001600160a01b0383166107c257604051634b637e8f60e11b81525f60048201526024016106a6565b6001600160a01b0382166107eb5760405163ec442f0560e01b81525f60048201526024016106a6565b6107198383836109df565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f825f0361085657505f610563565b5f610861838561114d565b90508261086e8583611164565b146108c55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106a6565b9392505050565b5f6108c583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610cff565b6001600160a01b0384166109365760405163e602df0560e01b81525f60048201526024016106a6565b6001600160a01b03831661095f57604051634a1406b160e11b81525f60048201526024016106a6565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561079357826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109d191815260200190565b60405180910390a350505050565b6001600160a01b038316610a435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a6565b6001600160a01b038216610aa55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a6565b5f8111610b065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a6565b6007545f906001600160a01b038581169116148015610b3357506006546001600160a01b03848116911614155b15610c3557600c54600160a01b900460ff161515600114610b8c5760405162461bcd60e51b81526020600482015260136024820152722a3930b234b7339034b9903737ba1037b832b760691b60448201526064016106a6565b5f610ba86103e861065f6008548661084790919063ffffffff16565b9050610bb4818361104c565b600654909250600160a01b900460ff1615610c2f57600b54610bf484610bee876001600160a01b03165f9081526020819052604090205490565b90610d34565b1115610c2f5760405162461bcd60e51b815260206004820152600a60248201526913585e08109bdd59da1d60b21b60448201526064016106a6565b50610c8c565b6007546001600160a01b038481169116148015610c5b57506001600160a01b0384163014155b15610c8c575f610c7c6103e861065f6009548661084790919063ffffffff16565b9050610c88818361104c565b9150505b6005546001600160a01b0385811691161480610cb557506005546001600160a01b038481169116145b15610cbd57505f5b8015610cf457600c54610cdb9085906001600160a01b031683610d92565b610cef8484610cea8486611183565b610d92565b610793565b610793848484610d92565b5f8183610d1f5760405162461bcd60e51b81526004016106a69190610eec565b505f610d2b8486611164565b95945050505050565b5f80610d40838561104c565b9050838110156108c55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106a6565b6001600160a01b038316610dbc578060025f828254610db1919061104c565b90915550610e2c9050565b6001600160a01b0383165f9081526020819052604090205481811015610e0e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016106a6565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610e4857600280548290039055610e66565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610eab91815260200190565b60405180910390a3505050565b80356001600160a01b0381168114610ece575f80fd5b919050565b5f60208284031215610ee3575f80fd5b6108c582610eb8565b5f6020808352835180828501525f5b81811015610f1757858101830151858201604001528201610efb565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215610f48575f80fd5b610f5183610eb8565b946020939093013593505050565b5f805f60608486031215610f71575f80fd5b610f7a84610eb8565b9250610f8860208501610eb8565b9150604084013590509250925092565b5f8060408385031215610fa9575f80fd5b50508035926020909101359150565b5f8060408385031215610fc9575f80fd5b610fd283610eb8565b9150610fe060208401610eb8565b90509250929050565b5f60208284031215610ff9575f80fd5b5035919050565b600181811c9082168061101457607f821691505b60208210810361103257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561056357610563611038565b600181815b8085111561109957815f190482111561107f5761107f611038565b8085161561108c57918102915b93841c9390800290611064565b509250929050565b5f826110af57506001610563565b816110bb57505f610563565b81600181146110d157600281146110db576110f7565b6001915050610563565b60ff8411156110ec576110ec611038565b50506001821b610563565b5060208310610133831016604e8410600b841016171561111a575081810a610563565b611124838361105f565b805f190482111561113757611137611038565b029392505050565b5f6108c560ff8416836110a1565b808202811582820484141761056357610563611038565b5f8261117e57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105635761056361103856fea26469706673582212209dc428d356e719b9a77b67c27a0ab9deb68c3202ba9c68c1d9c73ac387b2d69664736f6c63430008140033000000000000000000000000fe872d1c95ff445c1727534133fdf7f134b35deb000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000b506967656f6e205061726b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055047454e5a000000000000000000000000000000000000000000000000000000