60806040525f600255604051806060016040528061012c61ffff16815260200161012c61ffff1681526020015f61ffff1681525060085f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff16021790555050506040518060600160405280609661ffff1681526020016101c261ffff16815260200161025861ffff1681525060095f820151815f015f6101000a81548161ffff021916908361ffff1602179055506020820151815f0160026101000a81548161ffff021916908361ffff1602179055506040820151815f0160046101000a81548161ffff021916908361ffff16021790555050506040518060400160405280732a7fd1010e4dd155b8ee6b56b69675f17129baf773ffffffffffffffffffffffffffffffffffffffff16815260200173648e38cf38fb1dbb9d980efac86c3009277d639d73ffffffffffffffffffffffffffffffffffffffff16815250600c5f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505f600e60016101000a81548160ff0219169083151502179055505f60135f6101000a81548160ff0219169083151502179055505f601360016101000a81548160ff02191690831515021790555033601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620002c4919062000f55565b640ba43b7400620002d6919062000fa5565b5f80601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003b9919062000f55565b640ba43b7400620003cb919062000fa5565b604051620003da919062001000565b60405180910390a36038460362000445577310ed43c718714eb63d5aa57b78b54704e256024e600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005ff565b60614603620004a85773d99d1c33f9fc3444f8101754abc46c52416550d1600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fe565b6001461480620004b85750600446145b80620004c45750600346145b80620004d05750600546145b156200053057737a250d5630b4cf539739df2c5dacb4c659f2488d600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fd565b61a86a460362000594577360ae616a2155ee3d9a68541ba4544862310933d4600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fc565b60fa4603620005f75773f491e7b69e4244ad4002bc14e878a34207e38c29600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005fb565b5f80fd5b5b5b5b5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200066a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000690919062001080565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000716573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200073c919062001080565b306040518363ffffffff1660e01b81526004016200075c929190620010c1565b6020604051808303815f875af115801562000779573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200079f919062001080565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001805f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008c9601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bf860201b60201c565b6200091d30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000bf860201b60201c565b600160055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73407993575c91ce7643a4d4ccacc9a98c36ee1bbe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73663a5c229c09b049e36dcc11a9b0d4a8eb9db21473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f73dba68f07d1b7ca219f78ae8582c213d975c25caf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200116a565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000c69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c60906200114a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000cda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cd1906200114a565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000db6919062001000565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e4d5780860481111562000e255762000e2462000dc3565b5b600185161562000e355780820291505b808102905062000e458562000df0565b945062000e05565b94509492505050565b5f8262000e67576001905062000f39565b8162000e76575f905062000f39565b816001811462000e8f576002811462000e9a5762000ed0565b600191505062000f39565b60ff84111562000eaf5762000eae62000dc3565b5b8360020a91508482111562000ec95762000ec862000dc3565b5b5062000f39565b5060208310610133831016604e8410600b841016171562000f0a5782820a90508381111562000f045762000f0362000dc3565b5b62000f39565b62000f19848484600162000dfc565b9250905081840481111562000f335762000f3262000dc3565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000f618262000f40565b915062000f6e8362000f49565b925062000f9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e56565b905092915050565b5f62000fb18262000f40565b915062000fbe8362000f40565b925082820262000fce8162000f40565b9150828204841483151762000fe85762000fe762000dc3565b5b5092915050565b62000ffa8162000f40565b82525050565b5f602082019050620010155f83018462000fef565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200104a826200101f565b9050919050565b6200105c816200103e565b811462001067575f80fd5b50565b5f815190506200107a8162001051565b92915050565b5f602082840312156200109857620010976200101b565b5b5f620010a7848285016200106a565b91505092915050565b620010bb816200103e565b82525050565b5f604082019050620010d65f830185620010b0565b620010e56020830184620010b0565b9392505050565b5f82825260208201905092915050565b7f45524332303a205a65726f2041646472657373000000000000000000000000005f82015250565b5f62001132601383620010ec565b91506200113f82620010fc565b602082019050919050565b5f6020820190508181035f830152620011638162001124565b9050919050565b615f7680620011785f395ff3fe60806040526004361061028b575f3560e01c80636492048011610159578063b7df8b36116100c0578063dd62ed3e11610079578063dd62ed3e14610982578063eafb5a3c146109be578063ee5d9c2d146109e6578063f94aa1b4146109fc578063fb78680d14610a27578063fdb78c0e14610a4f57610292565b8063b7df8b361461088a578063bcd96a25146108b4578063bfc2fc35146108dc578063c31fe80a14610904578063cf8477061461092e578063d3f6a1571461095a57610292565b80638a8c523c116101125780638a8c523c1461079257806394b954d6146107a857806395d89b41146107d0578063a9059cbb146107fa578063b1b08f7114610836578063b3d514fb1461086057610292565b8063649204801461069c57806370a08231146106c4578063715018a61461070057806380c581d114610716578063893d20e81461073e5780638a63bd9b1461076857610292565b80632e8fa821116101fd5780634ada218b116101b65780634ada218b146105945780634e718e48146105be5780634fb2e45d146105e65780634fbee1931461060e57806350a8e0161461064a578063590ffdce1461067457610292565b80632e8fa82114610488578063313ce567146104b257806332cde664146104dc5780633bbac57914610504578063452ed4f11461054057806346ea7ac81461056a57610292565b8063095ea7b31161024f578063095ea7b31461036a57806318160ddd146103a657806323b872dd146103d05780632610eaca1461040c57806328577751146104345780632b28fc7a1461045e57610292565b806303fd2a45146102965780630445b667146102c0578063069d955f146102ea57806306fdde03146103165780630758d9241461034057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a79565b6040516102b79190614585565b60405180910390f35b3480156102cb575f80fd5b506102d4610a7f565b6040516102e191906145b6565b60405180910390f35b3480156102f5575f80fd5b506102fe610a85565b60405161030d939291906145eb565b60405180910390f35b348015610321575f80fd5b5061032a610ac3565b60405161033791906146aa565b60405180910390f35b34801561034b575f80fd5b50610354610b00565b6040516103619190614725565b60405180910390f35b348015610375575f80fd5b50610390600480360381019061038b91906147a3565b610b25565b60405161039d91906147fb565b60405180910390f35b3480156103b1575f80fd5b506103ba610b3b565b6040516103c791906145b6565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f19190614814565b610b5f565b60405161040391906147fb565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190614a64565b610ca2565b005b34801561043f575f80fd5b50610448610e2f565b60405161045591906145b6565b60405180910390f35b348015610469575f80fd5b50610472610e35565b60405161047f91906145b6565b60405180910390f35b348015610493575f80fd5b5061049c610e3b565b6040516104a991906145b6565b60405180910390f35b3480156104bd575f80fd5b506104c6610e41565b6040516104d39190614af5565b60405180910390f35b3480156104e7575f80fd5b5061050260048036038101906104fd9190614b38565b610e49565b005b34801561050f575f80fd5b5061052a60048036038101906105259190614b88565b610ffb565b60405161053791906147fb565b60405180910390f35b34801561054b575f80fd5b50610554611018565b6040516105619190614585565b60405180910390f35b348015610575575f80fd5b5061057e61103d565b60405161058b91906145b6565b60405180910390f35b34801561059f575f80fd5b506105a8611043565b6040516105b591906147fb565b60405180910390f35b3480156105c9575f80fd5b506105e460048036038101906105df9190614bb3565b611055565b005b3480156105f1575f80fd5b5061060c60048036038101906106079190614b88565b611133565b005b348015610619575f80fd5b50610634600480360381019061062f9190614b88565b6114c0565b60405161064191906147fb565b60405180910390f35b348015610655575f80fd5b5061065e611512565b60405161066b91906147fb565b60405180910390f35b34801561067f575f80fd5b5061069a60048036038101906106959190614c08565b611525565b005b3480156106a7575f80fd5b506106c260048036038101906106bd9190614bb3565b61160d565b005b3480156106cf575f80fd5b506106ea60048036038101906106e59190614b88565b611b9f565b6040516106f791906145b6565b60405180910390f35b34801561070b575f80fd5b50610714611be4565b005b348015610721575f80fd5b5061073c60048036038101906107379190614c08565b611dae565b005b348015610749575f80fd5b50610752611f5e565b60405161075f9190614585565b60405180910390f35b348015610773575f80fd5b5061077c611f87565b60405161078991906147fb565b60405180910390f35b34801561079d575f80fd5b506107a661206b565b005b3480156107b3575f80fd5b506107ce60048036038101906107c99190614d06565b61224e565b005b3480156107db575f80fd5b506107e46123d6565b6040516107f191906146aa565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b91906147a3565b612413565b60405161082d91906147fb565b60405180910390f35b348015610841575f80fd5b5061084a61242a565b60405161085791906145b6565b60405180910390f35b34801561086b575f80fd5b50610874612430565b60405161088191906145b6565b60405180910390f35b348015610895575f80fd5b5061089e612436565b6040516108ab91906147fb565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d59190614d7c565b612448565b005b3480156108e7575f80fd5b5061090260048036038101906108fd9190614dba565b6125d3565b005b34801561090f575f80fd5b506109186126d1565b60405161092591906145b6565b60405180910390f35b348015610939575f80fd5b506109426126d7565b604051610951939291906145eb565b60405180910390f35b348015610965575f80fd5b50610980600480360381019061097b9190614e33565b612715565b005b34801561098d575f80fd5b506109a860048036038101906109a39190614e71565b61282e565b6040516109b591906145b6565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df9190614b88565b6128b0565b005b3480156109f1575f80fd5b506109fa612d35565b005b348015610a07575f80fd5b50610a10612e7d565b604051610a1e929190614ebe565b60405180910390f35b348015610a32575f80fd5b50610a4d6004803603810190610a489190614ee5565b612ecc565b005b348015610a5a575f80fd5b50610a63613184565b604051610a7091906147fb565b60405180910390f35b61dead81565b600f5481565b6008805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b60606040518060400160405280600781526020017f456c6f6e57696e00000000000000000000000000000000000000000000000000815250905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b31338484613197565b6001905092915050565b5f6012600a610b4a91906150a5565b640ba43b7400610b5a91906150ef565b905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610c8e578160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c869190615130565b925050819055505b610c9984848461335a565b90509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d29906151ad565b60405180910390fd5b8051825114610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90615215565b60405180910390fd5b5f5b82518160ff161015610e2a57818160ff1681518110610d9a57610d99615233565b5b6020026020010151610dab33611b9f565b1015610db5575f80fd5b610e1633848360ff1681518110610dcf57610dce615233565b5b60200260200101516012600a610de591906150a5565b858560ff1681518110610dfb57610dfa615233565b5b6020026020010151610e0d91906150ef565b5f80600161372c565b508080610e2290615260565b915050610d78565b505050565b60125481565b6107d081565b60105481565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed0906151ad565b60405180910390fd5b6107d08361ffff1611158015610ef557506107d08261ffff1611155b8015610f0757506107d08161ffff1611155b610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d906152d2565b60405180910390fd5b610bb88284610f5591906152f0565b61ffff161115610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f919061536f565b60405180910390fd5b8260085f015f6101000a81548161ffff021916908361ffff1602179055508160085f0160026101000a81548161ffff021916908361ffff1602179055508060085f0160046101000a81548161ffff021916908361ffff160217905550505050565b6006602052805f5260405f205f915054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bb881565b60135f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906151ad565b60405180910390fd5b60c8811115611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906153d7565b60405180910390fd5b8060128190555050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906151ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890615465565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890615465565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f611398601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b11156113fb576113f9601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826113f0601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b5f80600161372c565b505b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b601360019054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906151ad565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff160361168e5750611b9c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541461180d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff81111561182957611828614868565b5b6040519080825280602002602001820160405280156118575781602001602082028036833780820191505090505b50905030815f8151811061186e5761186d615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611912573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119369190615497565b8160018151811061194a57611949615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016119e69594939291906155b2565b5f604051808303815f87803b1580156119fd575f80fd5b505af1158015611a0f573d5f803e3d5ffd5b505050505f4790505f80846040015161ffff16856020015161ffff1684611a3691906150ef565b611a409190615637565b90505f8184611a4f9190615130565b90505f865f015161ffff161115611af257600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b890604051611aab90615694565b5f60405180830381858888f193505050503d805f8114611ae6576040519150601f19603f3d011682016040523d82523d5f602084013e611aeb565b606091505b5050809350505b5f866020015161ffff161115611b9557600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b890604051611b4e90615694565b5f60405180830381858888f193505050503d805f8114611b89576040519150601f19603f3d011682016040523d82523d5f602084013e611b8e565b606091505b5050809350505b5050505050505b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b906151ad565b60405180910390fd5b5f60055f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f601360026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906151ad565b60405180910390fd5b5f151581151503611ea2575f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550611f5a565b5f60025414611efe576203f48060025442611ebd9190615130565b11611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef4906156f2565b60405180910390fd5b5b6001805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550426002819055505b5050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200f906151ad565b60405180910390fd5b61206430600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b6001905090565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f2906151ad565b60405180910390fd5b60135f9054906101000a900460ff161561214a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121419061575a565b60405180910390fd5b601360019054906101000a900460ff16612199576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612190906157c2565b60405180910390fd5b600160135f6101000a81548160ff02191690831515021790555042600781905550612710600f6121e9600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6121f391906150ef565b6121fd9190615637565b600f81905550612710601e612232600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61223c91906150ef565b6122469190615637565b601081905550565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d5906151ad565b60405180910390fd5b8051825114612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990615215565b60405180910390fd5b5f5b82518160ff1610156123d157818160ff168151811061234657612345615233565b5b602002602001015160065f858460ff168151811061236757612366615233565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806123c990615260565b915050612324565b505050565b60606040518060400160405280600481526020017f4557494e00000000000000000000000000000000000000000000000000000000815250905090565b5f61241f33848461335a565b506001905092915050565b6107d081565b6107d081565b60115f9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124cf906151ad565b60405180910390fd5b8060095f0160026101000a81548161ffff021916908361ffff1602179055508160095f015f6101000a81548161ffff021916908361ffff160217905550818161252191906152f0565b60095f0160046101000a81548161ffff021916908361ffff1602179055505f60085f0160029054906101000a900461ffff1660085f015f9054906101000a900461ffff1661256f91906152f0565b61ffff1690508060095f0160049054906101000a900461ffff1661ffff1611156125ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c590615850565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a906151ad565b60405180910390fd5b81600e60016101000a81548160ff0219169083151502179055508060115f6101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257826040516126c591906147fb565b60405180910390a15050565b60075481565b6009805f015f9054906101000a900461ffff1690805f0160029054906101000a900461ffff1690805f0160049054906101000a900461ffff16905083565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906151ad565b60405180910390fd5b81600c5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c6001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612940576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612937906151ad565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b29190615497565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3b9190615497565b6040518363ffffffff1660e01b8152600401612a5892919061586e565b602060405180830381865afa158015612a73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a979190615497565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c63578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b399190615497565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bc29190615497565b6040518363ffffffff1660e01b8152600401612bdf92919061586e565b6020604051808303815f875af1158015612bfb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1f9190615497565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612ca4565b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d3030600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613197565b505050565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbc906151ad565b60405180910390fd5b601360019054906101000a900460ff1615612e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0c906158df565b60405180910390fd5b601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015612e7a573d5f803e3d5ffd5b50565b600c805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b3373ffffffffffffffffffffffffffffffffffffffff16601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f53906151ad565b60405180910390fd5b82846012600a612f6c91906150a5565b640ba43b7400612f7c91906150ef565b612f8691906150ef565b612f909190615637565b600f8190555080826012600a612fa691906150a5565b640ba43b7400612fb691906150ef565b612fc091906150ef565b612fca9190615637565b601081905550601054600f541115613017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300e9061596d565b60405180910390fd5b6127106096613046600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b61305091906150ef565b61305a9190615637565b601054111561309e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613095906159fb565b60405180910390fd5b620f42406012600a6130b091906150a5565b640ba43b74006130c091906150ef565b6130ca9190615637565b601054101561310e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310590615a89565b60405180910390fd5b620f42406012600a61312091906150a5565b640ba43b740061313091906150ef565b61313a9190615637565b600f54101561317e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317590615a89565b60405180910390fd5b50505050565b600e60019054906101000a900460ff1681565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131fc90615af1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326a90615af1565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161334d91906145b6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036133c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133c090615b7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161342e90615c0d565b60405180910390fd5b5f8211613479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161347090615c9b565b60405180910390fd5b5f805f60015f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156134d45760019250613532565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561352c5760019150613531565b600190505b5b61353c8787613996565b156136545760135f9054906101000a900460ff1661358f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161358690615d03565b60405180910390fd5b60135f9054906101000a900460ff1680156135c057506135bc610258600754613bf590919063ffffffff16565b4211155b8015613613575060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15613653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364a90615d6b565b60405180910390fd5b5b811561371257600e5f9054906101000a900460ff1661371157600e60019054906101000a900460ff1615613710575f61368c30611b9f565b9050600f54811061370e575f601054905060115f9054906101000a900460ff16156136f8576127106012546136e1600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b9f565b6136eb91906150ef565b6136f59190615637565b90505b808210613703578091505b61370c82613c52565b505b505b5b5b61372087878786868661372c565b93505050509392505050565b5f601360019054906101000a900460ff166137b95761374b878761421d565b601360019054906101000a900460ff1615801561376e575061376d8787613996565b5b8015613778575081155b156137b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137af90615df9565b60405180910390fd5b5b5f6001905060055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613859575060055f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613862575f90505b855f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546138ad9190615130565b925050819055505f816138c057866138cd565b6138cc8987878a6143f2565b5b9050805f808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461391a9190615e17565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161397e91906145b6565b60405180910390a36001925050509695505050505050565b5f601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a435750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613a9d5750601360029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b8015613af0575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b43575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015613b7d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bb557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613bed57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808284613c039190615e17565b905083811015613c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3f90615e94565b60405180910390fd5b8091505092915050565b6001600e5f6101000a81548160ff0219169083151502179055505f60096040518060600160405290815f82015f9054906101000a900461ffff1661ffff1661ffff1681526020015f820160029054906101000a900461ffff1661ffff1661ffff1681526020015f820160049054906101000a900461ffff1661ffff1661ffff168152505090505f816040015161ffff1603613ced5750614201565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414613e6c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f600267ffffffffffffffff811115613e8857613e87614868565b5b604051908082528060200260200182016040528015613eb65781602001602082028036833780820191505090505b50905030815f81518110613ecd57613ecc615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f959190615497565b81600181518110613fa957613fa8615233565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016140459594939291906155b2565b5f604051808303815f87803b15801561405c575f80fd5b505af192505050801561406d575060015b614078575050614201565b5f4790505f80846040015161ffff16856020015161ffff168461409b91906150ef565b6140a59190615637565b90505f81846140b49190615130565b90505f865f015161ffff16111561415757600c5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b89060405161411090615694565b5f60405180830381858888f193505050503d805f811461414b576040519150601f19603f3d011682016040523d82523d5f602084013e614150565b606091505b5050809350505b5f866020015161ffff1611156141fa57600c6001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b8906040516141b390615694565b5f60405180830381858888f193505050503d805f81146141ee576040519150601f19603f3d011682016040523d82523d5f602084013e6141f3565b606091505b5050809350505b5050505050505b5f600e5f6101000a81548160ff02191690831515021790555050565b601360019054906101000a900460ff161561426d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161426490615f22565b60405180910390fd5b6142778282613996565b1580156142d05750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156143ee57600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff0219169083151502179055507f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325760016040516143e591906147fb565b60405180910390a15b5050565b5f8084156144175760085f015f9054906101000a900461ffff1661ffff169050614456565b831561443b5760085f0160029054906101000a900461ffff1661ffff169050614455565b60085f0160049054906101000a900461ffff1661ffff1690505b5b5f612710828561446691906150ef565b6144709190615637565b90505f819050805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546144c19190615e17565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161452591906145b6565b60405180910390a381856145399190615130565b9350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61456f82614546565b9050919050565b61457f81614565565b82525050565b5f6020820190506145985f830184614576565b92915050565b5f819050919050565b6145b08161459e565b82525050565b5f6020820190506145c95f8301846145a7565b92915050565b5f61ffff82169050919050565b6145e5816145cf565b82525050565b5f6060820190506145fe5f8301866145dc565b61460b60208301856145dc565b61461860408301846145dc565b949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561465757808201518184015260208101905061463c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61467c82614620565b614686818561462a565b935061469681856020860161463a565b61469f81614662565b840191505092915050565b5f6020820190508181035f8301526146c28184614672565b905092915050565b5f819050919050565b5f6146ed6146e86146e384614546565b6146ca565b614546565b9050919050565b5f6146fe826146d3565b9050919050565b5f61470f826146f4565b9050919050565b61471f81614705565b82525050565b5f6020820190506147385f830184614716565b92915050565b5f604051905090565b5f80fd5b5f80fd5b61475881614565565b8114614762575f80fd5b50565b5f813590506147738161474f565b92915050565b6147828161459e565b811461478c575f80fd5b50565b5f8135905061479d81614779565b92915050565b5f80604083850312156147b9576147b8614747565b5b5f6147c685828601614765565b92505060206147d78582860161478f565b9150509250929050565b5f8115159050919050565b6147f5816147e1565b82525050565b5f60208201905061480e5f8301846147ec565b92915050565b5f805f6060848603121561482b5761482a614747565b5b5f61483886828701614765565b935050602061484986828701614765565b925050604061485a8682870161478f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61489e82614662565b810181811067ffffffffffffffff821117156148bd576148bc614868565b5b80604052505050565b5f6148cf61473e565b90506148db8282614895565b919050565b5f67ffffffffffffffff8211156148fa576148f9614868565b5b602082029050602081019050919050565b5f80fd5b5f61492161491c846148e0565b6148c6565b905080838252602082019050602084028301858111156149445761494361490b565b5b835b8181101561496d57806149598882614765565b845260208401935050602081019050614946565b5050509392505050565b5f82601f83011261498b5761498a614864565b5b813561499b84826020860161490f565b91505092915050565b5f67ffffffffffffffff8211156149be576149bd614868565b5b602082029050602081019050919050565b5f6149e16149dc846149a4565b6148c6565b90508083825260208201905060208402830185811115614a0457614a0361490b565b5b835b81811015614a2d5780614a19888261478f565b845260208401935050602081019050614a06565b5050509392505050565b5f82601f830112614a4b57614a4a614864565b5b8135614a5b8482602086016149cf565b91505092915050565b5f8060408385031215614a7a57614a79614747565b5b5f83013567ffffffffffffffff811115614a9757614a9661474b565b5b614aa385828601614977565b925050602083013567ffffffffffffffff811115614ac457614ac361474b565b5b614ad085828601614a37565b9150509250929050565b5f60ff82169050919050565b614aef81614ada565b82525050565b5f602082019050614b085f830184614ae6565b92915050565b614b17816145cf565b8114614b21575f80fd5b50565b5f81359050614b3281614b0e565b92915050565b5f805f60608486031215614b4f57614b4e614747565b5b5f614b5c86828701614b24565b9350506020614b6d86828701614b24565b9250506040614b7e86828701614b24565b9150509250925092565b5f60208284031215614b9d57614b9c614747565b5b5f614baa84828501614765565b91505092915050565b5f60208284031215614bc857614bc7614747565b5b5f614bd58482850161478f565b91505092915050565b614be7816147e1565b8114614bf1575f80fd5b50565b5f81359050614c0281614bde565b92915050565b5f8060408385031215614c1e57614c1d614747565b5b5f614c2b85828601614765565b9250506020614c3c85828601614bf4565b9150509250929050565b5f67ffffffffffffffff821115614c6057614c5f614868565b5b602082029050602081019050919050565b5f614c83614c7e84614c46565b6148c6565b90508083825260208201905060208402830185811115614ca657614ca561490b565b5b835b81811015614ccf5780614cbb8882614bf4565b845260208401935050602081019050614ca8565b5050509392505050565b5f82601f830112614ced57614cec614864565b5b8135614cfd848260208601614c71565b91505092915050565b5f8060408385031215614d1c57614d1b614747565b5b5f83013567ffffffffffffffff811115614d3957614d3861474b565b5b614d4585828601614977565b925050602083013567ffffffffffffffff811115614d6657614d6561474b565b5b614d7285828601614cd9565b9150509250929050565b5f8060408385031215614d9257614d91614747565b5b5f614d9f85828601614b24565b9250506020614db085828601614b24565b9150509250929050565b5f8060408385031215614dd057614dcf614747565b5b5f614ddd85828601614bf4565b9250506020614dee85828601614bf4565b9150509250929050565b5f614e0282614546565b9050919050565b614e1281614df8565b8114614e1c575f80fd5b50565b5f81359050614e2d81614e09565b92915050565b5f8060408385031215614e4957614e48614747565b5b5f614e5685828601614e1f565b9250506020614e6785828601614e1f565b9150509250929050565b5f8060408385031215614e8757614e86614747565b5b5f614e9485828601614765565b9250506020614ea585828601614765565b9150509250929050565b614eb881614df8565b82525050565b5f604082019050614ed15f830185614eaf565b614ede6020830184614eaf565b9392505050565b5f805f8060808587031215614efd57614efc614747565b5b5f614f0a8782880161478f565b9450506020614f1b8782880161478f565b9350506040614f2c8782880161478f565b9250506060614f3d8782880161478f565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115614fcb57808604811115614fa757614fa6614f49565b5b6001851615614fb65780820291505b8081029050614fc485614f76565b9450614f8b565b94509492505050565b5f82614fe3576001905061509e565b81614ff0575f905061509e565b816001811461500657600281146150105761503f565b600191505061509e565b60ff84111561502257615021614f49565b5b8360020a91508482111561503957615038614f49565b5b5061509e565b5060208310610133831016604e8410600b84101617156150745782820a90508381111561506f5761506e614f49565b5b61509e565b6150818484846001614f82565b9250905081840481111561509857615097614f49565b5b81810290505b9392505050565b5f6150af8261459e565b91506150ba83614ada565b92506150e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614fd4565b905092915050565b5f6150f98261459e565b91506151048361459e565b92508282026151128161459e565b9150828204841483151761512957615128614f49565b5b5092915050565b5f61513a8261459e565b91506151458361459e565b925082820390508181111561515d5761515c614f49565b5b92915050565b7f43616c6c6572203d2f3d206f776e65722e0000000000000000000000000000005f82015250565b5f61519760118361462a565b91506151a282615163565b602082019050919050565b5f6020820190508181035f8301526151c48161518b565b9050919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f6151ff60158361462a565b915061520a826151cb565b602082019050919050565b5f6020820190508181035f83015261522c816151f3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61526a82614ada565b915060ff820361527d5761527c614f49565b5b600182019050919050565b7f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000005f82015250565b5f6152bc60178361462a565b91506152c782615288565b602082019050919050565b5f6020820190508181035f8301526152e9816152b0565b9050919050565b5f6152fa826145cf565b9150615305836145cf565b9250828201905061ffff81111561531f5761531e614f49565b5b92915050565b7f43616e6e6f742065786365656420726f756e6474726970206d6178696d756d2e5f82015250565b5f61535960208361462a565b915061536482615325565b602082019050919050565b5f6020820190508181035f8301526153868161534d565b9050919050565b7f43616e6e6f74207365742061626f76652032252e0000000000000000000000005f82015250565b5f6153c160148361462a565b91506153cc8261538d565b602082019050919050565b5f6020820190508181035f8301526153ee816153b5565b9050919050565b7f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e73665f8201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000602082015250565b5f61544f603d8361462a565b915061545a826153f5565b604082019050919050565b5f6020820190508181035f83015261547c81615443565b9050919050565b5f815190506154918161474f565b92915050565b5f602082840312156154ac576154ab614747565b5b5f6154b984828501615483565b91505092915050565b5f819050919050565b5f6154e56154e06154db846154c2565b6146ca565b61459e565b9050919050565b6154f5816154cb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61552d81614565565b82525050565b5f61553e8383615524565b60208301905092915050565b5f602082019050919050565b5f615560826154fb565b61556a8185615505565b935061557583615515565b805f5b838110156155a557815161558c8882615533565b97506155978361554a565b925050600181019050615578565b5085935050505092915050565b5f60a0820190506155c55f8301886145a7565b6155d260208301876154ec565b81810360408301526155e48186615556565b90506155f36060830185614576565b61560060808301846145a7565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6156418261459e565b915061564c8361459e565b92508261565c5761565b61560a565b5b828204905092915050565b5f81905092915050565b50565b5f61567f5f83615667565b915061568a82615671565b5f82019050919050565b5f61569e82615674565b9150819050919050565b7f332044617920636f6f6c646f776e2e21000000000000000000000000000000005f82015250565b5f6156dc60108361462a565b91506156e7826156a8565b602082019050919050565b5f6020820190508181035f830152615709816156d0565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642100000000000000005f82015250565b5f61574460188361462a565b915061574f82615710565b602082019050919050565b5f6020820190508181035f83015261577181615738565b9050919050565b7f4c6971756964697479206d7573742062652061646465642e00000000000000005f82015250565b5f6157ac60188361462a565b91506157b782615778565b602082019050919050565b5f6020820190508181035f8301526157d9816157a0565b9050919050565b7f43616e6e6f74206578636565642073756d206f662062757920616e642073656c5f8201527f6c20666565732e00000000000000000000000000000000000000000000000000602082015250565b5f61583a60278361462a565b9150615845826157e0565b604082019050919050565b5f6020820190508181035f8301526158678161582e565b9050919050565b5f6040820190506158815f830185614576565b61588e6020830184614576565b9392505050565b7f43616e6e6f742063616c6c206166746572206c69717569646974792e000000005f82015250565b5f6158c9601c8361462a565b91506158d482615895565b602082019050919050565b5f6020820190508181035f8301526158f6816158bd565b9050919050565b7f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e745f8201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f61595760218361462a565b9150615962826158fd565b604082019050919050565b5f6020820190508181035f8301526159848161594b565b9050919050565b7f43616e6e6f742062652061626f766520312e3525206f662063757272656e74205f8201527f50492e0000000000000000000000000000000000000000000000000000000000602082015250565b5f6159e560238361462a565b91506159f08261598b565b604082019050919050565b5f6020820190508181035f830152615a12816159d9565b9050919050565b7f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f665f8201527f20746f74616c20737570706c792e000000000000000000000000000000000000602082015250565b5f615a73602e8361462a565b9150615a7e82615a19565b604082019050919050565b5f6020820190508181035f830152615aa081615a67565b9050919050565b7f45524332303a205a65726f2041646472657373000000000000000000000000005f82015250565b5f615adb60138361462a565b9150615ae682615aa7565b602082019050919050565b5f6020820190508181035f830152615b0881615acf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f615b6960258361462a565b9150615b7482615b0f565b604082019050919050565b5f6020820190508181035f830152615b9681615b5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f615bf760238361462a565b9150615c0282615b9d565b604082019050919050565b5f6020820190508181035f830152615c2481615beb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f615c8560298361462a565b9150615c9082615c2b565b604082019050919050565b5f6020820190508181035f830152615cb281615c79565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642100000000000000005f82015250565b5f615ced60188361462a565b9150615cf882615cb9565b602082019050919050565b5f6020820190508181035f830152615d1a81615ce1565b9050919050565b7f43616e6e6f7420627579207965740000000000000000000000000000000000005f82015250565b5f615d55600e8361462a565b9150615d6082615d21565b602082019050919050565b5f6020820190508181035f830152615d8281615d49565b9050919050565b7f5072652d6c6971756964697479207472616e736665722070726f74656374696f5f8201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f615de360228361462a565b9150615dee82615d89565b604082019050919050565b5f6020820190508181035f830152615e1081615dd7565b9050919050565b5f615e218261459e565b9150615e2c8361459e565b9250828201905080821115615e4457615e43614f49565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f615e7e601b8361462a565b9150615e8982615e4a565b602082019050919050565b5f6020820190508181035f830152615eab81615e72565b9050919050565b7f4c697175696469747920616c726561647920616464656420616e64206d61726b5f8201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b5f615f0c60238361462a565b9150615f1782615eb2565b604082019050919050565b5f6020820190508181035f830152615f3981615f00565b905091905056fea26469706673582212200af83aac5fb58acfa36257b9bd9943f305a98129487543f93807665a3496612c64736f6c63430008140033