60806040523480156200001157600080fd5b50600080546001600160a01b031916738ddd950afd7f21e59198049bb98d0bb2897508d91790556040805180820190915260068082526534756d2e696f60d01b6020909201918252620000679160039162000151565b506040805180820190915260038082526234554d60e81b6020909201918252620000949160029162000151565b5060048054601260ff199091161790819055600160085560ff16600a0a6301312d008102600555629896800260068190556007819055600080546001600160a01b03908116825260096020908152604080842085905583548151958652905192169360008051602062001235833981519152929081900390910190a360065430600081815260096020908152604080832085905580519485525192939192600080516020620012358339815191529281900390910190a3620001f6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019457805160ff1916838001178555620001c4565b82800160010185558215620001c4579182015b82811115620001c4578251825591602001919060010190620001a7565b50620001d2929150620001d6565b5090565b620001f391905b80821115620001d25760008155600101620001dd565b90565b61102f80620002066000396000f3fe6080604052600436106101095760003560e01c806395d89b4111610095578063b1eae33b11610064578063b1eae33b146103d1578063cae9ca51146103fb578063dc39d06d146104c3578063dd62ed3e146104fc578063ec8ac4d81461053757610109565b806395d89b41146103355780639dc29fac1461034a578063a9059cbb14610383578063b1c9fe6e146103bc57610109565b806327e235e3116100dc57806327e235e314610256578063313ce5671461028957806340c10f19146102b457806370a08231146102ed57806379ba50971461032057610109565b806306fdde0314610115578063095ea7b31461019f57806318160ddd146101ec57806323b872dd14610213575b6101136000610559565b005b34801561012157600080fd5b5061012a610764565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016457818101518382015260200161014c565b50505050905090810190601f1680156101915780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ab57600080fd5b506101d8600480360360408110156101c257600080fd5b506001600160a01b0381351690602001356107f2565b604080519115158252519081900360200190f35b3480156101f857600080fd5b50610201610859565b60408051918252519081900360200190f35b34801561021f57600080fd5b506101d86004803603606081101561023657600080fd5b506001600160a01b0381358116916020810135909116906040013561089c565b34801561026257600080fd5b506102016004803603602081101561027957600080fd5b50356001600160a01b0316610995565b34801561029557600080fd5b5061029e6109a7565b6040805160ff9092168252519081900360200190f35b3480156102c057600080fd5b506101d8600480360360408110156102d757600080fd5b506001600160a01b0381351690602001356109b0565b3480156102f957600080fd5b506102016004803603602081101561031057600080fd5b50356001600160a01b0316610aaa565b34801561032c57600080fd5b50610113610ac5565b34801561034157600080fd5b5061012a610b40565b34801561035657600080fd5b506101d86004803603604081101561036d57600080fd5b506001600160a01b038135169060200135610b98565b34801561038f57600080fd5b506101d8600480360360408110156103a657600080fd5b506001600160a01b038135169060200135610c82565b3480156103c857600080fd5b50610201610d20565b3480156103dd57600080fd5b50610113600480360360208110156103f457600080fd5b5035610d26565b34801561040757600080fd5b506101d86004803603606081101561041e57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561044e57600080fd5b82018360208201111561046057600080fd5b8035906020019184600183028401116401000000008311171561048257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d42945050505050565b3480156104cf57600080fd5b506101d8600480360360408110156104e657600080fd5b506001600160a01b038135169060200135610e8a565b34801561050857600080fd5b506102016004803603604081101561051f57600080fd5b506001600160a01b0381358116916020013516610f2c565b6101136004803603602081101561054d57600080fd5b50356001600160a01b03165b60008060003490506008546001141561057c5780610933029250600591506105f3565b600854600214156105975780610497029250600591506105f3565b600854600314156105b2578061024c029250600591506105f3565b6040805162461bcd60e51b815260206004820152601160248201527053616c65204e6f7420537461727465642160781b604482015290519081900360640190fd5b3060009081526009602052604090205483111561064f576040805162461bcd60e51b8152602060048201526015602482015274546f6b656e73204e6f7420417661696c61626c652160581b604482015290519081900360640190fd5b33600081815260096020908152604080832080548801905530808452928190208054889003905580518781529051600080516020610fba833981519152929181900390910190a36001600160a01b038416158015906106b757506001600160a01b0384163314155b1561075657604051606434840204906001600160a01b0386169082156108fc029083906000818181858888f193505050501580156106f9573d6000803e3d6000fd5b506001600160a01b038516600081815260096020908152604080832080546064898b02049081019091553080855293829020805482900390558151818152915190949392600080516020610fba833981519152928290030190a350505b61075e610f57565b50505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b820191906000526020600020905b8154815290600101906020018083116107cd57829003601f168201915b505050505081565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600080805260096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546005546108979163ffffffff610f9416565b905090565b6001600160a01b0383166000908152600960205260408120546108c5908363ffffffff610f9416565b6001600160a01b038516600090815260096020908152604080832093909355600a815282822033835290522054610902908363ffffffff610f9416565b6001600160a01b038086166000908152600a60209081526040808320338452825280832094909455918616815260099091522054610946908363ffffffff610fa916565b6001600160a01b038085166000818152600960209081526040918290209490945580518681529051919392881692600080516020610fba83398151915292918290030190a35060019392505050565b60096020526000908152604090205481565b60045460ff1681565b600080546001600160a01b031633146109c857600080fd5b6001600160a01b038316610a23576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554610a36908363ffffffff610fa916565b6005556001600160a01b038316600090815260096020526040902054610a62908363ffffffff610fa916565b6001600160a01b0384166000818152600960209081526040808320949094558351868152935192939192600080516020610fba8339815191529281900390910190a392915050565b6001600160a01b031660009081526009602052604090205490565b6001546001600160a01b03163314610adc57600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107ea5780601f106107bf576101008083540402835291602001916107ea565b600080546001600160a01b03163314610bb057600080fd5b6001600160a01b038316610bf55760405162461bcd60e51b8152600401808060200182810382526021815260200180610fda6021913960400191505060405180910390fd5b6001600160a01b038316600090815260096020526040902054610c1e908363ffffffff610f9416565b6001600160a01b038416600090815260096020526040902055600554610c4a908363ffffffff610f9416565b6005556040805183815290516000916001600160a01b03861691600080516020610fba8339815191529181900360200190a392915050565b33600090815260096020526040812054610ca2908363ffffffff610f9416565b33600090815260096020526040808220929092556001600160a01b03851681522054610cd4908363ffffffff610fa916565b6001600160a01b038416600081815260096020908152604091829020939093558051858152905191923392600080516020610fba8339815191529281900390910190a350600192915050565b60085481565b6000546001600160a01b03163314610d3d57600080fd5b600855565b336000818152600a602090815260408083206001600160a01b038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015610e19578181015183820152602001610e01565b50505050905090810190601f168015610e465780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610e6857600080fd5b505af1158015610e7c573d6000803e3d6000fd5b506001979650505050505050565b600080546001600160a01b03163314610ea257600080fd5b600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b505050506040513d6020811015610f2357600080fd5b50519392505050565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f91573d6000803e3d6000fd5b50565b600082821115610fa357600080fd5b50900390565b8181018281101561085357600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f2061646472657373a265627a7a723158207c23da2e5a559da8328a09fb87c3ff31cbdb9f9d29c4c84014f941b86b0afa5064736f6c63430005110032ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef