0x60806040526000805460ff191690553480156200001b57600080fd5b5060405162001134380380620011348339810160408190526200003e91620001d1565b60008054610100600160a81b0319163361010002179055600280546001600160a01b0319166001600160a01b0384161790556200007b8162000084565b50505062000209565b6000805461010090046001600160a01b03163314620000dd5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420696e766f6b65722160801b60448201526064015b60405180910390fd5b6001600160a01b038216620001285760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420616464726573732160801b6044820152606401620000d4565b6000546001600160a01b038381166101009092041614156200018d5760405162461bcd60e51b815260206004820152601460248201527f466f7262696464656e20616464206f776e6572210000000000000000000000006044820152606401620000d4565b506001600160a01b0381166000908152600160208190526040909120805460ff1916821790555b919050565b80516001600160a01b0381168114620001b457600080fd5b60008060408385031215620001e557600080fd5b620001f083620001b9565b91506200020060208401620001b9565b90509250929050565b610f1b80620002196000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806367d0661d1161008c578063a2391e9a11610066578063a2391e9a146101dc578063beabacc8146101ef578063dd62ed3e14610202578063f7888aec1461022357600080fd5b806367d0661d146101915780638f84aa091461019957806398141712146101c957600080fd5b80631a0814e1116100c85780631a0814e11461013d57806330efb8d3146101505780635c975abb146101585780635d8c475a1461016557600080fd5b80630bf97c1b146100ef5780631273d2ac1461011757806315dacbea1461012a575b600080fd5b6101026100fd366004610bb4565b610236565b60405190151581526020015b60405180910390f35b610102610125366004610bd6565b6102e2565b610102610138366004610c74565b61034f565b61010261014b366004610cbf565b6105ec565b610102610651565b6000546101029060ff1681565b610102610173366004610bb4565b6001600160a01b031660009081526001602052604090205460ff1690565b6101026106a0565b6000546101b19061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161010e565b6101026101d7366004610bb4565b6106f4565b6101026101ea366004610d25565b6107ef565b6101026101fd366004610da7565b610858565b610215610210366004610de3565b610a59565b60405190815260200161010e565b610215610231366004610de3565b610b00565b6000805461010090046001600160a01b0316331461026f5760405162461bcd60e51b815260040161026690610e16565b60405180910390fd5b6001600160a01b0382166102b85760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420616464726573732160801b6044820152606401610266565b506001600160a01b0381166000908152600160208190526040909120805460ff191690555b919050565b60006102f48b8b8b8b8b8b8b8b6107ef565b5060008211801561030d57506001600160a01b03831615155b801561032b5750826001600160a01b03168a6001600160a01b031614155b1561033e5761033c8b8b858561034f565b505b5060019a9950505050505050505050565b6000805461010090046001600160a01b031633148061038357503360009081526001602081905260409091205460ff161515145b61039f5760405162461bcd60e51b815260040161026690610e16565b60005460ff16156103af57600080fd5b826001600160a01b0316846001600160a01b031614156103e15760405162461bcd60e51b815260040161026690610e40565b6001600160a01b03841661042e5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642066726f6d416464726573732160601b6044820152606401610266565b6001600160a01b0383166104795760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420746f416464726573732160701b6044820152606401610266565b600082116104ba5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610266565b6002546000906001600160a01b0316158015906104e457506002546001600160a01b038781169116145b9050801561055f576040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528791908216906323b872dd90606401600060405180830381600087803b15801561054157600080fd5b505af1158015610555573d6000803e3d6000fd5b50505050506105e0565b6040516323b872dd60e01b81526001600160a01b0386811660048301528581166024830152604482018590528791908216906323b872dd906064016020604051808303816000875af11580156105b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105dd9190610e6f565b50505b50600195945050505050565b60006105fa8787878761034f565b5060008211801561061357506001600160a01b03831615155b80156106315750826001600160a01b0316866001600160a01b031614155b15610644576106428787858561034f565b505b5060019695505050505050565b6000805461010090046001600160a01b031633146106815760405162461bcd60e51b815260040161026690610e16565b60005460ff1661069057600080fd5b506000805460ff19169055600190565b6000805461010090046001600160a01b031633146106d05760405162461bcd60e51b815260040161026690610e16565b60005460ff16156106e057600080fd5b506000805460ff1916600190811790915590565b6000805461010090046001600160a01b031633146107245760405162461bcd60e51b815260040161026690610e16565b6001600160a01b03821661076d5760405162461bcd60e51b815260206004820152601060248201526f696e76616c696420616464726573732160801b6044820152606401610266565b6000546001600160a01b038381166101009092041614156107c75760405162461bcd60e51b8152602060048201526014602482015273466f7262696464656e20616464206f776e65722160601b6044820152606401610266565b506001600160a01b03166000908152600160208190526040909120805460ff19168217905590565b60006107ff8989898989896105ec565b5060008211801561081857506001600160a01b03831615155b80156108365750826001600160a01b0316886001600160a01b031614155b15610849576108478989858561034f565b505b50600198975050505050505050565b6000805461010090046001600160a01b031633148061088c57503360009081526001602081905260409091205460ff161515145b6108a85760405162461bcd60e51b815260040161026690610e16565b60005460ff16156108b857600080fd5b6001600160a01b0384166109075760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420746f6b656e20616464726573732160501b6044820152606401610266565b6001600160a01b0383166109525760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420746f416464726573732160701b6044820152606401610266565b600082116109935760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b6044820152606401610266565b6040516001600160a01b03841660248201526044810183905260009060640160408051601f198184030181529181526020820180516001600160e01b0316632758748d60e21b1790525190915060009081906001600160a01b038816906109fb908590610e91565b6000604051808303816000865af19150503d8060008114610a38576040519150601f19603f3d011682016040523d82523d6000602084013e610a3d565b606091505b5091509150818015610a50575060008151115b61064457600080fd5b60006001600160a01b038216610a815760405162461bcd60e51b815260040161026690610e40565b604051636eb1769f60e11b81526001600160a01b03838116600483015230602483018190528592909183169063dd62ed3e90604401602060405180830381865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190610ecc565b95945050505050565b60006001600160a01b038216610b285760405162461bcd60e51b815260040161026690610e40565b6040516370a0823160e01b81526001600160a01b0383811660048301528491908216906370a0823190602401602060405180830381865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190610ecc565b949350505050565b80356001600160a01b03811681146102dd57600080fd5b600060208284031215610bc657600080fd5b610bcf82610b9d565b9392505050565b6000806000806000806000806000806101408b8d031215610bf657600080fd5b610bff8b610b9d565b9950610c0d60208c01610b9d565b9850610c1b60408c01610b9d565b975060608b01359650610c3060808c01610b9d565b955060a08b01359450610c4560c08c01610b9d565b935060e08b01359250610c5b6101008c01610b9d565b91506101208b013590509295989b9194979a5092959850565b60008060008060808587031215610c8a57600080fd5b610c9385610b9d565b9350610ca160208601610b9d565b9250610caf60408601610b9d565b9396929550929360600135925050565b60008060008060008060c08789031215610cd857600080fd5b610ce187610b9d565b9550610cef60208801610b9d565b9450610cfd60408801610b9d565b935060608701359250610d1260808801610b9d565b915060a087013590509295509295509295565b600080600080600080600080610100898b031215610d4257600080fd5b610d4b89610b9d565b9750610d5960208a01610b9d565b9650610d6760408a01610b9d565b955060608901359450610d7c60808a01610b9d565b935060a08901359250610d9160c08a01610b9d565b915060e089013590509295985092959890939650565b600080600060608486031215610dbc57600080fd5b610dc584610b9d565b9250610dd360208501610b9d565b9150604084013590509250925092565b60008060408385031215610df657600080fd5b610dff83610b9d565b9150610e0d60208401610b9d565b90509250929050565b60208082526010908201526f496e76616c696420696e766f6b65722160801b604082015260600190565b602080825260159082015274496e76616c6964206163636f756e7420616464722160581b604082015260600190565b600060208284031215610e8157600080fd5b81518015158114610bcf57600080fd5b6000825160005b81811015610eb25760208186018101518583015201610e98565b81811115610ec1576000828501525b509190910192915050565b600060208284031215610ede57600080fd5b505191905056fea26469706673582212204f10cd9a0bff038aae01c0204202247677b7780720fe8e05e43ae835bd18832164736f6c634300080a0033000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000003ae3661ef8504fd70de0775e8af1cd39bb5c88d8