6080604052348015600e575f80fd5b506107328061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100a6575f3560e01c806370a082311161006e57806370a082311461010a57806395d89b411461011f5780639ce110d714610127578063c5a5515214610152578063d5ce338914610165578063f542033f14610178575f80fd5b806306fdde03146100aa578063163e1e61146100c857806318160ddd146100dd578063313ce567146100f2578063484b1c1314610101575b5f80fd5b6100b261018b565b6040516100bf9190610367565b60405180910390f35b6100db6100d63660046103fc565b610216565b005b6402540be4005b6040519081526020016100bf565b604051600281526020016100bf565b6100e460025481565b6100e46101183660046104a4565b5060025490565b6100b26102a9565b60035461013a906001600160a01b031681565b6040516001600160a01b0390911681526020016100bf565b6100db6101603660046103fc565b6102b6565b60045461013a906001600160a01b031681565b6100db610186366004610530565b6102c2565b5f8054610197906105a7565b80601f01602080910402602001604051908101604052809291908181526020018280546101c3906105a7565b801561020e5780601f106101e55761010080835404028352916020019161020e565b820191905f5260205f20905b8154815290600101906020018083116101f157829003601f168201915b505050505081565b80516004546002546001600160a01b03909116905f5b838110156102a257848181518110610246576102466105df565b60200260200101516001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161029291815260200190565b60405180910390a360010161022c565b5050505050565b60018054610197906105a7565b6102bf81610216565b50565b6003546001600160a01b0316156103155760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640160405180910390fd5b600380546001600160a01b031916331790555f610332858261063c565b50600161033f848261063c565b50600255600480546001600160a01b0319166001600160a01b03929092169190911790555050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156103d9576103d961039c565b604052919050565b80356001600160a01b03811681146103f7575f80fd5b919050565b5f602080838503121561040d575f80fd5b823567ffffffffffffffff80821115610424575f80fd5b818501915085601f830112610437575f80fd5b8135818111156104495761044961039c565b8060051b915061045a8483016103b0565b8181529183018401918481019088841115610473575f80fd5b938501935b8385101561049857610489856103e1565b82529385019390850190610478565b98975050505050505050565b5f602082840312156104b4575f80fd5b6104bd826103e1565b9392505050565b5f82601f8301126104d3575f80fd5b813567ffffffffffffffff8111156104ed576104ed61039c565b610500601f8201601f19166020016103b0565b818152846020838601011115610514575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f8060808587031215610543575f80fd5b843567ffffffffffffffff8082111561055a575f80fd5b610566888389016104c4565b9550602087013591508082111561057b575f80fd5b50610588878288016104c4565b935050610597604086016103e1565b9396929550929360600135925050565b600181811c908216806105bb57607f821691505b6020821081036105d957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b601f82111561063757805f5260205f20601f840160051c810160208510156106185750805b601f840160051c820191505b818110156102a2575f8155600101610624565b505050565b815167ffffffffffffffff8111156106565761065661039c565b61066a8161066484546105a7565b846105f3565b602080601f83116001811461069d575f84156106865750858301515b5f19600386901b1c1916600185901b1785556106f4565b5f85815260208120601f198616915b828110156106cb578886015182559484019460019091019084016106ac565b50858210156106e857878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212202f7faf3eeabe6307bf7a1b570823827059261e884b83020b3df6e803f483ab0764736f6c63430008190033