60806040525f60075f6101000a81548160ff0219169083151502179055505f6008555f600b5f6101000a81548160ff0219169083151502179055506012600a6200004a9190620009f2565b600a62000058919062000a42565b600c555f600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a7575f80fd5b50604051620044d4380380620044d48339818101604052810190620000cd919062000c40565b5f620000de620006e060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060018081905550826009908162000192919062000f05565b5081600a9081620001a4919062000f05565b505f6012600a620001b69190620009f2565b82620001c3919062000a42565b9050620001e681620001da620006e060201b60201c565b620006e760201b60201c565b5f80600146036200028b57737a250d5630b4cf539739df2c5dacb4c659f2488d9150733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad9050600160055f70fee13a103a10d593b9ae06b3e05f2e7e1c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000395565b60384603620002c8577310ed43c718714eb63d5aa57b78b54704e256024e9150731a0a18ac4becddbd6389559687d1a73d8927e416905062000394565b61210546036200036f57734752ba5dbc23f44d87826276bf6fd6b1c372ad24915073198ef79f1f515f02dfe9e3115ed9fc07183f02fc9050600160055f7311ddd59c33c73c44733b4123a86ea5ce57f6e85473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000393565b62aa36a7460362000392577386dcd3293c53cf8efd7303b57beb2a3f671dde9891505b5b5b5b81600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ea573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200051091906200104a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000597573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005bd91906200104a565b6040518363ffffffff1660e01b8152600401620005dc9291906200108b565b6020604051808303815f875af1158015620005f9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200061f91906200104a565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050505050506200119a565b5f33905090565b620006f7620006e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000786576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077d9062001114565b60405180910390fd5b8160085f82825462000799919062001134565b925050819055508160025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620007ee919062001134565b925050819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200085491906200117f565b60405180910390a35050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008ea57808604811115620008c257620008c162000860565b5b6001851615620008d25780820291505b8081029050620008e2856200088d565b9450620008a2565b94509492505050565b5f82620009045760019050620009d6565b8162000913575f9050620009d6565b81600181146200092c576002811462000937576200096d565b6001915050620009d6565b60ff8411156200094c576200094b62000860565b5b8360020a91508482111562000966576200096562000860565b5b50620009d6565b5060208310610133831016604e8410600b8410161715620009a75782820a905083811115620009a157620009a062000860565b5b620009d6565b620009b6848484600162000899565b92509050818404811115620009d057620009cf62000860565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009fe82620009dd565b915062000a0b83620009e6565b925062000a3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008f3565b905092915050565b5f62000a4e82620009dd565b915062000a5b83620009dd565b925082820262000a6b81620009dd565b9150828204841483151762000a855762000a8462000860565b5b5092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000aed8262000aa5565b810181811067ffffffffffffffff8211171562000b0f5762000b0e62000ab5565b5b80604052505050565b5f62000b2362000a8c565b905062000b31828262000ae2565b919050565b5f67ffffffffffffffff82111562000b535762000b5262000ab5565b5b62000b5e8262000aa5565b9050602081019050919050565b5f5b8381101562000b8a57808201518184015260208101905062000b6d565b5f8484015250505050565b5f62000bab62000ba58462000b36565b62000b18565b90508281526020810184848401111562000bca5762000bc962000aa1565b5b62000bd784828562000b6b565b509392505050565b5f82601f83011262000bf65762000bf562000a9d565b5b815162000c0884826020860162000b95565b91505092915050565b62000c1c81620009dd565b811462000c27575f80fd5b50565b5f8151905062000c3a8162000c11565b92915050565b5f805f6060848603121562000c5a5762000c5962000a95565b5b5f84015167ffffffffffffffff81111562000c7a5762000c7962000a99565b5b62000c888682870162000bdf565b935050602084015167ffffffffffffffff81111562000cac5762000cab62000a99565b5b62000cba8682870162000bdf565b925050604062000ccd8682870162000c2a565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d2657607f821691505b60208210810362000d3c5762000d3b62000ce1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000da07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d63565b62000dac868362000d63565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000ded62000de762000de184620009dd565b62000dc4565b620009dd565b9050919050565b5f819050919050565b62000e088362000dcd565b62000e2062000e178262000df4565b84845462000d6f565b825550505050565b5f90565b62000e3662000e28565b62000e4381848462000dfd565b505050565b5b8181101562000e6a5762000e5e5f8262000e2c565b60018101905062000e49565b5050565b601f82111562000eb95762000e838162000d42565b62000e8e8462000d54565b8101602085101562000e9e578190505b62000eb662000ead8562000d54565b83018262000e48565b50505b505050565b5f82821c905092915050565b5f62000edb5f198460080262000ebe565b1980831691505092915050565b5f62000ef5838362000eca565b9150826002028217905092915050565b62000f108262000cd7565b67ffffffffffffffff81111562000f2c5762000f2b62000ab5565b5b62000f38825462000d0e565b62000f4582828562000e6e565b5f60209050601f83116001811462000f7b575f841562000f66578287015190505b62000f72858262000ee8565b86555062000fe1565b601f19841662000f8b8662000d42565b5f5b8281101562000fb45784890151825560018201915060208501945060208101905062000f8d565b8683101562000fd4578489015162000fd0601f89168262000eca565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620010148262000fe9565b9050919050565b620010268162001008565b811462001031575f80fd5b50565b5f8151905062001044816200101b565b92915050565b5f6020828403121562001062576200106162000a95565b5b5f620010718482850162001034565b91505092915050565b620010858162001008565b82525050565b5f604082019050620010a05f8301856200107a565b620010af60208301846200107a565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620010fc602083620010b6565b91506200110982620010c6565b602082019050919050565b5f6020820190508181035f8301526200112d81620010ee565b9050919050565b5f6200114082620009dd565b91506200114d83620009dd565b925082820190508082111562001168576200116762000860565b5b92915050565b6200117981620009dd565b82525050565b5f602082019050620011945f8301846200116e565b92915050565b61332c80620011a85f395ff3fe6080604052600436106101db575f3560e01c806357ccd27a1161010157806395d89b4111610094578063dd62ed3e11610063578063dd62ed3e14610694578063e5339685146106d0578063f2fde38b1461070c578063f87dc2c614610734576101e2565b806395d89b41146105dc578063a9059cbb14610606578063ab6bd1a514610642578063d9fc353114610658576101e2565b8063715018a6116100d0578063715018a6146105385780637c35cd151461054e57806386942310146105765780638da5cb5b146105b2576101e2565b806357ccd27a146104845780635943b523146104ac5780635e4cbfea146104d457806370a08231146104fc576101e2565b806323b872dd11610179578063313ce56711610148578063313ce567146103ce5780633315c51d146103f85780633b90b9bf146104205780634a4da1f91461045c576101e2565b806323b872dd146103185780632839a5c6146103545780632d7fc0f11461037c5780632e7be65b146103a4576101e2565b8063095ea7b3116101b5578063095ea7b31461024e578063160e3ce21461028a57806316279055146102b257806318160ddd146102ee576101e2565b806303cc99c5146101e657806306fdde03146101fc578063073df57f14610226576101e2565b366101e257005b5f80fd5b3480156101f1575f80fd5b506101fa61075e565b005b348015610207575f80fd5b5061021061081c565b60405161021d919061263f565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612696565b6108ac565b005b348015610259575f80fd5b50610274600480360381019061026f919061271b565b610962565b6040516102819190612773565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab919061271b565b61098f565b005b3480156102bd575f80fd5b506102d860048036038101906102d3919061278c565b610a74565b6040516102e59190612773565b60405180910390f35b3480156102f9575f80fd5b50610302610a85565b60405161030f91906127c6565b60405180910390f35b348015610323575f80fd5b5061033e600480360381019061033991906127df565b610ad6565b60405161034b9190612773565b60405180910390f35b34801561035f575f80fd5b5061037a6004803603810190610375919061278c565b610be1565b005b348015610387575f80fd5b506103a2600480360381019061039d919061271b565b610d72565b005b3480156103af575f80fd5b506103b8610e64565b6040516103c5919061283e565b60405180910390f35b3480156103d9575f80fd5b506103e2610e89565b6040516103ef9190612872565b60405180910390f35b348015610403575f80fd5b5061041e6004803603810190610419919061278c565b610e91565b005b34801561042b575f80fd5b506104466004803603810190610441919061278c565b610f7d565b6040516104539190612773565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d919061278c565b610f9a565b005b34801561048f575f80fd5b506104aa60048036038101906104a5919061288b565b611085565b005b3480156104b7575f80fd5b506104d260048036038101906104cd919061278c565b6112c3565b005b3480156104df575f80fd5b506104fa60048036038101906104f5919061278c565b6113af565b005b348015610507575f80fd5b50610522600480360381019061051d919061278c565b611488565b60405161052f91906127c6565b60405180910390f35b348015610543575f80fd5b5061054c6114ce565b005b348015610559575f80fd5b50610574600480360381019061056f919061278c565b61161c565b005b348015610581575f80fd5b5061059c6004803603810190610597919061278c565b611707565b6040516105a99190612773565b60405180910390f35b3480156105bd575f80fd5b506105c6611724565b6040516105d3919061283e565b60405180910390f35b3480156105e7575f80fd5b506105f061174b565b6040516105fd919061263f565b60405180910390f35b348015610611575f80fd5b5061062c6004803603810190610627919061271b565b6117db565b6040516106399190612773565b60405180910390f35b34801561064d575f80fd5b50610656611808565b005b348015610663575f80fd5b5061067e60048036038101906106799190612696565b6118c6565b60405161068b9190612773565b60405180910390f35b34801561069f575f80fd5b506106ba60048036038101906106b591906128db565b61196c565b6040516106c791906127c6565b60405180910390f35b3480156106db575f80fd5b506106f660048036038101906106f1919061278c565b6119ee565b60405161070391906127c6565b60405180910390f35b348015610717575f80fd5b50610732600480360381019061072d919061278c565b611a03565b005b34801561073f575f80fd5b50610748611b11565b6040516107559190612773565b60405180910390f35b610766611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e990612963565b60405180910390fd5b600b5f9054906101000a900460ff1615600b5f6101000a81548160ff021916908315150217905550565b60606009805461082b906129ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610857906129ae565b80156108a25780601f10610879576101008083540402835291602001916108a2565b820191905f5260205f20905b81548152906001019060200180831161088557829003601f168201915b5050505050905090565b6108b4611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790612963565b60405180910390fd5b6012600a61094e9190612b3a565b816109599190612b84565b600c8190555050565b5f61096b611b2a565b61097d610976611b23565b8484611b79565b60019050610989611d3c565b92915050565b610997611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612963565b60405180910390fd5b8042610a2f9190612bc5565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f80823b90505f8111915050919050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600854610ad19190612bf8565b905090565b5f610adf611b2a565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b26611b23565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90612c9b565b60405180910390fd5b610bb0858585611d45565b610bcd85610bbc611b23565b8584610bc89190612bf8565b611b79565b6001915050610bda611d3c565b9392505050565b610be9611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90612963565b60405180910390fd5b5f4790505f8111610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb290612d29565b60405180910390fd5b47811115610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf590612d91565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610d41573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a15050565b610d7a611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90612963565b60405180910390fd5b6012600a610e149190612b3a565b81610e1f9190612b84565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b610e99611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612963565b60405180910390fd5b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6005602052805f5260405f205f915054906101000a900460ff1681565b610fa2611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461102e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102590612963565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61108d611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090612963565b60405180910390fd5b5f821161115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115290612d29565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611194919061283e565b602060405180830381865afa1580156111af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d39190612dc3565b821115611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612d91565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff1660e01b8152600401611250929190612dee565b6020604051808303815f875af115801561126c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112909190612e3f565b50817fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a2505050565b6112cb611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612963565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6113b7611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90612963565b60405180910390fd5b4260065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114d6611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155990612963565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611624611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a790612963565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6004602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a805461175a906129ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611786906129ae565b80156117d15780601f106117a8576101008083540402835291602001916117d1565b820191905f5260205f20905b8154815290600101906020018083116117b457829003601f168201915b5050505050905090565b5f6117e4611b2a565b6117f66117ef611b23565b8484611d45565b60019050611802611d3c565b92915050565b611810611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189390612963565b60405180910390fd5b60075f9054906101000a900460ff161560075f6101000a81548160ff021916908315150217905550565b5f8160035f6118d3611b23565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561196557508161196261195d611b23565b611488565b10155b9050919050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006602052805f5260405f205f915090505481565b611a0b611b23565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8e90612963565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90612eda565b60405180910390fd5b611b0e81612464565b50565b600b5f9054906101000a900460ff1681565b5f33905090565b600260015403611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690612f42565b60405180910390fd5b6002600181905550565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bde90612fd0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c9061305e565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d2f91906127c6565b60405180910390a3505050565b60018081905550565b82828260075f9054906101000a900460ff1661216057600c5481600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611da79190612bc5565b111561215f57611db5611724565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e235750611df3611724565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215e57600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611f875750611e8782610a74565b8015611eda575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f335750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f86575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b1561206557611f94611724565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612025575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612024575061202283610a74565b155b5b612064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205b906130c6565b60405180910390fd5b5b61206e83612525565b158015612081575061207f82612525565b155b6120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b7906130c6565b60405180910390fd5b600b5f9054906101000a900460ff1661215d5760045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661215c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612153906130c6565b60405180910390fd5b5b5b5b5b80600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546121ac9190612bc5565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1603612221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221890613154565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361228f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612286906131e2565b60405180910390fd5b5f84116122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c890613270565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612348906132d8565b60405180910390fd5b8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461239d9190612bf8565b925050819055508360025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123f09190612bc5565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161245491906127c6565b60405180910390a3505050505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541180156125ae575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205442105b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125ec5780820151818401526020810190506125d1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612611826125b5565b61261b81856125bf565b935061262b8185602086016125cf565b612634816125f7565b840191505092915050565b5f6020820190508181035f8301526126578184612607565b905092915050565b5f80fd5b5f819050919050565b61267581612663565b811461267f575f80fd5b50565b5f813590506126908161266c565b92915050565b5f602082840312156126ab576126aa61265f565b5b5f6126b884828501612682565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126ea826126c1565b9050919050565b6126fa816126e0565b8114612704575f80fd5b50565b5f81359050612715816126f1565b92915050565b5f80604083850312156127315761273061265f565b5b5f61273e85828601612707565b925050602061274f85828601612682565b9150509250929050565b5f8115159050919050565b61276d81612759565b82525050565b5f6020820190506127865f830184612764565b92915050565b5f602082840312156127a1576127a061265f565b5b5f6127ae84828501612707565b91505092915050565b6127c081612663565b82525050565b5f6020820190506127d95f8301846127b7565b92915050565b5f805f606084860312156127f6576127f561265f565b5b5f61280386828701612707565b935050602061281486828701612707565b925050604061282586828701612682565b9150509250925092565b612838816126e0565b82525050565b5f6020820190506128515f83018461282f565b92915050565b5f60ff82169050919050565b61286c81612857565b82525050565b5f6020820190506128855f830184612863565b92915050565b5f805f606084860312156128a2576128a161265f565b5b5f6128af86828701612707565b93505060206128c086828701612682565b92505060406128d186828701612707565b9150509250925092565b5f80604083850312156128f1576128f061265f565b5b5f6128fe85828601612707565b925050602061290f85828601612707565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61294d6020836125bf565b915061295882612919565b602082019050919050565b5f6020820190508181035f83015261297a81612941565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806129c557607f821691505b6020821081036129d8576129d7612981565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a6057808604811115612a3c57612a3b6129de565b5b6001851615612a4b5780820291505b8081029050612a5985612a0b565b9450612a20565b94509492505050565b5f82612a785760019050612b33565b81612a85575f9050612b33565b8160018114612a9b5760028114612aa557612ad4565b6001915050612b33565b60ff841115612ab757612ab66129de565b5b8360020a915084821115612ace57612acd6129de565b5b50612b33565b5060208310610133831016604e8410600b8410161715612b095782820a905083811115612b0457612b036129de565b5b612b33565b612b168484846001612a17565b92509050818404811115612b2d57612b2c6129de565b5b81810290505b9392505050565b5f612b4482612663565b9150612b4f83612857565b9250612b7c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a69565b905092915050565b5f612b8e82612663565b9150612b9983612663565b9250828202612ba781612663565b91508282048414831517612bbe57612bbd6129de565b5b5092915050565b5f612bcf82612663565b9150612bda83612663565b9250828201905080821115612bf257612bf16129de565b5b92915050565b5f612c0282612663565b9150612c0d83612663565b9250828203905081811115612c2557612c246129de565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c856028836125bf565b9150612c9082612c2b565b604082019050919050565b5f6020820190508181035f830152612cb281612c79565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d136022836125bf565b9150612d1e82612cb9565b604082019050919050565b5f6020820190508181035f830152612d4081612d07565b9050919050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612d7b6013836125bf565b9150612d8682612d47565b602082019050919050565b5f6020820190508181035f830152612da881612d6f565b9050919050565b5f81519050612dbd8161266c565b92915050565b5f60208284031215612dd857612dd761265f565b5b5f612de584828501612daf565b91505092915050565b5f604082019050612e015f83018561282f565b612e0e60208301846127b7565b9392505050565b612e1e81612759565b8114612e28575f80fd5b50565b5f81519050612e3981612e15565b92915050565b5f60208284031215612e5457612e5361265f565b5b5f612e6184828501612e2b565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612ec46026836125bf565b9150612ecf82612e6a565b604082019050919050565b5f6020820190508181035f830152612ef181612eb8565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612f2c601f836125bf565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612fba6024836125bf565b9150612fc582612f60565b604082019050919050565b5f6020820190508181035f830152612fe781612fae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130486022836125bf565b915061305382612fee565b604082019050919050565b5f6020820190508181035f8301526130758161303c565b9050919050565b7f45727200000000000000000000000000000000000000000000000000000000005f82015250565b5f6130b06003836125bf565b91506130bb8261307c565b602082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61313e6025836125bf565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6023836125bf565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61325a6029836125bf565b915061326582613200565b604082019050919050565b5f6020820190508181035f8301526132878161324e565b9050919050565b7f4e6f7420656e6f7567682062616c616e636500000000000000000000000000005f82015250565b5f6132c26012836125bf565b91506132cd8261328e565b602082019050919050565b5f6020820190508181035f8301526132ef816132b6565b905091905056fea2646970667358221220032abab7d8b8ef8ef9684245c2bcb0911480bb2a68243076f367c600317060a264736f6c63430008140033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000000c4675656c204e6574776f726b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044655454c00000000000000000000000000000000000000000000000000000000