0x60806040527f5e46ce5c1eb9cfddcce5e3a5290d567dd5f7034555bdfd6bc697cdae17de47f760085561014d600955660aa87bee538000600a55606f600b553480156200004b57600080fd5b50604080518082018252600c81526b4d657461206e6f204d65746160a01b6020808301918252835180850190945260048452634d65746160e01b908401528151733cc6cdda760b79bafa08df41ecfa224f810dceb693600193929091620000b59160029162000236565b508051620000cb90600390602084019062000236565b506000805550506daaeb6d7670e522a718067333cd4e3b15620002175780156200016557604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200014657600080fd5b505af11580156200015b573d6000803e3d6000fd5b5050505062000217565b6001600160a01b03821615620001b65760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016200012b565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001fd57600080fd5b505af115801562000212573d6000803e3d6000fd5b505050505b5050600d80546001600160a01b03191633179055600a600c5562000319565b8280546200024490620002dc565b90600052602060002090601f016020900481019282620002685760008555620002b3565b82601f106200028357805160ff1916838001178555620002b3565b82800160010185558215620002b3579182015b82811115620002b357825182559160200191906001019062000296565b50620002c1929150620002c5565b5090565b5b80821115620002c15760008155600101620002c6565b600181811c90821680620002f157607f821691505b602082108114156200031357634e487b7160e01b600052602260045260246000fd5b50919050565b6115df80620003296000396000f3fe60806040526004361061012a5760003560e01c806370a08231116100ab578063b88d4fde1161006f578063b88d4fde146102fb578063c87b56dd1461030e578063cc47a40b1461032e578063d5abeb011461034e578063e985e9c514610364578063f7d97577146103ad57600080fd5b806370a08231146102735780638da5cb5b1461029357806395d89b41146102b3578063a0712d68146102c8578063a22cb465146102db57600080fd5b806323b872dd116100f257806323b872dd146101f65780633ccfd60b1461020957806341f434341461021e57806342842e0e146102405780636352211e1461025357600080fd5b806301ffc9a71461012f57806306fdde0314610164578063081812fc14610186578063095ea7b3146101be57806318160ddd146101d3575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611357565b6103cd565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061017961041f565b60405161015b91906114a8565b34801561019257600080fd5b506101a66101a1366004611391565b6104b1565b6040516001600160a01b03909116815260200161015b565b6101d16101cc366004611310565b6104f5565b005b3480156101df57600080fd5b50600154600054035b60405190815260200161015b565b6101d16102043660046111c1565b6105d2565b34801561021557600080fd5b506101d16106bb565b34801561022a57600080fd5b506101a66daaeb6d7670e522a718067333cd4e81565b6101d161024e3660046111c1565b610701565b34801561025f57600080fd5b506101a661026e366004611391565b6107df565b34801561027f57600080fd5b506101e861028e366004611173565b6107ea565b34801561029f57600080fd5b50600d546101a6906001600160a01b031681565b3480156102bf57600080fd5b50610179610839565b6101d16102d6366004611391565b610848565b3480156102e757600080fd5b506101d16102f63660046112d9565b6108dc565b6101d16103093660046111fd565b6109af565b34801561031a57600080fd5b50610179610329366004611391565b610a9b565b34801561033a57600080fd5b506101d1610349366004611310565b610acc565b34801561035a57600080fd5b506101e860095481565b34801561037057600080fd5b5061014f61037f36600461118e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156103b957600080fd5b506101d16103c83660046113aa565b610af1565b60006301ffc9a760e01b6001600160e01b0319831614806103fe57506380ac58cd60e01b6001600160e01b03198316145b806104195750635b5e139f60e01b6001600160e01b03198316145b92915050565b60606002805461042e9061151e565b80601f016020809104026020016040519081016040528092919081815260200182805461045a9061151e565b80156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b5050505050905090565b60006104bc82610b10565b6104d9576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b816daaeb6d7670e522a718067333cd4e3b156105c357604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061133a565b6105c357604051633b79c77360e21b81526001600160a01b03821660048201526024015b60405180910390fd5b6105cd8383610b37565b505050565b826daaeb6d7670e522a718067333cd4e3b156106aa576001600160a01b03811633141561060957610604848484610bd7565b6106b5565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b919061133a565b6106aa57604051633b79c77360e21b81523360048201526024016105ba565b6106b5848484610bd7565b50505050565b600d546001600160a01b031633146106d257600080fd5b60405133904780156108fc02916000818181858888f193505050501580156106fe573d6000803e3d6000fd5b50565b826daaeb6d7670e522a718067333cd4e3b156107d4576001600160a01b03811633141561073357610604848484610d68565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561077d57600080fd5b505afa158015610791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b5919061133a565b6107d457604051633b79c77360e21b81523360048201526024016105ba565b6106b5848484610d68565b600061041982610d83565b60006001600160a01b038216610813576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b60606003805461042e9061151e565b34610884578060011461085a57600080fd5b600b546001546000540361086f9060016114bb565b1061087957600080fd5b6106fe336001610deb565b600954816108956001546000540390565b61089f91906114bb565b11156108aa57600080fd5b600c548111156108b957600080fd5b600a546108c690826114d3565b3410156108d257600080fd5b6106fe3382610deb565b816daaeb6d7670e522a718067333cd4e3b156109a557604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b15801561094557600080fd5b505afa158015610959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097d919061133a565b6109a557604051633b79c77360e21b81526001600160a01b03821660048201526024016105ba565b6105cd8383610e05565b836daaeb6d7670e522a718067333cd4e3b15610a88576001600160a01b0381163314156109e7576109e285858585610e71565b610a94565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b158015610a3157600080fd5b505afa158015610a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a69919061133a565b610a8857604051633b79c77360e21b81523360048201526024016105ba565b610a9485858585610e71565b5050505050565b6060610aa682610eb5565b604051602001610ab691906113f8565b6040516020818303038152906040529050919050565b600d546001600160a01b03163314610ae357600080fd5b610aed8282610deb565b5050565b600d546001600160a01b03163314610b0857600080fd5b600c55600b55565b6000805482108015610419575050600090815260046020526040902054600160e01b161590565b6000610b42826107df565b9050336001600160a01b03821614610b7b57610b5e813361037f565b610b7b576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610be282610d83565b9050836001600160a01b0316816001600160a01b031614610c155760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417610c6257610c45863361037f565b610c6257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038516610c8957604051633a954ecd60e21b815260040160405180910390fd5b8015610c9457600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040902055600160e11b8316610d1f5760018401600081815260046020526040902054610d1d576000548114610d1d5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b6105cd838383604051806020016040528060008152506109af565b600081600054811015610dd257600081815260046020526040902054600160e01b8116610dd0575b80610dc9575060001901600081815260046020526040902054610dab565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b610aed828260405180602001604052806000815250610f03565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610e7c8484846105d2565b6001600160a01b0383163b156106b557610e9884848484610f69565b6106b5576040516368d2bf6b60e11b815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480610eec57610ef1565b610ecf565b50819003601f19909101908152919050565b610f0d8383611060565b6001600160a01b0383163b156105cd576000548281035b610f376000868380600101945086610f69565b610f54576040516368d2bf6b60e11b815260040160405180910390fd5b818110610f24578160005414610a9457600080fd5b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290610f9e90339089908890889060040161146b565b602060405180830381600087803b158015610fb857600080fd5b505af1925050508015610fe8575060408051601f3d908101601f19168201909252610fe591810190611374565b60015b611043573d808015611016576040519150601f19603f3d011682016040523d82523d6000602084013e61101b565b606091505b50805161103b576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b600054816110815760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461113057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016110f8565b508161114e57604051622e076360e81b815260040160405180910390fd5b60005550505050565b80356001600160a01b038116811461116e57600080fd5b919050565b60006020828403121561118557600080fd5b610dc982611157565b600080604083850312156111a157600080fd5b6111aa83611157565b91506111b860208401611157565b90509250929050565b6000806000606084860312156111d657600080fd5b6111df84611157565b92506111ed60208501611157565b9150604084013590509250925092565b6000806000806080858703121561121357600080fd5b61121c85611157565b935061122a60208601611157565b925060408501359150606085013567ffffffffffffffff8082111561124e57600080fd5b818701915087601f83011261126257600080fd5b8135818111156112745761127461156f565b604051601f8201601f19908116603f0116810190838211818310171561129c5761129c61156f565b816040528281528a60208487010111156112b557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156112ec57600080fd5b6112f583611157565b9150602083013561130581611585565b809150509250929050565b6000806040838503121561132357600080fd5b61132c83611157565b946020939093013593505050565b60006020828403121561134c57600080fd5b8151610dc981611585565b60006020828403121561136957600080fd5b8135610dc981611593565b60006020828403121561138657600080fd5b8151610dc981611593565b6000602082840312156113a357600080fd5b5035919050565b600080604083850312156113bd57600080fd5b50508035926020909101359150565b600081518084526113e48160208601602086016114f2565b601f01601f19169290920160200192915050565b7f697066733a2f2f516d59636a784577506f6d75504835565a567768525554664a8152757a794b65386e487733676a37456652344a3536784e2f60501b60208201526000825161144f8160368501602087016114f2565b64173539b7b760d91b6036939091019283015250603b01919050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061149e908301846113cc565b9695505050505050565b602081526000610dc960208301846113cc565b600082198211156114ce576114ce611559565b500190565b60008160001904831182151516156114ed576114ed611559565b500290565b60005b8381101561150d5781810151838201526020016114f5565b838111156106b55750506000910152565b600181811c9082168061153257607f821691505b6020821081141561155357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146106fe57600080fd5b6001600160e01b0319811681146106fe57600080fdfea2646970667358221220677a22d2b185a22303e011866b6a863abeea9f04c3a34b10578df8522a294b8964736f6c63430008070033