60806040526040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152505f908161004791906102ff565b506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506001908161008c91906102ff565b50601260025f6101000a81548160ff021916908360ff160217905550670de0b6b3a76400006003553480156100bf575f80fd5b506103ce565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014057607f821691505b602082108103610153576101526100fc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261017a565b6101bf868361017a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102036101fe6101f9846101d7565b6101e0565b6101d7565b9050919050565b5f819050919050565b61021c836101e9565b6102306102288261020a565b848454610186565b825550505050565b5f90565b610244610238565b61024f818484610213565b505050565b5b81811015610272576102675f8261023c565b600181019050610255565b5050565b601f8211156102b75761028881610159565b6102918461016b565b810160208510156102a0578190505b6102b46102ac8561016b565b830182610254565b50505b505050565b5f82821c905092915050565b5f6102d75f19846008026102bc565b1980831691505092915050565b5f6102ef83836102c8565b9150826002028217905092915050565b610308826100c5565b67ffffffffffffffff811115610321576103206100cf565b5b61032b8254610129565b610336828285610276565b5f60209050601f831160018114610367575f8415610355578287015190505b61035f85826102e4565b8655506103c6565b601f19841661037586610159565b5f5b8281101561039c57848901518255600182019150602085019450602081019050610377565b868310156103b957848901516103b5601f8916826102c8565b8355505b6001600288020188555050505b505050505050565b6104e6806103db5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806306fdde031461005957806318160ddd14610077578063313ce5671461009557806395d89b41146100b3578063beabacc8146100d1575b5f80fd5b6100616100ed565b60405161006e91906102f6565b60405180910390f35b61007f610178565b60405161008c919061032e565b60405180910390f35b61009d61017e565b6040516100aa9190610362565b60405180910390f35b6100bb610190565b6040516100c891906102f6565b60405180910390f35b6100eb60048036038101906100e69190610403565b61021c565b005b5f80546100f990610480565b80601f016020809104026020016040519081016040528092919081815260200182805461012590610480565b80156101705780601f1061014757610100808354040283529160200191610170565b820191905f5260205f20905b81548152906001019060200180831161015357829003601f168201915b505050505081565b60035481565b60025f9054906101000a900460ff1681565b6001805461019d90610480565b80601f01602080910402602001604051908101604052809291908181526020018280546101c990610480565b80156102145780601f106101eb57610100808354040283529160200191610214565b820191905f5260205f20905b8154815290600101906020018083116101f757829003601f168201915b505050505081565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610279919061032e565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6102c882610286565b6102d28185610290565b93506102e28185602086016102a0565b6102eb816102ae565b840191505092915050565b5f6020820190508181035f83015261030e81846102be565b905092915050565b5f819050919050565b61032881610316565b82525050565b5f6020820190506103415f83018461031f565b92915050565b5f60ff82169050919050565b61035c81610347565b82525050565b5f6020820190506103755f830184610353565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103a88261037f565b9050919050565b6103b88161039e565b81146103c2575f80fd5b50565b5f813590506103d3816103af565b92915050565b6103e281610316565b81146103ec575f80fd5b50565b5f813590506103fd816103d9565b92915050565b5f805f6060848603121561041a5761041961037b565b5b5f610427868287016103c5565b9350506020610438868287016103c5565b9250506040610449868287016103ef565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061049757607f821691505b6020821081036104aa576104a9610453565b5b5091905056fea264697066735822122008ea310513e2046a23f03c2bea7761873145260d270d6bf6f6316243db83c83364736f6c63430008190033