60806040526000600560006101000a81548161ffff021916908361ffff16021790555060006011556000601460006101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600360006101000a81548160ff021916908315150217905550600b600560026101000a81548160ff021916908360ff1602179055506009600a6200012e919062000f78565b6509184e72a00062000141919062000fc9565b6006819055506009600a62000157919062000f78565b6509184e72a0006200016a919062000fc9565b600781905550612710600a6009600a62000185919062000f78565b6509184e72a00062000198919062000fc9565b620001a4919062000fc9565b620001b0919062001059565b60088190555061271060326009600a620001cb919062000f78565b6509184e72a000620001de919062000fc9565b620001ea919062000fc9565b620001f6919062001059565b60098190555061012c600560066101000a81548161ffff021916908361ffff16021790555061012c600560086101000a81548161ffff021916908361ffff16021790555061012c6005600a6101000a81548161ffff021916908361ffff16021790555060646005600c6101000a81548161ffff021916908361ffff16021790555060646005600e6101000a81548161ffff021916908361ffff1602179055506005600e9054906101000a900461ffff166005600c9054906101000a900461ffff166005600a9054906101000a900461ffff16600560089054906101000a900461ffff16600560069054906101000a900461ffff16620002f691906200109f565b6200030291906200109f565b6200030e91906200109f565b6200031a91906200109f565b600560106101000a81548161ffff021916908361ffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736a61ab526cebd515a7a22bfa4b7614f819d1e498600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b72524dce54383dec67fa674e16d6ba9b8d9acc1600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073de8102579e1e10669e585c046de820ece332c9ac600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f0004f0dfa960a842e5571126bf95c273878bc1600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506848efebd05bb2313e47600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000c159190620010ef565b60405180910390a3600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546009600a62000c6d919062000f78565b6509184e72a00062000c80919062000fc9565b62000c8c91906200110c565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000dd09190620010ef565b60405180910390a362001147565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e6c5780860481111562000e445762000e4362000dde565b5b600185161562000e545780820291505b808102905062000e648562000e0d565b945062000e24565b94509492505050565b60008262000e87576001905062000f5a565b8162000e97576000905062000f5a565b816001811462000eb0576002811462000ebb5762000ef1565b600191505062000f5a565b60ff84111562000ed05762000ecf62000dde565b5b8360020a91508482111562000eea5762000ee962000dde565b5b5062000f5a565b5060208310610133831016604e8410600b841016171562000f2b5782820a90508381111562000f255762000f2462000dde565b5b62000f5a565b62000f3a848484600162000e1a565b9250905081840481111562000f545762000f5362000dde565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f858262000f61565b915062000f928362000f6b565b925062000fc17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e75565b905092915050565b600062000fd68262000f61565b915062000fe38362000f61565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200101f576200101e62000dde565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620010668262000f61565b9150620010738362000f61565b9250826200108657620010856200102a565b5b828204905092915050565b600061ffff82169050919050565b6000620010ac8262001091565b9150620010b98362001091565b92508261ffff03821115620010d357620010d262000dde565b5b828201905092915050565b620010e98162000f61565b82525050565b6000602082019050620011066000830184620010de565b92915050565b6000620011198262000f61565b9150620011268362000f61565b9250828210156200113c576200113b62000dde565b5b828203905092915050565b615f5480620011576000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063dc55f5c71161008a578063e4dbc45b11610064578063e4dbc45b14610616578063f2fde38b1461063f578063fc38e48114610668578063ffb54a9914610691576101c2565b8063dc55f5c714610599578063dca2a8b6146105c2578063dd62ed3e146105d9576101c2565b8063a9059cbb116100c6578063a9059cbb146104ec578063b142180314610529578063c9567bf914610552578063db7a460514610569576101c2565b806370a0823114610446578063931b68ea1461048357806395d89b41146104c1576101c2565b8063313ce56711610159578063677ef84611610133578063677ef8461461039d5780636969c1a4146103c65780636d1b229d146103ef5780636f89e40914610418576101c2565b8063313ce5671461030a57806358d2b4a5146103355780636724348214610374576101c2565b806318839bc31161019557806318839bc31461025a5780631c939ee91461028357806323b872dd1461029a5780632b38400e146102d7576101c2565b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106bc565b6040516101e991906143eb565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906144ab565b6106f9565b6040516102269190614506565b60405180910390f35b34801561023b57600080fd5b50610244610858565b6040516102519190614530565b60405180910390f35b34801561026657600080fd5b50610281600480360381019061027c9190614577565b61087e565b005b34801561028f57600080fd5b506102986109fa565b005b3480156102a657600080fd5b506102c160048036038101906102bc91906145ca565b610a93565b6040516102ce9190614506565b60405180910390f35b3480156102e357600080fd5b506102ec610c9c565b60405161030199989796959493929190614656565b60405180910390f35b34801561031657600080fd5b5061031f610d5a565b60405161032c91906146e3565b60405180910390f35b34801561034157600080fd5b5061035c600480360381019061035791906146fe565b610d63565b60405161036b9392919061472b565b60405180910390f35b34801561038057600080fd5b5061039b6004803603810190610396919061481d565b610e15565b005b3480156103a957600080fd5b506103c460048036038101906103bf919061489e565b61126d565b005b3480156103d257600080fd5b506103ed60048036038101906103e89190614905565b6115a2565b005b3480156103fb57600080fd5b5061041660048036038101906104119190614905565b611c48565b005b34801561042457600080fd5b5061042d611de7565b60405161043d9493929190614932565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906146fe565b611e07565b60405161047a9190614530565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a591906146fe565b611e50565b6040516104b8929190614977565b60405180910390f35b3480156104cd57600080fd5b506104d6611ef6565b6040516104e391906143eb565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e91906144ab565b611f33565b6040516105209190614506565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b91906149cc565b611f8f565b005b34801561055e57600080fd5b5061056761218e565b005b34801561057557600080fd5b5061057e612307565b60405161059096959493929190614a1b565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190614a7c565b6123f4565b005b3480156105ce57600080fd5b506105d76125f2565b005b3480156105e557600080fd5b5061060060048036038101906105fb9190614af7565b6126dc565b60405161060d9190614530565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190614b73565b612763565b005b34801561064b57600080fd5b5061066660048036038101906106619190614c18565b6128d2565b005b34801561067457600080fd5b5061068f600480360381019061068a9190614c71565b6129da565b005b34801561069d57600080fd5b506106a6612c8f565b6040516106b39190614506565b60405180910390f35b60606040518060400160405280600581526020017f5348494654000000000000000000000000000000000000000000000000000000815250905090565b6000436011541180156107565750601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156107685761076733436001612cdf565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108469190614530565b60405180910390a36001905092915050565b60006009600a6108689190614e3a565b6509184e72a0006108799190614e85565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090390614f51565b60405180910390fd5b81600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed08383836040516109ed93929190614f71565b60405180910390a1505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90614f51565b60405180910390fd5b610a9147612e09565b565b6000610a9d613147565b610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390614ff4565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c885781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c079190615014565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c938484846131cc565b90509392505050565b6000806000806000806000806000600560029054906101000a900460ff16600560039054906101000a900460ff16600560049054906101000a900460ff1660058054906101000a900460ff16600560069054906101000a900461ffff16600560089054906101000a900461ffff166005600a9054906101000a900461ffff166005600c9054906101000a900461ffff166005600e9054906101000a900461ffff16985098509850985098509850985098509850909192939495969798565b60006009905090565b6000806000806000601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610db557600190505b80601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560009054906101000a900461ffff16935093509350509193909250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a90614f51565b60405180910390fd5b60c8848490501115610eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee190615094565b60405180910390fd5b818190508484905014610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2990615126565b60405180910390fd5b6000805b85859050811015610f93576009600a610f4f9190614e3a565b848483818110610f6257610f61615146565b5b90506020020135610f739190614e85565b82610f7e9190615175565b91508080610f8b906151cb565b915050610f36565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90615285565b60405180910390fd5b60005b85859050811015611229576009600a6110329190614e3a565b84848381811061104557611044615146565b5b905060200201356110569190614e85565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a49190615014565b925050819055506009600a6110b99190614e3a565b8484838181106110cc576110cb615146565b5b905060200201356110dd9190614e85565b600160008888858181106110f4576110f3615146565b5b905060200201602081019061110991906146fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111529190615175565b9250508190555085858281811061116c5761116b615146565b5b905060200201602081019061118191906146fe565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6111dd9190614e3a565b8787868181106111f0576111ef615146565b5b905060200201356112019190614e85565b60405161120e9190614530565b60405180910390a38080611221906151cb565b915050611019565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba95464858590508260405161125e9291906152a5565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f290614f51565b60405180910390fd5b83600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7e43be5031ac589eb5c09ce251f1670365b5fb2490f1705900323eeabf10ca518484848460405161159494939291906152ce565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790614f51565b60405180910390fd5b600360009054906101000a900460ff1615611680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116779061535f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611708906153cb565b60405180910390fd5b60008111611754576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174b90615437565b60405180910390fd5b6001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561190c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611930919061546c565b601460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000479050818110156119b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119af906154e5565b60405180910390fd5b60006119c330611e07565b905060008111611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90615551565b60405180910390fd5b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9b919061546c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611af7929190615571565b6020604051808303816000875af1158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a919061546c565b905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611c368261386c565b611c4282856000613a56565b50505050565b6000611c5333611e07565b905080821115611c98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8f906155e6565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ce79190615014565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d3d9190615175565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611da29190614530565b60405180910390a37ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb63383604051611ddb929190615606565b60405180910390a15050565b600080600080600654600754600854600954935093509350935090919293565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691509150915091565b60606040518060400160405280600581526020017f5348494654000000000000000000000000000000000000000000000000000000815250905090565b6000611f3d613147565b611f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7390614ff4565b60405180910390fd5b611f873384846131cc565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490614f51565b60405180910390fd5b600060016103e88461ffff166009600a6120379190614e3a565b6509184e72a0006120489190614e85565b6120529190614e85565b61205c919061565e565b6120669190615175565b90506006548110156120ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a4906156db565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a6120ce9190614e3a565b6509184e72a0006120df9190614e85565b6120e99190614e85565b6120f3919061565e565b6120fd9190615175565b9050600754811015612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b90615747565b60405180910390fd5b806007819055507f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f76006546007546040516121809291906152a5565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461221c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221390614f51565b60405180910390fd5b600360009054906101000a900460ff161561226c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122639061535f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f4906157b3565b60405180910390fd5b612305613b34565b565b60008060008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16955095509550955095509550909192939495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247990614f51565b60405180910390fd5b84600560066101000a81548161ffff021916908361ffff16021790555083600560086101000a81548161ffff021916908361ffff160217905550826005600a6101000a81548161ffff021916908361ffff160217905550816005600c6101000a81548161ffff021916908361ffff160217905550806005600e6101000a81548161ffff021916908361ffff1602179055506005600e9054906101000a900461ffff166005600c9054906101000a900461ffff166005600a9054906101000a900461ffff16600560089054906101000a900461ffff16600560069054906101000a900461ffff1661257291906157d3565b61257c91906157d3565b61258691906157d3565b61259091906157d3565b600560106101000a81548161ffff021916908361ffff1602179055507fccb4a96d4f7e36c9ba5f2b62187ca244ce0919ee883fa5ed88c3b5cb51a174b285858585856040516125e395949392919061580b565b60405180910390a15050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267790614f51565b60405180910390fd5b600061268b30611e07565b9050600081116126d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c7906158aa565b60405180910390fd5b6126d981613c63565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e890614f51565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61280d9190614e3a565b6509184e72a00061281e9190614e85565b6128289190614e85565b612832919061565e565b6008819055508063ffffffff168263ffffffff166009600a6128549190614e3a565b6509184e72a0006128659190614e85565b61286f9190614e85565b612879919061565e565b6009819055506008546009541161288f57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb6008546009546040516128c49291906152a5565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295790614f51565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516129cf9190615929565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5f90614f51565b60405180910390fd5b8015612b2a578360ff168360ff1611612ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aad906159b6565b60405180910390fd5b600560029054906101000a900460ff166002612ad291906159d6565b60ff168385612ae19190615a11565b60ff161115612b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1c90615a94565b60405180910390fd5b612ba4565b600560029054906101000a900460ff1660ff168460ff1611158015612b645750600560029054906101000a900460ff1660ff168360ff1611155b612ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9a90615b00565b60405180910390fd5b5b600560029054906101000a900460ff1660ff168260ff161115612bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf390615b00565b60405180910390fd5b83600560036101000a81548160ff021916908360ff16021790555082600560046101000a81548160ff021916908360ff160217905550816005806101000a81548160ff021916908360ff1602179055507fad5f92c9aca612d1d1b2c7afafd77c1b96e3d9b873cad916be28888672cf919384848484604051612c819493929190615b20565b60405180910390a150505050565b6000600360009054906101000a900460ff168015612cbb57506005601154612cb79190615175565b4310155b15612cd757600360009054906101000a900460ff169050612cdc565b600090505b90565b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d7857506000601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612e045781601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015612e03576005600081819054906101000a900461ffff1680929190612de790615b65565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b60006005600e9054906101000a900461ffff166005600c9054906101000a900461ffff166005600a9054906101000a900461ffff16600560089054906101000a900461ffff16612e5991906157d3565b612e6391906157d3565b612e6d91906157d3565b90506000600560089054906101000a900461ffff1661ffff161115612f2457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600560089054906101000a900461ffff1661ffff1685612eed9190614e85565b612ef7919061565e565b9081150290604051600060405180830381858888f19350505050158015612f22573d6000803e3d6000fd5b505b60006005600a9054906101000a900461ffff1661ffff161115612fd957600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff166005600a9054906101000a900461ffff1661ffff1685612fa29190614e85565b612fac919061565e565b9081150290604051600060405180830381858888f19350505050158015612fd7573d6000803e3d6000fd5b505b60006005600c9054906101000a900461ffff1661ffff16111561308e57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff166005600c9054906101000a900461ffff1661ffff16856130579190614e85565b613061919061565e565b9081150290604051600060405180830381858888f1935050505015801561308c573d6000803e3d6000fd5b505b60006005600e9054906101000a900461ffff1661ffff16111561314357600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff166005600e9054906101000a900461ffff1661ffff168561310c9190614e85565b613116919061565e565b9081150290604051600060405180830381858888f19350505050158015613141573d6000803e3d6000fd5b505b5050565b60008060009050600360009054906101000a900460ff161561316c57600190506131c5565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16036131c457600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156132375750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b613276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326d90615bdb565b60405180910390fd5b436011541115613329576000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036132d8576132d383436001612cdf565b613324565b61332383601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000612cdf565b5b6133bd565b6000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146133bc576133bb83601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000612cdf565b5b5b600360009054906101000a900460ff16801561341957506000601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613463575043601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156134a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161349a90615c47565b60405180910390fd5b601460009054906101000a900460ff161580156135095750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561351757613516613e14565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561357f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156135d7575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613627576135e7848484613fb3565b613626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361d90615cb3565b60405180910390fd5b5b600061363485858561414a565b9050600081846136449190615014565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136919190615014565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600082111561376c5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137289190615175565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546137b79190615175565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516138579190614530565b60405180910390a36001925050509392505050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613a53577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613a4a9190614530565b60405180910390a35b50565b600081613a815760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613ae896959493929190615d0e565b60606040518083038185885af1158015613b06573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613b2b9190615d84565b50505050505050565b600143613b419190615175565b6011819055506009600a613b559190614e3a565b6127106009600a613b669190614e3a565b6509184e72a000613b779190614e85565b6064613b839190614e85565b613b8d919061565e565b613b979190615175565b6006819055506009600a613bab9190614e3a565b6127106009600a613bbc9190614e3a565b6509184e72a000613bcd9190614e85565b6064613bd99190614e85565b613be3919061565e565b613bed9190615175565b600781905550600b600560036101000a81548160ff021916908360ff1602179055506016600560046101000a81548160ff021916908360ff16021790555060006005806101000a81548160ff021916908360ff1602179055506001600360006101000a81548160ff021916908315150217905550565b613c6c8161386c565b6000600267ffffffffffffffff811115613c8957613c88615dd7565b5b604051908082528060200260200182016040528015613cb75781602001602082028036833780820191505090505b5090503081600081518110613ccf57613cce615146565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613d4057613d3f615146565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613dde959493929190615ec4565b600060405180830381600087803b158015613df857600080fd5b505af1158015613e0c573d6000803e3d6000fd5b505050505050565b6001601460006101000a81548160ff0219169083151502179055506000613e3a30611e07565b90506008548110158015613e5a5750600360009054906101000a900460ff165b15613f95576009548110613e6e5760095490505b60006002600560109054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff1684613ea79190614e85565b613eb1919061565e565b613ebb919061565e565b905060008183613ecb9190615014565b90506009600a613edb9190614e3a565b8110613f79576000479050613eef82613c63565b60008147613efd9190615014565b90506000600560069054906101000a900461ffff1661ffff161115613f76576000600560109054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff1683613f539190614e85565b613f5d919061565e565b9050613f688561386c565b613f7485826000613a56565b505b50505b60004790506000811115613f9157613f9081612e09565b5b5050505b506000601460006101000a81548160ff021916908315150217905550565b60008060019050600360009054906101000a900460ff1680156140205750601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156140765750601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561413f5760065483111561408e576000905061413e565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015614133575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546141319190615175565b115b1561413d57600090505b5b5b809150509392505050565b600080600360009054906101000a900460ff1615806141b25750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806142065750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156142145760009050614347565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614297576064600560039054906101000a900460ff1660ff16846142869190614e85565b614290919061565e565b9050614346565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561431a576064600560049054906101000a900460ff1660ff16846143099190614e85565b614313919061565e565b9050614345565b606460058054906101000a900460ff1660ff16846143389190614e85565b614342919061565e565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561438c578082015181840152602081019050614371565b8381111561439b576000848401525b50505050565b6000601f19601f8301169050919050565b60006143bd82614352565b6143c7818561435d565b93506143d781856020860161436e565b6143e0816143a1565b840191505092915050565b6000602082019050818103600083015261440581846143b2565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061444282614417565b9050919050565b61445281614437565b811461445d57600080fd5b50565b60008135905061446f81614449565b92915050565b6000819050919050565b61448881614475565b811461449357600080fd5b50565b6000813590506144a58161447f565b92915050565b600080604083850312156144c2576144c161440d565b5b60006144d085828601614460565b92505060206144e185828601614496565b9150509250929050565b60008115159050919050565b614500816144eb565b82525050565b600060208201905061451b60008301846144f7565b92915050565b61452a81614475565b82525050565b60006020820190506145456000830184614521565b92915050565b614554816144eb565b811461455f57600080fd5b50565b6000813590506145718161454b565b92915050565b6000806000606084860312156145905761458f61440d565b5b600061459e86828701614460565b93505060206145af86828701614562565b92505060406145c086828701614562565b9150509250925092565b6000806000606084860312156145e3576145e261440d565b5b60006145f186828701614460565b935050602061460286828701614460565b925050604061461386828701614496565b9150509250925092565b600060ff82169050919050565b6146338161461d565b82525050565b600061ffff82169050919050565b61465081614639565b82525050565b60006101208201905061466c600083018c61462a565b614679602083018b61462a565b614686604083018a61462a565b614693606083018961462a565b6146a06080830188614647565b6146ad60a0830187614647565b6146ba60c0830186614647565b6146c760e0830185614647565b6146d5610100830184614647565b9a9950505050505050505050565b60006020820190506146f8600083018461462a565b92915050565b6000602082840312156147145761471361440d565b5b600061472284828501614460565b91505092915050565b600060608201905061474060008301866144f7565b61474d6020830185614521565b61475a6040830184614647565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261478757614786614762565b5b8235905067ffffffffffffffff8111156147a4576147a3614767565b5b6020830191508360208202830111156147c0576147bf61476c565b5b9250929050565b60008083601f8401126147dd576147dc614762565b5b8235905067ffffffffffffffff8111156147fa576147f9614767565b5b6020830191508360208202830111156148165761481561476c565b5b9250929050565b600080600080604085870312156148375761483661440d565b5b600085013567ffffffffffffffff81111561485557614854614412565b5b61486187828801614771565b9450945050602085013567ffffffffffffffff81111561488457614883614412565b5b614890878288016147c7565b925092505092959194509250565b600080600080608085870312156148b8576148b761440d565b5b60006148c687828801614460565b94505060206148d787828801614460565b93505060406148e887828801614460565b92505060606148f987828801614460565b91505092959194509250565b60006020828403121561491b5761491a61440d565b5b600061492984828501614496565b91505092915050565b60006080820190506149476000830187614521565b6149546020830186614521565b6149616040830185614521565b61496e6060830184614521565b95945050505050565b600060408201905061498c60008301856144f7565b61499960208301846144f7565b9392505050565b6149a981614639565b81146149b457600080fd5b50565b6000813590506149c6816149a0565b92915050565b600080604083850312156149e3576149e261440d565b5b60006149f1858286016149b7565b9250506020614a02858286016149b7565b9150509250929050565b614a1581614437565b82525050565b600060c082019050614a306000830189614a0c565b614a3d6020830188614a0c565b614a4a6040830187614a0c565b614a576060830186614a0c565b614a646080830185614a0c565b614a7160a0830184614a0c565b979650505050505050565b600080600080600060a08688031215614a9857614a9761440d565b5b6000614aa6888289016149b7565b9550506020614ab7888289016149b7565b9450506040614ac8888289016149b7565b9350506060614ad9888289016149b7565b9250506080614aea888289016149b7565b9150509295509295909350565b60008060408385031215614b0e57614b0d61440d565b5b6000614b1c85828601614460565b9250506020614b2d85828601614460565b9150509250929050565b600063ffffffff82169050919050565b614b5081614b37565b8114614b5b57600080fd5b50565b600081359050614b6d81614b47565b92915050565b60008060008060808587031215614b8d57614b8c61440d565b5b6000614b9b87828801614b5e565b9450506020614bac87828801614b5e565b9350506040614bbd87828801614b5e565b9250506060614bce87828801614b5e565b91505092959194509250565b6000614be582614417565b9050919050565b614bf581614bda565b8114614c0057600080fd5b50565b600081359050614c1281614bec565b92915050565b600060208284031215614c2e57614c2d61440d565b5b6000614c3c84828501614c03565b91505092915050565b614c4e8161461d565b8114614c5957600080fd5b50565b600081359050614c6b81614c45565b92915050565b60008060008060808587031215614c8b57614c8a61440d565b5b6000614c9987828801614c5c565b9450506020614caa87828801614c5c565b9350506040614cbb87828801614c5c565b9250506060614ccc87828801614562565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614d5e57808604811115614d3a57614d39614cd8565b5b6001851615614d495780820291505b8081029050614d5785614d07565b9450614d1e565b94509492505050565b600082614d775760019050614e33565b81614d855760009050614e33565b8160018114614d9b5760028114614da557614dd4565b6001915050614e33565b60ff841115614db757614db6614cd8565b5b8360020a915084821115614dce57614dcd614cd8565b5b50614e33565b5060208310610133831016604e8410600b8410161715614e095782820a905083811115614e0457614e03614cd8565b5b614e33565b614e168484846001614d14565b92509050818404811115614e2d57614e2c614cd8565b5b81810290505b9392505050565b6000614e4582614475565b9150614e508361461d565b9250614e7d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614d67565b905092915050565b6000614e9082614475565b9150614e9b83614475565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614ed457614ed3614cd8565b5b828202905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000614f3b602a8361435d565b9150614f4682614edf565b604082019050919050565b60006020820190508181036000830152614f6a81614f2e565b9050919050565b6000606082019050614f866000830186614a0c565b614f9360208301856144f7565b614fa060408301846144f7565b949350505050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614fde60108361435d565b9150614fe982614fa8565b602082019050919050565b6000602082019050818103600083015261500d81614fd1565b9050919050565b600061501f82614475565b915061502a83614475565b92508282101561503d5761503c614cd8565b5b828203905092915050565b7f57616c6c657420636f756e74206f766572203230302028676173207269736b29600082015250565b600061507e60208361435d565b915061508982615048565b602082019050919050565b600060208201905081810360008301526150ad81615071565b9050919050565b7f4164647265737320616e6420746f6b656e20616d6f756e74206c697374206d6960008201527f736d616368000000000000000000000000000000000000000000000000000000602082015250565b600061511060258361435d565b915061511b826150b4565b604082019050919050565b6000602082019050818103600083015261513f81615103565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061518082614475565b915061518b83614475565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156151c0576151bf614cd8565b5b828201905092915050565b60006151d682614475565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361520857615207614cd8565b5b600182019050919050565b7f546f6b656e2062616c616e6365206c6f776572207468616e2061697264726f7060008201527f20746f74616c0000000000000000000000000000000000000000000000000000602082015250565b600061526f60268361435d565b915061527a82615213565b604082019050919050565b6000602082019050818103600083015261529e81615262565b9050919050565b60006040820190506152ba6000830185614521565b6152c76020830184614521565b9392505050565b60006080820190506152e36000830187614a0c565b6152f06020830186614a0c565b6152fd6040830185614a0c565b61530a6060830184614a0c565b95945050505050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061534960148361435d565b915061535482615313565b602082019050919050565b600060208201905081810360008301526153788161533c565b9050919050565b7f4c5020616c726561647920696e697469616c697a656400000000000000000000600082015250565b60006153b560168361435d565b91506153c08261537f565b602082019050919050565b600060208201905081810360008301526153e4816153a8565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000615421600f8361435d565b915061542c826153eb565b602082019050919050565b6000602082019050818103600083015261545081615414565b9050919050565b60008151905061546681614449565b92915050565b6000602082840312156154825761548161440d565b5b600061549084828501615457565b91505092915050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006154cf600e8361435d565b91506154da82615499565b602082019050919050565b600060208201905081810360008301526154fe816154c2565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061553b60098361435d565b915061554682615505565b602082019050919050565b6000602082019050818103600083015261556a8161552e565b9050919050565b60006040820190506155866000830185614a0c565b6155936020830184614a0c565b9392505050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b60006155d060158361435d565b91506155db8261559a565b602082019050919050565b600060208201905081810360008301526155ff816155c3565b9050919050565b600060408201905061561b6000830185614a0c565b6156286020830184614521565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061566982614475565b915061567483614475565b9250826156845761568361562f565b5b828204905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006156c560108361435d565b91506156d08261568f565b602082019050919050565b600060208201905081810360008301526156f4816156b8565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b600061573160148361435d565b915061573c826156fb565b602082019050919050565b6000602082019050818103600083015261576081615724565b9050919050565b7f4c50206e6f7420696e697469616c697a65640000000000000000000000000000600082015250565b600061579d60128361435d565b91506157a882615767565b602082019050919050565b600060208201905081810360008301526157cc81615790565b9050919050565b60006157de82614639565b91506157e983614639565b92508261ffff03821115615800576157ff614cd8565b5b828201905092915050565b600060a0820190506158206000830188614647565b61582d6020830187614647565b61583a6040830186614647565b6158476060830185614647565b6158546080830184614647565b9695505050505050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061589460098361435d565b915061589f8261585e565b602082019050919050565b600060208201905081810360008301526158c381615887565b9050919050565b6000819050919050565b60006158ef6158ea6158e584614417565b6158ca565b614417565b9050919050565b6000615901826158d4565b9050919050565b6000615913826158f6565b9050919050565b61592381615908565b82525050565b600060208201905061593e600083018461591a565b92915050565b7f53656c6c20746178206d75737420626520686967686572207468616e2062757960008201527f2074617800000000000000000000000000000000000000000000000000000000602082015250565b60006159a060248361435d565b91506159ab82615944565b604082019050919050565b600060208201905081810360008301526159cf81615993565b9050919050565b60006159e18261461d565b91506159ec8361461d565b92508160ff0483118215151615615a0657615a05614cd8565b5b828202905092915050565b6000615a1c8261461d565b9150615a278361461d565b92508260ff03821115615a3d57615a3c614cd8565b5b828201905092915050565b7f4176672074617820746f6f206869676800000000000000000000000000000000600082015250565b6000615a7e60108361435d565b9150615a8982615a48565b602082019050919050565b60006020820190508181036000830152615aad81615a71565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000615aea600c8361435d565b9150615af582615ab4565b602082019050919050565b60006020820190508181036000830152615b1981615add565b9050919050565b6000608082019050615b35600083018761462a565b615b42602083018661462a565b615b4f604083018561462a565b615b5c60608301846144f7565b95945050505050565b6000615b7082614639565b915061ffff8203615b8457615b83614cd8565b5b600182019050919050565b7f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000600082015250565b6000615bc560188361435d565b9150615bd082615b8f565b602082019050919050565b60006020820190508181036000830152615bf481615bb8565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615c31600b8361435d565b9150615c3c82615bfb565b602082019050919050565b60006020820190508181036000830152615c6081615c24565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000615c9d60118361435d565b9150615ca882615c67565b602082019050919050565b60006020820190508181036000830152615ccc81615c90565b9050919050565b6000819050919050565b6000615cf8615cf3615cee84615cd3565b6158ca565b614475565b9050919050565b615d0881615cdd565b82525050565b600060c082019050615d236000830189614a0c565b615d306020830188614521565b615d3d6040830187615cff565b615d4a6060830186615cff565b615d576080830185614a0c565b615d6460a0830184614521565b979650505050505050565b600081519050615d7e8161447f565b92915050565b600080600060608486031215615d9d57615d9c61440d565b5b6000615dab86828701615d6f565b9350506020615dbc86828701615d6f565b9250506040615dcd86828701615d6f565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615e3b81614437565b82525050565b6000615e4d8383615e32565b60208301905092915050565b6000602082019050919050565b6000615e7182615e06565b615e7b8185615e11565b9350615e8683615e22565b8060005b83811015615eb7578151615e9e8882615e41565b9750615ea983615e59565b925050600181019050615e8a565b5085935050505092915050565b600060a082019050615ed96000830188614521565b615ee66020830187615cff565b8181036040830152615ef88186615e66565b9050615f076060830185614a0c565b615f146080830184614521565b969550505050505056fea2646970667358221220e4c11668a17d6d07d23840bc5bb1a177f5c7efaa9ff2884ee5be142cd21c3e0f64736f6c634300080d0033