6080604052601260ff16600a61001591906101de565b620f42406100239190610228565b5f55348015610030575f80fd5b505f5460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610269565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156100fb578086048111156100d7576100d6610079565b5b60018516156100e65780820291505b80810290506100f4856100a6565b94506100bb565b94509492505050565b5f8261011357600190506101ce565b81610120575f90506101ce565b816001811461013657600281146101405761016f565b60019150506101ce565b60ff84111561015257610151610079565b5b8360020a91508482111561016957610168610079565b5b506101ce565b5060208310610133831016604e8410600b84101617156101a45782820a90508381111561019f5761019e610079565b5b6101ce565b6101b184848460016100b2565b925090508184048111156101c8576101c7610079565b5b81810290505b9392505050565b5f819050919050565b5f6101e8826101d5565b91506101f3836101d5565b92506102207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610104565b905092915050565b5f610232826101d5565b915061023d836101d5565b925082820261024b816101d5565b9150828204841483151761026257610261610079565b5b5092915050565b610e7a806102765f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa91906108b4565b60405180910390f35b6100cd60048036038101906100c89190610965565b610236565b6040516100da91906109bd565b60405180910390f35b6100eb61024c565b6040516100f891906109e5565b60405180910390f35b61011b600480360381019061011691906109fe565b610254565b60405161012891906109bd565b60405180910390f35b6101396102f9565b6040516101469190610a69565b60405180910390f35b61016960048036038101906101649190610a82565b6102fe565b60405161017691906109e5565b60405180910390f35b610187610344565b60405161019491906108b4565b60405180910390f35b6101b760048036038101906101b29190610965565b61037d565b6040516101c491906109bd565b60405180910390f35b6101e760048036038101906101e29190610aad565b610393565b6040516101f491906109e5565b60405180910390f35b6040518060400160405280600781526020017f4d79546f6b656e0000000000000000000000000000000000000000000000000081525081565b5f610242338484610415565b6001905092915050565b5f8054905090565b5f6102608484846105d8565b6102ee84338460025f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546102e99190610b18565b610415565b600190509392505050565b601281565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6040518060400160405280600481526020017f4d544b4e0000000000000000000000000000000000000000000000000000000081525081565b5f6103893384846105d8565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047a90610bbb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890610c49565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516105cb91906109e5565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90610cd7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90610d65565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90610df3565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107809190610b18565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107d39190610e11565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161083791906109e5565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61088682610844565b610890818561084e565b93506108a081856020860161085e565b6108a98161086c565b840191505092915050565b5f6020820190508181035f8301526108cc818461087c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f80fd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f80fd5b50565b5f8135905061095f8161093b565b92915050565b5f806040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f805f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f8060408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b2282610932565b9150610b2d83610932565b9250828203905081811115610b4557610b44610aeb565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610ba560248361084e565b9150610bb082610b4b565b604082019050919050565b5f6020820190508181035f830152610bd281610b99565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610c3360228361084e565b9150610c3e82610bd9565b604082019050919050565b5f6020820190508181035f830152610c6081610c27565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f610cc160258361084e565b9150610ccc82610c67565b604082019050919050565b5f6020820190508181035f830152610cee81610cb5565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f610d4f60238361084e565b9150610d5a82610cf5565b604082019050919050565b5f6020820190508181035f830152610d7c81610d43565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f610ddd60268361084e565b9150610de882610d83565b604082019050919050565b5f6020820190508181035f830152610e0a81610dd1565b9050919050565b5f610e1b82610932565b9150610e2683610932565b9250828201905080821115610e3e57610e3d610aeb565b5b9291505056fea2646970667358221220a26bfe595e407d434ca396c07cfde39a8227d72b6076974edfb970ba6b11783364736f6c63430008190033