0x608060405234801561001057600080fd5b5069d3c21bcecceda10000006000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bee8061006d6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063313ce56711610066578063313ce5671461016f57806370a082311461018d57806395d89b41146101bd578063a9059cbb146101db578063dd62ed3e1461020b5761009e565b806306fdde03146100a3578063095ea7b3146100c157806316279055146100f157806318160ddd1461012157806323b872dd1461013f575b600080fd5b6100ab61023b565b6040516100b891906109c4565b60405180910390f35b6100db60048036038101906100d69190610907565b610274565b6040516100e891906109a9565b60405180910390f35b61010b60048036038101906101069190610853565b610366565b60405161011891906109a9565b60405180910390f35b610129610379565b60405161013691906109e6565b60405180910390f35b610159600480360381019061015491906108b8565b61038b565b60405161016691906109a9565b60405180910390f35b6101776105db565b6040516101849190610a01565b60405180910390f35b6101a760048036038101906101a29190610853565b6105e0565b6040516101b491906109e6565b60405180910390f35b6101c5610628565b6040516101d291906109c4565b60405180910390f35b6101f560048036038101906101f09190610907565b610661565b60405161020291906109a9565b60405180910390f35b6102256004803603810190610220919061087c565b6107a2565b60405161023291906109e6565b60405180910390f35b6040518060400160405280600981526020017f575a5820546f6b656e000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161035491906109e6565b60405180910390a36001905092915050565b600080823b905060008111915050919050565b600069d3c21bcecceda1000000905090565b6000808211801561041857506000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b80156104a0575081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156104b257506104b083610366565b155b156105cf57816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546105059190610a8e565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461055a9190610a38565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105be91906109e6565b60405180910390a3600190506105d4565b600090505b9392505050565b601281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f575a58000000000000000000000000000000000000000000000000000000000081525081565b6000808211801561067a5750610676336105e0565b8211155b1561079757816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106cd9190610a8e565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107229190610a38565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161078691906109e6565b60405180910390a36001905061079c565b600090505b92915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061083881610b8a565b92915050565b60008135905061084d81610ba1565b92915050565b60006020828403121561086557600080fd5b600061087384828501610829565b91505092915050565b6000806040838503121561088f57600080fd5b600061089d85828601610829565b92505060206108ae85828601610829565b9150509250929050565b6000806000606084860312156108cd57600080fd5b60006108db86828701610829565b93505060206108ec86828701610829565b92505060406108fd8682870161083e565b9150509250925092565b6000806040838503121561091a57600080fd5b600061092885828601610829565b92505060206109398582860161083e565b9150509250929050565b61094c81610ad4565b82525050565b600061095d82610a1c565b6109678185610a27565b9350610977818560208601610b17565b61098081610b79565b840191505092915050565b61099481610b00565b82525050565b6109a381610b0a565b82525050565b60006020820190506109be6000830184610943565b92915050565b600060208201905081810360008301526109de8184610952565b905092915050565b60006020820190506109fb600083018461098b565b92915050565b6000602082019050610a16600083018461099a565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610a4382610b00565b9150610a4e83610b00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610a8357610a82610b4a565b5b828201905092915050565b6000610a9982610b00565b9150610aa483610b00565b925082821015610ab757610ab6610b4a565b5b828203905092915050565b6000610acd82610ae0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610b35578082015181840152602081019050610b1a565b83811115610b44576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610b9381610ac2565b8114610b9e57600080fd5b50565b610baa81610b00565b8114610bb557600080fd5b5056fea26469706673582212204ff79eec5c18cd6afbc72ef075e338549c493acbf24ee23d17486d46e0ab44c164736f6c63430008000033