60806040526007805460ff191660011790553480156200001e57600080fd5b5060006200002b620001f6565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600580825264245065706560d81b6020909201918252620000a391600691620001fa565b5060408051808201909152601e8082527f5065706520766973697420706570656765742e70726f20746f207377617000006020909201918252620000ea91600591620001fa565b506004805460ff1916600a908117918290556200010b9160ff169062000317565b6200011b90631fb80f486200040f565b60038181556200012b91620002a9565b731f68dace978cd4f911467a63137009bd66aa2bc160005260016020527ff1aa88b4c151a05e304a6fe2aa644599fa5ae56399bc8fc9dd6622c9ccb63e26556004546200017d9060ff16600a62000317565b6200018b906101446200040f565b33600090815260016020526040808220929092556003549151731f68dace978cd4f911467a63137009bd66aa2bc1927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001e89190620002a0565b60405180910390a362000484565b3390565b828054620002089062000431565b90600052602060002090601f0160209004810192826200022c576000855562000277565b82601f106200024757805160ff191683800117855562000277565b8280016001018555821562000277579182015b82811115620002775782518255916020019190600101906200025a565b506200028592915062000289565b5090565b5b808211156200028557600081556001016200028a565b90815260200190565b600082620002c557634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620002de57506200030e565b818704821115620002f357620002f36200046e565b808616156200030157918102915b9490941c938002620002cd565b94509492505050565b60006200032b60001960ff85168462000332565b9392505050565b60008262000343575060016200032b565b8162000352575060006200032b565b81600181146200036b57600281146200037657620003aa565b60019150506200032b565b60ff8411156200038a576200038a6200046e565b6001841b915084821115620003a357620003a36200046e565b506200032b565b5060208310610133831016604e8410600b8410161715620003e2575081810a83811115620003dc57620003dc6200046e565b6200032b565b620003f18484846001620002ca565b8086048211156200040657620004066200046e565b02949350505050565b60008160001904831182151516156200042c576200042c6200046e565b500290565b6002810460018216806200044657607f821691505b602082108114156200046857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610fd180620004946000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806381b2d07b116100a2578063a457c2d711610071578063a457c2d714610211578063a9059cbb14610224578063d29d44ee14610237578063dd62ed3e1461024a578063f2fde38b1461025d57610116565b806381b2d07b146101d95780638da5cb5b146101e157806395d89b41146101f6578063a0712d68146101fe57610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806370a08231146101a9578063715018a6146101bc578063729ad39e146101c657610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b610123610270565b6040516101309190610c16565b60405180910390f35b61014c610147366004610af5565b610302565b6040516101309190610c0b565b61016161031f565b6040516101309190610e60565b61014c61017c366004610aba565b610325565b6101896103ac565b6040516101309190610e69565b61014c6101a4366004610af5565b6103b5565b6101616101b7366004610a6e565b610403565b6101c461043f565b005b6101c46101d4366004610b1e565b6104c7565b61014c610579565b6101e96105c9565b6040516101309190610bf7565b6101236105d8565b61014c61020c366004610bdf565b6105e7565b61014c61021f366004610af5565b610637565b61014c610232366004610af5565b61069f565b6101c4610245366004610a6e565b6106b3565b610161610258366004610a88565b610734565b6101c461026b366004610a6e565b61075f565b60606006805461027f90610ea6565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610ea6565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b600061031661030f6107a0565b84846107a4565b50600192915050565b60035490565b600061033284848461081c565b6103a28461033e6107a0565b61039d85604051806060016040528060288152602001610f29602891396001600160a01b038a1660009081526002602052604081209061037c6107a0565b6001600160a01b031681526020810191909152604001600020549190610933565b6107a4565b5060019392505050565b60045460ff1690565b60006103166103c26107a0565b8461039d85600260006103d36107a0565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061096d565b6001600160a01b03811660009081526001602052604081205460075460ff16610434576704fa45e7495d7800610436565b805b9150505b919050565b6104476107a0565b6000546001600160a01b0390811691161461047d5760405162461bcd60e51b815260040161047490610da6565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b805160005b81811015610574578281815181106104f457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316731f68dace978cd4f911467a63137009bd66aa2bc16001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6704fa45e7495d780060405161055a9190610e60565b60405180910390a38061056c81610ee1565b9150506104cc565b505050565b60006105836107a0565b6000546001600160a01b039081169116146105b05760405162461bcd60e51b815260040161047490610da6565b506007805460ff19811660ff9182161517918290551690565b6000546001600160a01b031690565b60606005805461027f90610ea6565b60006105f16107a0565b6000546001600160a01b0390811691161461061e5760405162461bcd60e51b815260040161047490610da6565b61062f6106296107a0565b836109a3565b506001919050565b60006103166106446107a0565b8461039d85604051806060016040528060258152602001610f77602591396002600061066e6107a0565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610933565b60006103166106ac6107a0565b848461081c565b6001600160a01b0381166106d95760405162461bcd60e51b815260040161047490610cf2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6107676107a0565b6000546001600160a01b039081169116146107945760405162461bcd60e51b815260040161047490610da6565b61079d816106b3565b50565b3390565b6001600160a01b0383166107ca5760405162461bcd60e51b815260040161047490610cae565b6001600160a01b0382166107f05760405162461bcd60e51b815260040161047490610e1e565b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6001600160a01b0383166108425760405162461bcd60e51b815260040161047490610c69565b6001600160a01b0382166108685760405162461bcd60e51b815260040161047490610ddb565b6108a581604051806060016040528060268152602001610f51602691396001600160a01b0386166000908152600160205260409020549190610933565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108d4908261096d565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610926908590610e60565b60405180910390a3505050565b600081848411156109575760405162461bcd60e51b81526004016104749190610c16565b5060006109648486610e8f565b95945050505050565b60008061097a8385610e77565b90508381101561099c5760405162461bcd60e51b815260040161047490610d38565b9392505050565b6001600160a01b0382166109c95760405162461bcd60e51b815260040161047490610d6f565b6003546109d6908261096d565b6003556001600160a01b0382166000908152600160205260409020546109fc908261096d565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a4b908590610e60565b60405180910390a35050565b80356001600160a01b038116811461043a57600080fd5b600060208284031215610a7f578081fd5b61099c82610a57565b60008060408385031215610a9a578081fd5b610aa383610a57565b9150610ab160208401610a57565b90509250929050565b600080600060608486031215610ace578081fd5b610ad784610a57565b9250610ae560208501610a57565b9150604084013590509250925092565b60008060408385031215610b07578182fd5b610b1083610a57565b946020939093013593505050565b60006020808385031215610b30578182fd5b823567ffffffffffffffff80821115610b47578384fd5b818501915085601f830112610b5a578384fd5b813581811115610b6c57610b6c610f12565b83810260405185828201018181108582111715610b8b57610b8b610f12565b604052828152858101935084860182860187018a1015610ba9578788fd5b8795505b83861015610bd257610bbe81610a57565b855260019590950194938601938601610bad565b5098975050505050505050565b600060208284031215610bf0578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610c4257858101830151858201604001528201610c26565b81811115610c535783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610e8a57610e8a610efc565b500190565b600082821015610ea157610ea1610efc565b500390565b600281046001821680610eba57607f821691505b60208210811415610edb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610ef557610ef5610efc565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d3525a53295f860bf4e891ae059bfdb45913f4c4dc4bdcce7e284fdb1b5fe07864736f6c63430008000033