0x60806040523480156200001157600080fd5b506040518060400160405280600381526020017f424e42000000000000000000000000000000000000000000000000000000000081525060039081620000589190620004e4565b506040518060400160405280600381526020017f424e420000000000000000000000000000000000000000000000000000000000815250600490816200009f9190620004e4565b506008600560006101000a81548160ff021916908360ff1602179055506200010c620000d06200011260201b60201c565b600560009054906101000a900460ff16600a620000ee91906200075b565b64174876e800620001009190620007ac565b6200011a60201b60201c565b620008e3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200018c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001839062000858565b60405180910390fd5b8060026000828254620001a091906200087a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001f791906200087a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200025e9190620008c6565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ec57607f821691505b602082108103620003025762000301620002a4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200036c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200032d565b6200037886836200032d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003c5620003bf620003b98462000390565b6200039a565b62000390565b9050919050565b6000819050919050565b620003e183620003a4565b620003f9620003f082620003cc565b8484546200033a565b825550505050565b600090565b6200041062000401565b6200041d818484620003d6565b505050565b5b8181101562000445576200043960008262000406565b60018101905062000423565b5050565b601f82111562000494576200045e8162000308565b62000469846200031d565b8101602085101562000479578190505b6200049162000488856200031d565b83018262000422565b50505b505050565b600082821c905092915050565b6000620004b96000198460080262000499565b1980831691505092915050565b6000620004d48383620004a6565b9150826002028217905092915050565b620004ef826200026a565b67ffffffffffffffff8111156200050b576200050a62000275565b5b620005178254620002d3565b6200052482828562000449565b600060209050601f8311600181146200055c576000841562000547578287015190505b620005538582620004c6565b865550620005c3565b601f1984166200056c8662000308565b60005b8281101562000596578489015182556001820191506020850194506020810190506200056f565b86831015620005b65784890151620005b2601f891682620004a6565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200065957808604811115620006315762000630620005cb565b5b6001851615620006415780820291505b80810290506200065185620005fa565b945062000611565b94509492505050565b60008262000674576001905062000747565b8162000684576000905062000747565b81600181146200069d5760028114620006a857620006de565b600191505062000747565b60ff841115620006bd57620006bc620005cb565b5b8360020a915084821115620006d757620006d6620005cb565b5b5062000747565b5060208310610133831016604e8410600b8410161715620007185782820a905083811115620007125762000711620005cb565b5b62000747565b62000727848484600162000607565b92509050818404811115620007415762000740620005cb565b5b81810290505b9392505050565b600060ff82169050919050565b6000620007688262000390565b915062000775836200074e565b9250620007a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000662565b905092915050565b6000620007b98262000390565b9150620007c68362000390565b9250828202620007d68162000390565b91508282048414831517620007f057620007ef620005cb565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000840601f83620007f7565b91506200084d8262000808565b602082019050919050565b60006020820190508181036000830152620008738162000831565b9050919050565b6000620008878262000390565b9150620008948362000390565b9250828201905080821115620008af57620008ae620005cb565b5b92915050565b620008c08162000390565b82525050565b6000602082019050620008dd6000830184620008b5565b92915050565b61108080620008f36000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad91906109bb565b60405180910390f35b6100d060048036038101906100cb9190610a76565b610292565b6040516100dd9190610ad1565b60405180910390f35b6100ee6102b0565b6040516100fb9190610afb565b60405180910390f35b61011e60048036038101906101199190610b16565b6102ba565b60405161012b9190610ad1565b60405180910390f35b61013c6102e4565b6040516101499190610b85565b60405180910390f35b61016c60048036038101906101679190610ba0565b6102fb565b6040516101799190610afb565b60405180910390f35b61018a610343565b60405161019791906109bb565b60405180910390f35b6101ba60048036038101906101b59190610a76565b6103d5565b6040516101c79190610ad1565b60405180910390f35b6101ea60048036038101906101e59190610bcd565b6103f3565b6040516101f79190610afb565b60405180910390f35b60606003805461020f90610c3c565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610c3c565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b60006102a661029f61047a565b8484610482565b6001905092915050565b6000600254905090565b60006102ce846102c861047a565b8461064b565b6102d98484846106b8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461035290610c3c565b80601f016020809104026020016040519081016040528092919081815260200182805461037e90610c3c565b80156103cb5780601f106103a0576101008083540402835291602001916103cb565b820191906000526020600020905b8154815290600101906020018083116103ae57829003601f168201915b5050505050905090565b60006103e96103e261047a565b84846106b8565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890610cdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055790610d71565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161063e9190610afb565b60405180910390a3505050565b600061065784846103f3565b90508181101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069390610ddd565b60405180910390fd5b6106b2848484846106ad9190610e2c565b610482565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90610ed2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078d90610f64565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90610ff6565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108659190610e2c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108ba9190611016565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161091e9190610afb565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561096557808201518184015260208101905061094a565b60008484015250505050565b6000601f19601f8301169050919050565b600061098d8261092b565b6109978185610936565b93506109a7818560208601610947565b6109b081610971565b840191505092915050565b600060208201905081810360008301526109d58184610982565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a0d826109e2565b9050919050565b610a1d81610a02565b8114610a2857600080fd5b50565b600081359050610a3a81610a14565b92915050565b6000819050919050565b610a5381610a40565b8114610a5e57600080fd5b50565b600081359050610a7081610a4a565b92915050565b60008060408385031215610a8d57610a8c6109dd565b5b6000610a9b85828601610a2b565b9250506020610aac85828601610a61565b9150509250929050565b60008115159050919050565b610acb81610ab6565b82525050565b6000602082019050610ae66000830184610ac2565b92915050565b610af581610a40565b82525050565b6000602082019050610b106000830184610aec565b92915050565b600080600060608486031215610b2f57610b2e6109dd565b5b6000610b3d86828701610a2b565b9350506020610b4e86828701610a2b565b9250506040610b5f86828701610a61565b9150509250925092565b600060ff82169050919050565b610b7f81610b69565b82525050565b6000602082019050610b9a6000830184610b76565b92915050565b600060208284031215610bb657610bb56109dd565b5b6000610bc484828501610a2b565b91505092915050565b60008060408385031215610be457610be36109dd565b5b6000610bf285828601610a2b565b9250506020610c0385828601610a2b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610c5457607f821691505b602082108103610c6757610c66610c0d565b5b50919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610cc9602483610936565b9150610cd482610c6d565b604082019050919050565b60006020820190508181036000830152610cf881610cbc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610d5b602283610936565b9150610d6682610cff565b604082019050919050565b60006020820190508181036000830152610d8a81610d4e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000610dc7601d83610936565b9150610dd282610d91565b602082019050919050565b60006020820190508181036000830152610df681610dba565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e3782610a40565b9150610e4283610a40565b9250828203905081811115610e5a57610e59610dfd565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000610ebc602583610936565b9150610ec782610e60565b604082019050919050565b60006020820190508181036000830152610eeb81610eaf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000610f4e602383610936565b9150610f5982610ef2565b604082019050919050565b60006020820190508181036000830152610f7d81610f41565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000610fe0602683610936565b9150610feb82610f84565b604082019050919050565b6000602082019050818103600083015261100f81610fd3565b9050919050565b600061102182610a40565b915061102c83610a40565b925082820190508082111561104457611043610dfd565b5b9291505056fea2646970667358221220bda76675a36c53119afa2f3ad994739a9db47a453ec41d946df3e584aa10f40364736f6c63430008140033