0x60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a3b578063f2fde38b14610a5b578063f84ba65d14610a7b578063f872858a14610a9b57600080fd5b8063e207a92b146109c5578063ec28438a146109e5578063ef422a1814610a05578063f0cd1dac14610a2557600080fd5b8063d158272d116100dc578063d158272d14610923578063da00097d14610948578063dc44b6a014610969578063dd62ed3e1461097f57600080fd5b8063c816841b146108bd578063c8607952146108dd578063c867d60b146108f357600080fd5b8063a457c2d71161016f578063b831671911610149578063b831671914610851578063c2d4640e14610867578063c49b9a8014610887578063c5d24189146108a757600080fd5b8063a457c2d7146107f1578063a5d69d1f14610811578063a9059cbb1461083157600080fd5b80638da5cb5b116101ab5780638da5cb5b14610793578063914eb66a146107b157806395d89b41146107c6578063a08e671f146107db57600080fd5b806382eefb431461073757806388790a681461074d5780638b42507f1461076357600080fd5b80633ecad271116102ab5780635d608d671161024957806370a082311161022357806370a08231146106b557806375b08937146106eb5780637d1db4a51461070b578063807c2d9c1461072157600080fd5b80635d608d6714610672578063619e1e361461068957806361a23c691461069f57600080fd5b80634cb80fd5116102855780634cb80fd5146105ec5780635342acb41461060c57806357a5802f1461063c5780635881f3ef1461065257600080fd5b80633ecad2711461057b5780634a74bb02146105ab5780634b06049a146105cc57600080fd5b80632198cf6c116103185780632b112e49116102f25780632b112e4914610504578063313ce56714610519578063395093511461053b5780633b97084a1461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b057806327c8f835146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610abc565b6040516103a6919061231b565b3480156103dd57600080fd5b506103f16103ec366004612370565b610b4e565b005b3480156103ff57600080fd5b5061041361040e3660046123b4565b610bac565b60405190151581526020016103a6565b34801561042f57600080fd5b50601d54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b366004612370565b610bc3565b34801561049c57600080fd5b506103f16104ab3660046123f5565b610c12565b3480156104bc57600080fd5b506104136104cb36600461242a565b610c67565b3480156104dc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000dead81565b34801561051057600080fd5b5061039c610cd2565b34801561052557600080fd5b5060045460405160ff90911681526020016103a6565b34801561054757600080fd5b506104136105563660046123b4565b610d1c565b34801561056757600080fd5b506103f161057636600461246b565b610d52565b34801561058757600080fd5b50610413610596366004612484565b600b6020526000908152604090205460ff1681565b3480156105b757600080fd5b50601e5461041390600160a81b900460ff1681565b3480156105d857600080fd5b50600554610443906001600160a01b031681565b3480156105f857600080fd5b506103f1610607366004612484565b610d81565b34801561061857600080fd5b50610413610627366004612484565b60086020526000908152604090205460ff1681565b34801561064857600080fd5b5061039c60125481565b34801561065e57600080fd5b5061044361066d366004612484565b610dd3565b34801561067e57600080fd5b506103f16000601c55565b34801561069557600080fd5b5061039c60115481565b3480156106ab57600080fd5b5061039c60135481565b3480156106c157600080fd5b5061039c6106d0366004612484565b6001600160a01b031660009081526006602052604090205490565b3480156106f757600080fd5b506103f1610706366004612484565b611165565b34801561071757600080fd5b5061039c60195481565b34801561072d57600080fd5b5061039c601a5481565b34801561074357600080fd5b5061039c60165481565b34801561075957600080fd5b5061039c600f5481565b34801561076f57600080fd5b5061041361077e366004612484565b600a6020526000908152604090205460ff1681565b34801561079f57600080fd5b506000546001600160a01b0316610443565b3480156107bd57600080fd5b506103f16111b1565b3480156107d257600080fd5b506103c4611225565b3480156107e757600080fd5b5061039c60175481565b3480156107fd57600080fd5b5061041361080c3660046123b4565b611234565b34801561081d57600080fd5b506103f161082c3660046124a1565b611283565b34801561083d57600080fd5b5061041361084c3660046123b4565b6112cb565b34801561085d57600080fd5b5061039c600e5481565b34801561087357600080fd5b506103f1610882366004612370565b6112d8565b34801561089357600080fd5b506103f16108a23660046124a1565b611327565b3480156108b357600080fd5b5061039c600d5481565b3480156108c957600080fd5b50601e54610443906001600160a01b031681565b3480156108e957600080fd5b5061039c60105481565b3480156108ff57600080fd5b5061041361090e366004612484565b60096020526000908152604090205460ff1681565b34801561092f57600080fd5b506004546104439061010090046001600160a01b031681565b34801561095457600080fd5b50601e5461041390600160b01b900460ff1681565b34801561097557600080fd5b5061039c600c5481565b34801561098b57600080fd5b5061039c61099a3660046124bc565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109d157600080fd5b506103f16109e0366004612484565b6113a9565b3480156109f157600080fd5b506103f1610a0036600461246b565b6113f7565b348015610a1157600080fd5b506103f1610a203660046123f5565b61149a565b348015610a3157600080fd5b5061039c60155481565b348015610a4757600080fd5b506103f1610a5636600461246b565b6114ef565b348015610a6757600080fd5b506103f1610a76366004612484565b61151e565b348015610a8757600080fd5b506103f1610a963660046123f5565b611608565b348015610aa757600080fd5b50601e5461041390600160b81b900460ff1681565b606060028054610acb906124f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610af7906124f5565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b7890612530565b60405180910390fd5b600f83905560108290556011819055610ba481610b9e858561165d565b9061165d565b601655505050565b6000610bb93384846116bc565b5060015b92915050565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610b7890612530565b600c839055600d829055600e819055610c0a81610b9e858561165d565b601555505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c748484846117e0565b50610cc78433610cc2856040518060600160405280602881526020016126ee602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611baf565b6116bc565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260066020526040812054601854610d1791611be9565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bb9918590610cc2908661165d565b6000546001600160a01b03163314610d7c5760405162461bcd60e51b8152600401610b7890612530565b601b55565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610b7890612530565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610b7890612530565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3c57600080fd5b505afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190612565565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ebc57600080fd5b505afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190612565565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f3a57600080fd5b505afa158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f729190612565565b91506001600160a01b0382166110f657806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fbb57600080fd5b505afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff39190612565565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612565565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f39190612565565b91505b601e80546001600160a01b03199081166001600160a01b038581169182178455601d8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b0316331461118f5760405162461bcd60e51b8152600401610b7890612530565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111db5760405162461bcd60e51b8152600401610b7890612530565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610acb906124f5565b6000610bb93384610cc285604051806060016040528060258152602001612716602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611baf565b6000546001600160a01b031633146112ad5760405162461bcd60e51b8152600401610b7890612530565b601e8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cc73384846117e0565b6000546001600160a01b031633146113025760405162461bcd60e51b8152600401610b7890612530565b60128390556013829055601481905561131f81610b9e858561165d565b601755505050565b6000546001600160a01b031633146113515760405162461bcd60e51b8152600401610b7890612530565b601e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061139e90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146113d35760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610b7890612530565b668e1bc9bf0400008111156114955760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b78565b601955565b6000546001600160a01b031633146114c45760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115195760405162461bcd60e51b8152600401610b7890612530565b601a55565b6000546001600160a01b031633146115485760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b0381166115ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116325760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008061166a8385612598565b905083811015610ccb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b6001600160a01b03831661171e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b78565b6001600160a01b03821661177f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b78565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b78565b6001600160a01b0383166118a85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b78565b601e54600160a01b900460ff16156118cc576118c5848484611c2b565b9050610ccb565b6001600160a01b0384166000908152600a602052604090205460ff1615801561190e57506001600160a01b0383166000908152600a602052604090205460ff16155b15611976576019548211156119765760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b78565b30600090815260066020526040902054601b54811080159081906119a45750601e54600160a01b900460ff16155b80156119c957506001600160a01b0386166000908152600b602052604090205460ff16155b80156119de5750601e54600160a81b900460ff165b15611a0457601e54600160b01b900460ff16156119fb57601b5491505b611a0482611d11565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611a56918690611baf565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611aa357506001600160a01b03861660009081526008602052604090205460ff165b611ab757611ab2878787611e4c565b611ab9565b845b601e54909150600160b81b900460ff168015611aee57506001600160a01b03861660009081526009602052604090205460ff16155b15611b2457601a54611b1982610b9e896001600160a01b031660009081526006602052604090205490565b1115611b2457600080fd5b6001600160a01b038616600090815260066020526040902054611b47908261165d565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b9b9085815260200190565b60405180910390a360019350505050610ccb565b60008184841115611bd35760405162461bcd60e51b8152600401610b78919061231b565b506000611be084866125b0565b95945050505050565b6000610ccb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611baf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611c7c918490611baf565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611cab908361165d565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cff9086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b179055601754601254600091611d4791600291611d419182908790611f6b565b90611fea565b90506000611d558383611be9565b9050611d608161202c565b6012544790600090611d8090611d77906002611fea565b60175490611be9565b90506000611da26002611d4184611d4160125488611f6b90919063ffffffff16565b90506000611dbf83611d4160145487611f6b90919063ffffffff16565b90506000611dd782611dd18786611be9565b90611be9565b90508015611dfa57600454611dfa9061010090046001600160a01b0316826121ce565b8115611e1657600554611e16906001600160a01b0316836121ce565b600083118015611e265750600087115b15611e3557611e358784612209565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611e9057611e896064611d4160155486611f6b90919063ffffffff16565b9050611ee7565b6001600160a01b0384166000908152600b602052604090205460ff1615611ee7576001601c5410611ed557611e896064611d4160165486611f6b90919063ffffffff16565b611ee46064611d418582611f6b565b90505b8015611f615730600090815260066020526040902054611f07908261165d565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f589085815260200190565b60405180910390a35b611be08382611be9565b600082611f7a57506000610bbd565b6000611f8683856125c7565b905082611f9385836125e6565b14610ccb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b6000610ccb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ed565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061206157612061612608565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120b557600080fd5b505afa1580156120c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ed9190612565565b8160018151811061210057612100612608565b6001600160a01b039283166020918202929092010152601d5461212691309116846116bc565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061215f908590600090869030904290600401612662565b600060405180830381600087803b15801561217957600080fd5b505af115801561218d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121c292919061269e565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612204573d6000803e3d6000fd5b505050565b601d546122219030906001600160a01b0316846116bc565b601d546001600160a01b031663f305d71982308560008061224a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156122ad57600080fd5b505af11580156122c1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122e691906126bf565b5050505050565b6000818361230e5760405162461bcd60e51b8152600401610b78919061231b565b506000611be084866125e6565b600060208083528351808285015260005b818110156123485785810183015185820160400152820161232c565b8181111561235a576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561238557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146123b157600080fd5b50565b600080604083850312156123c757600080fd5b82356123d28161239c565b946020939093013593505050565b803580151581146123f057600080fd5b919050565b6000806040838503121561240857600080fd5b82356124138161239c565b9150612421602084016123e0565b90509250929050565b60008060006060848603121561243f57600080fd5b833561244a8161239c565b9250602084013561245a8161239c565b929592945050506040919091013590565b60006020828403121561247d57600080fd5b5035919050565b60006020828403121561249657600080fd5b8135610ccb8161239c565b6000602082840312156124b357600080fd5b610ccb826123e0565b600080604083850312156124cf57600080fd5b82356124da8161239c565b915060208301356124ea8161239c565b809150509250929050565b600181811c9082168061250957607f821691505b6020821081141561252a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561257757600080fd5b8151610ccb8161239c565b634e487b7160e01b600052601160045260246000fd5b600082198211156125ab576125ab612582565b500190565b6000828210156125c2576125c2612582565b500390565b60008160001904831182151516156125e1576125e1612582565b500290565b60008261260357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156126575781516001600160a01b031687529582019590820190600101612632565b509495945050505050565b85815284602082015260a06040820152600061268160a083018661261e565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006126b7604083018461261e565b949350505050565b6000806000606084860312156126d457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d2f335426712e7495e0dc16214b3a585a0b9ea105dd2c7f5b075ad32e6a4a66964736f6c63430008090033
0x60e0604052600e60a08190526d2220a721a4a7239021a7a32324a760911b60c090815262000031916002919062000648565b506040805180820190915260068082526521a7a32324a760d11b6020909201918252620000619160039162000648565b506004805474de4cdfedecd7e7c760f3f3f8fa3da6ec58a347da096001600160a81b0319909116179055600580546001600160a01b03191673de4cdfedecd7e7c760f3f3f8fa3da6ec58a347da17905561dead6080526000600c819055600d819055600e819055600f8190556010819055601181905560128190556013819055601481905560158190556016819055601755620001056009641029c1230062000704565b64ffffffffff16601855601854601955601854601a5561271060185460056200012f919062000734565b6200013b919062000756565b601b556002601c55601e805462ffffff60a81b19166201000160a81b1790553480156200016757600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fc57600080fd5b505afa15801562000211573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000237919062000779565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028057600080fd5b505afa15801562000295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bb919062000779565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200030457600080fd5b505af115801562000319573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033f919062000779565b601e80546001600160a01b039283166001600160a01b031991821617909155601d8054928416929091168217905560185430600090815260076020908152604080832094835293905291822055600190600890620003a56000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260088352208054909216600117909155600e54600d54600c546200041b936200040792906200165d620005db821b17901c565b620005db60201b6200165d1790919060201c565b6015819055506200044660115462000407601054600f54620005db60201b6200165d1790919060201c565b6016819055506200047160145462000407601354601254620005db60201b6200165d1790919060201c565b6017556001600960006200048d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a90620004fd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a8452828120805486166001908117909155601e549092168152600b90935290822080549093161790915560185490600690620005693390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601854604051620005cc91815260200190565b60405180910390a350620007fc565b600080620005ea8385620007a4565b905083811015620006415760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b8280546200065690620007bf565b90600052602060002090601f0160209004810192826200067a5760008555620006c5565b82601f106200069557805160ff1916838001178555620006c5565b82800160010185558215620006c5579182015b82811115620006c5578251825591602001919060010190620006a8565b50620006d3929150620006d7565b5090565b5b80821115620006d35760008155600101620006d8565b634e487b7160e01b600052601160045260246000fd5b600064ffffffffff808316818516818304811182151516156200072b576200072b620006ee565b02949350505050565b6000816000190483118215151615620007515762000751620006ee565b500290565b6000826200077457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200078c57600080fd5b81516001600160a01b03811681146200064157600080fd5b60008219821115620007ba57620007ba620006ee565b500190565b600181811c90821680620007d457607f821691505b60208210811415620007f657634e487b7160e01b600052602260045260246000fd5b50919050565b6080516127706200081f600039600081816104e20152610cd401526127706000f3fe60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a3b578063f2fde38b14610a5b578063f84ba65d14610a7b578063f872858a14610a9b57600080fd5b8063e207a92b146109c5578063ec28438a146109e5578063ef422a1814610a05578063f0cd1dac14610a2557600080fd5b8063d158272d116100dc578063d158272d14610923578063da00097d14610948578063dc44b6a014610969578063dd62ed3e1461097f57600080fd5b8063c816841b146108bd578063c8607952146108dd578063c867d60b146108f357600080fd5b8063a457c2d71161016f578063b831671911610149578063b831671914610851578063c2d4640e14610867578063c49b9a8014610887578063c5d24189146108a757600080fd5b8063a457c2d7146107f1578063a5d69d1f14610811578063a9059cbb1461083157600080fd5b80638da5cb5b116101ab5780638da5cb5b14610793578063914eb66a146107b157806395d89b41146107c6578063a08e671f146107db57600080fd5b806382eefb431461073757806388790a681461074d5780638b42507f1461076357600080fd5b80633ecad271116102ab5780635d608d671161024957806370a082311161022357806370a08231146106b557806375b08937146106eb5780637d1db4a51461070b578063807c2d9c1461072157600080fd5b80635d608d6714610672578063619e1e361461068957806361a23c691461069f57600080fd5b80634cb80fd5116102855780634cb80fd5146105ec5780635342acb41461060c57806357a5802f1461063c5780635881f3ef1461065257600080fd5b80633ecad2711461057b5780634a74bb02146105ab5780634b06049a146105cc57600080fd5b80632198cf6c116103185780632b112e49116102f25780632b112e4914610504578063313ce56714610519578063395093511461053b5780633b97084a1461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b057806327c8f835146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610abc565b6040516103a6919061231b565b3480156103dd57600080fd5b506103f16103ec366004612370565b610b4e565b005b3480156103ff57600080fd5b5061041361040e3660046123b4565b610bac565b60405190151581526020016103a6565b34801561042f57600080fd5b50601d54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b366004612370565b610bc3565b34801561049c57600080fd5b506103f16104ab3660046123f5565b610c12565b3480156104bc57600080fd5b506104136104cb36600461242a565b610c67565b3480156104dc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000000081565b34801561051057600080fd5b5061039c610cd2565b34801561052557600080fd5b5060045460405160ff90911681526020016103a6565b34801561054757600080fd5b506104136105563660046123b4565b610d1c565b34801561056757600080fd5b506103f161057636600461246b565b610d52565b34801561058757600080fd5b50610413610596366004612484565b600b6020526000908152604090205460ff1681565b3480156105b757600080fd5b50601e5461041390600160a81b900460ff1681565b3480156105d857600080fd5b50600554610443906001600160a01b031681565b3480156105f857600080fd5b506103f1610607366004612484565b610d81565b34801561061857600080fd5b50610413610627366004612484565b60086020526000908152604090205460ff1681565b34801561064857600080fd5b5061039c60125481565b34801561065e57600080fd5b5061044361066d366004612484565b610dd3565b34801561067e57600080fd5b506103f16000601c55565b34801561069557600080fd5b5061039c60115481565b3480156106ab57600080fd5b5061039c60135481565b3480156106c157600080fd5b5061039c6106d0366004612484565b6001600160a01b031660009081526006602052604090205490565b3480156106f757600080fd5b506103f1610706366004612484565b611165565b34801561071757600080fd5b5061039c60195481565b34801561072d57600080fd5b5061039c601a5481565b34801561074357600080fd5b5061039c60165481565b34801561075957600080fd5b5061039c600f5481565b34801561076f57600080fd5b5061041361077e366004612484565b600a6020526000908152604090205460ff1681565b34801561079f57600080fd5b506000546001600160a01b0316610443565b3480156107bd57600080fd5b506103f16111b1565b3480156107d257600080fd5b506103c4611225565b3480156107e757600080fd5b5061039c60175481565b3480156107fd57600080fd5b5061041361080c3660046123b4565b611234565b34801561081d57600080fd5b506103f161082c3660046124a1565b611283565b34801561083d57600080fd5b5061041361084c3660046123b4565b6112cb565b34801561085d57600080fd5b5061039c600e5481565b34801561087357600080fd5b506103f1610882366004612370565b6112d8565b34801561089357600080fd5b506103f16108a23660046124a1565b611327565b3480156108b357600080fd5b5061039c600d5481565b3480156108c957600080fd5b50601e54610443906001600160a01b031681565b3480156108e957600080fd5b5061039c60105481565b3480156108ff57600080fd5b5061041361090e366004612484565b60096020526000908152604090205460ff1681565b34801561092f57600080fd5b506004546104439061010090046001600160a01b031681565b34801561095457600080fd5b50601e5461041390600160b01b900460ff1681565b34801561097557600080fd5b5061039c600c5481565b34801561098b57600080fd5b5061039c61099a3660046124bc565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109d157600080fd5b506103f16109e0366004612484565b6113a9565b3480156109f157600080fd5b506103f1610a0036600461246b565b6113f7565b348015610a1157600080fd5b506103f1610a203660046123f5565b61149a565b348015610a3157600080fd5b5061039c60155481565b348015610a4757600080fd5b506103f1610a5636600461246b565b6114ef565b348015610a6757600080fd5b506103f1610a76366004612484565b61151e565b348015610a8757600080fd5b506103f1610a963660046123f5565b611608565b348015610aa757600080fd5b50601e5461041390600160b81b900460ff1681565b606060028054610acb906124f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610af7906124f5565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b7890612530565b60405180910390fd5b600f83905560108290556011819055610ba481610b9e858561165d565b9061165d565b601655505050565b6000610bb93384846116bc565b5060015b92915050565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610b7890612530565b600c839055600d829055600e819055610c0a81610b9e858561165d565b601555505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c748484846117e0565b50610cc78433610cc2856040518060600160405280602881526020016126ee602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611baf565b6116bc565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601854610d1791611be9565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bb9918590610cc2908661165d565b6000546001600160a01b03163314610d7c5760405162461bcd60e51b8152600401610b7890612530565b601b55565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610b7890612530565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610b7890612530565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3c57600080fd5b505afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190612565565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ebc57600080fd5b505afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190612565565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f3a57600080fd5b505afa158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f729190612565565b91506001600160a01b0382166110f657806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fbb57600080fd5b505afa158015610fcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff39190612565565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612565565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f39190612565565b91505b601e80546001600160a01b03199081166001600160a01b038581169182178455601d8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b0316331461118f5760405162461bcd60e51b8152600401610b7890612530565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111db5760405162461bcd60e51b8152600401610b7890612530565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610acb906124f5565b6000610bb93384610cc285604051806060016040528060258152602001612716602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611baf565b6000546001600160a01b031633146112ad5760405162461bcd60e51b8152600401610b7890612530565b601e8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cc73384846117e0565b6000546001600160a01b031633146113025760405162461bcd60e51b8152600401610b7890612530565b60128390556013829055601481905561131f81610b9e858561165d565b601755505050565b6000546001600160a01b031633146113515760405162461bcd60e51b8152600401610b7890612530565b601e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061139e90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146113d35760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610b7890612530565b668e1bc9bf0400008111156114955760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b78565b601955565b6000546001600160a01b031633146114c45760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115195760405162461bcd60e51b8152600401610b7890612530565b601a55565b6000546001600160a01b031633146115485760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b0381166115ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116325760405162461bcd60e51b8152600401610b7890612530565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008061166a8385612598565b905083811015610ccb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b6001600160a01b03831661171e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b78565b6001600160a01b03821661177f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b78565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b78565b6001600160a01b0383166118a85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b78565b601e54600160a01b900460ff16156118cc576118c5848484611c2b565b9050610ccb565b6001600160a01b0384166000908152600a602052604090205460ff1615801561190e57506001600160a01b0383166000908152600a602052604090205460ff16155b15611976576019548211156119765760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b78565b30600090815260066020526040902054601b54811080159081906119a45750601e54600160a01b900460ff16155b80156119c957506001600160a01b0386166000908152600b602052604090205460ff16155b80156119de5750601e54600160a81b900460ff165b15611a0457601e54600160b01b900460ff16156119fb57601b5491505b611a0482611d11565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611a56918690611baf565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611aa357506001600160a01b03861660009081526008602052604090205460ff165b611ab757611ab2878787611e4c565b611ab9565b845b601e54909150600160b81b900460ff168015611aee57506001600160a01b03861660009081526009602052604090205460ff16155b15611b2457601a54611b1982610b9e896001600160a01b031660009081526006602052604090205490565b1115611b2457600080fd5b6001600160a01b038616600090815260066020526040902054611b47908261165d565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b9b9085815260200190565b60405180910390a360019350505050610ccb565b60008184841115611bd35760405162461bcd60e51b8152600401610b78919061231b565b506000611be084866125b0565b95945050505050565b6000610ccb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611baf565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611c7c918490611baf565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611cab908361165d565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cff9086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b179055601754601254600091611d4791600291611d419182908790611f6b565b90611fea565b90506000611d558383611be9565b9050611d608161202c565b6012544790600090611d8090611d77906002611fea565b60175490611be9565b90506000611da26002611d4184611d4160125488611f6b90919063ffffffff16565b90506000611dbf83611d4160145487611f6b90919063ffffffff16565b90506000611dd782611dd18786611be9565b90611be9565b90508015611dfa57600454611dfa9061010090046001600160a01b0316826121ce565b8115611e1657600554611e16906001600160a01b0316836121ce565b600083118015611e265750600087115b15611e3557611e358784612209565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611e9057611e896064611d4160155486611f6b90919063ffffffff16565b9050611ee7565b6001600160a01b0384166000908152600b602052604090205460ff1615611ee7576001601c5410611ed557611e896064611d4160165486611f6b90919063ffffffff16565b611ee46064611d418582611f6b565b90505b8015611f615730600090815260066020526040902054611f07908261165d565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f589085815260200190565b60405180910390a35b611be08382611be9565b600082611f7a57506000610bbd565b6000611f8683856125c7565b905082611f9385836125e6565b14610ccb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b6000610ccb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ed565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061206157612061612608565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120b557600080fd5b505afa1580156120c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ed9190612565565b8160018151811061210057612100612608565b6001600160a01b039283166020918202929092010152601d5461212691309116846116bc565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061215f908590600090869030904290600401612662565b600060405180830381600087803b15801561217957600080fd5b505af115801561218d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516121c292919061269e565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612204573d6000803e3d6000fd5b505050565b601d546122219030906001600160a01b0316846116bc565b601d546001600160a01b031663f305d71982308560008061224a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156122ad57600080fd5b505af11580156122c1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122e691906126bf565b5050505050565b6000818361230e5760405162461bcd60e51b8152600401610b78919061231b565b506000611be084866125e6565b600060208083528351808285015260005b818110156123485785810183015185820160400152820161232c565b8181111561235a576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561238557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146123b157600080fd5b50565b600080604083850312156123c757600080fd5b82356123d28161239c565b946020939093013593505050565b803580151581146123f057600080fd5b919050565b6000806040838503121561240857600080fd5b82356124138161239c565b9150612421602084016123e0565b90509250929050565b60008060006060848603121561243f57600080fd5b833561244a8161239c565b9250602084013561245a8161239c565b929592945050506040919091013590565b60006020828403121561247d57600080fd5b5035919050565b60006020828403121561249657600080fd5b8135610ccb8161239c565b6000602082840312156124b357600080fd5b610ccb826123e0565b600080604083850312156124cf57600080fd5b82356124da8161239c565b915060208301356124ea8161239c565b809150509250929050565b600181811c9082168061250957607f821691505b6020821081141561252a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561257757600080fd5b8151610ccb8161239c565b634e487b7160e01b600052601160045260246000fd5b600082198211156125ab576125ab612582565b500190565b6000828210156125c2576125c2612582565b500390565b60008160001904831182151516156125e1576125e1612582565b500290565b60008261260357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156126575781516001600160a01b031687529582019590820190600101612632565b509495945050505050565b85815284602082015260a06040820152600061268160a083018661261e565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006126b7604083018461261e565b949350505050565b6000806000606084860312156126d457600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d2f335426712e7495e0dc16214b3a585a0b9ea105dd2c7f5b075ad32e6a4a66964736f6c63430008090033