60806040526004805460ff1916905534801561001a57600080fd5b50604051602080610959833981016040908152905160028054600160a060020a0319163390811790915560038290556000908152602081905291909120556108f2806100676000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100d457806306fdde03146100eb578063095ea7b31461017557806313af4035146101ad57806318160ddd146101ce57806323b872dd146101f5578063313ce5671461021f57806331c420d41461024a578063426a84931461025f5780636d1b229d1461028657806370a082311461029e57806395d89b41146102bf578063a9059cbb146102d4578063dd62ed3e146102f8575b600080fd5b3480156100e057600080fd5b506100e961031f565b005b3480156100f757600080fd5b5061010061037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013a578181015183820152602001610122565b50505050905090810190601f1680156101675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018157600080fd5b50610199600160a060020a03600435166024356103b2565b604080519115158252519081900360200190f35b3480156101b957600080fd5b506100e9600160a060020a0360043516610419565b3480156101da57600080fd5b506101e361045f565b60408051918252519081900360200190f35b34801561020157600080fd5b50610199600160a060020a0360043581169060243516604435610465565b34801561022b57600080fd5b50610234610490565b6040805160ff9092168252519081900360200190f35b34801561025657600080fd5b506100e9610495565b34801561026b57600080fd5b50610199600160a060020a03600435166024356044356104ec565b34801561029257600080fd5b50610199600435610511565b3480156102aa57600080fd5b506101e3600160a060020a03600435166105bc565b3480156102cb57600080fd5b506101006105d7565b3480156102e057600080fd5b50610199600160a060020a036004351660243561060e565b34801561030457600080fd5b506101e3600160a060020a0360043581169060243516610635565b600254600160a060020a0316331461033657600080fd5b60045460ff161515610379576004805460ff191660011790556040517f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de90600090a15b565b60408051808201909152600c81527f53706f6e737920546f6b656e0000000000000000000000000000000000000000602082015290565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600254600160a060020a0316331461043057600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035490565b60045460009060ff161561047b57506000610489565b610486848484610660565b90505b9392505050565b600690565b600254600160a060020a031633146104ac57600080fd5b60045460ff1615610379576004805460ff191690556040517f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded90600090a1565b6000826104f93386610635565b14156105095761048684836103b2565b506000610489565b33600090815260208190526040812054821115610530575060006105b7565b60008211156105b3573360009081526020819052604090205461055390836107c3565b3360009081526020819052604090205560035461057090836107c3565b60035560408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060016105b7565b5060015b919050565b600160a060020a031660009081526020819052604090205490565b60408051808201909152600581527f53504f4e53000000000000000000000000000000000000000000000000000000602082015290565b60045460009060ff161561062457506000610413565b61062e83836107d5565b9050610413565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600160a060020a0383166000908152600160209081526040808320338452909152812054818382101561069657600092506107ba565b50600160a060020a038516600090815260208190526040902054838110156106c157600092506107ba565b6106cb82856107c3565b600160a060020a038716600090815260016020908152604080832033845290915281209190915584118015610712575084600160a060020a031686600160a060020a031614155b1561076a5761072181856107c3565b600160a060020a03808816600090815260208190526040808220939093559087168152205461075090856108b0565b600160a060020a0386166000908152602081905260409020555b84600160a060020a031686600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505b50509392505050565b6000818310156107cf57fe5b50900390565b33600090815260208190526040812054828110156107f657600091506108a9565b60008311801561080f575033600160a060020a03851614155b156108645761081e81846107c3565b3360009081526020819052604080822092909255600160a060020a0386168152205461084a90846108b0565b600160a060020a0385166000908152602081905260409020555b604080518481529051600160a060020a0386169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600191505b5092915050565b60006000198290038311156108c157fe5b5001905600a165627a7a723058201aa9eff516aad5cacc53c9d203596fda9ec68d8667c363fff969630c516a073d002900000000000000000000000000000000000000000000000000038d7ea4c68000