//
0x608060405234801561001057600080fd5b50600380546001600160a01b031916339081179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36116a2806100606000396000f3fe608060405234801561001057600080fd5b50600436106101545760003560e01c806313144dba146101595780631bf43555146101aa5780632e86bbd8146101c457806331f7d964146101cc5780633cc74225146101f05780633d83908a146101f85780634870dd9a14610200578063525acdbb146102085780635733d58f14610231578063715018a61461023957806372fe25aa146101c4578063741bef1a14610243578063794e57241461024b578063795d26c31461025357806379ba50971461025b5780637b41bdbe146102635780637f7dde4a1461028c578063887105d3146102945780638da5cb5b1461029c5780638f32d59b146102a457806390107afe146102c0578063a20baee6146101c4578063a3f4df7e146102ee578063ae9187541461036b578063c394a7fa14610373578063e30c397814610396578063f2fde38b1461039e578063f92d3433146103c4575b600080fd5b6101826004803603606081101561016f57600080fd5b50803590602081013590604001356103cc565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b6101b261094d565b60408051918252519081900360200190f35b6101b261095a565b6101d4610966565b604080516001600160a01b039092168252519081900360200190f35b6101d461096b565b6101d461097a565b6101b2610989565b6101b26004803603606081101561021e57600080fd5b508035906020810135906040013561098e565b6101b26109a5565b6102416109b1565b005b6101d4610a02565b6101b2610a11565b6101b2610a1d565b610241610b1e565b6101826004803603606081101561027957600080fd5b5080359060208101359060400135610b8d565b6101d4610eaa565b6101b2610eb9565b6101d4610f75565b6102ac610f84565b604080519115158252519081900360200190f35b610241600480360360408110156102d657600080fd5b506001600160a01b0381358116916020013516610f95565b6102f661108e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610330578181015183820152602001610318565b50505050905090810190601f16801561035d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d46110b5565b6101b26004803603604081101561038957600080fd5b50803590602001356110c4565b6101d46110d9565b610241600480360360208110156103b457600080fd5b50356001600160a01b03166110e8565b6101b261118d565b60055460408051634d62283160e01b81529051600092839283926001600160a01b0390921691889184918491634d622831916004808301926020929190829003018186803b15801561041d57600080fd5b505afa158015610431573d6000803e3d6000fd5b505050506040513d602081101561044757600080fd5b505190505b6001600160a01b038116158015906104ec575060065460408051630d293c7160e41b81526001600160a01b038481166004830152602482018c9052915167120a871cc002000093929092169163d293c71091604480820192602092909190829003018186803b1580156104be57600080fd5b505afa1580156104d2573d6000803e3d6000fd5b505050506040513d60208110156104e857600080fd5b5051105b1561057a57826001600160a01b031663b72703ac826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561054757600080fd5b505afa15801561055b573d6000803e3d6000fd5b505050506040513d602081101561057157600080fd5b5051905061044c565b945084866105885760001996505b6001600160a01b038116158015906105a05750600082115b80156105b0575060001987019615155b1561092f57600654604080516379a4316f60e11b81526001600160a01b03848116600483015291516000936106c193169163f34862de916024808301926020929190829003018186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d602081101561063057600080fd5b50516006546040805163d66a255360e01b81526001600160a01b03878116600483015291516106b593929092169163d66a255391602480820192602092909190829003018186803b15801561068457600080fd5b505afa158015610698573d6000803e3d6000fd5b505050506040513d60208110156106ae57600080fd5b5051611198565b9063ffffffff6111b216565b9050828111156108925768056bc75e2d6310000081111561088c576000610700846106fb8468056bc75e2d6310000063ffffffff61120a16565b61124c565b60065460408051635d8c960960e01b81526001600160a01b0387811660048301529151939450600093610809939290921691635d8c960991602480820192602092909190829003018186803b15801561075857600080fd5b505afa15801561076c573d6000803e3d6000fd5b505050506040513d602081101561078257600080fd5b5051600654604080516309019aaf60e31b81526001600160a01b0389811660048301529151919092169163480cd578916024808301926020929190829003018186803b1580156107d157600080fd5b505afa1580156107e5573d6000803e3d6000fd5b505050506040513d60208110156107fb57600080fd5b50519063ffffffff6111b216565b905060006108456108388d61082c86670de0b6b3a764000063ffffffff61126216565b9063ffffffff6112bb16565b839063ffffffff61120a16565b90506000610859858563ffffffff61120a16565b90506000610866826112fa565b90506108728382611314565b9a50610884888663ffffffff61120a16565b975050505050505b5061092f565b6108a2838263ffffffff61120a16565b9250836001600160a01b031663b72703ac836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108fa57600080fd5b505afa15801561090e573d6000803e3d6000fd5b505050506040513d602081101561092457600080fd5b505191506105889050565b61093f898363ffffffff61120a16565b935050505093509350939050565b68056bc75e2d6310000081565b670de0b6b3a764000081565b600081565b6001546001600160a01b031681565b6006546001600160a01b031681565b60c881565b600061099b848484611349565b90505b9392505050565b6714d1120d7b16000081565b6109b9610f84565b6109f8576040805162461bcd60e51b8152602060048201819052602482015260008051602061164d833981519152604482015290519081900360640190fd5b610a00611379565b565b6002546001600160a01b031681565b67120a871cc002000081565b6000805460408051632f5a97e560e11b8152905183926001600160a01b031691635eb52fca916004808301926020929190829003018186803b158015610a6257600080fd5b505afa158015610a76573d6000803e3d6000fd5b505050506040513d6020811015610a8c57600080fd5b505160015460408051632f5a97e560e11b815290519293506000926001600160a01b0390921691635eb52fca91600480820192602092909190829003018186803b158015610ad957600080fd5b505afa158015610aed573d6000803e3d6000fd5b505050506040513d6020811015610b0357600080fd5b50519050610b17828263ffffffff6111b216565b9250505090565b6000610b286113c3565b9050806001600160a01b0316610b3c6110d9565b6001600160a01b031614610b815760405162461bcd60e51b81526004018080602001828103825260298152602001806116036029913960400191505060405180910390fd5b610b8a816113c7565b50565b600080600080600660009054906101000a90046001600160a01b03166001600160a01b03166349eefeee6040518163ffffffff1660e01b815260040160206040518083038186803b158015610be157600080fd5b505afa158015610bf5573d6000803e3d6000fd5b505050506040513d6020811015610c0b57600080fd5b5051905080610c24575060009250829150839050610ea1565b600560009054906101000a90046001600160a01b03166001600160a01b0316634d6228316040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7257600080fd5b505afa158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b50516006546040805163b0d8e18160e01b81526001600160a01b0380851660048301529151939750610d26938b93929092169163b0d8e18191602480820192602092909190829003018186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d6020811015610d1f57600080fd5b5051611424565b925084915060015b86811015610e9e57604080516020808201959095528151808203860181529082019091528051930192909220916000828481610d6657fe5b0690506000600660009054906101000a90046001600160a01b03166001600160a01b031663d9a72444836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610dc457600080fd5b505afa158015610dd8573d6000803e3d6000fd5b505050506040513d6020811015610dee57600080fd5b50516006546040805163b0d8e18160e01b81526001600160a01b0380851660048301529151939450600093919092169163b0d8e181916024808301926020929190829003018186803b158015610e4357600080fd5b505afa158015610e57573d6000803e3d6000fd5b505050506040513d6020811015610e6d57600080fd5b505190506000610e7d828d611424565b905087811015610e8e578097508298505b505060019092019150610d2e9050565b50505b93509350939050565b6000546001600160a01b031681565b6000805460408051630a7b61df60e11b8152905183926001600160a01b0316916314f6c3be916004808301926020929190829003018186803b158015610efe57600080fd5b505afa158015610f12573d6000803e3d6000fd5b505050506040513d6020811015610f2857600080fd5b505160015460408051630a7b61df60e11b815290519293506000926001600160a01b03909216916314f6c3be91600480820192602092909190829003018186803b158015610ad957600080fd5b6003546001600160a01b031690565b6003546001600160a01b0316331490565b610f9d610f84565b610fdc576040805162461bcd60e51b8152602060048201819052602482015260008051602061164d833981519152604482015290519081900360640190fd5b610fe582611453565b610fee81611453565b600580546001600160a01b038085166001600160a01b03199283168117909355600680549185169190921617905560408051918252517f65f4cf077bc01e4742eb5ad98326f6e95b63548ea24b17f8d5e823111fe788009181900360200190a1604080516001600160a01b038316815290517f143219c9e69b09e07e095fcc889b43d8f46ca892bba65f08dc3a0050869a56789181900360200190a15050565b6040518060400160405280600b81526020016a48696e7448656c7065727360a81b81525081565b6005546001600160a01b031681565b60006110d08383611314565b90505b92915050565b6004546001600160a01b031690565b6110f0610f84565b61112f576040805162461bcd60e51b8152602060048201819052602482015260008051602061164d833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b038316908117909155611155610f75565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b662386f26fc1000081565b60006110d382670de0b6b3a764000063ffffffff61120a16565b6000828201838110156110d0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60006110d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611506565b600081831061125b57816110d0565b5090919050565b600082611271575060006110d3565b8282028284828161127e57fe5b04146110d05760405162461bcd60e51b815260040180806020018281038252602181526020018061162c6021913960400191505060405180910390fd5b60006110d083836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b81525061159d565b60006110d382670de0b6b3a764000063ffffffff6111b216565b60008115611340576113398261082c8568056bc75e2d6310000063ffffffff61126216565b90506110d3565b506000196110d3565b600082156113705760006113678461082c878663ffffffff61126216565b915061099e9050565b5060001961099e565b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b3390565b600480546001600160a01b0319908116909155600380546001600160a01b0384811693821684179092556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000818310156114435761143e828463ffffffff61120a16565b6110d0565b6110d0838363ffffffff61120a16565b6001600160a01b0381166114ae576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e742063616e6e6f74206265207a65726f20616464726573730000604482015290519081900360640190fd5b803b80611502576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e7420636f64652073697a652063616e6e6f74206265207a65726f604482015290519081900360640190fd5b5050565b600081848411156115955760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561155a578181015183820152602001611542565b50505050905090810190601f1680156115875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836115ec5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561155a578181015183820152602001611542565b5060008385816115f857fe5b049594505050505056fe4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203dc4c8167b09c4b4f6df0ff32929351766a729cc35d700c88998eccd3554882b64736f6c634300060b0033