60c0604052600a805461ffff191690553480156200001c57600080fd5b50604080518082018252600380825262574f5760e81b6020808401918252845180860190955260018552602160f81b90850152825192939262000061929190620006af565b50805162000077906004906020840190620006af565b50505060006200008c620003cd60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d620000fc816001620003d1565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200014257600080fd5b505afa15801562000157573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017d919062000755565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001c657600080fd5b505afa158015620001db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000201919062000755565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200024a57600080fd5b505af11580156200025f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000285919062000755565b6001600160a01b031660a0819052620002a0906001620003d1565b60a051620002b09060016200044b565b600560146bdef376571332906a880000006103e8620002d182600a62000796565b620002dd9190620007b8565b6007556103e8620002f082600a62000796565b620002fc9190620007b8565b6009556127106200030f82600162000796565b6200031b9190620007b8565b600855600c839055600b839055600e829055600d829055600554600680546001600160a01b0319166001600160a01b039092169182179055620003609060016200049f565b6200036d3060016200049f565b6200037c61dead60016200049f565b6200039b620003936005546001600160a01b031690565b6001620003d1565b620003a8306001620003d1565b620003b761dead6001620003d1565b620003c3338262000549565b5050505062000833565b3390565b6005546001600160a01b03163314620004205760405162461bcd60e51b8152602060048201819052602482015260008051602062002b5083398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620004ea5760405162461bcd60e51b8152602060048201819052602482015260008051602062002b50833981519152604482015260640162000417565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000417565b620005bd816002546200064560201b620011bc1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620005f0918390620011bc62000645821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600080620006548385620007db565b905083811015620006a85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000417565b9392505050565b828054620006bd90620007f6565b90600052602060002090601f016020900481019282620006e157600085556200072c565b82601f10620006fc57805160ff19168380011785556200072c565b828001600101855582156200072c579182015b828111156200072c5782518255916020019190600101906200070f565b506200073a9291506200073e565b5090565b5b808211156200073a57600081556001016200073f565b6000602082840312156200076857600080fd5b81516001600160a01b0381168114620006a857600080fd5b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620007b357620007b362000780565b500290565b600082620007d657634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620007f157620007f162000780565b500190565b600181811c908216806200080b57607f821691505b602082108114156200082d57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516122db62000875600039600081816103f20152610c060152600081816102f301528181611cfa01528181611dc20152611dfe01526122db6000f3fe60806040526004361061024a5760003560e01c80638a8c523c11610139578063bbc0c742116100b6578063d85ba0631161007a578063d85ba06314610701578063dd62ed3e14610717578063e2f456051461075d578063eba4c33314610773578063f2fde38b14610793578063f8b45b05146107b357600080fd5b8063bbc0c74214610671578063c02466681461068b578063c18bc195146106ab578063c8c8ebe4146106cb578063d257b34f146106e157600080fd5b80639a7a23d6116100fd5780639a7a23d6146105c1578063a457c2d7146105e1578063a9059cbb14610601578063aacebbe314610621578063b62496f51461064157600080fd5b80638a8c523c146105435780638da5cb5b146105585780639213691314610576578063924de9b71461058c57806395d89b41146105ac57600080fd5b806349bd5a5e116101c7578063715018a61161018b578063715018a6146104b857806371fc4688146104cd5780637571336a146104ed57806375f0a8741461050d5780637bce5a041461052d57600080fd5b806349bd5a5e146103e05780634fbee193146104145780636a486a8e1461044d5780636ddd17131461046357806370a082311461048257600080fd5b80631f3fed8f1161020e5780631f3fed8f1461034c578063203e727e1461036257806323b872dd14610384578063313ce567146103a457806339509351146103c057600080fd5b806306fdde0314610256578063095ea7b31461028157806310d5de53146102b15780631694505e146102e157806318160ddd1461032d57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026b6107c9565b6040516102789190611e6a565b60405180910390f35b34801561028d57600080fd5b506102a161029c366004611ed4565b61085b565b6040519015158152602001610278565b3480156102bd57600080fd5b506102a16102cc366004611f00565b60126020526000908152604090205460ff1681565b3480156102ed57600080fd5b506103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610278565b34801561033957600080fd5b506002545b604051908152602001610278565b34801561035857600080fd5b5061033e600f5481565b34801561036e57600080fd5b5061038261037d366004611f1d565b610872565b005b34801561039057600080fd5b506102a161039f366004611f36565b610958565b3480156103b057600080fd5b5060405160128152602001610278565b3480156103cc57600080fd5b506102a16103db366004611ed4565b6109c1565b3480156103ec57600080fd5b506103157f000000000000000000000000000000000000000000000000000000000000000081565b34801561042057600080fd5b506102a161042f366004611f00565b6001600160a01b031660009081526011602052604090205460ff1690565b34801561045957600080fd5b5061033e600d5481565b34801561046f57600080fd5b50600a546102a190610100900460ff1681565b34801561048e57600080fd5b5061033e61049d366004611f00565b6001600160a01b031660009081526020819052604090205490565b3480156104c457600080fd5b506103826109f7565b3480156104d957600080fd5b506103826104e8366004611f1d565b610a6b565b3480156104f957600080fd5b50610382610508366004611f87565b610af3565b34801561051957600080fd5b50600654610315906001600160a01b031681565b34801561053957600080fd5b5061033e600c5481565b34801561054f57600080fd5b50610382610b48565b34801561056457600080fd5b506005546001600160a01b0316610315565b34801561058257600080fd5b5061033e600e5481565b34801561059857600080fd5b506103826105a7366004611fbc565b610b87565b3480156105b857600080fd5b5061026b610bcb565b3480156105cd57600080fd5b506103826105dc366004611f87565b610bda565b3480156105ed57600080fd5b506102a16105fc366004611ed4565b610cba565b34801561060d57600080fd5b506102a161061c366004611ed4565b610d09565b34801561062d57600080fd5b5061038261063c366004611f00565b610d16565b34801561064d57600080fd5b506102a161065c366004611f00565b60136020526000908152604090205460ff1681565b34801561067d57600080fd5b50600a546102a19060ff1681565b34801561069757600080fd5b506103826106a6366004611f87565b610d9d565b3480156106b757600080fd5b506103826106c6366004611f1d565b610e26565b3480156106d757600080fd5b5061033e60075481565b3480156106ed57600080fd5b506102a16106fc366004611f1d565b610ef7565b34801561070d57600080fd5b5061033e600b5481565b34801561072357600080fd5b5061033e610732366004611fd7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076957600080fd5b5061033e60085481565b34801561077f57600080fd5b5061038261078e366004611f1d565b61104c565b34801561079f57600080fd5b506103826107ae366004611f00565b6110d1565b3480156107bf57600080fd5b5061033e60095481565b6060600380546107d890612010565b80601f016020809104026020016040519081016040528092919081815260200182805461080490612010565b80156108515780601f1061082657610100808354040283529160200191610851565b820191906000526020600020905b81548152906001019060200180831161083457829003601f168201915b5050505050905090565b6000610868338484611222565b5060015b92915050565b6005546001600160a01b031633146108a55760405162461bcd60e51b815260040161089c9061204b565b60405180910390fd5b670de0b6b3a76400006103e86108ba60025490565b6108c5906001612096565b6108cf91906120b5565b6108d991906120b5565b8110156109405760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b606482015260840161089c565b61095281670de0b6b3a7640000612096565b60075550565b6000610965848484611347565b6109b784336109b285604051806060016040528060288152602001612259602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611979565b611222565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108689185906109b290866111bc565b6005546001600160a01b03163314610a215760405162461bcd60e51b815260040161089c9061204b565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a955760405162461bcd60e51b815260040161089c9061204b565b600c819055600b8190556014811115610af05760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c657373000000604482015260640161089c565b50565b6005546001600160a01b03163314610b1d5760405162461bcd60e51b815260040161089c9061204b565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610b725760405162461bcd60e51b815260040161089c9061204b565b600a805461ffff191661010117905543601055565b6005546001600160a01b03163314610bb15760405162461bcd60e51b815260040161089c9061204b565b600a80549115156101000261ff0019909216919091179055565b6060600480546107d890612010565b6005546001600160a01b03163314610c045760405162461bcd60e51b815260040161089c9061204b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610cac5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161089c565b610cb682826119b3565b5050565b600061086833846109b285604051806060016040528060258152602001612281602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190611979565b6000610868338484611347565b6005546001600160a01b03163314610d405760405162461bcd60e51b815260040161089c9061204b565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610dc75760405162461bcd60e51b815260040161089c9061204b565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610e505760405162461bcd60e51b815260040161089c9061204b565b670de0b6b3a76400006103e8610e6560025490565b610e70906005612096565b610e7a91906120b5565b610e8491906120b5565b811015610edf5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b606482015260840161089c565b610ef181670de0b6b3a7640000612096565b60095550565b6005546000906001600160a01b03163314610f245760405162461bcd60e51b815260040161089c9061204b565b620186a0610f3160025490565b610f3c906001612096565b610f4691906120b5565b821015610fb35760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161089c565b6103e8610fbf60025490565b610fca906014612096565b610fd491906120b5565b82111561103e5760405162461bcd60e51b815260206004820152603260248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527137101912903a37ba30b61039bab838363c9760711b606482015260840161089c565b50600881905560015b919050565b6005546001600160a01b031633146110765760405162461bcd60e51b815260040161089c9061204b565b600e819055600d8190556014811115610af05760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c657373000000604482015260640161089c565b6005546001600160a01b031633146110fb5760405162461bcd60e51b815260040161089c9061204b565b6001600160a01b0381166111605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111c983856120d7565b90508381101561121b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161089c565b9392505050565b6001600160a01b0383166112845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089c565b6001600160a01b0382166112e55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089c565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661136d5760405162461bcd60e51b815260040161089c906120ef565b6001600160a01b0382166113935760405162461bcd60e51b815260040161089c90612134565b806113a9576113a483836000611a07565b505050565b6005546001600160a01b038481169116148015906113d557506005546001600160a01b03838116911614155b80156113e957506001600160a01b03821615155b801561140057506001600160a01b03821661dead14155b80156114165750600554600160a01b900460ff16155b1561170f57600a5460ff166114a9576001600160a01b03831660009081526011602052604090205460ff168061146457506001600160a01b03821660009081526011602052604090205460ff165b6114a95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089c565b6001600160a01b03831660009081526013602052604090205460ff1680156114ea57506001600160a01b03821660009081526012602052604090205460ff16155b156115ce5760075481111561155f5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161089c565b6009546001600160a01b03831660009081526020819052604090205461158590836120d7565b11156115c95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b61170f565b6001600160a01b03821660009081526013602052604090205460ff16801561160f57506001600160a01b03831660009081526012602052604090205460ff16155b15611685576007548111156115c95760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161089c565b6001600160a01b03821660009081526012602052604090205460ff1661170f576009546001600160a01b0383166000908152602081905260409020546116cb90836120d7565b111561170f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161089c565b30600090815260208181526040808320546008546005546001600160a01b0389168652601190945291909320549083101591600160a01b900460ff9081161591168061177357506001600160a01b03851660009081526011602052604090205460ff165b1561177c575060005b6000811561189e576001600160a01b03861660009081526013602052604090205460ff1680156117ae57506000600d54115b1561180c576117d360646117cd600d5488611b1090919063ffffffff16565b90611b8f565b9050600d54600e54826117e69190612096565b6117f091906120b5565b600f600082825461180191906120d7565b909155506118809050565b6001600160a01b03871660009081526013602052604090205460ff16801561183657506000600b54115b1561188057600b54600c5461185060646117cd8985611b10565b92508161185d8285612096565b61186791906120b5565b600f600082825461187891906120d7565b909155505050505b801561189157611891873083611a07565b61189b8186612177565b94505b8280156118b25750600a54610100900460ff165b80156118c85750600554600160a01b900460ff16155b80156118ed57506001600160a01b03871660009081526013602052604090205460ff16155b801561191257506001600160a01b03871660009081526011602052604090205460ff16155b801561193757506001600160a01b03861660009081526011602052604090205460ff16155b15611965576005805460ff60a01b1916600160a01b179055611957611bd1565b6005805460ff60a01b191690555b611970878787611a07565b50505050505050565b6000818484111561199d5760405162461bcd60e51b815260040161089c9190611e6a565b5060006119aa8486612177565b95945050505050565b6001600160a01b038216600081815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611a2d5760405162461bcd60e51b815260040161089c906120ef565b6001600160a01b038216611a535760405162461bcd60e51b815260040161089c90612134565b611a9081604051806060016040528060268152602001612233602691396001600160a01b0386166000908152602081905260409020549190611979565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611abf90826111bc565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161133a565b600082611b1f5750600061086c565b6000611b2b8385612096565b905082611b3885836120b5565b1461121b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161089c565b600061121b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c75565b306000908152602081905260408120549081611beb575050565b600854611bf9906014612096565b821115611c1157600854611c0e906014612096565b91505b81611c1b81611ca3565b6006546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611c68576040519150601f19603f3d011682016040523d82523d6000602084013e611c6d565b606091505b505050505050565b60008183611c965760405162461bcd60e51b815260040161089c9190611e6a565b5060006119aa84866120b5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cd857611cd861218e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5157600080fd5b505afa158015611d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8991906121a4565b81600181518110611d9c57611d9c61218e565b60200260200101906001600160a01b031690816001600160a01b031681525050611de7307f000000000000000000000000000000000000000000000000000000000000000084611222565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611e3c9085906000908690309042906004016121c1565b600060405180830381600087803b158015611e5657600080fd5b505af1158015611c6d573d6000803e3d6000fd5b600060208083528351808285015260005b81811015611e9757858101830151858201604001528201611e7b565b81811115611ea9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610af057600080fd5b60008060408385031215611ee757600080fd5b8235611ef281611ebf565b946020939093013593505050565b600060208284031215611f1257600080fd5b813561121b81611ebf565b600060208284031215611f2f57600080fd5b5035919050565b600080600060608486031215611f4b57600080fd5b8335611f5681611ebf565b92506020840135611f6681611ebf565b929592945050506040919091013590565b8035801515811461104757600080fd5b60008060408385031215611f9a57600080fd5b8235611fa581611ebf565b9150611fb360208401611f77565b90509250929050565b600060208284031215611fce57600080fd5b61121b82611f77565b60008060408385031215611fea57600080fd5b8235611ff581611ebf565b9150602083013561200581611ebf565b809150509250929050565b600181811c9082168061202457607f821691505b6020821081141561204557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156120b0576120b0612080565b500290565b6000826120d257634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156120ea576120ea612080565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008282101561218957612189612080565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121b657600080fd5b815161121b81611ebf565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122115784516001600160a01b0316835293830193918301916001016121ec565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204e218c86f8bbfa845f3f6a34c2705dace4ae18745c330210c199d7aa6e541c2264736f6c634300080900334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572