0x60806040526006805460ff1916905534801561001a57600080fd5b506006805460ff19166001179055610dab806100376000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f191161009757806395d89b411161006657806395d89b411461038d578063a9059cbb14610395578063c8db233e146103c1578063dd62ed3e146103e7576100f5565b806340c10f19146102555780634cd88b761461028157806370a082311461034357806380f5560514610369576100f5565b806318160ddd116100d357806318160ddd146101bf5780631b15982a146101d957806323b872dd14610201578063313ce56714610237576100f5565b806306fdde03146100fa578063095ea7b314610177578063158ef93e146101b7575b600080fd5b610102610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104a3565b604080519115158252519081900360200190f35b6101a361051f565b6101c7610528565b60408051918252519081900360200190f35b6101ff600480360360208110156101ef57600080fd5b50356001600160a01b031661052e565b005b6101a36004803603606081101561021757600080fd5b506001600160a01b0381358116916020810135909116906040013561065b565b61023f610715565b6040805160ff9092168252519081900360200190f35b6101ff6004803603604081101561026b57600080fd5b506001600160a01b03813516906020013561071a565b6101ff6004803603604081101561029757600080fd5b8101906020810181356401000000008111156102b257600080fd5b8201836020820111156102c457600080fd5b803590602001918460018302840111640100000000831117156102e657600080fd5b91939092909160208101903564010000000081111561030457600080fd5b82018360208201111561031657600080fd5b8035906020019184600183028401116401000000008311171561033857600080fd5b50909250905061084f565b6101c76004803603602081101561035957600080fd5b50356001600160a01b03166108d0565b6103716108e2565b604080516001600160a01b039092168252519081900360200190f35b6101026108f1565b6101a3600480360360408110156103ab57600080fd5b506001600160a01b03813516906020013561094b565b6101ff600480360360208110156103d757600080fd5b50356001600160a01b031661095f565b6101c7600480360360408110156103fd57600080fd5b506001600160a01b03813581169160200135166109c0565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b505050505081565b60006001600160a01b0383166104b857600080fd5b3360008181526005602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60065460ff1681565b60045481565b6002546001600160a01b03163314610583576040805162461bcd60e51b815260206004820152601360248201527213db9b1e481b585c9ad95d08185b1b1bddd959606a1b604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054806105a75750610658565b6001600160a01b0382166000908152600360205260408120556004546105d3908263ffffffff6109dd16565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36040805182815290516001600160a01b038416917f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7919081900360200190a2505b50565b6001600160a01b0383166000908152600560209081526040808320338452909152812054808311156106cd576040805162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015290519081900360640190fd5b6106dd818463ffffffff6109dd16565b6001600160a01b038616600090815260056020908152604080832033845290915290205561070c858585610a3a565b95945050505050565b601281565b6002546001600160a01b0316331461076f576040805162461bcd60e51b815260206004820152601360248201527213db9b1e481b585c9ad95d08185b1b1bddd959606a1b604482015290519081900360640190fd5b61077881610c06565b5060045461078c908263ffffffff610c6316565b6004556001600160a01b0382166000908152600360205260409020546107b8908263ffffffff610c6316565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36040805182815290516001600160a01b038416917fa59f12e354e8cd10bb74c559844c2dd69a5458e31fe56c7594c62ca57480509a919081900360200190a25050565b60065460ff16156108915760405162461bcd60e51b8152600401808060200182810382526028815260200180610d4f6028913960400191505060405180910390fd5b6006805460ff191660011790556108aa60008585610cbd565b506108b760018383610cbd565b5050600280546001600160a01b03191633179055505050565b60036020526000908152604090205481565b6002546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561049b5780601f106104705761010080835404028352916020019161049b565b6000610958338484610a3a565b9392505050565b6002546001600160a01b031633146109b4576040805162461bcd60e51b815260206004820152601360248201527213db9b1e481b585c9ad95d08185b1b1bddd959606a1b604482015290519081900360640190fd5b806001600160a01b0316ff5b600560209081526000928352604080842090915290825290205481565b600082821115610a34576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6002546040805163a14f582360e01b815290516000926001600160a01b03169163a14f58239160048083019286929190829003018186803b158015610a7e57600080fd5b505afa158015610a92573d6000803e3d6000fd5b505050506001600160a01b03831615801590610ab757506001600160a01b0383163014155b610afa576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205480831115610b5f576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b610b6f818463ffffffff6109dd16565b6001600160a01b038087166000908152600360205260408082209390935590861681522054610ba4908463ffffffff610c6316565b6001600160a01b0380861660008181526003602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b6000662386f26fc1000082101580610c1c575081155b610c5f576040805162461bcd60e51b815260206004820152600f60248201526e42616c616e6365203c2024302e303160881b604482015290519081900360640190fd5b5090565b600082820183811015610958576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610cfe5782800160ff19823516178555610d2b565b82800160010185558215610d2b579182015b82811115610d2b578235825591602001919060010190610d10565b50610c5f92610d4b9250905b80821115610c5f5760008155600101610d37565b9056fe42696e617279204f7074696f6e204d61726b657420616c726561647920696e697469616c697a6564a265627a7a723158201e2598998a907ee791c81a0f500fbbab402a4ca8110759862c99b44412e9b71464736f6c63430005100032