60806040526509184e72a0006000196200001a919062000ba3565b60001962000029919062000af4565b60065560006009556002600a556000600b556002600c55600b54600d55600c54600e55600d54600f55600e54601055734f33560696d0d1d19309dc267c04728b1941e38d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734f33560696d0d1d19309dc267c04728b1941e38d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550620001736103e86200015f60146509184e72a0006200076d60201b620017111790919060201c565b620007f160201b6200178c1790919060201c565b601755620001b26103e86200019e60146509184e72a0006200076d60201b620017111790919060201c565b620007f160201b6200178c1790919060201c565b601855620001f16103e8620001dd60056509184e72a0006200076d60201b620017111790919060201c565b620007f160201b6200178c1790919060201c565b6019553480156200020157600080fd5b506000620002146200084360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002c96200084360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a857600080fd5b505afa158015620003bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e39190620008f3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044657600080fd5b505afa1580156200045b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004819190620008f3565b6040518363ffffffff1660e01b8152600401620004a0929190620009af565b602060405180830381600087803b158015620004bb57600080fd5b505af1158015620004d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f69190620008f3565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200054c6200084b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006f96200084360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6509184e72a0006040516200075e919062000a22565b60405180910390a35062000cb8565b600080831415620007825760009050620007eb565b6000828462000792919062000a93565b9050828482620007a3919062000a5b565b14620007e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007dd9062000a00565b60405180910390fd5b809150505b92915050565b60006200083b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087460201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b59190620009dc565b60405180910390fd5b5060008385620008cf919062000a5b565b9050809150509392505050565b600081519050620008ed8162000c9e565b92915050565b6000602082840312156200090c576200090b62000c39565b5b60006200091c84828501620008dc565b91505092915050565b620009308162000b2f565b82525050565b6000620009438262000a3f565b6200094f818562000a4a565b93506200096181856020860162000b6d565b6200096c8162000c3e565b840191505092915050565b60006200098660218362000a4a565b9150620009938262000c4f565b604082019050919050565b620009a98162000b63565b82525050565b6000604082019050620009c6600083018562000925565b620009d5602083018462000925565b9392505050565b60006020820190508181036000830152620009f8818462000936565b905092915050565b6000602082019050818103600083015262000a1b8162000977565b9050919050565b600060208201905062000a3960008301846200099e565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a688262000b63565b915062000a758362000b63565b92508262000a885762000a8762000c0a565b5b828204905092915050565b600062000aa08262000b63565b915062000aad8362000b63565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ae95762000ae862000bdb565b5b828202905092915050565b600062000b018262000b63565b915062000b0e8362000b63565b92508282101562000b245762000b2362000bdb565b5b828203905092915050565b600062000b3c8262000b43565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b8d57808201518184015260208101905062000b70565b8381111562000b9d576000848401525b50505050565b600062000bb08262000b63565b915062000bbd8362000b63565b92508262000bd05762000bcf62000c0a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000ca98162000b2f565b811462000cb557600080fd5b50565b613ef18062000cc86000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f1461066a578063dd62ed3e14610695578063ea1644d5146106d2578063f2fde38b146106fb576101e2565b8063a9059cbb146105b0578063bfd79284146105ed578063c3c8cd801461062a578063c492f04614610641576101e2565b80638f9a55c0116100d15780638f9a55c01461050857806395d89b411461053357806398a5c3151461055e578063a2a957bb14610587576101e2565b806374010ece146104605780637d1db4a5146104895780638da5cb5b146104b45780638f70ccf7146104df576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103cc5780636fc3eaec146103f557806370a082311461040c578063715018a614610449576101e2565b8063313ce5671461033657806349bd5a5e14610361578063622565891461038c5780636b999053146103a3576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612fb4565b610724565b005b34801561021c57600080fd5b5061022561084e565b6040516102329190613411565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612f14565b61088b565b60405161026f91906133db565b60405180910390f35b34801561028457600080fd5b5061028d6108a9565b60405161029a91906133f6565b60405180910390f35b3480156102af57600080fd5b506102b86108cf565b6040516102c591906135f3565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612ec1565b6108dd565b60405161030291906133db565b60405180910390f35b34801561031757600080fd5b506103206109b6565b60405161032d91906135f3565b60405180910390f35b34801561034257600080fd5b5061034b6109bc565b6040516103589190613668565b60405180910390f35b34801561036d57600080fd5b506103766109c5565b60405161038391906133c0565b60405180910390f35b34801561039857600080fd5b506103a16109eb565b005b3480156103af57600080fd5b506103ca60048036038101906103c59190612e27565b610a9c565b005b3480156103d857600080fd5b506103f360048036038101906103ee9190612ffd565b610b8c565b005b34801561040157600080fd5b5061040a610c3d565b005b34801561041857600080fd5b50610433600480360381019061042e9190612e27565b610d0e565b60405161044091906135f3565b60405180910390f35b34801561045557600080fd5b5061045e610d5f565b005b34801561046c57600080fd5b506104876004803603810190610482919061302a565b610eb2565b005b34801561049557600080fd5b5061049e610f51565b6040516104ab91906135f3565b60405180910390f35b3480156104c057600080fd5b506104c9610f57565b6040516104d691906133c0565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612ffd565b610f80565b005b34801561051457600080fd5b5061051d611039565b60405161052a91906135f3565b60405180910390f35b34801561053f57600080fd5b5061054861103f565b6040516105559190613411565b60405180910390f35b34801561056a57600080fd5b506105856004803603810190610580919061302a565b61107c565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613057565b61111b565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190612f14565b6111d2565b6040516105e491906133db565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f9190612e27565b6111f0565b60405161062191906133db565b60405180910390f35b34801561063657600080fd5b5061063f611210565b005b34801561064d57600080fd5b5061066860048036038101906106639190612f54565b6112e9565b005b34801561067657600080fd5b5061067f611423565b60405161068c91906135f3565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190612e81565b611429565b6040516106c991906135f3565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f4919061302a565b6114b0565b005b34801561070757600080fd5b50610722600480360381019061071d9190612e27565b61154f565b005b61072c6117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b090613553565b60405180910390fd5b60005b815181101561084a576001601160008484815181106107de576107dd6139e6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108429061393f565b9150506107bc565b5050565b60606040518060400160405280600a81526020017f4f6d6e6920536869626100000000000000000000000000000000000000000000815250905090565b600061089f6108986117d6565b84846117de565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006509184e72a000905090565b60006108ea8484846119a9565b6109ab846108f66117d6565b6109a685604051806060016040528060288152602001613e9460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095c6117d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222e9092919063ffffffff16565b6117de565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109f36117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613553565b60405180910390fd5b6509184e72a0006017819055506509184e72a000601881905550565b610aa46117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2890613553565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b946117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613553565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7e6117d6565b73ffffffffffffffffffffffffffffffffffffffff161480610cf45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cdc6117d6565b73ffffffffffffffffffffffffffffffffffffffff16145b610cfd57600080fd5b6000479050610d0b81612292565b50565b6000610d58600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238d565b9050919050565b610d676117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610deb90613553565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eba6117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90613553565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f886117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613553565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600581526020017f4f4d534849000000000000000000000000000000000000000000000000000000815250905090565b6110846117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890613553565b60405180910390fd5b8060198190555050565b6111236117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a790613553565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006111e66111df6117d6565b84846119a9565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112516117d6565b73ffffffffffffffffffffffffffffffffffffffff1614806112c75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112af6117d6565b73ffffffffffffffffffffffffffffffffffffffff16145b6112d057600080fd5b60006112db30610d0e565b90506112e6816123fb565b50565b6112f16117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590613553565b60405180910390fd5b60005b8383905081101561141d5781600560008686858181106113a4576113a36139e6565b5b90506020020160208101906113b99190612e27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114159061393f565b915050611381565b50505050565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114b86117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c90613553565b60405180910390fd5b8060188190555050565b6115576117d6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90613553565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b906134b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156117245760009050611786565b6000828461173291906137b0565b9050828482611741919061377f565b14611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177890613533565b60405180910390fd5b809150505b92915050565b60006117ce83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612683565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561184e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611845906135d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b5906134d3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161199c91906135f3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090613593565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8090613433565b60405180910390fd5b60008111611acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac390613573565b60405180910390fd5b611ad4610f57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b425750611b12610f57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f2d57601660149054906101000a900460ff16611bd157611b63610f57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613453565b60405180910390fd5b5b601754811115611c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0d90613493565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cba5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf0906134f3565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611da65760185481611d5b84610d0e565b611d659190613729565b10611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c906135b3565b60405180910390fd5b5b6000611db130610d0e565b9050600060195482101590506017548210611dcc5760175491505b808015611de65750601660159054906101000a900460ff16155b8015611e405750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e56575060168054906101000a900460ff165b8015611eac5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f025750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f2a57611f10826123fb565b60004790506000811115611f2857611f2747612292565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fd45750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120875750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120865750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612095576000905061221c565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121405750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561215857600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122035750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561221b57600b54600d81905550600c54600e819055505b5b612228848484846126e6565b50505050565b6000838311158290612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d9190613411565b60405180910390fd5b5060008385612285919061380a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122e260028461178c90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561230d573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61235e60028461178c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612389573d6000803e3d6000fd5b5050565b60006006548211156123d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cb90613473565b60405180910390fd5b60006123de612713565b90506123f3818461178c90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561243357612432613a15565b5b6040519080825280602002602001820160405280156124615781602001602082028036833780820191505090505b5090503081600081518110612479576124786139e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561251b57600080fd5b505afa15801561252f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125539190612e54565b81600181518110612567576125666139e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125ce30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117de565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161263295949392919061360e565b600060405180830381600087803b15801561264c57600080fd5b505af1158015612660573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600080831182906126ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c19190613411565b60405180910390fd5b50600083856126d9919061377f565b9050809150509392505050565b806126f4576126f361273e565b5b6126ff848484612781565b8061270d5761270c61294c565b5b50505050565b6000806000612720612960565b91509150612737818361178c90919063ffffffff16565b9250505090565b6000600d5414801561275257506000600e54145b1561275c5761277f565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612793876129b9565b9550955095509550955095506127f186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128d281612ac9565b6128dc8483612b86565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161293991906135f3565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b6000806000600654905060006509184e72a00090506129906509184e72a00060065461178c90919063ffffffff16565b8210156129ac576006546509184e72a0009350935050506129b5565b81819350935050505b9091565b60008060008060008060008060006129d68a600d54600e54612bc0565b92509250925060006129e6612713565b905060008060006129f98e878787612c56565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a6383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222e565b905092915050565b6000808284612a7a9190613729565b905083811015612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab690613513565b60405180910390fd5b8091505092915050565b6000612ad3612713565b90506000612aea828461171190919063ffffffff16565b9050612b3e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b9b82600654612a2190919063ffffffff16565b600681905550612bb681600754612a6b90919063ffffffff16565b6007819055505050565b600080600080612bec6064612bde888a61171190919063ffffffff16565b61178c90919063ffffffff16565b90506000612c166064612c08888b61171190919063ffffffff16565b61178c90919063ffffffff16565b90506000612c3f82612c31858c612a2190919063ffffffff16565b612a2190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c6f858961171190919063ffffffff16565b90506000612c86868961171190919063ffffffff16565b90506000612c9d878961171190919063ffffffff16565b90506000612cc682612cb88587612a2190919063ffffffff16565b612a2190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612cf2612ced846136a8565b613683565b90508083825260208201905082856020860282011115612d1557612d14613a4e565b5b60005b85811015612d455781612d2b8882612d4f565b845260208401935060208301925050600181019050612d18565b5050509392505050565b600081359050612d5e81613e4e565b92915050565b600081519050612d7381613e4e565b92915050565b60008083601f840112612d8f57612d8e613a49565b5b8235905067ffffffffffffffff811115612dac57612dab613a44565b5b602083019150836020820283011115612dc857612dc7613a4e565b5b9250929050565b600082601f830112612de457612de3613a49565b5b8135612df4848260208601612cdf565b91505092915050565b600081359050612e0c81613e65565b92915050565b600081359050612e2181613e7c565b92915050565b600060208284031215612e3d57612e3c613a58565b5b6000612e4b84828501612d4f565b91505092915050565b600060208284031215612e6a57612e69613a58565b5b6000612e7884828501612d64565b91505092915050565b60008060408385031215612e9857612e97613a58565b5b6000612ea685828601612d4f565b9250506020612eb785828601612d4f565b9150509250929050565b600080600060608486031215612eda57612ed9613a58565b5b6000612ee886828701612d4f565b9350506020612ef986828701612d4f565b9250506040612f0a86828701612e12565b9150509250925092565b60008060408385031215612f2b57612f2a613a58565b5b6000612f3985828601612d4f565b9250506020612f4a85828601612e12565b9150509250929050565b600080600060408486031215612f6d57612f6c613a58565b5b600084013567ffffffffffffffff811115612f8b57612f8a613a53565b5b612f9786828701612d79565b93509350506020612faa86828701612dfd565b9150509250925092565b600060208284031215612fca57612fc9613a58565b5b600082013567ffffffffffffffff811115612fe857612fe7613a53565b5b612ff484828501612dcf565b91505092915050565b60006020828403121561301357613012613a58565b5b600061302184828501612dfd565b91505092915050565b6000602082840312156130405761303f613a58565b5b600061304e84828501612e12565b91505092915050565b6000806000806080858703121561307157613070613a58565b5b600061307f87828801612e12565b945050602061309087828801612e12565b93505060406130a187828801612e12565b92505060606130b287828801612e12565b91505092959194509250565b60006130ca83836130d6565b60208301905092915050565b6130df8161383e565b82525050565b6130ee8161383e565b82525050565b60006130ff826136e4565b6131098185613707565b9350613114836136d4565b8060005b8381101561314557815161312c88826130be565b9750613137836136fa565b925050600181019050613118565b5085935050505092915050565b61315b81613850565b82525050565b61316a81613893565b82525050565b613179816138a5565b82525050565b600061318a826136ef565b6131948185613718565b93506131a48185602086016138db565b6131ad81613a5d565b840191505092915050565b60006131c5602383613718565b91506131d082613a6e565b604082019050919050565b60006131e8603f83613718565b91506131f382613abd565b604082019050919050565b600061320b602a83613718565b915061321682613b0c565b604082019050919050565b600061322e601c83613718565b915061323982613b5b565b602082019050919050565b6000613251602683613718565b915061325c82613b84565b604082019050919050565b6000613274602283613718565b915061327f82613bd3565b604082019050919050565b6000613297602383613718565b91506132a282613c22565b604082019050919050565b60006132ba601b83613718565b91506132c582613c71565b602082019050919050565b60006132dd602183613718565b91506132e882613c9a565b604082019050919050565b6000613300602083613718565b915061330b82613ce9565b602082019050919050565b6000613323602983613718565b915061332e82613d12565b604082019050919050565b6000613346602583613718565b915061335182613d61565b604082019050919050565b6000613369602383613718565b915061337482613db0565b604082019050919050565b600061338c602483613718565b915061339782613dff565b604082019050919050565b6133ab8161387c565b82525050565b6133ba81613886565b82525050565b60006020820190506133d560008301846130e5565b92915050565b60006020820190506133f06000830184613152565b92915050565b600060208201905061340b6000830184613161565b92915050565b6000602082019050818103600083015261342b818461317f565b905092915050565b6000602082019050818103600083015261344c816131b8565b9050919050565b6000602082019050818103600083015261346c816131db565b9050919050565b6000602082019050818103600083015261348c816131fe565b9050919050565b600060208201905081810360008301526134ac81613221565b9050919050565b600060208201905081810360008301526134cc81613244565b9050919050565b600060208201905081810360008301526134ec81613267565b9050919050565b6000602082019050818103600083015261350c8161328a565b9050919050565b6000602082019050818103600083015261352c816132ad565b9050919050565b6000602082019050818103600083015261354c816132d0565b9050919050565b6000602082019050818103600083015261356c816132f3565b9050919050565b6000602082019050818103600083015261358c81613316565b9050919050565b600060208201905081810360008301526135ac81613339565b9050919050565b600060208201905081810360008301526135cc8161335c565b9050919050565b600060208201905081810360008301526135ec8161337f565b9050919050565b600060208201905061360860008301846133a2565b92915050565b600060a08201905061362360008301886133a2565b6136306020830187613170565b818103604083015261364281866130f4565b905061365160608301856130e5565b61365e60808301846133a2565b9695505050505050565b600060208201905061367d60008301846133b1565b92915050565b600061368d61369e565b9050613699828261390e565b919050565b6000604051905090565b600067ffffffffffffffff8211156136c3576136c2613a15565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006137348261387c565b915061373f8361387c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561377457613773613988565b5b828201905092915050565b600061378a8261387c565b91506137958361387c565b9250826137a5576137a46139b7565b5b828204905092915050565b60006137bb8261387c565b91506137c68361387c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137ff576137fe613988565b5b828202905092915050565b60006138158261387c565b91506138208361387c565b92508282101561383357613832613988565b5b828203905092915050565b60006138498261385c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061389e826138b7565b9050919050565b60006138b08261387c565b9050919050565b60006138c2826138c9565b9050919050565b60006138d48261385c565b9050919050565b60005b838110156138f95780820151818401526020810190506138de565b83811115613908576000848401525b50505050565b61391782613a5d565b810181811067ffffffffffffffff8211171561393657613935613a15565b5b80604052505050565b600061394a8261387c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561397d5761397c613988565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613e578161383e565b8114613e6257600080fd5b50565b613e6e81613850565b8114613e7957600080fd5b50565b613e858161387c565b8114613e9057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8609b32eecbd3ef25d33e6e39331516060e5be175bded78fb9c7643a668ca3764736f6c63430008070033