0x608060405234801561001057600080fd5b5060405161152438038061152483398101604081905261002f916100bd565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556100f0565b80516001600160a01b03811681146100b857600080fd5b919050565b600080604083850312156100d057600080fd5b6100d9836100a1565b91506100e7602084016100a1565b90509250929050565b611425806100ff6000396000f3fe6080604052600436106100dd5760003560e01c8063969578691161007f578063c305609611610059578063c305609614610252578063e9bc341f14610282578063f2fde38b146102c8578063f4903e76146102e857600080fd5b806396957869146101ff578063b70aed711461021f578063b7bf1ef61461023f57600080fd5b8063238ac933116100bb578063238ac9331461018157806346c0b202146101a15780636c19e783146101c15780638da5cb5b146101e157600080fd5b80631027b219146100e25780631ec82cb81461012757806321b55c5014610149575b600080fd5b3480156100ee57600080fd5b506101126100fd3660046110a9565b60056020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561013357600080fd5b506101476101423660046110cd565b610308565b005b34801561015557600080fd5b50600254610169906001600160a01b031681565b6040516001600160a01b03909116815260200161011e565b34801561018d57600080fd5b50600154610169906001600160a01b031681565b3480156101ad57600080fd5b506101476101bc36600461113c565b6103b9565b3480156101cd57600080fd5b506101476101dc3660046110a9565b6106ca565b3480156101ed57600080fd5b506000546001600160a01b0316610169565b34801561020b57600080fd5b5061016961021a366004611181565b610788565b34801561022b57600080fd5b5061014761023a3660046111ca565b6107f0565b61014761024d36600461113c565b610845565b34801561025e57600080fd5b5061011261026d366004611203565b60046020526000908152604090205460ff1681565b34801561028e57600080fd5b506102ba61029d36600461121c565b600360209081526000928352604080842090915290825290205481565b60405190815260200161011e565b3480156102d457600080fd5b506101476102e33660046110a9565b610c75565b3480156102f457600080fd5b506102ba61030336600461123e565b610cab565b6000546001600160a01b0316331461033b5760405162461bcd60e51b81526004016103329061126b565b60405180910390fd5b6001600160a01b0383166103ae576040516001600160a01b0383169082156108fc029083906000818181858888f193505050506103a95760405162461bcd60e51b815260206004820152600c60248201526b1c9958dbdd995c8819985a5b60a21b6044820152606401610332565b505050565b6103a9838383610cfd565b428460a0013510156103fc5760405162461bcd60e51b815260206004820152600c60248201526b151a5b5948115e1c1a5c995960a21b6044820152606401610332565b602080850135600090815260038252604080822081880135835290925290812054900361045c5760405162461bcd60e51b815260206004820152600e60248201526d1d5cd95c881b9bdd08195e1a5cdd60921b6044820152606401610332565b600061046785610d60565b60008181526004602052604090205490915060ff16156104c95760405162461bcd60e51b815260206004820152601f60248201527f436c61696d203a3a207369676e617475726520616c72656164792075736564006044820152606401610332565b6001546001600160a01b03166104e182868686610788565b6001600160a01b0316146105375760405162461bcd60e51b815260206004820152601d60248201527f436c61696d203a3a206e6f742061207369676e657220616464726573730000006044820152606401610332565b6000818152600460205260408120805460ff1916600117905561056060808701606088016110a9565b6001600160a01b0316036105cf576040513390608087013580156108fc02916000818181858888f193505050506105ca5760405162461bcd60e51b815260206004820152600e60248201526d7472616e73666572206661696c7360901b6044820152606401610332565b61065a565b600560006105e360808801606089016110a9565b6001600160a01b0316815260208101919091526040016000205460ff1661063c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610332565b61065a61064f60808701606088016110a9565b338760800135610cfd565b7ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5673361068c60808801606089016110a9565b604080516001600160a01b03938416815292909116602083015260808089013591830191909152426060830152015b60405180910390a15050505050565b6000546001600160a01b031633146106f45760405162461bcd60e51b81526004016103329061126b565b6001600160a01b0381161580159061071a57506001546001600160a01b03828116911614155b6107665760405162461bcd60e51b815260206004820152601f60248201527f7369676e65722061646472657373206e6f74205a65726f2061646472657373006044820152606401610332565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040805160008082526020820180845287905260ff861692820192909252606081018490526080810183905260019060a0016020604051602081039080840390855afa1580156107dc573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b6000546001600160a01b0316331461081a5760405162461bcd60e51b81526004016103329061126b565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b60208085013560009081526003825260408082208188013583529092522054156108a55760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4819195c1bdcda5d1959607a1b6044820152606401610332565b428460a0013510156108e85760405162461bcd60e51b815260206004820152600c60248201526b151a5b5948115e1c1a5c995960a21b6044820152606401610332565b33600254604080516331a9108f60e11b81529087013560048201526001600160a01b039283169290911690636352211e90602401602060405180830381865afa158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d91906112a0565b6001600160a01b0316146109a95760405162461bcd60e51b815260206004820152601360248201527224b73b30b634b2103a37b5b2b71037bbb732b960691b6044820152606401610332565b60006109b485610d60565b60008181526004602052604090205490915060ff1615610a165760405162461bcd60e51b815260206004820152601f60248201527f436c61696d203a3a207369676e617475726520616c72656164792075736564006044820152606401610332565b6001546001600160a01b0316610a2e82868686610788565b6001600160a01b031614610a845760405162461bcd60e51b815260206004820152601d60248201527f436c61696d203a3a206e6f742061207369676e657220616464726573730000006044820152606401610332565b6000818152600460205260408120805460ff19166001179055610aad60808701606088016110a9565b6001600160a01b031603610b035784608001353414610afe5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610332565b610bdd565b60056000610b1760808801606089016110a9565b6001600160a01b0316815260208101919091526040016000205460ff16610b705760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610332565b3415610bbe5760405162461bcd60e51b815260206004820152601860248201527f4d617469632076616c7565206d757374206265207a65726f00000000000000006044820152606401610332565b610bdd610bd160808701606088016110a9565b33308860800135610dc1565b6020808601356000908152600382526040808220818901358352909252206080860180359091557f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f6903390610c3590606089016110a9565b604080516001600160a01b039384168152929091166020838101919091526080808a0135928401929092528801356060830152429082015260a0016106bb565b6000546001600160a01b03163314610c9f5760405162461bcd60e51b81526004016103329061126b565b610ca881610dff565b50565b60008282604051602001610cc09291906112bd565b60408051601f1981840301815290829052610cdf913090602001611379565b60405160208183030381529060405280519060200120905092915050565b6040516001600160a01b0383166024820152604481018290526103a990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ebf565b600080610d6d8333610cab565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052909150605c0160405160208183030381529060405280519060200120915050919050565b6040516001600160a01b0380851660248301528316604482015260648101829052610df99085906323b872dd60e01b90608401610d29565b50505050565b6001600160a01b038116610e645760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610332565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610f919092919063ffffffff16565b8051909150156103a95780806020019051810190610f3291906113a3565b6103a95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610332565b6060610fa08484600085610fa8565b949350505050565b6060843b610ff85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610332565b600080866001600160a01b0316858760405161101491906113c0565b60006040518083038185875af1925050503d8060008114611051576040519150601f19603f3d011682016040523d82523d6000602084013e611056565b606091505b5091509150811561106a579150610fa09050565b80511561107a5780518082602001fd5b8360405162461bcd60e51b815260040161033291906113dc565b6001600160a01b0381168114610ca857600080fd5b6000602082840312156110bb57600080fd5b81356110c681611094565b9392505050565b6000806000606084860312156110e257600080fd5b83356110ed81611094565b925060208401356110fd81611094565b929592945050506040919091013590565b600060c0828403121561112057600080fd5b50919050565b803560ff8116811461113757600080fd5b919050565b600080600080610120858703121561115357600080fd5b61115d868661110e565b935061116b60c08601611126565b939693955050505060e082013591610100013590565b6000806000806080858703121561119757600080fd5b843593506111a760208601611126565b93969395505050506040820135916060013590565b8015158114610ca857600080fd5b600080604083850312156111dd57600080fd5b82356111e881611094565b915060208301356111f8816111bc565b809150509250929050565b60006020828403121561121557600080fd5b5035919050565b6000806040838503121561122f57600080fd5b50508035926020909101359150565b60008060e0838503121561125157600080fd5b61125b848461110e565b915060c08301356111f881611094565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156112b257600080fd5b81516110c681611094565b60e0810183356112cc81611094565b6001600160a01b03908116835260208581013590840152604080860135908401526060850135906112fc82611094565b80821660608501526080860135608085015260a086013560a085015280851660c085015250509392505050565b60005b8381101561134457818101518382015260200161132c565b50506000910152565b60008151808452611365816020860160208601611329565b601f01601f19169290920160200192915050565b60408152600061138c604083018561134d565b905060018060a01b03831660208301529392505050565b6000602082840312156113b557600080fd5b81516110c6816111bc565b600082516113d2818460208701611329565b9190910192915050565b6020815260006110c6602083018461134d56fea2646970667358221220952d063427b7da50bff1b1a833e344e120c82a9e3100553e1135c0486c0fc14164736f6c634300081200330000000000000000000000007235256614e792c560e3ae33bdae3fa19fa61e0a0000000000000000000000006d72601a6b045527ac1b3a9fffa36c81795d4429