0x608060405234801562000010575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f54424c61623600000000000000000000000000000000000000000000000000008152506001908162000096919062000485565b506040518060400160405280600381526020017f54424c000000000000000000000000000000000000000000000000000000000081525060029081620000dd919062000485565b50601260035f6101000a81548160ff021916908360ff16021790555060035f9054906101000a900460ff1660ff16600a620001199190620006e6565b620f424062000129919062000736565b60048190555060045460055f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000213919062000791565b60405180910390a3620007ac565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200029d57607f821691505b602082108103620002b357620002b262000258565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002da565b620003238683620002da565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200036d6200036762000361846200033b565b62000344565b6200033b565b9050919050565b5f819050919050565b62000388836200034d565b620003a0620003978262000374565b848454620002e6565b825550505050565b5f90565b620003b6620003a8565b620003c38184846200037d565b505050565b5b81811015620003ea57620003de5f82620003ac565b600181019050620003c9565b5050565b601f82111562000439576200040381620002b9565b6200040e84620002cb565b810160208510156200041e578190505b620004366200042d85620002cb565b830182620003c8565b50505b505050565b5f82821c905092915050565b5f6200045b5f19846008026200043e565b1980831691505092915050565b5f6200047583836200044a565b9150826002028217905092915050565b620004908262000221565b67ffffffffffffffff811115620004ac57620004ab6200022b565b5b620004b8825462000285565b620004c5828285620003ee565b5f60209050601f831160018114620004fb575f8415620004e6578287015190505b620004f2858262000468565b86555062000561565b601f1984166200050b86620002b9565b5f5b8281101562000534578489015182556001820191506020850194506020810190506200050d565b8683101562000554578489015162000550601f8916826200044a565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005f357808604811115620005cb57620005ca62000569565b5b6001851615620005db5780820291505b8081029050620005eb8562000596565b9450620005ab565b94509492505050565b5f826200060d5760019050620006df565b816200061c575f9050620006df565b8160018114620006355760028114620006405762000676565b6001915050620006df565b60ff84111562000655576200065462000569565b5b8360020a9150848211156200066f576200066e62000569565b5b50620006df565b5060208310610133831016604e8410600b8410161715620006b05782820a905083811115620006aa57620006a962000569565b5b620006df565b620006bf8484846001620005a2565b92509050818404811115620006d957620006d862000569565b5b81810290505b9392505050565b5f620006f2826200033b565b9150620006ff836200033b565b92506200072e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005fc565b905092915050565b5f62000742826200033b565b91506200074f836200033b565b92508282026200075f816200033b565b9150828204841483151762000779576200077862000569565b5b5092915050565b6200078b816200033b565b82525050565b5f602082019050620007a65f83018462000780565b92915050565b610fb280620007ba5f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c806370a082311161006457806370a08231146101585780638da5cb5b1461018857806395d89b41146101a6578063a9059cbb146101c4578063dd62ed3e146101f45761009c565b806306fdde03146100a0578063095ea7b3146100be57806313af4035146100ee57806323b872dd1461010a578063313ce5671461013a575b5f80fd5b6100a8610224565b6040516100b59190610af5565b60405180910390f35b6100d860048036038101906100d39190610ba6565b6102b0565b6040516100e59190610bfe565b60405180910390f35b61010860048036038101906101039190610c17565b61039d565b005b610124600480360381019061011f9190610c42565b61046c565b6040516101319190610bfe565b60405180910390f35b61014261074c565b60405161014f9190610cad565b60405180910390f35b610172600480360381019061016d9190610c17565b61075e565b60405161017f9190610cd5565b60405180910390f35b6101906107a4565b60405161019d9190610cfd565b60405180910390f35b6101ae6107c7565b6040516101bb9190610af5565b60405180910390f35b6101de60048036038101906101d99190610ba6565b610853565b6040516101eb9190610bfe565b60405180910390f35b61020e60048036038101906102099190610d16565b6109e9565b60405161021b9190610cd5565b60405180910390f35b6001805461023190610d81565b80601f016020809104026020016040519081016040528092919081815260200182805461025d90610d81565b80156102a85780601f1061027f576101008083540402835291602001916102a8565b820191905f5260205f20905b81548152906001019060200180831161028b57829003601f168201915b505050505081565b5f8160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161038b9190610cd5565b60405180910390a36001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461042a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042190610dfb565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156104ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e490610e63565b60405180910390fd5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156105a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059f90610ecb565b60405180910390fd5b8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105f49190610f16565b925050819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106479190610f49565b925050819055508160065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106d59190610f16565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107399190610cd5565b60405180910390a3600190509392505050565b60035f9054906101000a900460ff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600280546107d490610d81565b80601f016020809104026020016040519081016040528092919081815260200182805461080090610d81565b801561084b5780601f106108225761010080835404028352916020019161084b565b820191905f5260205f20905b81548152906001019060200180831161082e57829003601f168201915b505050505081565b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156108d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cb90610e63565b60405180910390fd5b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109209190610f16565b925050819055508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109739190610f49565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109d79190610cd5565b60405180910390a36001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610aa2578082015181840152602081019050610a87565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610ac782610a6b565b610ad18185610a75565b9350610ae1818560208601610a85565b610aea81610aad565b840191505092915050565b5f6020820190508181035f830152610b0d8184610abd565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b4282610b19565b9050919050565b610b5281610b38565b8114610b5c575f80fd5b50565b5f81359050610b6d81610b49565b92915050565b5f819050919050565b610b8581610b73565b8114610b8f575f80fd5b50565b5f81359050610ba081610b7c565b92915050565b5f8060408385031215610bbc57610bbb610b15565b5b5f610bc985828601610b5f565b9250506020610bda85828601610b92565b9150509250929050565b5f8115159050919050565b610bf881610be4565b82525050565b5f602082019050610c115f830184610bef565b92915050565b5f60208284031215610c2c57610c2b610b15565b5b5f610c3984828501610b5f565b91505092915050565b5f805f60608486031215610c5957610c58610b15565b5b5f610c6686828701610b5f565b9350506020610c7786828701610b5f565b9250506040610c8886828701610b92565b9150509250925092565b5f60ff82169050919050565b610ca781610c92565b82525050565b5f602082019050610cc05f830184610c9e565b92915050565b610ccf81610b73565b82525050565b5f602082019050610ce85f830184610cc6565b92915050565b610cf781610b38565b82525050565b5f602082019050610d105f830184610cee565b92915050565b5f8060408385031215610d2c57610d2b610b15565b5b5f610d3985828601610b5f565b9250506020610d4a85828601610b5f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610d9857607f821691505b602082108103610dab57610daa610d54565b5b50919050565b7f4e6f7420746865206f776e6572000000000000000000000000000000000000005f82015250565b5f610de5600d83610a75565b9150610df082610db1565b602082019050919050565b5f6020820190508181035f830152610e1281610dd9565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f610e4d601483610a75565b9150610e5882610e19565b602082019050919050565b5f6020820190508181035f830152610e7a81610e41565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e6365000000000000000000005f82015250565b5f610eb5601683610a75565b9150610ec082610e81565b602082019050919050565b5f6020820190508181035f830152610ee281610ea9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2082610b73565b9150610f2b83610b73565b9250828203905081811115610f4357610f42610ee9565b5b92915050565b5f610f5382610b73565b9150610f5e83610b73565b9250828201905080821115610f7657610f75610ee9565b5b9291505056fea2646970667358221220df63985037b823a7b9ab7860803228cdf0354b675305a306302e9a8e157460b764736f6c63430008160033