Given the following C++ program and its build error message, fix the code without affecting its functionality. First explain the reason, then output the whole fixed code. If a function is missing, fix it by including the related libraries. Code: ``` #include "tinyxml2/tinyxml2.h" #include #include #include #if defined( _MSC_VER ) || defined (WIN32) #include #define WIN32_LEAN_AND_MEAN #include _CrtMemState startMemState; _CrtMemState endMemState; #else #include #include #endif using namespace tinyxml2; using namespace std; // Entry point for LibFuzzer. extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { std::string data_string(reinterpret_cast(data), size); XMLDocument doc; doc.Parse( data_string.c_str() ); doc.SaveFile(); doc.Print(); return 0; } ``` Build error message: /src/xmltest.cpp:25:6: error: no matching member function for call to 'SaveFile' doc.SaveFile(); ~~~~^~~~~~~~ /src/tinyxml2/tinyxml2.h:1777:14: note: candidate function not viable: requires at least argument 'filename', but no arguments were provided XMLError SaveFile( const char* filename, bool compact = false ); ^ /src/tinyxml2/tinyxml2.h:1786:14: note: candidate function not viable: requires at least argument 'fp', but no arguments were provided XMLError SaveFile( FILE* fp, bool compact = false ); ^ 1 error generated. Fixed code: