0x608060405260043610610198575f3560e01c806370a08231116100e75780638f9a55c011610087578063bf474bed11610062578063bf474bed14610490578063c876d0b9146104a5578063d34628cc146104be578063dd62ed3e146104dd575f80fd5b80638f9a55c01461042f57806395d89b4114610444578063a9059cbb14610471575f80fd5b8063751039fc116100c2578063751039fc146103d65780637d1db4a5146103ea5780638a8c523c146103ff5780638da5cb5b14610413575f80fd5b806370a0823114610375578063715018a6146103a9578063722b62ad146103bd575f80fd5b806323b872dd1161015257806331c2d8471161012d57806331c2d847146102f25780633bbac579146103115780634ada218b1461034857806351bc3c8514610361575f80fd5b806323b872dd1461029e57806326e4c312146102bd578063313ce567146102d1575f80fd5b806306fdde03146101a3578063095ea7b3146101e65780630faee56f146102155780631150f4641461023857806318160ddd146102595780631abfa6291461026d575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506040805180820190915260098152682832ba32b9102830b760b91b60208201525b6040516101dd91906119ed565b60405180910390f35b3480156101f1575f80fd5b50610205610200366004611a60565b610521565b60405190151581526020016101dd565b348015610220575f80fd5b5061022a60125481565b6040519081526020016101dd565b348015610243575f80fd5b50610257610252366004611a8a565b610537565b005b348015610264575f80fd5b5061022a61064b565b348015610278575f80fd5b506015546001600160a01b03165b6040516001600160a01b0390911681526020016101dd565b3480156102a9575f80fd5b506102056102b8366004611aa1565b61066a565b3480156102c8575f80fd5b5061025761075c565b3480156102dc575f80fd5b5060095b60405160ff90911681526020016101dd565b3480156102fd575f80fd5b5061025761030c366004611af3565b610b3a565b34801561031c575f80fd5b5061020561032b366004611bb3565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610353575f80fd5b506014546102059060ff1681565b34801561036c575f80fd5b50610257610bbd565b348015610380575f80fd5b5061022a61038f366004611bb3565b6001600160a01b03165f9081526001602052604090205490565b3480156103b4575f80fd5b50610257610c0f565b3480156103c8575f80fd5b506017546102e09060ff1681565b3480156103e1575f80fd5b50610257610c80565b3480156103f5575f80fd5b5061022a600f5481565b34801561040a575f80fd5b50610257610d38565b34801561041e575f80fd5b505f546001600160a01b0316610286565b34801561043a575f80fd5b5061022a60105481565b34801561044f575f80fd5b506040805180820190915260058152642822aa22a960d91b60208201526101d0565b34801561047c575f80fd5b5061020561048b366004611a60565b610d98565b34801561049b575f80fd5b5061022a60115481565b3480156104b0575f80fd5b506006546102059060ff1681565b3480156104c9575f80fd5b506102576104d8366004611af3565b610e2f565b3480156104e8575f80fd5b5061022a6104f7366004611bce565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61052d338484610eb3565b5060015b92915050565b5f546001600160a01b031633146105695760405162461bcd60e51b815260040161056090611c05565b60405180910390fd5b601554600160a01b900460ff16156105e95760405162461bcd60e51b815260206004820152603b60248201527f4c69717569646974792070657263656e746167652063616e206f6e6c7920626560448201527f20736574206265666f72652074726164696e67206973206f70656e00000000006064820152608401610560565b60648111156106465760405162461bcd60e51b8152602060048201526024808201527f50657263656e74616765206d757374206265206265747765656e203020616e646044820152630203130360e41b6064820152608401610560565b601355565b5f6106586009600a611d2e565b61066590620f4240611d3c565b905090565b6014545f9060ff168061068657505f546001600160a01b031633145b806106a0575060145461010090046001600160a01b031633145b806106aa57503330145b6106f65760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610560565b610701848484610fd6565b610752843361074d85604051806060016040528060288152602001611e9b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611642565b610eb3565b5060019392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b815260040161056090611c05565b601554600160a01b900460ff16156107df5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610560565b60148054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017908190556108379030906001600160a01b036101009091041661082a6009600a611d2e565b61074d90620f4240611d3c565b601460019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac9190611d53565b6001600160a01b031663c9c6539630601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190611d53565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561097a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099e9190611d53565b601580546001600160a01b0319166001600160a01b0392909216919091179055601354305f9081526001602052604081205490916109e9916064916109e3919061167a565b906116ff565b6014549091506001600160a01b036101009091041663f305d7194730845f80610a195f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a7f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa49190611d6e565b50506015805462ff00ff60a01b198116600160b01b1790915560145460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190611d99565b5050565b5f546001600160a01b03163314610b635760405162461bcd60e51b815260040161056090611c05565b5f5b8151811015610b36575f60045f848481518110610b8457610b84611db8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b65565b60065461010090046001600160a01b0316336001600160a01b031614610be1575f80fd5b305f908152600160205260409020548015610bff57610bff81611740565b478015610b3657610b36816118d3565b5f546001600160a01b03163314610c385760405162461bcd60e51b815260040161056090611c05565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ca95760405162461bcd60e51b815260040161056090611c05565b610cb56009600a611d2e565b610cc290620f4240611d3c565b600f55610cd16009600a611d2e565b610cde90620f4240611d3c565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610d186009600a611d2e565b610d2590620f4240611d3c565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610d615760405162461bcd60e51b815260040161056090611c05565b6014805460ff191660011790556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c7905f90a1565b6014545f9060ff1680610db457505f546001600160a01b031633145b80610dce575060145461010090046001600160a01b031633145b80610dd857503330145b610e245760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610560565b61052d338484610fd6565b5f546001600160a01b03163314610e585760405162461bcd60e51b815260040161056090611c05565b5f5b8151811015610b3657600160045f848481518110610e7a57610e7a611db8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610e5a565b6001600160a01b038316610f155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610560565b6001600160a01b038216610f765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610560565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661103a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610560565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610560565b5f81116110fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610560565b5f80546001600160a01b0385811691161480159061112857505f546001600160a01b03848116911614155b15611505576001600160a01b0384165f9081526004602052604090205460ff1615801561116d57506001600160a01b0383165f9081526004602052604090205460ff16155b611175575f80fd5b61119b60646109e3600b54600e541161119057600754611194565b6009545b859061167a565b60065490915060ff1615611286576014546001600160a01b0384811661010090920416148015906111da57506015546001600160a01b03848116911614155b1561128657325f9081526005602052604090205443116112745760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610560565b325f9081526005602052604090204390555b6015546001600160a01b0385811691161480156112b657506014546001600160a01b038481166101009092041614155b80156112da57506001600160a01b0383165f9081526003602052604090205460ff16155b156113c057600f548211156113315760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610560565b60105482611353856001600160a01b03165f9081526001602052604090205490565b61135d9190611dcc565b11156113ab5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610560565b600e8054905f6113ba83611ddf565b91905055505b6015546001600160a01b0384811691161480156113e657506001600160a01b0384163014155b156114135761141060646109e3600c54600e541161140657600854611194565b600a54859061167a565b90505b305f90815260016020526040902054601554600160a81b900460ff1615801561144957506015546001600160a01b038581169116145b801561145e5750601554600160b01b900460ff165b801561146b575060115481115b801561147a5750600d54600e54115b156115035760185443116114d05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610560565b6114ed6114e8846114e38460125461190e565b61190e565b611740565b4780156114fd576114fd476118d3565b50436018555b505b801561157d57305f908152600160205260409020546115249082611922565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115749085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461159f9083611980565b6001600160a01b0385165f908152600160205260409020556115e26115c48383611980565b6001600160a01b0385165f9081526001602052604090205490611922565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61162b8585611980565b60405190815260200160405180910390a350505050565b5f81848411156116655760405162461bcd60e51b815260040161056091906119ed565b505f6116718486611df7565b95945050505050565b5f825f0361168957505f610531565b5f6116948385611d3c565b9050826116a18583611e0a565b146116f85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610560565b9392505050565b5f6116f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119c1565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061178657611786611db8565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190611d53565b8160018151811061182e5761182e611db8565b6001600160a01b03928316602091820292909201015260145461185991309161010090041684610eb3565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906118959085905f90869030904290600401611e29565b5f604051808303815f87803b1580156118ac575f80fd5b505af11580156118be573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610b36573d5f803e3d5ffd5b5f81831161191c57826116f8565b50919050565b5f8061192e8385611dcc565b9050838110156116f85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610560565b5f6116f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611642565b5f81836119e15760405162461bcd60e51b815260040161056091906119ed565b505f6116718486611e0a565b5f602080835283518060208501525f5b81811015611a19578581018301518582016040015282016119fd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a4d575f80fd5b50565b8035611a5b81611a39565b919050565b5f8060408385031215611a71575f80fd5b8235611a7c81611a39565b946020939093013593505050565b5f60208284031215611a9a575f80fd5b5035919050565b5f805f60608486031215611ab3575f80fd5b8335611abe81611a39565b92506020840135611ace81611a39565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611b04575f80fd5b823567ffffffffffffffff80821115611b1b575f80fd5b818501915085601f830112611b2e575f80fd5b813581811115611b4057611b40611adf565b8060051b604051601f19603f83011681018181108582111715611b6557611b65611adf565b604052918252848201925083810185019188831115611b82575f80fd5b938501935b82851015611ba757611b9885611a50565b84529385019392850192611b87565b98975050505050505050565b5f60208284031215611bc3575f80fd5b81356116f881611a39565b5f8060408385031215611bdf575f80fd5b8235611bea81611a39565b91506020830135611bfa81611a39565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c8857815f1904821115611c6e57611c6e611c3a565b80851615611c7b57918102915b93841c9390800290611c53565b509250929050565b5f82611c9e57506001610531565b81611caa57505f610531565b8160018114611cc05760028114611cca57611ce6565b6001915050610531565b60ff841115611cdb57611cdb611c3a565b50506001821b610531565b5060208310610133831016604e8410600b8410161715611d09575081810a610531565b611d138383611c4e565b805f1904821115611d2657611d26611c3a565b029392505050565b5f6116f860ff841683611c90565b808202811582820484141761053157610531611c3a565b5f60208284031215611d63575f80fd5b81516116f881611a39565b5f805f60608486031215611d80575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611da9575f80fd5b815180151581146116f8575f80fd5b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053157610531611c3a565b5f60018201611df057611df0611c3a565b5060010190565b8181038181111561053157610531611c3a565b5f82611e2457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e795784516001600160a01b031683529383019391830191600101611e54565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220471e57ed1869c1d148c51013c5d352972e30ecdf93d9603bb71ce3ca35ccddde64736f6c63430008160033
0x60806040526006805460ff19166001179055601460078190556008555f60098181556004600a908155600b829055600c819055600d819055600e92909255620000489162000358565b6200005690614e206200036f565b600f55620000676009600a62000358565b6200007590614e206200036f565b601055620000866009600a62000358565b620000949061259e6200036f565b601155620000a56009600a62000358565b620000b39061259e6200036f565b6012556014805460ff199081169091556015805461ffff60a81b19169055601780549091166001179055348015620000e9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556200014f6009600a62000358565b6200015e90620f42406200036f565b335f908152600160208190526040822092909255600390620001875f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001ea3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002236009600a62000358565b6200023290620f42406200036f565b60405190815260200160405180910390a362000389565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029d57815f190482111562000281576200028162000249565b808516156200028f57918102915b93841c939080029062000262565b509250929050565b5f82620002b55750600162000352565b81620002c357505f62000352565b8160018114620002dc5760028114620002e75762000307565b600191505062000352565b60ff841115620002fb57620002fb62000249565b50506001821b62000352565b5060208310610133831016604e8410600b84101617156200032c575081810a62000352565b6200033883836200025d565b805f19048211156200034e576200034e62000249565b0290505b92915050565b5f6200036860ff841683620002a5565b9392505050565b808202811582820484141762000352576200035262000249565b611ef880620003975f395ff3fe608060405260043610610198575f3560e01c806370a08231116100e75780638f9a55c011610087578063bf474bed11610062578063bf474bed14610490578063c876d0b9146104a5578063d34628cc146104be578063dd62ed3e146104dd575f80fd5b80638f9a55c01461042f57806395d89b4114610444578063a9059cbb14610471575f80fd5b8063751039fc116100c2578063751039fc146103d65780637d1db4a5146103ea5780638a8c523c146103ff5780638da5cb5b14610413575f80fd5b806370a0823114610375578063715018a6146103a9578063722b62ad146103bd575f80fd5b806323b872dd1161015257806331c2d8471161012d57806331c2d847146102f25780633bbac579146103115780634ada218b1461034857806351bc3c8514610361575f80fd5b806323b872dd1461029e57806326e4c312146102bd578063313ce567146102d1575f80fd5b806306fdde03146101a3578063095ea7b3146101e65780630faee56f146102155780631150f4641461023857806318160ddd146102595780631abfa6291461026d575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b506040805180820190915260098152682832ba32b9102830b760b91b60208201525b6040516101dd91906119ed565b60405180910390f35b3480156101f1575f80fd5b50610205610200366004611a60565b610521565b60405190151581526020016101dd565b348015610220575f80fd5b5061022a60125481565b6040519081526020016101dd565b348015610243575f80fd5b50610257610252366004611a8a565b610537565b005b348015610264575f80fd5b5061022a61064b565b348015610278575f80fd5b506015546001600160a01b03165b6040516001600160a01b0390911681526020016101dd565b3480156102a9575f80fd5b506102056102b8366004611aa1565b61066a565b3480156102c8575f80fd5b5061025761075c565b3480156102dc575f80fd5b5060095b60405160ff90911681526020016101dd565b3480156102fd575f80fd5b5061025761030c366004611af3565b610b3a565b34801561031c575f80fd5b5061020561032b366004611bb3565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610353575f80fd5b506014546102059060ff1681565b34801561036c575f80fd5b50610257610bbd565b348015610380575f80fd5b5061022a61038f366004611bb3565b6001600160a01b03165f9081526001602052604090205490565b3480156103b4575f80fd5b50610257610c0f565b3480156103c8575f80fd5b506017546102e09060ff1681565b3480156103e1575f80fd5b50610257610c80565b3480156103f5575f80fd5b5061022a600f5481565b34801561040a575f80fd5b50610257610d38565b34801561041e575f80fd5b505f546001600160a01b0316610286565b34801561043a575f80fd5b5061022a60105481565b34801561044f575f80fd5b506040805180820190915260058152642822aa22a960d91b60208201526101d0565b34801561047c575f80fd5b5061020561048b366004611a60565b610d98565b34801561049b575f80fd5b5061022a60115481565b3480156104b0575f80fd5b506006546102059060ff1681565b3480156104c9575f80fd5b506102576104d8366004611af3565b610e2f565b3480156104e8575f80fd5b5061022a6104f7366004611bce565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61052d338484610eb3565b5060015b92915050565b5f546001600160a01b031633146105695760405162461bcd60e51b815260040161056090611c05565b60405180910390fd5b601554600160a01b900460ff16156105e95760405162461bcd60e51b815260206004820152603b60248201527f4c69717569646974792070657263656e746167652063616e206f6e6c7920626560448201527f20736574206265666f72652074726164696e67206973206f70656e00000000006064820152608401610560565b60648111156106465760405162461bcd60e51b8152602060048201526024808201527f50657263656e74616765206d757374206265206265747765656e203020616e646044820152630203130360e41b6064820152608401610560565b601355565b5f6106586009600a611d2e565b61066590620f4240611d3c565b905090565b6014545f9060ff168061068657505f546001600160a01b031633145b806106a0575060145461010090046001600160a01b031633145b806106aa57503330145b6106f65760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610560565b610701848484610fd6565b610752843361074d85604051806060016040528060288152602001611e9b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611642565b610eb3565b5060019392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b815260040161056090611c05565b601554600160a01b900460ff16156107df5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610560565b60148054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d0017908190556108379030906001600160a01b036101009091041661082a6009600a611d2e565b61074d90620f4240611d3c565b601460019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac9190611d53565b6001600160a01b031663c9c6539630601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190611d53565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561097a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099e9190611d53565b601580546001600160a01b0319166001600160a01b0392909216919091179055601354305f9081526001602052604081205490916109e9916064916109e3919061167a565b906116ff565b6014549091506001600160a01b036101009091041663f305d7194730845f80610a195f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a7f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610aa49190611d6e565b50506015805462ff00ff60a01b198116600160b01b1790915560145460405163095ea7b360e01b81526001600160a01b03610100909204821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b369190611d99565b5050565b5f546001600160a01b03163314610b635760405162461bcd60e51b815260040161056090611c05565b5f5b8151811015610b36575f60045f848481518110610b8457610b84611db8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b65565b60065461010090046001600160a01b0316336001600160a01b031614610be1575f80fd5b305f908152600160205260409020548015610bff57610bff81611740565b478015610b3657610b36816118d3565b5f546001600160a01b03163314610c385760405162461bcd60e51b815260040161056090611c05565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ca95760405162461bcd60e51b815260040161056090611c05565b610cb56009600a611d2e565b610cc290620f4240611d3c565b600f55610cd16009600a611d2e565b610cde90620f4240611d3c565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610d186009600a611d2e565b610d2590620f4240611d3c565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610d615760405162461bcd60e51b815260040161056090611c05565b6014805460ff191660011790556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c7905f90a1565b6014545f9060ff1680610db457505f546001600160a01b031633145b80610dce575060145461010090046001600160a01b031633145b80610dd857503330145b610e245760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610560565b61052d338484610fd6565b5f546001600160a01b03163314610e585760405162461bcd60e51b815260040161056090611c05565b5f5b8151811015610b3657600160045f848481518110610e7a57610e7a611db8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610e5a565b6001600160a01b038316610f155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610560565b6001600160a01b038216610f765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610560565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661103a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610560565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610560565b5f81116110fd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610560565b5f80546001600160a01b0385811691161480159061112857505f546001600160a01b03848116911614155b15611505576001600160a01b0384165f9081526004602052604090205460ff1615801561116d57506001600160a01b0383165f9081526004602052604090205460ff16155b611175575f80fd5b61119b60646109e3600b54600e541161119057600754611194565b6009545b859061167a565b60065490915060ff1615611286576014546001600160a01b0384811661010090920416148015906111da57506015546001600160a01b03848116911614155b1561128657325f9081526005602052604090205443116112745760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610560565b325f9081526005602052604090204390555b6015546001600160a01b0385811691161480156112b657506014546001600160a01b038481166101009092041614155b80156112da57506001600160a01b0383165f9081526003602052604090205460ff16155b156113c057600f548211156113315760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610560565b60105482611353856001600160a01b03165f9081526001602052604090205490565b61135d9190611dcc565b11156113ab5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610560565b600e8054905f6113ba83611ddf565b91905055505b6015546001600160a01b0384811691161480156113e657506001600160a01b0384163014155b156114135761141060646109e3600c54600e541161140657600854611194565b600a54859061167a565b90505b305f90815260016020526040902054601554600160a81b900460ff1615801561144957506015546001600160a01b038581169116145b801561145e5750601554600160b01b900460ff165b801561146b575060115481115b801561147a5750600d54600e54115b156115035760185443116114d05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610560565b6114ed6114e8846114e38460125461190e565b61190e565b611740565b4780156114fd576114fd476118d3565b50436018555b505b801561157d57305f908152600160205260409020546115249082611922565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115749085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461159f9083611980565b6001600160a01b0385165f908152600160205260409020556115e26115c48383611980565b6001600160a01b0385165f9081526001602052604090205490611922565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61162b8585611980565b60405190815260200160405180910390a350505050565b5f81848411156116655760405162461bcd60e51b815260040161056091906119ed565b505f6116718486611df7565b95945050505050565b5f825f0361168957505f610531565b5f6116948385611d3c565b9050826116a18583611e0a565b146116f85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610560565b9392505050565b5f6116f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119c1565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061178657611786611db8565b60200260200101906001600160a01b031690816001600160a01b031681525050601460019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181b9190611d53565b8160018151811061182e5761182e611db8565b6001600160a01b03928316602091820292909201015260145461185991309161010090041684610eb3565b60145460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906118959085905f90869030904290600401611e29565b5f604051808303815f87803b1580156118ac575f80fd5b505af11580156118be573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610b36573d5f803e3d5ffd5b5f81831161191c57826116f8565b50919050565b5f8061192e8385611dcc565b9050838110156116f85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610560565b5f6116f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611642565b5f81836119e15760405162461bcd60e51b815260040161056091906119ed565b505f6116718486611e0a565b5f602080835283518060208501525f5b81811015611a19578581018301518582016040015282016119fd565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a4d575f80fd5b50565b8035611a5b81611a39565b919050565b5f8060408385031215611a71575f80fd5b8235611a7c81611a39565b946020939093013593505050565b5f60208284031215611a9a575f80fd5b5035919050565b5f805f60608486031215611ab3575f80fd5b8335611abe81611a39565b92506020840135611ace81611a39565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611b04575f80fd5b823567ffffffffffffffff80821115611b1b575f80fd5b818501915085601f830112611b2e575f80fd5b813581811115611b4057611b40611adf565b8060051b604051601f19603f83011681018181108582111715611b6557611b65611adf565b604052918252848201925083810185019188831115611b82575f80fd5b938501935b82851015611ba757611b9885611a50565b84529385019392850192611b87565b98975050505050505050565b5f60208284031215611bc3575f80fd5b81356116f881611a39565b5f8060408385031215611bdf575f80fd5b8235611bea81611a39565b91506020830135611bfa81611a39565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c8857815f1904821115611c6e57611c6e611c3a565b80851615611c7b57918102915b93841c9390800290611c53565b509250929050565b5f82611c9e57506001610531565b81611caa57505f610531565b8160018114611cc05760028114611cca57611ce6565b6001915050610531565b60ff841115611cdb57611cdb611c3a565b50506001821b610531565b5060208310610133831016604e8410600b8410161715611d09575081810a610531565b611d138383611c4e565b805f1904821115611d2657611d26611c3a565b029392505050565b5f6116f860ff841683611c90565b808202811582820484141761053157610531611c3a565b5f60208284031215611d63575f80fd5b81516116f881611a39565b5f805f60608486031215611d80575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611da9575f80fd5b815180151581146116f8575f80fd5b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053157610531611c3a565b5f60018201611df057611df0611c3a565b5060010190565b8181038181111561053157610531611c3a565b5f82611e2457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e795784516001600160a01b031683529383019391830191600101611e54565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220471e57ed1869c1d148c51013c5d352972e30ecdf93d9603bb71ce3ca35ccddde64736f6c63430008160033