608060405234801562000010575f80fd5b50604051620013b9380380620013b983398181016040528101906200003691906200027f565b825f908162000046919062000544565b50816001908162000058919062000544565b50670de0b6b3a7640000816200006f919062000655565b60028190555060025460035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050506200069f565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200012382620000db565b810181811067ffffffffffffffff82111715620001455762000144620000eb565b5b80604052505050565b5f62000159620000c2565b905062000167828262000118565b919050565b5f67ffffffffffffffff821115620001895762000188620000eb565b5b6200019482620000db565b9050602081019050919050565b5f5b83811015620001c0578082015181840152602081019050620001a3565b5f8484015250505050565b5f620001e1620001db846200016c565b6200014e565b9050828152602081018484840111156200020057620001ff620000d7565b5b6200020d848285620001a1565b509392505050565b5f82601f8301126200022c576200022b620000d3565b5b81516200023e848260208601620001cb565b91505092915050565b5f819050919050565b6200025b8162000247565b811462000266575f80fd5b50565b5f81519050620002798162000250565b92915050565b5f805f60608486031215620002995762000298620000cb565b5b5f84015167ffffffffffffffff811115620002b957620002b8620000cf565b5b620002c78682870162000215565b935050602084015167ffffffffffffffff811115620002eb57620002ea620000cf565b5b620002f98682870162000215565b92505060406200030c8682870162000269565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200036557607f821691505b6020821081036200037b576200037a62000320565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003df7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003a2565b620003eb8683620003a2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200042c62000426620004208462000247565b62000403565b62000247565b9050919050565b5f819050919050565b62000447836200040c565b6200045f620004568262000433565b848454620003ae565b825550505050565b5f90565b6200047562000467565b620004828184846200043c565b505050565b5b81811015620004a9576200049d5f826200046b565b60018101905062000488565b5050565b601f821115620004f857620004c28162000381565b620004cd8462000393565b81016020851015620004dd578190505b620004f5620004ec8562000393565b83018262000487565b50505b505050565b5f82821c905092915050565b5f6200051a5f1984600802620004fd565b1980831691505092915050565b5f62000534838362000509565b9150826002028217905092915050565b6200054f8262000316565b67ffffffffffffffff8111156200056b576200056a620000eb565b5b6200057782546200034d565b62000584828285620004ad565b5f60209050601f831160018114620005ba575f8415620005a5578287015190505b620005b1858262000527565b86555062000620565b601f198416620005ca8662000381565b5f5b82811015620005f357848901518255600182019150602085019450602081019050620005cc565b868310156200061357848901516200060f601f89168262000509565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620006618262000247565b91506200066e8362000247565b92508282026200067e8162000247565b9150828204841483151762000698576200069762000628565b5b5092915050565b610d0c80620006ad5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c806370a082311161005957806370a082311461012657806395d89b4114610156578063a9059cbb14610174578063dd62ed3e146101a457610086565b806306fdde031461008a578063095ea7b3146100a857806318160ddd146100d857806323b872dd146100f6575b5f80fd5b6100926101d4565b60405161009f9190610913565b60405180910390f35b6100c260048036038101906100bd91906109c4565b61025f565b6040516100cf9190610a1c565b60405180910390f35b6100e061034c565b6040516100ed9190610a44565b60405180910390f35b610110600480360381019061010b9190610a5d565b610352565b60405161011d9190610a1c565b60405180910390f35b610140600480360381019061013b9190610aad565b610632565b60405161014d9190610a44565b60405180910390f35b61015e610647565b60405161016b9190610913565b60405180910390f35b61018e600480360381019061018991906109c4565b6106d3565b60405161019b9190610a1c565b60405180910390f35b6101be60048036038101906101b99190610ad8565b610869565b6040516101cb9190610a44565b60405180910390f35b5f80546101e090610b43565b80601f016020809104026020016040519081016040528092919081815260200182805461020c90610b43565b80156102575780601f1061022e57610100808354040283529160200191610257565b820191905f5260205f20905b81548152906001019060200180831161023a57829003601f168201915b505050505081565b5f8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161033a9190610a44565b60405180910390a36001905092915050565b60025481565b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156103d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ca90610bbd565b60405180910390fd5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561048e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048590610c25565b60405180910390fd5b8160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104da9190610c70565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461052d9190610ca3565b925050819055508160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105bb9190610c70565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161061f9190610a44565b60405180910390a3600190509392505050565b6003602052805f5260405f205f915090505481565b6001805461065490610b43565b80601f016020809104026020016040519081016040528092919081815260200182805461068090610b43565b80156106cb5780601f106106a2576101008083540402835291602001916106cb565b820191905f5260205f20905b8154815290600101906020018083116106ae57829003601f168201915b505050505081565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074b90610bbd565b60405180910390fd5b8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107a09190610c70565b925050819055508160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107f39190610ca3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108579190610a44565b60405180910390a36001905092915050565b6004602052815f5260405f20602052805f5260405f205f91509150505481565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156108c05780820151818401526020810190506108a5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6108e582610889565b6108ef8185610893565b93506108ff8185602086016108a3565b610908816108cb565b840191505092915050565b5f6020820190508181035f83015261092b81846108db565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61096082610937565b9050919050565b61097081610956565b811461097a575f80fd5b50565b5f8135905061098b81610967565b92915050565b5f819050919050565b6109a381610991565b81146109ad575f80fd5b50565b5f813590506109be8161099a565b92915050565b5f80604083850312156109da576109d9610933565b5b5f6109e78582860161097d565b92505060206109f8858286016109b0565b9150509250929050565b5f8115159050919050565b610a1681610a02565b82525050565b5f602082019050610a2f5f830184610a0d565b92915050565b610a3e81610991565b82525050565b5f602082019050610a575f830184610a35565b92915050565b5f805f60608486031215610a7457610a73610933565b5b5f610a818682870161097d565b9350506020610a928682870161097d565b9250506040610aa3868287016109b0565b9150509250925092565b5f60208284031215610ac257610ac1610933565b5b5f610acf8482850161097d565b91505092915050565b5f8060408385031215610aee57610aed610933565b5b5f610afb8582860161097d565b9250506020610b0c8582860161097d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b5a57607f821691505b602082108103610b6d57610b6c610b16565b5b50919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610ba7601483610893565b9150610bb282610b73565b602082019050919050565b5f6020820190508181035f830152610bd481610b9b565b9050919050565b7f416c6c6f77616e636520657863656564656400000000000000000000000000005f82015250565b5f610c0f601283610893565b9150610c1a82610bdb565b602082019050919050565b5f6020820190508181035f830152610c3c81610c03565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c7a82610991565b9150610c8583610991565b9250828203905081811115610c9d57610c9c610c43565b5b92915050565b5f610cad82610991565b9150610cb883610991565b9250828201905080821115610cd057610ccf610c43565b5b9291505056fea2646970667358221220c626cd0e68463c8552f75c016d8ef115b8859fad709d16028a9119bb123baba464736f6c63430008180033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002686e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016c00000000000000000000000000000000000000000000000000000000000000