0x60806040523480156200001157600080fd5b506040518060400160405280600481526020017f4162636400000000000000000000000000000000000000000000000000000000815250600090816200005891906200038a565b506040518060400160405280600481526020017f4142434400000000000000000000000000000000000000000000000000000000815250600190816200009f91906200038a565b506103e8600281905550600254600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006101000a81548160ff02191690831515021790555062000471565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200019257607f821691505b602082108103620001a857620001a76200014a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001d3565b6200021e8683620001d3565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200026b620002656200025f8462000236565b62000240565b62000236565b9050919050565b6000819050919050565b62000287836200024a565b6200029f620002968262000272565b848454620001e0565b825550505050565b600090565b620002b6620002a7565b620002c38184846200027c565b505050565b5b81811015620002eb57620002df600082620002ac565b600181019050620002c9565b5050565b601f8211156200033a576200030481620001ae565b6200030f84620001c3565b810160208510156200031f578190505b620003376200032e85620001c3565b830182620002c8565b50505b505050565b600082821c905092915050565b60006200035f600019846008026200033f565b1980831691505092915050565b60006200037a83836200034c565b9150826002028217905092915050565b620003958262000110565b67ffffffffffffffff811115620003b157620003b06200011b565b5b620003bd825462000179565b620003ca828285620002ef565b600060209050601f831160018114620004025760008415620003ed578287015190505b620003f985826200036c565b86555062000469565b601f1984166200041286620001ae565b60005b828110156200043c5784890151825560018201915060208501945060208101905062000415565b868310156200045c578489015162000458601f8916826200034c565b8355505b6001600288020188555050505b505050505050565b610bdc80620004816000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806395d89b411161005b57806395d89b41146101035780639c3cce71146101215780639fd6db121461013d578063e797ec1b1461015b57610088565b806306fdde031461008d57806318160ddd146100ab57806327e235e3146100c95780637e5cd5c1146100f9575b600080fd5b610095610165565b6040516100a2919061062b565b60405180910390f35b6100b36101f3565b6040516100c09190610666565b60405180910390f35b6100e360048036038101906100de91906106e9565b6101f9565b6040516100f09190610666565b60405180910390f35b610101610211565b005b61010b61027d565b604051610118919061062b565b60405180910390f35b61013b600480360381019061013691906107d1565b61030b565b005b61014561051b565b604051610152919061086d565b60405180910390f35b61016361052e565b005b60008054610172906108b7565b80601f016020809104026020016040519081016040528092919081815260200182805461019e906108b7565b80156101eb5780601f106101c0576101008083540402835291602001916101eb565b820191906000526020600020905b8154815290600101906020018083116101ce57829003601f168201915b505050505081565b60025481565b60036020528060005260406000206000915090505481565b600460009054906101000a900460ff16610260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025790610934565b60405180910390fd5b6000600460006101000a81548160ff021916908315150217905550565b6001805461028a906108b7565b80601f01602080910402602001604051908101604052809291908181526020018280546102b6906108b7565b80156103035780601f106102d857610100808354040283529160200191610303565b820191906000526020600020905b8154815290600101906020018083116102e657829003601f168201915b505050505081565b818190508484905014610353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034a906109a0565b60405180910390fd5b60005b84849050811015610514576000858583818110610376576103756109c0565b5b905060200201602081019061038b91906106e9565b905060008484848181106103a2576103a16109c0565b5b905060200201359050600081116103ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e590610a3b565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461043d9190610a8a565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104939190610abe565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104f79190610666565b60405180910390a35050808061050c90610af2565b915050610356565b5050505050565b600460009054906101000a900460ff1681565b600460009054906101000a900460ff161561057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057590610b86565b60405180910390fd5b6001600460006101000a81548160ff021916908315150217905550565b600081519050919050565b600082825260208201905092915050565b60005b838110156105d55780820151818401526020810190506105ba565b60008484015250505050565b6000601f19601f8301169050919050565b60006105fd8261059b565b61060781856105a6565b93506106178185602086016105b7565b610620816105e1565b840191505092915050565b6000602082019050818103600083015261064581846105f2565b905092915050565b6000819050919050565b6106608161064d565b82525050565b600060208201905061067b6000830184610657565b92915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106b68261068b565b9050919050565b6106c6816106ab565b81146106d157600080fd5b50565b6000813590506106e3816106bd565b92915050565b6000602082840312156106ff576106fe610681565b5b600061070d848285016106d4565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261073b5761073a610716565b5b8235905067ffffffffffffffff8111156107585761075761071b565b5b60208301915083602082028301111561077457610773610720565b5b9250929050565b60008083601f84011261079157610790610716565b5b8235905067ffffffffffffffff8111156107ae576107ad61071b565b5b6020830191508360208202830111156107ca576107c9610720565b5b9250929050565b600080600080604085870312156107eb576107ea610681565b5b600085013567ffffffffffffffff81111561080957610808610686565b5b61081587828801610725565b9450945050602085013567ffffffffffffffff81111561083857610837610686565b5b6108448782880161077b565b925092505092959194509250565b60008115159050919050565b61086781610852565b82525050565b6000602082019050610882600083018461085e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806108cf57607f821691505b6020821081036108e2576108e1610888565b5b50919050565b7f4d696e74696e6720697320616c72656164792064697361626c65640000000000600082015250565b600061091e601b836105a6565b9150610929826108e8565b602082019050919050565b6000602082019050818103600083015261094d81610911565b9050919050565b7f496e76616c696420696e70757400000000000000000000000000000000000000600082015250565b600061098a600d836105a6565b915061099582610954565b602082019050919050565b600060208201905081810360008301526109b98161097d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b6000610a25600e836105a6565b9150610a30826109ef565b602082019050919050565b60006020820190508181036000830152610a5481610a18565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a958261064d565b9150610aa08361064d565b9250828203905081811115610ab857610ab7610a5b565b5b92915050565b6000610ac98261064d565b9150610ad48361064d565b9250828201905080821115610aec57610aeb610a5b565b5b92915050565b6000610afd8261064d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b2f57610b2e610a5b565b5b600182019050919050565b7f4d696e74696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000610b70601a836105a6565b9150610b7b82610b3a565b602082019050919050565b60006020820190508181036000830152610b9f81610b63565b905091905056fea2646970667358221220fea3e8a95ca495a18521df8d1472600d4da5400878d136356a3e492fb1bca12e64736f6c63430008120033