60806040523480156200001157600080fd5b506040518060400160405280600681526020016516151dd9595d60d21b81525060405180604001604052806002815260200161161560f21b81525081600390816200005d9190620011c5565b5060046200006c8282620011c5565b50505062000089620000836200028460201b60201c565b62000288565b733dfc9b7307aa4a7a7aa46e228fd19ca356790c9d620000d2600a620000b1601282620013a6565b620000c090627270e0620013be565b620000cc9190620013d8565b620002da565b620000f1733dfc9b7307aa4a7a7aa46e228fd19ca356790c9d62000320565b620001016109c48060006200038c565b6200010e81600162000564565b6200011b30600162000564565b6200013a737a250d5630b4cf539739df2c5dacb4c659f2488d620005ce565b62000147816001620007e9565b62000154306001620007e9565b6200016260006001620007e9565b6009546200017b906001600160a01b03166001620007e9565b620001b0600a6200018e601282620013a6565b6200019e906335a4e900620013be565b620001aa9190620013d8565b6200084c565b620001e5600a620001c3601282620013a6565b620001d3906335a4e900620013be565b620001df9190620013d8565b6200088c565b6200021b600a620001f8601282620013a6565b620002099064037e11d600620013be565b620002159190620013d8565b620008cc565b62000227605a6200090c565b6200025e81600a6200023b601282620013a6565b6200024c9064037e11d600620013be565b620002589190620013d8565b620009ab565b6200027d733dfc9b7307aa4a7a7aa46e228fd19ca356790c9d62000288565b5062001461565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620002e462000a8a565b60078190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd06476906020015b60405180910390a150565b6200032a62000a8a565b600980546001600160a01b0319166001600160a01b0383161790556200035281600162000564565b6040516001600160a01b03821681527fe7215540a19d10a0780a8d581ae6d35d43689c1db1500fdf1ff5587fff9082c99060200162000315565b6200039662000a8a565b6040805160608101825261ffff80861682528481166020830152831691810191909152620003c990600a9060036200106d565b50600a54620003de9061ffff166000620013fb565b600c805461ffff191661ffff928316179055600a54620004089162010000909104166000620013fb565b600c805463ffff000019166201000061ffff93841602179055600a546200043b91640100000000909104166000620013fb565b600c805461ffff9283166401000000000261ffff60201b19821681179092556109c4908316919092161711801590620004835750600c546109c46201000090910461ffff1611155b8015620004a15750600c546109c464010000000090910461ffff1611155b620005195760405162461bcd60e51b815260206004820152603660248201527f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560448201527f64206d617820746f74616c20666565206f66203235250000000000000000000060648201526084015b60405180910390fd5b6040805161ffff8581168252848116602083015283168183015290517fceb843e633963197bc698f33bff13c2fe41fe4c08aa6750e42b57116d8d92c7a9181900360600190a1505050565b6200056e62000a8a565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df791015b60405180910390a25050565b80600d60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600d60019054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000649573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200066f919062001420565b6001600160a01b031663c9c6539630600d60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006f8919062001420565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000746573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200076c919062001420565b600e80546001600160a01b0319166001600160a01b039290921691909117905562000799816001620007e9565b600e54620007b2906001600160a01b0316600162000ae8565b6040516001600160a01b038216907fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60290600090a250565b620007f362000a8a565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101620005c2565b6200085662000a8a565b60118190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0019060200162000315565b6200089662000a8a565b60128190556040518181527fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d9060200162000315565b620008d662000a8a565b60138190556040518181527fa0dff8a4e8bcaa27b5a2b64bc312f8b338e362bd6cad89f5fe2ae6b8389fb38a9060200162000315565b6200091662000a8a565b62093a80811115620009755760405162461bcd60e51b815260206004820152602160248201527f416e7469626f743a20547261646520636f6f6c646f776e20746f6f206c6f6e676044820152601760f91b606482015260840162000510565b60158190556040518181527f07583f92fee444c67f59bbc03e68bfda63fc2e087769ccc4f2b40360336a54679060200162000315565b6001600160a01b03821662000a035760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000510565b62000a116000838362000b61565b806002600082825462000a2591906200144b565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000a866000838362000eef565b5050565b6005546001600160a01b0316331462000ae65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000510565b565b6001600160a01b0382166000908152600f60205260409020805460ff1916821580159190911790915562000b235762000b23826001620007e9565b816001600160a01b03167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845582604051620005c2911515815260200190565b6001600160a01b03831660009081526006602052604090205460ff1615801562000ba457506001600160a01b03821660009081526006602052604090205460ff16155b62000c085760405162461bcd60e51b815260206004820152602d60248201527f426c61636b6c6973743a2053656e646572206f7220726563697069656e74206960448201526c1cc8189b1858dadb1a5cdd1959609a1b606482015260840162000510565b6001600160a01b0383166000908152600f602052604090205460ff16801562000c4a57506001600160a01b03821660009081526010602052604090205460ff16155b1562000caf5760125481111562000caf5760405162461bcd60e51b815260206004820152602260248201527f4d617854783a2043616e6e6f7420657863656564206d617820627579206c696d6044820152611a5d60f21b606482015260840162000510565b6001600160a01b0382166000908152600f602052604090205460ff16801562000cf157506001600160a01b03831660009081526010602052604090205460ff16155b1562000d575760135481111562000d575760405162461bcd60e51b815260206004820152602360248201527f4d617854783a2043616e6e6f7420657863656564206d61782073656c6c206c696044820152621b5a5d60ea1b606482015260840162000510565b6001600160a01b03831660009081526010602052604090205460ff1662000e17576015546001600160a01b038416600090815260146020526040902054429162000da1916200144b565b111562000e175760405162461bcd60e51b815260206004820152603360248201527f416e7469626f743a205472616e73616374696f6e2073656e646572206973206960448201527f6e20616e74692d626f7420636f6f6c646f776e00000000000000000000000000606482015260840162000510565b6001600160a01b03821660009081526010602052604090205460ff1662000ed7576015546001600160a01b038316600090815260146020526040902054429162000e61916200144b565b111562000ed75760405162461bcd60e51b815260206004820152603660248201527f416e7469626f743a205472616e73616374696f6e20726563697069656e74206960448201527f7320696e20616e74692d626f7420636f6f6c646f776e00000000000000000000606482015260840162000510565b62000eea8383836001600160e01b038416565b505050565b6001600160a01b03821660009081526010602052604090205460ff1662000f8e576011546001600160a01b038316600090815260208190526040902054111562000f8e5760405162461bcd60e51b815260206004820152602960248201527f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c6044820152681b195d081b1a5b5a5d60ba1b606482015260840162000510565b6001600160a01b0383166000908152600f602052604090205460ff16801562000fd057506001600160a01b03821660009081526010602052604090205460ff16155b1562000ff7576001600160a01b038216600090815260146020526040902042905562000ed7565b6001600160a01b0382166000908152600f602052604090205460ff1680156200103957506001600160a01b03831660009081526010602052604090205460ff16155b1562000ed7576001600160a01b038316600090815260146020526040902042905562000eea8383836001600160e01b038416565b600183019183908215620010f85791602002820160005b83821115620010c657835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030262001084565b8015620010f65782816101000a81549061ffff0219169055600201602081600101049283019260010302620010c6565b505b50620011069291506200110a565b5090565b5b808211156200110657600081556001016200110b565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200114c57607f821691505b6020821081036200116d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000eea57600081815260208120601f850160051c810160208610156200119c5750805b601f850160051c820191505b81811015620011bd57828155600101620011a8565b505050505050565b81516001600160401b03811115620011e157620011e162001121565b620011f981620011f2845462001137565b8462001173565b602080601f831160018114620012315760008415620012185750858301515b600019600386901b1c1916600185901b178555620011bd565b600085815260208120601f198616915b82811015620012625788860151825594840194600190910190840162001241565b5085821015620012815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620012e8578160001904821115620012cc57620012cc62001291565b80851615620012da57918102915b93841c9390800290620012ac565b509250929050565b6000826200130157506001620013a0565b816200131057506000620013a0565b8160018114620013295760028114620013345762001354565b6001915050620013a0565b60ff84111562001348576200134862001291565b50506001821b620013a0565b5060208310610133831016604e8410600b841016171562001379575081810a620013a0565b620013858383620012a7565b80600019048211156200139c576200139c62001291565b0290505b92915050565b6000620013b760ff841683620012f0565b9392505050565b8082028115828204841417620013a057620013a062001291565b600082620013f657634e487b7160e01b600052601260045260246000fd5b500490565b61ffff81811683821601908082111562001419576200141962001291565b5092915050565b6000602082840312156200143357600080fd5b81516001600160a01b0381168114620013b757600080fd5b80820180821115620013a057620013a062001291565b61245080620014716000396000f3fe6080604052600436106102605760003560e01c8063715018a611610144578063c0246668116100b6578063dbac26e91161007a578063dbac26e914610767578063dc3f0d0f14610797578063dd62ed3e146107b7578063f112ba72146107d7578063f2fde38b146107ec578063fd1160191461080c57600080fd5b8063c0246668146106ba578063c0a904a2146106da578063c18bc195146106fa578063c26d7be01461071a578063cc274b291461074757600080fd5b80638fffabed116101085780638fffabed1461060f57806395d89b411461062f578063a457c2d714610644578063a9059cbb14610664578063aa4bde2814610684578063aace6cb41461069a57600080fd5b8063715018a614610576578063768565571461058b57806379cc6790146105bb57806388e765ff146105db5780638da5cb5b146105f157600080fd5b8063404e5129116101dd578063502f7446116101a1578063502f7446146104955780635524555d146104ba5780635cce86cd146104da57806366d602ae1461050a5780636a3e8f3d1461052057806370a082311461054057600080fd5b8063404e5129146103d2578063408ccbdf146103f257806342966c681461042557806347313c4b146104455780634fbee1931461046557600080fd5b806323b872dd1161022457806323b872dd146103345780632be32b61146103545780632d99d32e14610376578063313ce5671461039657806339509351146103b257600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102b75780630cdd4234146102e757806318160ddd1461031f57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260075481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102aa610822565b60405161028c91906120d2565b3480156102c357600080fd5b506102d76102d2366004612135565b6108b4565b604051901515815260200161028c565b3480156102f357600080fd5b50600954610307906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561032b57600080fd5b50600254610282565b34801561034057600080fd5b506102d761034f366004612161565b6108ce565b34801561036057600080fd5b5061037461036f3660046121a2565b6108f2565b005b34801561038257600080fd5b506103746103913660046121bb565b610936565b3480156103a257600080fd5b506040516012815260200161028c565b3480156103be57600080fd5b506102d76103cd366004612135565b6109cb565b3480156103de57600080fd5b506103746103ed3660046121bb565b6109ed565b3480156103fe57600080fd5b5061041261040d3660046121a2565b610a55565b60405161ffff909116815260200161028c565b34801561043157600080fd5b506103746104403660046121a2565b610a83565b34801561045157600080fd5b506103746104603660046121f9565b610a90565b34801561047157600080fd5b506102d76104803660046121f9565b600b6020526000908152604090205460ff1681565b3480156104a157600080fd5b50600d546103079061010090046001600160a01b031681565b3480156104c657600080fd5b506104126104d53660046121a2565b610af7565b3480156104e657600080fd5b506102d76104f53660046121f9565b60106020526000908152604090205460ff1681565b34801561051657600080fd5b5061028260135481565b34801561052c57600080fd5b5061037461053b3660046121a2565b610b07565b34801561054c57600080fd5b5061028261055b3660046121f9565b6001600160a01b031660009081526020819052604090205490565b34801561058257600080fd5b50610374610ba1565b34801561059757600080fd5b506102d76105a63660046121f9565b600f6020526000908152604090205460ff1681565b3480156105c757600080fd5b506103746105d6366004612135565b610bb5565b3480156105e757600080fd5b5061028260125481565b3480156105fd57600080fd5b506005546001600160a01b0316610307565b34801561061b57600080fd5b50600e54610307906001600160a01b031681565b34801561063b57600080fd5b506102aa610bca565b34801561065057600080fd5b506102d761065f366004612135565b610bd9565b34801561067057600080fd5b506102d761067f366004612135565b610c54565b34801561069057600080fd5b5061028260115481565b3480156106a657600080fd5b506103746106b5366004612234565b610c62565b3480156106c657600080fd5b506103746106d53660046121bb565b610e22565b3480156106e657600080fd5b506103746106f53660046121bb565b610e82565b34801561070657600080fd5b506103746107153660046121a2565b610ee2565b34801561072657600080fd5b506102826107353660046121f9565b60146020526000908152604090205481565b34801561075357600080fd5b506103746107623660046121a2565b610f1f565b34801561077357600080fd5b506102d76107823660046121f9565b60066020526000908152604090205460ff1681565b3480156107a357600080fd5b506103746107b23660046121a2565b610f5c565b3480156107c357600080fd5b506102826107d2366004612277565b610f99565b3480156107e357600080fd5b50610282610fc4565b3480156107f857600080fd5b506103746108073660046121f9565b610fda565b34801561081857600080fd5b5061028260155481565b606060038054610831906122a5565b80601f016020809104026020016040519081016040528092919081815260200182805461085d906122a5565b80156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b5050505050905090565b6000336108c2818585611050565b60019150505b92915050565b6000336108dc858285611174565b6108e78585856111ee565b506001949350505050565b6108fa6115d6565b60128190556040518181527fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d906020015b60405180910390a150565b61093e6115d6565b600e546001600160a01b03908116908316036109bd5760405162461bcd60e51b815260206004820152603360248201527f44656661756c74526f757465723a2043616e6e6f742072656d6f766520696e696044820152721d1a585b081c185a5c88199c9bdb481b1a5cdd606a1b60648201526084015b60405180910390fd5b6109c78282611630565b5050565b6000336108c28185856109de8383610f99565b6109e891906122f5565b611050565b6109f56115d6565b6001600160a01b038216600081815260066020908152604091829020805460ff191685151590811790915591519182527f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac91015b60405180910390a25050565b600c8160038110610a6557600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b610a8d33826116a5565b50565b610a986115d6565b600980546001600160a01b0319166001600160a01b038316179055610abe816001610e22565b6040516001600160a01b03821681527fe7215540a19d10a0780a8d581ae6d35d43689c1db1500fdf1ff5587fff9082c99060200161092b565b600a8160038110610a6557600080fd5b610b0f6115d6565b62093a80811115610b6c5760405162461bcd60e51b815260206004820152602160248201527f416e7469626f743a20547261646520636f6f6c646f776e20746f6f206c6f6e676044820152601760f91b60648201526084016109b4565b60158190556040518181527f07583f92fee444c67f59bbc03e68bfda63fc2e087769ccc4f2b40360336a54679060200161092b565b610ba96115d6565b610bb360006117ef565b565b610bc0823383611174565b6109c782826116a5565b606060048054610831906122a5565b60003381610be78286610f99565b905083811015610c475760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109b4565b6108e78286868403611050565b6000336108c28185856111ee565b610c6a6115d6565b6040805160608101825261ffff80861682528481166020830152831691810191909152610c9b90600a906003612027565b50600a54610cae9061ffff16600061231e565b600c805461ffff191661ffff928316179055600a54610cd6916201000090910416600061231e565b600c805463ffff000019166201000061ffff93841602179055600a54610d079164010000000090910416600061231e565b600c805461ffff9283166401000000000265ffff0000000019821681179092556109c4908316919092161711801590610d4f5750600c546109c46201000090910461ffff1611155b8015610d6c5750600c546109c464010000000090910461ffff1611155b610dd75760405162461bcd60e51b815260206004820152603660248201527f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560448201527564206d617820746f74616c20666565206f662032352560501b60648201526084016109b4565b6040805161ffff8581168252848116602083015283168183015290517fceb843e633963197bc698f33bff13c2fe41fe4c08aa6750e42b57116d8d92c7a9181900360600190a1505050565b610e2a6115d6565b6001600160a01b0382166000818152600b6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610a49565b610e8a6115d6565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101610a49565b610eea6115d6565b60118190556040518181527f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0019060200161092b565b610f276115d6565b60078190556040518181527f18ff2fc8464635e4f668567019152095047e34d7a2ab4b97661ba4dc7fd064769060200161092b565b610f646115d6565b60138190556040518181527fa0dff8a4e8bcaa27b5a2b64bc312f8b338e362bd6cad89f5fe2ae6b8389fb38a9060200161092b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60006008546000610fd591906122f5565b905090565b610fe26115d6565b6001600160a01b0381166110475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b4565b610a8d816117ef565b6001600160a01b0383166110b25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109b4565b6001600160a01b0382166111135760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109b4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111808484610f99565b905060001981146111e857818110156111db5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109b4565b6111e88484848403611050565b50505050565b60006007546111fb610fc4565b600d54911115915060ff1615801561122c57506001600160a01b0384166000908152600f602052604090205460ff16155b80156112355750805b156113b057600d805460ff19166001179055600060085411156113a5576000600854600061126391906122f5565b9050600061127082611841565b600854479060009084906112849084612340565b61128e9190612357565b9050801561139b576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146112e3576040519150601f19603f3d011682016040523d82523d6000602084013e6112e8565b606091505b505080935050826113545760405162461bcd60e51b815260206004820152603060248201527f546178657344656661756c74526f7574657257616c6c6574436f696e3a20466560448201526f32903a3930b739b332b91032b93937b960811b60648201526084016109b4565b600954604080516001600160a01b039092168252602082018390527f6d151df43ef23095d368ed2fb3be0747859f30bc60493acca2c79149c8ec46ad910160405180910390a15b5050600060085550505b600d805460ff191690555b600d5460ff161580156113c35750600082115b80156113e25750600d546001600160a01b038481166101009092041614155b801561140757506001600160a01b0384166000908152600b602052604090205460ff16155b801561142c57506001600160a01b0383166000908152600b602052604090205460ff16155b156115cb576001600160a01b0384166000908152600f602052604081205460039060ff161561146a57600c5461ffff1615611465575060005b6114bd565b6001600160a01b0385166000908152600f602052604090205460ff16156114a557600c5462010000900461ffff1615611465575060016114bd565b600c54640100000000900461ffff16156114bd575060025b60038160ff1610156115b757612710600c8260ff16600381106114e2576114e2612308565b601091828204019190066002029054906101000a900461ffff1661ffff168561150b9190612340565b6115159190612357565b91506115218285612379565b9350600c8160ff166003811061153957611539612308565b601091828204019190066002029054906101000a900461ffff1661ffff16600a8260ff166003811061156d5761156d612308565b601091828204019190066002029054906101000a900461ffff1661ffff16836115969190612340565b6115a09190612357565b600860008282546115b191906122f5565b90915550505b81156115c8576115c88630846119be565b50505b6111e88484846119be565b6005546001600160a01b03163314610bb35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b4565b6001600160a01b0382166000908152600f60205260409020805460ff1916821580159190911790915561166857611668826001610e82565b816001600160a01b03167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a845582604051610a49911515815260200190565b6001600160a01b0382166117055760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109b4565b61171182600083611b73565b6001600160a01b038216600090815260208190526040902054818110156117855760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109b4565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36117ea83600084611ec3565b505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061187657611876612308565b60200260200101906001600160a01b031690816001600160a01b031681525050600d60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190d919061238c565b8160018151811061192057611920612308565b6001600160a01b039283166020918202929092010152600d5461194b91309161010090041684611050565b600d5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac947906119889085906000908690309042906004016123a9565b600060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050505050565b6001600160a01b038316611a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109b4565b6001600160a01b038216611a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109b4565b611a8f838383611b73565b6001600160a01b03831660009081526020819052604090205481811015611b075760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109b4565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36111e8848484611ec3565b6001600160a01b03831660009081526006602052604090205460ff16158015611bb557506001600160a01b03821660009081526006602052604090205460ff16155b611c175760405162461bcd60e51b815260206004820152602d60248201527f426c61636b6c6973743a2053656e646572206f7220726563697069656e74206960448201526c1cc8189b1858dadb1a5cdd1959609a1b60648201526084016109b4565b6001600160a01b0383166000908152600f602052604090205460ff168015611c5857506001600160a01b03821660009081526010602052604090205460ff16155b15611cba57601254811115611cba5760405162461bcd60e51b815260206004820152602260248201527f4d617854783a2043616e6e6f7420657863656564206d617820627579206c696d6044820152611a5d60f21b60648201526084016109b4565b6001600160a01b0382166000908152600f602052604090205460ff168015611cfb57506001600160a01b03831660009081526010602052604090205460ff16155b15611d5e57601354811115611d5e5760405162461bcd60e51b815260206004820152602360248201527f4d617854783a2043616e6e6f7420657863656564206d61782073656c6c206c696044820152621b5a5d60ea1b60648201526084016109b4565b6001600160a01b03831660009081526010602052604090205460ff16611e0f576015546001600160a01b0384166000908152601460205260409020544291611da5916122f5565b1115611e0f5760405162461bcd60e51b815260206004820152603360248201527f416e7469626f743a205472616e73616374696f6e2073656e6465722069732069604482015272371030b73a3496b137ba1031b7b7b63237bbb760691b60648201526084016109b4565b6001600160a01b03821660009081526010602052604090205460ff166117ea576015546001600160a01b0383166000908152601460205260409020544291611e56916122f5565b11156117ea5760405162461bcd60e51b815260206004820152603660248201527f416e7469626f743a205472616e73616374696f6e20726563697069656e742069604482015275399034b71030b73a3496b137ba1031b7b7b63237bbb760511b60648201526084016109b4565b6001600160a01b03821660009081526010602052604090205460ff16611f5f576011546001600160a01b0383166000908152602081905260409020541115611f5f5760405162461bcd60e51b815260206004820152602960248201527f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c6044820152681b195d081b1a5b5a5d60ba1b60648201526084016109b4565b6001600160a01b0383166000908152600f602052604090205460ff168015611fa057506001600160a01b03821660009081526010602052604090205460ff16155b15611fc357506001600160a01b0316600090815260146020526040902042905550565b6001600160a01b0382166000908152600f602052604090205460ff16801561200457506001600160a01b03831660009081526010602052604090205460ff16155b156117ea5750506001600160a01b03166000908152601460205260409020429055565b6001830191839082156120ad5791602002820160005b8382111561207d57835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030261203d565b80156120ab5782816101000a81549061ffff021916905560020160208160010104928301926001030261207d565b505b506120b99291506120bd565b5090565b5b808211156120b957600081556001016120be565b600060208083528351808285015260005b818110156120ff578581018301518582016040015282016120e3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a8d57600080fd5b6000806040838503121561214857600080fd5b823561215381612120565b946020939093013593505050565b60008060006060848603121561217657600080fd5b833561218181612120565b9250602084013561219181612120565b929592945050506040919091013590565b6000602082840312156121b457600080fd5b5035919050565b600080604083850312156121ce57600080fd5b82356121d981612120565b9150602083013580151581146121ee57600080fd5b809150509250929050565b60006020828403121561220b57600080fd5b813561221681612120565b9392505050565b803561ffff8116811461222f57600080fd5b919050565b60008060006060848603121561224957600080fd5b6122528461221d565b92506122606020850161221d565b915061226e6040850161221d565b90509250925092565b6000806040838503121561228a57600080fd5b823561229581612120565b915060208301356121ee81612120565b600181811c908216806122b957607f821691505b6020821081036122d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108c8576108c86122df565b634e487b7160e01b600052603260045260246000fd5b61ffff818116838216019080821115612339576123396122df565b5092915050565b80820281158282048414176108c8576108c86122df565b60008261237457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108c8576108c86122df565b60006020828403121561239e57600080fd5b815161221681612120565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123f95784516001600160a01b0316835293830193918301916001016123d4565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bec4afe5db70287ce23b223921235d8e26977d212049f8061321059073a9841a64736f6c63430008130033