0x6080604052600436106102605760003560e01c80636b67c4df11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610741578063e96fada214610787578063ec28438a146107a7578063f2fde38b146107c7578063f84ba65d146107e7578063fe575a871461080757600080fd5b8063a9059cbb146106a1578063bfa21d6a146106c1578063d0889358146106e1578063d7c0103214610701578063dab84ee71461072157600080fd5b80637d1db4a5116101085780637d1db4a5146105e4578063893d20e8146105fa5780638b42507f146106185780638f9a55c01461064857806395d89b411461065e57806398118cb41461068b57600080fd5b80636b67c4df146105425780636ddd1713146105585780636ebfa4d21461057957806370a0823114610599578063715018a6146105cf57600080fd5b8063364333f4116101dd578063534030b1116101a1578063534030b11461048c578063596fa9e3146104ac5780635d0044ca146104cc5780635f791e5e146104ec578063658d4b7f1461050c5780636827e7641461052c57600080fd5b8063364333f4146103df5780633f4218e0146103f457806342cc2f45146104245780634ada218b1461045c5780634f28cac21461047657600080fd5b806318160ddd1161022457806318160ddd146103495780631df4ccfc1461035e57806323b872dd146103745780632f54bf6e14610394578063313ce567146103c357600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d75780630d075d9c146103075780630f683e901461032957600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282601f5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b5060408051808201909152601081526f536861646f77204f662052796f73686960801b60208201525b60405161028c919061193f565b3480156102e357600080fd5b506102f76102f23660046119a2565b610837565b604051901515815260200161028c565b34801561031357600080fd5b506103276103223660046119ce565b6108a4565b005b34801561033557600080fd5b506103276103443660046119ce565b61094c565b34801561035557600080fd5b50600254610282565b34801561036a57600080fd5b50610282600f5481565b34801561038057600080fd5b506102f761038f3660046119fa565b6109e7565b3480156103a057600080fd5b506102f76103af366004611a3b565b6000546001600160a01b0391821691161490565b3480156103cf57600080fd5b506040516009815260200161028c565b3480156103eb57600080fd5b50610327610a7c565b34801561040057600080fd5b506102f761040f366004611a3b565b600a6020526000908152604090205460ff1681565b34801561043057600080fd5b50601e54610444906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561046857600080fd5b506006546102f79060ff1681565b34801561048257600080fd5b5061028260205481565b34801561049857600080fd5b506103276104a7366004611a66565b610ad9565b3480156104b857600080fd5b50601d54610444906001600160a01b031681565b3480156104d857600080fd5b506103276104e7366004611a9f565b610b2e565b3480156104f857600080fd5b506102f76105073660046119a2565b610bca565b34801561051857600080fd5b50610327610527366004611a66565b610c3e565b34801561053857600080fd5b50610282600c5481565b34801561054e57600080fd5b50610282600d5481565b34801561056457600080fd5b50601e546102f790600160a01b900460ff1681565b34801561058557600080fd5b50610327610594366004611ab8565b610c93565b3480156105a557600080fd5b506102826105b4366004611a3b565b6001600160a01b031660009081526004602052604090205490565b3480156105db57600080fd5b50610327610d21565b3480156105f057600080fd5b5061028260185481565b34801561060657600080fd5b506000546001600160a01b0316610444565b34801561062457600080fd5b506102f7610633366004611a3b565b600b6020526000908152604090205460ff1681565b34801561065457600080fd5b5061028260195481565b34801561066a57600080fd5b506040805180820190915260048152631229a7a960e11b60208201526102ca565b34801561069757600080fd5b50610282600e5481565b3480156106ad57600080fd5b506102f76106bc3660046119a2565b610d95565b3480156106cd57600080fd5b50601c54610444906001600160a01b031681565b3480156106ed57600080fd5b506103276106fc366004611ad6565b610da2565b34801561070d57600080fd5b5061032761071c366004611b0b565b610e26565b34801561072d57600080fd5b50601a54610444906001600160a01b031681565b34801561074d57600080fd5b5061028261075c366004611b56565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561079357600080fd5b50601b54610444906001600160a01b031681565b3480156107b357600080fd5b506103276107c2366004611a9f565b610e8f565b3480156107d357600080fd5b506103276107e2366004611a3b565b610f23565b3480156107f357600080fd5b50610327610802366004611a66565b61100d565b34801561081357600080fd5b506102f7610822366004611a3b565b60096020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108929086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108d75760405162461bcd60e51b81526004016108ce90611b84565b60405180910390fd5b601083905560118290556012819055806108f18385611bcf565b6108fb9190611bcf565b6013819055601910156109475760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b60448201526064016108ce565b505050565b6000546001600160a01b031633146109765760405162461bcd60e51b81526004016108ce90611b84565b601483905560158290556016819055806109908385611bcf565b61099a9190611bcf565b6017819055605f10156109475760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b60448201526064016108ce565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610a67576001600160a01b0384166000908152600560209081526040808320338452909152902054610a42908390611be2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610a72848484611062565b90505b9392505050565b6000546001600160a01b03163314610aa65760405162461bcd60e51b81526004016108ce90611b84565b6040514790339082156108fc029083906000818181858888f19350505050158015610ad5573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b035760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b585760405162461bcd60e51b81526004016108ce90611b84565b6064811015610ba95760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a6500000000000000000060448201526064016108ce565b61271081600254610bba9190611bf5565b610bc49190611c0c565b60195550565b60405163a9059cbb60e01b8152336004820152602481018290526000906001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a759190611c2e565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cbd5760405162461bcd60e51b81526004016108ce90611b84565b81610cfc5760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b60448201526064016108ce565b6006805460ff19168315159081179091556008829055600103610ad557436007555050565b6000546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016108ce90611b84565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a75338484611062565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b81526004016108ce90611b84565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610df5908490611bf5565b610dff9190611c0c565b601f5560025461271090610e14908390611bf5565b610e1e9190611c0c565b602055505050565b6000546001600160a01b03163314610e505760405162461bcd60e51b81526004016108ce90611b84565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016108ce90611b84565b6032811015610f025760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b60448201526064016108ce565b61271081600254610f139190611bf5565b610f1d9190611c0c565b60185550565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b038116610fb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ce565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110375760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60215460009060ff1680611074575081155b1561108b57611084848484611426565b9050610a75565b6001600160a01b0384166000908152600a602052604090205460ff161580156110cd57506001600160a01b0383166000908152600a602052604090205460ff16155b80156110dc575060065460ff16155b80156110f55750601e546001600160a01b038581169116145b1561111e576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6001600160a01b03841660009081526009602052604090205460ff16156111785760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b60448201526064016108ce565b611181846114e0565b6000546001600160a01b038581169116148015906111a857506001600160a01b0383163014155b80156111c257506001546001600160a01b03848116911614155b80156111dc5750601e546001600160a01b03848116911614155b156112a0576001600160a01b0383166000908152600460205260409020546019546112078483611bcf565b11158061122c57506001600160a01b0384166000908152600b602052604090205460ff165b61129e5760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e0060648201526084016108ce565b505b601e546001600160a01b039081169085160361132057601854821115806112df57506001600160a01b0383166000908152600b602052604090205460ff165b6113205760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b60448201526064016108ce565b61132984611533565b1561133657611336611587565b6001600160a01b03841660009081526004602052604090205461135a908390611be2565b6001600160a01b038516600090815260046020908152604080832093909355600a90529081205460ff161561138f5782611398565b611398836118e6565b6001600160a01b0385166000908152600460205260409020549091506113bf908290611bcf565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114139085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526004602052604081205461144a908390611be2565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461147a908390611bcf565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ce9086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b039081169082160361151657611513601054600c55601154600d55601254600e55601354600f55565b50565b611513601454600c55601554600d55601654600e55601754600f55565b60006001600160a01b03821630148015611550575060215460ff16155b80156115655750601e54600160a01b900460ff165b801561089e5750601f5430600090815260046020526040902054101592915050565b6021805460ff1916600117905560208054306000908152600490925260408220546115b29190611be2565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115ec576115ec611c4b565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116699190611c61565b8160018151811061167c5761167c611c4b565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116c6908690600090879030904290600401611c7e565b600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b50505050600081476117069190611be2565b90506000600f54600c548361171b9190611bf5565b6117259190611c0c565b90506000600f54600d548461173a9190611bf5565b6117449190611c0c565b90506000600f54600e54856117599190611bf5565b6117639190611c0c565b601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146117ba576040519150601f19603f3d011682016040523d82523d6000602084013e6117bf565b606091505b50509050806117e05760405162461bcd60e51b81526004016108ce90611cef565b601b546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611832576040519150601f19603f3d011682016040523d82523d6000602084013e611837565b606091505b50509050806118585760405162461bcd60e51b81526004016108ce90611cef565b601c546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118aa576040519150601f19603f3d011682016040523d82523d6000602084013e6118af565b606091505b50509050806118d05760405162461bcd60e51b81526004016108ce90611cef565b50506021805460ff191690555050505050505050565b6000806008546007546118f99190611bcf565b43111561191d57600f5461190e606485611c0c565b6119189190611bf5565b611933565b611928606484611c0c565b611933906063611bf5565b9050610a758184611be2565b600060208083528351808285015260005b8181101561196c57858101830151858201604001528201611950565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151357600080fd5b600080604083850312156119b557600080fd5b82356119c08161198d565b946020939093013593505050565b6000806000606084860312156119e357600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a0f57600080fd5b8335611a1a8161198d565b92506020840135611a2a8161198d565b929592945050506040919091013590565b600060208284031215611a4d57600080fd5b8135610a758161198d565b801515811461151357600080fd5b60008060408385031215611a7957600080fd5b8235611a848161198d565b91506020830135611a9481611a58565b809150509250929050565b600060208284031215611ab157600080fd5b5035919050565b60008060408385031215611acb57600080fd5b82356119c081611a58565b600080600060608486031215611aeb57600080fd5b8335611af681611a58565b95602085013595506040909401359392505050565b600080600060608486031215611b2057600080fd5b8335611b2b8161198d565b92506020840135611b3b8161198d565b91506040840135611b4b8161198d565b809150509250925092565b60008060408385031215611b6957600080fd5b8235611b748161198d565b91506020830135611a948161198d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561089e5761089e611bb9565b8181038181111561089e5761089e611bb9565b808202811582820484141761089e5761089e611bb9565b600082611c2957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c4057600080fd5b8151610a7581611a58565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c7357600080fd5b8151610a758161198d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cce5784516001600160a01b031683529383019391830191600101611ca9565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122077ccac19247ea63219048f11fcf61a8247f90743e090ae22d3cbc2b0b226981b64736f6c63430008110033
0x6080604052600180546001600160a01b03191661dead179055620000266009600a6200055b565b6200003690633b9aca0062000573565b600281905562000049906103e862000573565b6003556006805460ff19169055600060078190556008819055600c8190556002600d819055600e8290556010829055601181905560128290556200008e90826200058d565b6200009a91906200058d565b60135560006014819055600260158190556016829055620000bc90826200058d565b620000c891906200058d565b601755612710600254612710620000e0919062000573565b620000ec9190620005a3565b60185561271060025461271062000104919062000573565b620001109190620005a3565b601955601a80546001600160a01b0319908116738bbffaf4dc1cddeec99a56725a04511c622b5294908117909255601b8054821683179055601c80549091169091179055601e805460ff60a01b1916600160a01b179055600254612710906200017b90600a62000573565b620001879190620005a3565b601f5561271060025460016200019e919062000573565b620001aa9190620005a3565b602055348015620001ba57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002879190620005c6565b6001600160a01b031663c9c65396601d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030f9190620005c6565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200035c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003829190620005c6565b601e80546001600160a01b0319166001600160a01b03928316179055306000818152600560209081526040808320601d549095168352938152838220600019905533808352600a8252848320805460ff199081166001908117909255600b84528685208054909116909117905560035493835260048252848320939093556002548383528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005f1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200049d57816000190482111562000481576200048162000446565b808516156200048f57918102915b93841c939080029062000461565b509250929050565b600082620004b65750600162000555565b81620004c55750600062000555565b8160018114620004de5760028114620004e95762000509565b600191505062000555565b60ff841115620004fd57620004fd62000446565b50506001821b62000555565b5060208310610133831016604e8410600b84101617156200052e575081810a62000555565b6200053a83836200045c565b806000190482111562000551576200055162000446565b0290505b92915050565b60006200056c60ff841683620004a5565b9392505050565b808202811582820484141762000555576200055562000446565b8082018082111562000555576200055562000446565b600082620005c157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005d957600080fd5b81516001600160a01b03811681146200056c57600080fd5b611d5c80620006016000396000f3fe6080604052600436106102605760003560e01c80636b67c4df11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610741578063e96fada214610787578063ec28438a146107a7578063f2fde38b146107c7578063f84ba65d146107e7578063fe575a871461080757600080fd5b8063a9059cbb146106a1578063bfa21d6a146106c1578063d0889358146106e1578063d7c0103214610701578063dab84ee71461072157600080fd5b80637d1db4a5116101085780637d1db4a5146105e4578063893d20e8146105fa5780638b42507f146106185780638f9a55c01461064857806395d89b411461065e57806398118cb41461068b57600080fd5b80636b67c4df146105425780636ddd1713146105585780636ebfa4d21461057957806370a0823114610599578063715018a6146105cf57600080fd5b8063364333f4116101dd578063534030b1116101a1578063534030b11461048c578063596fa9e3146104ac5780635d0044ca146104cc5780635f791e5e146104ec578063658d4b7f1461050c5780636827e7641461052c57600080fd5b8063364333f4146103df5780633f4218e0146103f457806342cc2f45146104245780634ada218b1461045c5780634f28cac21461047657600080fd5b806318160ddd1161022457806318160ddd146103495780631df4ccfc1461035e57806323b872dd146103745780632f54bf6e14610394578063313ce567146103c357600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d75780630d075d9c146103075780630f683e901461032957600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282601f5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b5060408051808201909152601081526f536861646f77204f662052796f73686960801b60208201525b60405161028c919061193f565b3480156102e357600080fd5b506102f76102f23660046119a2565b610837565b604051901515815260200161028c565b34801561031357600080fd5b506103276103223660046119ce565b6108a4565b005b34801561033557600080fd5b506103276103443660046119ce565b61094c565b34801561035557600080fd5b50600254610282565b34801561036a57600080fd5b50610282600f5481565b34801561038057600080fd5b506102f761038f3660046119fa565b6109e7565b3480156103a057600080fd5b506102f76103af366004611a3b565b6000546001600160a01b0391821691161490565b3480156103cf57600080fd5b506040516009815260200161028c565b3480156103eb57600080fd5b50610327610a7c565b34801561040057600080fd5b506102f761040f366004611a3b565b600a6020526000908152604090205460ff1681565b34801561043057600080fd5b50601e54610444906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561046857600080fd5b506006546102f79060ff1681565b34801561048257600080fd5b5061028260205481565b34801561049857600080fd5b506103276104a7366004611a66565b610ad9565b3480156104b857600080fd5b50601d54610444906001600160a01b031681565b3480156104d857600080fd5b506103276104e7366004611a9f565b610b2e565b3480156104f857600080fd5b506102f76105073660046119a2565b610bca565b34801561051857600080fd5b50610327610527366004611a66565b610c3e565b34801561053857600080fd5b50610282600c5481565b34801561054e57600080fd5b50610282600d5481565b34801561056457600080fd5b50601e546102f790600160a01b900460ff1681565b34801561058557600080fd5b50610327610594366004611ab8565b610c93565b3480156105a557600080fd5b506102826105b4366004611a3b565b6001600160a01b031660009081526004602052604090205490565b3480156105db57600080fd5b50610327610d21565b3480156105f057600080fd5b5061028260185481565b34801561060657600080fd5b506000546001600160a01b0316610444565b34801561062457600080fd5b506102f7610633366004611a3b565b600b6020526000908152604090205460ff1681565b34801561065457600080fd5b5061028260195481565b34801561066a57600080fd5b506040805180820190915260048152631229a7a960e11b60208201526102ca565b34801561069757600080fd5b50610282600e5481565b3480156106ad57600080fd5b506102f76106bc3660046119a2565b610d95565b3480156106cd57600080fd5b50601c54610444906001600160a01b031681565b3480156106ed57600080fd5b506103276106fc366004611ad6565b610da2565b34801561070d57600080fd5b5061032761071c366004611b0b565b610e26565b34801561072d57600080fd5b50601a54610444906001600160a01b031681565b34801561074d57600080fd5b5061028261075c366004611b56565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561079357600080fd5b50601b54610444906001600160a01b031681565b3480156107b357600080fd5b506103276107c2366004611a9f565b610e8f565b3480156107d357600080fd5b506103276107e2366004611a3b565b610f23565b3480156107f357600080fd5b50610327610802366004611a66565b61100d565b34801561081357600080fd5b506102f7610822366004611a3b565b60096020526000908152604090205460ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108929086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108d75760405162461bcd60e51b81526004016108ce90611b84565b60405180910390fd5b601083905560118290556012819055806108f18385611bcf565b6108fb9190611bcf565b6013819055601910156109475760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642062757920746178206665657360601b60448201526064016108ce565b505050565b6000546001600160a01b031633146109765760405162461bcd60e51b81526004016108ce90611b84565b601483905560158290556016819055806109908385611bcf565b61099a9190611bcf565b6017819055605f10156109475760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642073656c6c20746178206665657360581b60448201526064016108ce565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610a67576001600160a01b0384166000908152600560209081526040808320338452909152902054610a42908390611be2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b610a72848484611062565b90505b9392505050565b6000546001600160a01b03163314610aa65760405162461bcd60e51b81526004016108ce90611b84565b6040514790339082156108fc029083906000818181858888f19350505050158015610ad5573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610b035760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b585760405162461bcd60e51b81526004016108ce90611b84565b6064811015610ba95760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d61782077616c6c65742073697a6500000000000000000060448201526064016108ce565b61271081600254610bba9190611bf5565b610bc49190611c0c565b60195550565b60405163a9059cbb60e01b8152336004820152602481018290526000906001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a759190611c2e565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cbd5760405162461bcd60e51b81526004016108ce90611b84565b81610cfc5760405162461bcd60e51b815260206004820152600f60248201526e273790393ab3903432b9329039b2b960891b60448201526064016108ce565b6006805460ff19168315159081179091556008829055600103610ad557436007555050565b6000546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016108ce90611b84565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a75338484611062565b6000546001600160a01b03163314610dcc5760405162461bcd60e51b81526004016108ce90611b84565b601e805460ff60a01b1916600160a01b8515150217905560025461271090610df5908490611bf5565b610dff9190611c0c565b601f5560025461271090610e14908390611bf5565b610e1e9190611c0c565b602055505050565b6000546001600160a01b03163314610e505760405162461bcd60e51b81526004016108ce90611b84565b601a80546001600160a01b039485166001600160a01b031991821617909155601b805493851693821693909317909255601c8054919093169116179055565b6000546001600160a01b03163314610eb95760405162461bcd60e51b81526004016108ce90611b84565b6032811015610f025760405162461bcd60e51b8152602060048201526015602482015274125b9d985b1a59081b585e081d1e08185b5bdd5b9d605a1b60448201526064016108ce565b61271081600254610f139190611bf5565b610f1d9190611c0c565b60185550565b6000546001600160a01b03163314610f4d5760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b038116610fb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ce565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110375760405162461bcd60e51b81526004016108ce90611b84565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60215460009060ff1680611074575081155b1561108b57611084848484611426565b9050610a75565b6001600160a01b0384166000908152600a602052604090205460ff161580156110cd57506001600160a01b0383166000908152600a602052604090205460ff16155b80156110dc575060065460ff16155b80156110f55750601e546001600160a01b038581169116145b1561111e576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6001600160a01b03841660009081526009602052604090205460ff16156111785760405162461bcd60e51b815260206004820152600e60248201526d596f7520617265206120626f742160901b60448201526064016108ce565b611181846114e0565b6000546001600160a01b038581169116148015906111a857506001600160a01b0383163014155b80156111c257506001546001600160a01b03848116911614155b80156111dc5750601e546001600160a01b03848116911614155b156112a0576001600160a01b0383166000908152600460205260409020546019546112078483611bcf565b11158061122c57506001600160a01b0384166000908152600b602052604090205460ff165b61129e5760405162461bcd60e51b815260206004820152603f60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420686f6c642074686174206d7563682e0060648201526084016108ce565b505b601e546001600160a01b039081169085160361132057601854821115806112df57506001600160a01b0383166000908152600b602052604090205460ff165b6113205760405162461bcd60e51b81526020600482015260126024820152712a2c103634b6b4ba1032bc31b2b2b232b21760711b60448201526064016108ce565b61132984611533565b1561133657611336611587565b6001600160a01b03841660009081526004602052604090205461135a908390611be2565b6001600160a01b038516600090815260046020908152604080832093909355600a90529081205460ff161561138f5782611398565b611398836118e6565b6001600160a01b0385166000908152600460205260409020549091506113bf908290611bcf565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114139085815260200190565b60405180910390a3506001949350505050565b6001600160a01b03831660009081526004602052604081205461144a908390611be2565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461147a908390611bcf565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114ce9086815260200190565b60405180910390a35060019392505050565b601e546001600160a01b039081169082160361151657611513601054600c55601154600d55601254600e55601354600f55565b50565b611513601454600c55601554600d55601654600e55601754600f55565b60006001600160a01b03821630148015611550575060215460ff16155b80156115655750601e54600160a01b900460ff165b801561089e5750601f5430600090815260046020526040902054101592915050565b6021805460ff1916600117905560208054306000908152600490925260408220546115b29190611be2565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106115ec576115ec611c4b565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116699190611c61565b8160018151811061167c5761167c611c4b565b6001600160a01b039283166020918202929092010152601d5460405163791ac94760e01b81524792919091169063791ac947906116c6908690600090879030904290600401611c7e565b600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b50505050600081476117069190611be2565b90506000600f54600c548361171b9190611bf5565b6117259190611c0c565b90506000600f54600d548461173a9190611bf5565b6117449190611c0c565b90506000600f54600e54856117599190611bf5565b6117639190611c0c565b601a546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146117ba576040519150601f19603f3d011682016040523d82523d6000602084013e6117bf565b606091505b50509050806117e05760405162461bcd60e51b81526004016108ce90611cef565b601b546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611832576040519150601f19603f3d011682016040523d82523d6000602084013e611837565b606091505b50509050806118585760405162461bcd60e51b81526004016108ce90611cef565b601c546040516000916001600160a01b03169061753090869084818181858888f193505050503d80600081146118aa576040519150601f19603f3d011682016040523d82523d6000602084013e6118af565b606091505b50509050806118d05760405162461bcd60e51b81526004016108ce90611cef565b50506021805460ff191690555050505050505050565b6000806008546007546118f99190611bcf565b43111561191d57600f5461190e606485611c0c565b6119189190611bf5565b611933565b611928606484611c0c565b611933906063611bf5565b9050610a758184611be2565b600060208083528351808285015260005b8181101561196c57858101830151858201604001528201611950565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151357600080fd5b600080604083850312156119b557600080fd5b82356119c08161198d565b946020939093013593505050565b6000806000606084860312156119e357600080fd5b505081359360208301359350604090920135919050565b600080600060608486031215611a0f57600080fd5b8335611a1a8161198d565b92506020840135611a2a8161198d565b929592945050506040919091013590565b600060208284031215611a4d57600080fd5b8135610a758161198d565b801515811461151357600080fd5b60008060408385031215611a7957600080fd5b8235611a848161198d565b91506020830135611a9481611a58565b809150509250929050565b600060208284031215611ab157600080fd5b5035919050565b60008060408385031215611acb57600080fd5b82356119c081611a58565b600080600060608486031215611aeb57600080fd5b8335611af681611a58565b95602085013595506040909401359392505050565b600080600060608486031215611b2057600080fd5b8335611b2b8161198d565b92506020840135611b3b8161198d565b91506040840135611b4b8161198d565b809150509250925092565b60008060408385031215611b6957600080fd5b8235611b748161198d565b91506020830135611a948161198d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561089e5761089e611bb9565b8181038181111561089e5761089e611bb9565b808202811582820484141761089e5761089e611bb9565b600082611c2957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611c4057600080fd5b8151610a7581611a58565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c7357600080fd5b8151610a758161198d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cce5784516001600160a01b031683529383019391830191600101611ca9565b50506001600160a01b03969096166060850152505050608001529392505050565b6020808252601e908201527f72656365697665722072656a656374656420455448207472616e73666572000060408201526060019056fea264697066735822122077ccac19247ea63219048f11fcf61a8247f90743e090ae22d3cbc2b0b226981b64736f6c63430008110033