//
0x608060405234801561001057600080fd5b50604051610d1b380380610d1b83398101604081905261002f916101f4565b338061005657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61005f81610083565b50610069816100d3565b61007282610167565b61007b8361019c565b50505061024a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6127108161ffff16111561011c5760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420746178207261746560801b604482015260640161004d565b6002805461ffff191661ffff83169081179091556040519081527feb01f80068b9ea51374386c231456cc30cbc05f7c55e5b0c69d27a85fe4713b6906020015b60405180910390a150565b60018190556040518181527f49983304e7919cb8abac53d62d4fea2301eb58a4911c803f5d0d2f94255bbc799060200161015c565b6002805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040519081527f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa9060200161015c565b60008060006060848603121561020957600080fd5b83516001600160a01b038116811461022057600080fd5b60208501516040860151919450925061ffff8116811461023f57600080fd5b809150509250925092565b610ac2806102596000396000f3fe6080604052600436106100c65760003560e01c80637adbf9731161007f57806382a6c0ac1161005957806382a6c0ac146102475780638da5cb5b146102925780639ed3edf0146102b0578063f2fde38b146102d457600080fd5b80637adbf973146101c95780637dc0d1d0146101e95780637def175b1461022757600080fd5b8063096a8ab71461010a5780633ccfd60b1461012c578063558a7297146101415780636c791e0414610161578063715018a614610181578063771a3a1d1461019657600080fd5b3661010557604080513381523460208201527fdee2ab17a11fed97f8e77365c974b8cf300fd02892e9496c487dc319ac1bb180910160405180910390a1005b600080fd5b34801561011657600080fd5b5061012a610125366004610898565b6102f4565b005b34801561013857600080fd5b5061012a610338565b34801561014d57600080fd5b5061012a61015c3660046108c6565b6103ad565b34801561016d57600080fd5b5061012a61017c366004610904565b610418565b34801561018d57600080fd5b5061012a610453565b3480156101a257600080fd5b506002546101b19061ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156101d557600080fd5b5061012a6101e436600461092e565b610467565b3480156101f557600080fd5b5060025461020f906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101c0565b34801561023357600080fd5b5061012a61024236600461094b565b61049f565b34801561025357600080fd5b50610282610262366004610993565b600360209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101c0565b34801561029e57600080fd5b506000546001600160a01b031661020f565b3480156102bc57600080fd5b506102c660015481565b6040519081526020016101c0565b3480156102e057600080fd5b5061012a6102ef36600461092e565b6106c6565b3360009081526004602052604090205460ff1661032c5760405162461bcd60e51b8152600401610323906109bf565b60405180910390fd5b61033581610701565b50565b610340610736565b6040514790339082156108fc029083906000818181858888f1935050505015801561036f573d6000803e3d6000fd5b5060408051338152602081018390527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d591015b60405180910390a150565b6103b5610736565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f1a594081ae893ab78e67d9b9e843547318164322d32c65369d78a96172d9dc8f910160405180910390a15050565b3360009081526004602052604090205460ff166104475760405162461bcd60e51b8152600401610323906109bf565b6103358160ff16610763565b61045b610736565b61046560006107f0565b565b3360009081526004602052604090205460ff166104965760405162461bcd60e51b8152600401610323906109bf565b61033581610840565b3360009081526004602052604090205460ff166104ce5760405162461bcd60e51b8152600401610323906109bf565b6001600160a01b038416600090815260036020908152604080832086845290915290205460ff16156105375760405162461bcd60e51b8152602060048201526012602482015271323ab83634b1b0ba32903a3930b739b332b960711b6044820152606401610323565b60025460405163e0b999a160e01b81526001600160a01b03868116600483015260248201849052600092620100009004169063e0b999a190604401602060405180830381865afa15801561058f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b391906109e9565b905060015481111561064e576001546105cc9082610a18565b60025490915061ffff161561060b57600254612710906105f09061ffff1682610a31565b6105fe9061ffff1683610a53565b6106089190610a6a565b90505b8015610649576040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015610647573d6000803e3d6000fd5b505b610652565b5060005b6001600160a01b038581166000818152600360209081526040808320898452825291829020805460ff191660011790558151868152908101859052928616928792917fe3e1fac461f69443517e18b34bed56e8f4be3a77d083f7c12f364a9c63de1507910160405180910390a45050505050565b6106ce610736565b6001600160a01b0381166106f857604051631e4fbdf760e01b815260006004820152602401610323565b610335816107f0565b60018190556040518181527f49983304e7919cb8abac53d62d4fea2301eb58a4911c803f5d0d2f94255bbc79906020016103a2565b6000546001600160a01b031633146104655760405163118cdaa760e01b8152336004820152602401610323565b6127108161ffff1611156107ac5760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420746178207261746560801b6044820152606401610323565b6002805461ffff191661ffff83169081179091556040519081527feb01f80068b9ea51374386c231456cc30cbc05f7c55e5b0c69d27a85fe4713b6906020016103a2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040519081527f3f32684a32a11dabdbb8c0177de80aa3ae36a004d75210335b49e544e48cd0aa906020016103a2565b6000602082840312156108aa57600080fd5b5035919050565b6001600160a01b038116811461033557600080fd5b600080604083850312156108d957600080fd5b82356108e4816108b1565b9150602083013580151581146108f957600080fd5b809150509250929050565b60006020828403121561091657600080fd5b813560ff8116811461092757600080fd5b9392505050565b60006020828403121561094057600080fd5b8135610927816108b1565b6000806000806080858703121561096157600080fd5b843561096c816108b1565b9350602085013592506040850135610983816108b1565b9396929550929360600135925050565b600080604083850312156109a657600080fd5b82356109b1816108b1565b946020939093013593505050565b60208082526010908201526f34b73b30b634b21037b832b930ba37b960811b604082015260600190565b6000602082840312156109fb57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a2b57610a2b610a02565b92915050565b61ffff828116828216039080821115610a4c57610a4c610a02565b5092915050565b8082028115828204841417610a2b57610a2b610a02565b600082610a8757634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212208a3fa8b4971c80d431cd46a4528e419118a2087e8b56bb219e929f86044c7d0f64736f6c63430008140033000000000000000000000000a29a3b26d2d8fc37d1ba35a7afa115c435848c8c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000