60806040526007805460ff191660011790553480156200001e57600080fd5b5060006200002b620001f5565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260068082526509109b185cdd60d21b6020909201918252620000a29181620001f9565b5060408051808201909152601d8082527f424c4153542072657761726473206f6e20626c6173742e72752e636f6d0000006020909201918252620000e991600591620001f9565b506004805460ff1916600a908117918290556200010a9160ff169062000316565b6200011a90631fb80f486200040e565b60038181556200012a91620002a8565b73b1a5700fa2358173fe465e6ea4ff52e36e88e2ad60005260016020527f2128b6965e5a489f73ba735104c8d25042c74c020feb02df4dd150b89caff1fa556004546200017c9060ff16600a62000316565b6200018a906101446200040e565b3360009081526001602052604080822092909255600354915173b1a5700fa2358173fe465e6ea4ff52e36e88e2ad927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001e791906200029f565b60405180910390a362000483565b3390565b828054620002079062000430565b90600052602060002090601f0160209004810192826200022b576000855562000276565b82601f106200024657805160ff191683800117855562000276565b8280016001018555821562000276579182015b828111156200027657825182559160200191906001019062000259565b506200028492915062000288565b5090565b5b8082111562000284576000815560010162000289565b90815260200190565b600082620002c457634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620002dd57506200030d565b818704821115620002f257620002f26200046d565b808616156200030057918102915b9490941c938002620002cc565b94509492505050565b60006200032a60001960ff85168462000331565b9392505050565b60008262000342575060016200032a565b8162000351575060006200032a565b81600181146200036a57600281146200037557620003a9565b60019150506200032a565b60ff8411156200038957620003896200046d565b6001841b915084821115620003a257620003a26200046d565b506200032a565b5060208310610133831016604e8410600b8410161715620003e1575081810a83811115620003db57620003db6200046d565b6200032a565b620003f08484846001620002c9565b8086048211156200040557620004056200046d565b02949350505050565b60008160001904831182151516156200042b576200042b6200046d565b500290565b6002810460018216806200044557607f821691505b602082108114156200046757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610fcf80620004936000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806381b2d07b116100a2578063a457c2d711610071578063a457c2d714610211578063a9059cbb14610224578063d29d44ee14610237578063dd62ed3e1461024a578063f2fde38b1461025d57610116565b806381b2d07b146101d95780638da5cb5b146101e157806395d89b41146101f6578063a0712d68146101fe57610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806370a08231146101a9578063715018a6146101bc578063729ad39e146101c657610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b610123610270565b6040516101309190610c14565b60405180910390f35b61014c610147366004610af3565b610302565b6040516101309190610c09565b61016161031f565b6040516101309190610e5e565b61014c61017c366004610ab8565b610325565b6101896103ac565b6040516101309190610e67565b61014c6101a4366004610af3565b6103b5565b6101616101b7366004610a6c565b610403565b6101c461043e565b005b6101c46101d4366004610b1c565b6104c6565b61014c610577565b6101e96105c7565b6040516101309190610bf5565b6101236105d6565b61014c61020c366004610bdd565b6105e5565b61014c61021f366004610af3565b610635565b61014c610232366004610af3565b61069d565b6101c4610245366004610a6c565b6106b1565b610161610258366004610a86565b610732565b6101c461026b366004610a6c565b61075d565b60606006805461027f90610ea4565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610ea4565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b600061031661030f61079e565b84846107a2565b50600192915050565b60035490565b600061033284848461081a565b6103a28461033e61079e565b61039d85604051806060016040528060288152602001610f27602891396001600160a01b038a1660009081526002602052604081209061037c61079e565b6001600160a01b031681526020810191909152604001600020549190610931565b6107a2565b5060019392505050565b60045460ff1690565b60006103166103c261079e565b8461039d85600260006103d361079e565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061096b565b6001600160a01b03811660009081526001602052604081205460075460ff1661043357661129d777481000610435565b805b9150505b919050565b61044661079e565b6000546001600160a01b0390811691161461047c5760405162461bcd60e51b815260040161047390610da4565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b805160005b81811015610572578281815181106104f357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031673b1a5700fa2358173fe465e6ea4ff52e36e88e2ad6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef661129d7774810006040516105589190610e5e565b60405180910390a38061056a81610edf565b9150506104cb565b505050565b600061058161079e565b6000546001600160a01b039081169116146105ae5760405162461bcd60e51b815260040161047390610da4565b506007805460ff19811660ff9182161517918290551690565b6000546001600160a01b031690565b60606005805461027f90610ea4565b60006105ef61079e565b6000546001600160a01b0390811691161461061c5760405162461bcd60e51b815260040161047390610da4565b61062d61062761079e565b836109a1565b506001919050565b600061031661064261079e565b8461039d85604051806060016040528060258152602001610f75602591396002600061066c61079e565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610931565b60006103166106aa61079e565b848461081a565b6001600160a01b0381166106d75760405162461bcd60e51b815260040161047390610cf0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61076561079e565b6000546001600160a01b039081169116146107925760405162461bcd60e51b815260040161047390610da4565b61079b816106b1565b50565b3390565b6001600160a01b0383166107c85760405162461bcd60e51b815260040161047390610cac565b6001600160a01b0382166107ee5760405162461bcd60e51b815260040161047390610e1c565b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6001600160a01b0383166108405760405162461bcd60e51b815260040161047390610c67565b6001600160a01b0382166108665760405162461bcd60e51b815260040161047390610dd9565b6108a381604051806060016040528060268152602001610f4f602691396001600160a01b0386166000908152600160205260409020549190610931565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108d2908261096b565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610924908590610e5e565b60405180910390a3505050565b600081848411156109555760405162461bcd60e51b81526004016104739190610c14565b5060006109628486610e8d565b95945050505050565b6000806109788385610e75565b90508381101561099a5760405162461bcd60e51b815260040161047390610d36565b9392505050565b6001600160a01b0382166109c75760405162461bcd60e51b815260040161047390610d6d565b6003546109d4908261096b565b6003556001600160a01b0382166000908152600160205260409020546109fa908261096b565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a49908590610e5e565b60405180910390a35050565b80356001600160a01b038116811461043957600080fd5b600060208284031215610a7d578081fd5b61099a82610a55565b60008060408385031215610a98578081fd5b610aa183610a55565b9150610aaf60208401610a55565b90509250929050565b600080600060608486031215610acc578081fd5b610ad584610a55565b9250610ae360208501610a55565b9150604084013590509250925092565b60008060408385031215610b05578182fd5b610b0e83610a55565b946020939093013593505050565b60006020808385031215610b2e578182fd5b823567ffffffffffffffff80821115610b45578384fd5b818501915085601f830112610b58578384fd5b813581811115610b6a57610b6a610f10565b83810260405185828201018181108582111715610b8957610b89610f10565b604052828152858101935084860182860187018a1015610ba7578788fd5b8795505b83861015610bd057610bbc81610a55565b855260019590950194938601938601610bab565b5098975050505050505050565b600060208284031215610bee578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610c4057858101830151858201604001528201610c24565b81811115610c515783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610e8857610e88610efa565b500190565b600082821015610e9f57610e9f610efa565b500390565b600281046001821680610eb857607f821691505b60208210811415610ed957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610ef357610ef3610efa565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e5b9e5c977b5220da44fa12462609bc77c5fa21ab1751078fa60f40946925eed64736f6c63430008000033