0x6101006040523480156200001257600080fd5b50604051620011eb380380620011eb83398181016040528101906200003891906200017c565b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff168152505050505050620001ee565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001448262000117565b9050919050565b620001568162000137565b81146200016257600080fd5b50565b60008151905062000176816200014b565b92915050565b6000806000806080858703121562000199576200019862000112565b5b6000620001a98782880162000165565b9450506020620001bc8782880162000165565b9350506040620001cf8782880162000165565b9250506060620001e28782880162000165565b91505092959194509250565b60805160a05160c05160e051610fb662000235600039600061052a01526000610550015260008181604a01526101620152600081816103a101526105910152610fb66000f3fe6080604052600436106100435760003560e01c806307c4b7bb146100b557806310a14294146100de5780638de932221461011b578063a1d4b40a14610137576100b0565b366100b0577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156100ae573d6000803e3d6000fd5b005b600080fd5b3480156100c157600080fd5b506100dc60048036038101906100d79190610977565b610160565b005b3480156100ea57600080fd5b50610105600480360381019061010091906109c0565b610290565b60405161011291906109fc565b60405180910390f35b61013560048036038101906101309190610a17565b6102d8565b005b34801561014357600080fd5b5061015e60048036038101906101599190610b0c565b61040a565b005b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e590610c12565b60405180910390fd5b60005b815181101561028c5781818151811061020d5761020c610c32565b5b60200260200101516020015160008084848151811061022f5761022e610c32565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061028490610c90565b9150506101f1565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103229190610cd8565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed82823460405161039793929190610d1b565b60405180910390a17f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610405573d6000803e3d6000fd5b505050565b6040518060400160405280600481526020017f5553445400000000000000000000000000000000000000000000000000000000815250805190602001208180519060200120148061049d57506040518060400160405280600481526020017f5553444300000000000000000000000000000000000000000000000000000000815250805190602001208180519060200120145b6104dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d390610d9e565b60405180910390fd5b60006040518060400160405280600481526020017f55534454000000000000000000000000000000000000000000000000000000008152508051906020012082805190602001201461054e577f0000000000000000000000000000000000000000000000000000000000000000610570565b7f00000000000000000000000000000000000000000000000000000000000000005b90508073ffffffffffffffffffffffffffffffffffffffff166323b872dd337f0000000000000000000000000000000000000000000000000000000000000000866040518463ffffffff1660e01b81526004016105cf93929190610dbe565b6020604051808303816000875af11580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190610e2d565b610651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064890610ea6565b60405180910390fd5b836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069b9190610cd8565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507ffad2012aa3f4ed327cb098889e4f874d3f8b6001280764183dc6402fb00e7b31858585856040516107129493929190610f34565b60405180910390a15050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6107838261073a565b810181811067ffffffffffffffff821117156107a2576107a161074b565b5b80604052505050565b60006107b5610721565b90506107c1828261077a565b919050565b600067ffffffffffffffff8211156107e1576107e061074b565b5b602082029050602081019050919050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610827826107fc565b9050919050565b6108378161081c565b811461084257600080fd5b50565b6000813590506108548161082e565b92915050565b6000819050919050565b61086d8161085a565b811461087857600080fd5b50565b60008135905061088a81610864565b92915050565b6000604082840312156108a6576108a56107f7565b5b6108b060406107ab565b905060006108c084828501610845565b60008301525060206108d48482850161087b565b60208301525092915050565b60006108f36108ee846107c6565b6107ab565b90508083825260208201905060408402830185811115610916576109156107f2565b5b835b8181101561093f578061092b8882610890565b845260208401935050604081019050610918565b5050509392505050565b600082601f83011261095e5761095d610735565b5b813561096e8482602086016108e0565b91505092915050565b60006020828403121561098d5761098c61072b565b5b600082013567ffffffffffffffff8111156109ab576109aa610730565b5b6109b784828501610949565b91505092915050565b6000602082840312156109d6576109d561072b565b5b60006109e484828501610845565b91505092915050565b6109f68161085a565b82525050565b6000602082019050610a1160008301846109ed565b92915050565b60008060408385031215610a2e57610a2d61072b565b5b6000610a3c85828601610845565b9250506020610a4d8582860161087b565b9150509250929050565b600080fd5b600067ffffffffffffffff821115610a7757610a7661074b565b5b610a808261073a565b9050602081019050919050565b82818337600083830152505050565b6000610aaf610aaa84610a5c565b6107ab565b905082815260208101848484011115610acb57610aca610a57565b5b610ad6848285610a8d565b509392505050565b600082601f830112610af357610af2610735565b5b8135610b03848260208601610a9c565b91505092915050565b60008060008060808587031215610b2657610b2561072b565b5b6000610b3487828801610845565b9450506020610b458782880161087b565b9350506040610b568782880161087b565b925050606085013567ffffffffffffffff811115610b7757610b76610730565b5b610b8387828801610ade565b91505092959194509250565b600082825260208201905092915050565b7f4f6e6c792061646d696e2063616e207265636f76657220636c61696d2072656360008201527f6f72647300000000000000000000000000000000000000000000000000000000602082015250565b6000610bfc602483610b8f565b9150610c0782610ba0565b604082019050919050565b60006020820190508181036000830152610c2b81610bef565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610c9b8261085a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ccd57610ccc610c61565b5b600182019050919050565b6000610ce38261085a565b9150610cee8361085a565b9250828201905080821115610d0657610d05610c61565b5b92915050565b610d158161081c565b82525050565b6000606082019050610d306000830186610d0c565b610d3d60208301856109ed565b610d4a60408301846109ed565b949350505050565b7f496e76616c696420746f6b656e20747970650000000000000000000000000000600082015250565b6000610d88601283610b8f565b9150610d9382610d52565b602082019050919050565b60006020820190508181036000830152610db781610d7b565b9050919050565b6000606082019050610dd36000830186610d0c565b610de06020830185610d0c565b610ded60408301846109ed565b949350505050565b60008115159050919050565b610e0a81610df5565b8114610e1557600080fd5b50565b600081519050610e2781610e01565b92915050565b600060208284031215610e4357610e4261072b565b5b6000610e5184828501610e18565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000610e90601583610b8f565b9150610e9b82610e5a565b602082019050919050565b60006020820190508181036000830152610ebf81610e83565b9050919050565b600081519050919050565b60005b83811015610eef578082015181840152602081019050610ed4565b60008484015250505050565b6000610f0682610ec6565b610f108185610b8f565b9350610f20818560208601610ed1565b610f298161073a565b840191505092915050565b6000608082019050610f496000830187610d0c565b610f5660208301866109ed565b610f6360408301856109ed565b8181036060830152610f758184610efb565b90509594505050505056fea26469706673582212204b834016e3d86f0d522f82664cf18e0359e00b698d51c974a8ab0f5bd5b092f564736f6c63430008120033000000000000000000000000572be92990dfc2733d4dfa6f130b617226aafb0a000000000000000000000000572be92990dfc2733d4dfa6f130b617226aafb0a000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48