diff --git a/OfficeConverter/App.config b/OfficeConverter/App.config
deleted file mode 100644
index 5f986e8..0000000
--- a/OfficeConverter/App.config
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OfficeConverter/App.xaml b/OfficeConverter/App.xaml
deleted file mode 100644
index 3320980..0000000
--- a/OfficeConverter/App.xaml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/OfficeConverter/App.xaml.cs b/OfficeConverter/App.xaml.cs
deleted file mode 100644
index 255f980..0000000
--- a/OfficeConverter/App.xaml.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows;
-
-namespace OfficeConverter
-{
- ///
- /// Interaktionslogik für "App.xaml"
- ///
- public partial class App : Application
- {
- }
-}
diff --git a/OfficeConverter/FodyWeavers.xml b/OfficeConverter/FodyWeavers.xml
deleted file mode 100644
index 5029e70..0000000
--- a/OfficeConverter/FodyWeavers.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/MainWindow.xaml b/OfficeConverter/MainWindow.xaml
deleted file mode 100644
index e932bd3..0000000
--- a/OfficeConverter/MainWindow.xaml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OfficeConverter/MainWindow.xaml.cs b/OfficeConverter/MainWindow.xaml.cs
deleted file mode 100644
index 7604a94..0000000
--- a/OfficeConverter/MainWindow.xaml.cs
+++ /dev/null
@@ -1,710 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.IO;
-using System.Runtime.InteropServices;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-using Excel = Microsoft.Office.Interop.Excel;
-using Forms = System.Windows.Forms;
-using PowerPoint = Microsoft.Office.Interop.PowerPoint;
-using Word = Microsoft.Office.Interop.Word;
-
-namespace OfficeConverter
-{
- ///
- /// Interaktionslogik für MainWindow.xaml
- ///
- public partial class MainWindow : Window
- {
- //Definiere Background worker für die Konvertierung
- private BackgroundWorker backgroundWorker;
- private CancellationTokenSource cancellationTokenSource;
-
- //Definiter listen für die Anzeige im GUI
- List combinedFiles = new List();
- List convertedFiles = new List();
-
- //Globalvariables
- bool doSubfolders = false;
- bool doReplace = false;
- bool doWord = false;
- bool doExcel = false;
- bool doPPoint = false;
- string errorFolderEmpty = "";
-
- public MainWindow()
- {
- InitializeComponent();
- setLangEN();
- chkWord.IsChecked = true;
- chkExcel.IsChecked = true;
- chkPowerpoint.IsChecked = true;
- cmbLang.Items.Add("EN");
- cmbLang.Items.Add("DE");
- cmbLang.SelectedIndex = 0;
- lstDestFiles.ItemsSource = convertedFiles;
-
- backgroundWorker = new BackgroundWorker();
- backgroundWorker.WorkerReportsProgress = true;
- backgroundWorker.DoWork += BackgroundWorker_DoWork;
- backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
- backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted;
- lblState.Content = "Ready";
- cancellationTokenSource = new CancellationTokenSource();
- }
-
-
- //Konvertier-Button
- private void btnConvert_Click(object sender, RoutedEventArgs e)
- {
- string folderPath = txtSourceFolder.Text;
- if (cmbLang.SelectedIndex == 0)
- {
- lblState.Content = "Conversion in progress";
- }
- if (cmbLang.SelectedIndex == 1)
- {
- lblState.Content = "Konvertierung läuft";
- }
-
- doSubfolders = (bool)chkSubfolders.IsChecked;
- doReplace = (bool)chkReplace.IsChecked;
- doWord = (bool)chkWord.IsChecked;
- doExcel = (bool)chkExcel.IsChecked;
- doPPoint = (bool)chkPowerpoint.IsChecked;
-
- // Check if the background worker is not already running
- if (!backgroundWorker.IsBusy)
- {
- // Start the existing background worker
- backgroundWorker.RunWorkerAsync(folderPath);
- }
- else
- {
- // The worker is already busy, handle accordingly
- System.Windows.MessageBox.Show("Conversion is already in progress. Please wait for the current operation to finish.");
- }
- }
-
- //Background Worker
- private async void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
- {
- // Clear the list of converted files at the beginning of each conversion
- convertedFiles.Clear();
- string folderPath = e.Argument as string;
-
- // Use Dispatcher.Invoke to access UI elements from the UI thread
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- // Check if txtDestFolder is empty and doReplace is false
- if (string.IsNullOrWhiteSpace(txtDestFolder.Text) && !doReplace)
- {
- // Show a warning message in a MessageBox
- System.Windows.MessageBox.Show(errorFolderEmpty, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
-
- // Cancel the task
- e.Cancel = true;
- cancellationTokenSource.Cancel();
-
- return;
- }
-
- // Disable buttons during conversion
- UpdateButtonStates(false);
-
- // Initialize the CancellationTokenSource
- cancellationTokenSource = new CancellationTokenSource();
- });
-
- try
- {
- // Pass the cancellation token to SearchAndConvertDocs
- await SearchAndConvertDocs(folderPath, cancellationTokenSource.Token);
- }
- catch (OperationCanceledException)
- {
- // Handle cancellation if needed
- }
- finally
- {
- // Use Dispatcher.Invoke to update UI elements from the UI thread
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- // Clear the UI-bound collection
- combinedFiles.Clear();
- // Add the contents of the combinedFiles list to the UI-bound collection
- combinedFiles.ForEach(file => lstSourceFiles.Items.Add(file));
- // Enable buttons after conversion completion
- UpdateButtonStates(true);
- });
- }
- }
- private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- // Update the UI with the progress value
- //progressBar.Value = e.ProgressPercentage;
- }
- private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- // Perform any additional tasks after the background work is completed
- // Enable buttons after conversion completion
-
- }
-
- private async Task SearchAndConvertDocs(string folderPath, CancellationToken cancellationToken)
- {
- string[] docFiles = null;
- string[] xlsFiles = null;
- string[] pptFiles = null;
-
- if (doWord)
- {
- docFiles = Directory.GetFiles(folderPath, "*.doc");
- }
- if (doExcel)
- {
- xlsFiles = Directory.GetFiles(folderPath, "*.xls");
- }
- if (doPPoint)
- {
- pptFiles = Directory.GetFiles(folderPath, "*.ppt");
- }
-
- // Check for null before adding to combinedFiles
- if (docFiles != null)
- {
- combinedFiles.AddRange(docFiles);
- }
- if (xlsFiles != null)
- {
- combinedFiles.AddRange(xlsFiles);
- }
- if (pptFiles != null)
- {
- combinedFiles.AddRange(pptFiles);
- }
-
- Console.WriteLine($"Processing files in folder: {folderPath}");
-
- /// Create a copy of the collection to avoid modification during iteration
- List snapshot = new List(combinedFiles);
-
- // Check for cancellation after creating the snapshot
- cancellationToken.ThrowIfCancellationRequested();
-
-
- try
- {
- // Iterate over currentFolderFiles and start the conversion asynchronously
- foreach (var docFile in snapshot)
- {
- // Check for cancellation before each iteration
- cancellationToken.ThrowIfCancellationRequested();
-
- Console.WriteLine($"Converting file: {docFile}");
-
- try
- {
- await ConvertFileToNewFormatAsync(docFile);
-
- Console.WriteLine($"DisplayCombinedFiles called");
- DisplayCombinedFiles();
- }
- catch (Exception ex)
- {
- // Handle exception (log, display error message, etc.)
- Console.WriteLine($"Error converting {docFile}: {ex.Message}");
- }
-
- Console.WriteLine($"Task completed for file: {docFile}");
- }
-
- // Check for cancellation before displaying the completion message
- cancellationToken.ThrowIfCancellationRequested();
-
- // Clear the list of combined files if the operation was cancelled
- if (cancellationToken.IsCancellationRequested)
- {
- combinedFiles.Clear();
- }
- }
- catch (OperationCanceledException)
- {
- // Handle cancellation if needed
- }
-
- // Recursively process subfolders
- if (doSubfolders)
- {
- string[] subfolders = Directory.GetDirectories(folderPath);
- foreach (var subfolder in subfolders)
- {
- // Pass the cancellation token to the recursive call
- await SearchAndConvertDocs(subfolder, cancellationToken);
-
- // Check for cancellation after processing each subfolder
- if (cancellationToken.IsCancellationRequested)
- {
- // Stop processing if cancellation is requested
- break;
- }
- }
- }
-
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- lblState.Content = "Background work completed!";
- });
-
- DisplayCombinedFiles();
- }
- private async Task ConvertFileToNewFormatAsync(string filePath)
- {
- await Task.Run(() =>
- {
- try
- {
- // Determine the file type based on the extension
- string extension = System.IO.Path.GetExtension(filePath);
-
- switch (extension.ToLowerInvariant())
- {
- case ".doc":
- ConvertDocToDocx(filePath, doSubfolders, doReplace);
- break;
-
- case ".xls":
- ConvertXlsToXlsx(filePath, doSubfolders, doReplace);
- break;
-
- case ".ppt":
- ConvertPptToPptx(filePath, doSubfolders, doReplace);
- break;
-
- default:
- // Handle other file types or show an error message
- Console.WriteLine($"Unsupported file type: {filePath}");
- break;
- }
- }
- catch (Exception ex)
- {
- // Handle exceptions during conversion
- Console.WriteLine($"Error converting {filePath}: {ex.Message}");
- }
- });
-
- // Update UI on the main thread
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- combinedFiles.Remove(filePath);
- convertedFiles.Add(filePath);
-
- DisplayCombinedFiles();
- });
- }
- private void ConvertXlsToXlsx(string xlsFile, bool doSubfolders, bool doReplace)
- {
- Excel.Application excelApp = new Excel.Application();
- excelApp.DisplayAlerts = false;
-
- try
- {
- Excel.Workbook workbook = excelApp.Workbooks.Open(xlsFile);
-
- string targetFolderPath = "";
-
- // Use Dispatcher.Invoke to execute code on the UI thread
- Dispatcher.Invoke(() =>
- {
- targetFolderPath = GetTargetFolderPath(doReplace, doSubfolders, xlsFile);
- });
-
- // Ensure the target folder exists
- if (!Directory.Exists(targetFolderPath))
- {
- Directory.CreateDirectory(targetFolderPath);
- }
-
- // Construct the new path for the .xlsx file
- string newXlsxPath = Path.Combine(targetFolderPath, Path.ChangeExtension(Path.GetFileName(xlsFile), ".xlsx"));
- workbook.SaveAs(newXlsxPath, Excel.XlFileFormat.xlOpenXMLWorkbook);
- workbook.Close();
- }
- finally
- {
- // Quit Excel and release resources
- excelApp.Quit();
- Marshal.ReleaseComObject(excelApp);
-
- // Ensure Excel processes are terminated
- KillProcess("EXCEL");
- }
- }
- private void ConvertPptToPptx(string pptFile, bool doSubfolders, bool doReplace)
- {
- PowerPoint.Application pptApp = new PowerPoint.Application();
-
- try
- {
- //pptApp = new PowerPoint.Application();
- pptApp.DisplayAlerts = PowerPoint.PpAlertLevel.ppAlertsNone;
-
- PowerPoint.Presentation presentation = pptApp.Presentations.Open(pptFile);
-
- string targetFolderPath = "";
-
- // Use Dispatcher.Invoke to execute code on the UI thread
- Dispatcher.Invoke(() =>
- {
- targetFolderPath = GetTargetFolderPath(doReplace, doSubfolders, pptFile);
- });
-
- // Ensure the target folder exists
- if (!Directory.Exists(targetFolderPath))
- {
- Directory.CreateDirectory(targetFolderPath);
- }
-
- // Construct the new path for the .pptx file
- string newPptxPath = Path.Combine(targetFolderPath, Path.ChangeExtension(Path.GetFileName(pptFile), ".pptx"));
- presentation.SaveAs(newPptxPath, PowerPoint.PpSaveAsFileType.ppSaveAsOpenXMLPresentation);
-
- // Close the presentation without saving changes
- presentation.Close();
-
- // Ensure PowerPoint is completely closed
- Marshal.ReleaseComObject(presentation);
- presentation = null;
-
- }
- finally
- {
- // Quit PowerPoint
- if (pptApp != null)
- {
- pptApp.Quit();
- Marshal.ReleaseComObject(pptApp);
- pptApp = null;
- }
- }
- }
-
-
-
- private void ConvertDocToDocx(string docFile, bool doSubfolders, bool doReplace)
- {
- Word.Application wordApp = new Word.Application();
- wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
-
- try
- {
- Word.Document doc = wordApp.Documents.Open(docFile);
-
- string targetFolderPath = "";
-
- // Use Dispatcher.Invoke to execute code on the UI thread
- Dispatcher.Invoke(() =>
- {
- targetFolderPath = GetTargetFolderPath(doReplace, doSubfolders, docFile);
- });
-
- // Ensure the target folder exists
- if (!Directory.Exists(targetFolderPath))
- {
- Directory.CreateDirectory(targetFolderPath);
- }
-
- // Construct the new path for the .docx file
- string newDocxPath = Path.Combine(targetFolderPath, Path.ChangeExtension(Path.GetFileName(docFile), ".docx"));
- doc.SaveAs2(newDocxPath, Word.WdSaveFormat.wdFormatXMLDocument);
- doc.Close();
- }
- finally
- {
- // Quit Word and release resources
- wordApp.Quit();
- Marshal.ReleaseComObject(wordApp);
-
- // Ensure Word processes are terminated
- KillProcess("WINWORD");
- }
- }
- private void KillProcess(string processName)
- {
- try
- {
- foreach (var process in Process.GetProcessesByName(processName))
- {
- process.Kill();
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine($"Error terminating {processName} processes: {ex.Message}");
- }
- }
-
- // Helper method to determine the target folder path
- private string GetTargetFolderPath(bool doReplace, bool doSubfolders, string docFilePath)
- {
- string targetFolder;
-
- if (doReplace)
- {
- // If doReplace is true, use the original folder of the document file
- targetFolder = Path.GetDirectoryName(docFilePath);
- }
- else
- {
- // If doReplace is false, use the folder defined in txtDestFolder
- targetFolder = txtDestFolder.Text.TrimEnd('\\'); // Ensure no trailing backslash
-
- // If doSubfolders is true, adjust the target folder based on relative path
- if (doSubfolders)
- {
- string originalFolderPath = txtSourceFolder.Text.TrimEnd('\\'); // Ensure no trailing backslash
- string relativePath = GetRelativePath(docFilePath, originalFolderPath);
-
- // Combine the target folder with the modified relative path
- targetFolder = Path.Combine(targetFolder, relativePath);
-
- // Ensure the target folder does not include the source folder name
- string sourceFolderName = Path.GetFileName(originalFolderPath);
-
- // Remove the source folder name from the target path
- targetFolder = targetFolder.Replace(sourceFolderName, "").TrimEnd('\\');
-
- // Replace the original folder path with the destination folder path
- targetFolder = targetFolder.Replace(originalFolderPath, txtDestFolder.Text.TrimEnd('\\'));
- }
- }
-
- return targetFolder;
- }
-
- private string GetRelativePath(string fullPath, string basePath)
- {
- Uri baseUri = new Uri(basePath + (basePath.EndsWith("\\") ? "" : "\\"));
- Uri fullUri = new Uri(fullPath);
-
- Uri relativeUri = baseUri.MakeRelativeUri(fullUri);
- string relativePath = Uri.UnescapeDataString(relativeUri.ToString());
-
- // Replace forward slashes with backslashes
- relativePath = relativePath.Replace('/', '\\');
-
- // Remove the filename from the relative path
- relativePath = Path.GetDirectoryName(relativePath);
-
- return relativePath;
- }
-
- private void setLangEN()
- {
- grpFolders.Header = "Folders";
- lblSouceFolder.Content = "Source Folder";
- lblDestFolder.Content = "Destination Folder";
- btnDestFolder.Content = "Browse";
- btnSourceFolder.Content = "Browse";
- chkReplace.Content = "Replace files (Preserve folder structure in subfolders)";
- chkSubfolders.Content = "incl. Subfolders";
- grpFiles.Header = "Files";
- grpSourceFiles.Header = "Queue";
- grpDestFiles.Header = "Completed";
- btnConvert.Content = "Convert";
- btnDelete.Content = "Delete Files";
- btnExport.Content = "Export list";
- errorFolderEmpty = "Destination folder is required when 'Replace files' is not selected.";
- }
- private void setLangDE()
- {
- grpFolders.Header = "Verzeichnisse";
- lblSouceFolder.Content = "Quellordner";
- lblDestFolder.Content = "Zielordner";
- btnDestFolder.Content = "Suchen";
- btnSourceFolder.Content = "Suchen";
- chkReplace.Content = "Ersetze Dateien (erhalte die Ordnerstruktur für Unterordner)";
- chkSubfolders.Content = "Unterordner mit einbeziehen";
- grpFiles.Header = "Dateien";
- grpSourceFiles.Header = "Warteschlange";
- grpDestFiles.Header = "Fertiggestellt";
- btnConvert.Content = "Konvertieren";
- btnDelete.Content = "Dateien löschen";
- btnExport.Content = "Liste exportieren";
- errorFolderEmpty = "Zielordner darf nicht leer sein, wenn 'Ersetze Dateien' nicht gewählt wurde.";
- }
- private void btnDestFolder_Click(object sender, RoutedEventArgs e)
- {
- using (var folderBrowserDialog = new Forms.FolderBrowserDialog())
- {
- Forms.DialogResult result = folderBrowserDialog.ShowDialog();
-
- if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
- {
- txtDestFolder.Text = folderBrowserDialog.SelectedPath;
- }
- }
- }
-
- private void DisplayCombinedFiles()
- {
- if (combinedFiles != null)
- {
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- // Assuming lstSourceFiles and lstDestFiles are the names of your WPF ListBox controls
- lstSourceFiles.ItemsSource = combinedFiles;
- lstSourceFiles.Items.Refresh();
- lstDestFiles.Items.Refresh(); // Refresh the ListBox to reflect changes
- });
- }
- }
- private void btnSourceFolder_Click(object sender, RoutedEventArgs e)
- {
- using (var folderBrowserDialog = new Forms.FolderBrowserDialog())
- {
- Forms.DialogResult result = folderBrowserDialog.ShowDialog();
-
- if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
- {
- txtSourceFolder.Text = folderBrowserDialog.SelectedPath;
- if (txtDestFolder.Text == "")
- {
- txtDestFolder.Text = folderBrowserDialog.SelectedPath;
- }
- }
- }
- }
-
- private void cmbLang_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- switch (cmbLang.SelectedIndex)
- {
- case 0:
- setLangEN();
- break;
- case 1:
- setLangDE();
- break;
- }
- }
- private void chkReplace_Clicked(object sender, RoutedEventArgs e)
- {
- if (chkReplace.IsChecked == true)
- {
- lblDestFolder.IsEnabled = false;
- txtDestFolder.IsEnabled = false;
- btnDestFolder.IsEnabled = false;
- doReplace = true;
-
- }
- else
- {
- lblDestFolder.IsEnabled = true;
- txtDestFolder.IsEnabled = true;
- btnDestFolder.IsEnabled = true;
- doReplace= false;
- }
- }
- private void chkSubfolders_Clicked(object sender, RoutedEventArgs e)
- {
- if (chkSubfolders.IsChecked == true)
- {
- doSubfolders = true;
- }
- else { doSubfolders = false; }
-
- }
- private void ExportConvertedFilesToFile(string filePath)
- {
- try
- {
- // Write the contents of the convertedFiles list to a text file
- File.WriteAllLines(filePath, convertedFiles);
-
- System.Windows.MessageBox.Show($"Export successful. File saved at: {filePath}");
- }
- catch (Exception ex)
- {
- System.Windows.MessageBox.Show($"Error exporting converted files: {ex.Message}");
- }
- }
-
- private void btnExport_Click(object sender, RoutedEventArgs e)
- {
- // Use a SaveFileDialog to let the user choose the export file location
- var saveFileDialog = new Microsoft.Win32.SaveFileDialog
- {
- Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*",
- DefaultExt = "txt"
- };
-
- if (saveFileDialog.ShowDialog() == true)
- {
- // Call the ExportConvertedFilesToFile method with the selected file path
- ExportConvertedFilesToFile(saveFileDialog.FileName);
- }
- }
-
- private async void DeleteConvertedFilesAsync()
- {
- // Show a confirmation dialog
- MessageBoxResult result = System.Windows.MessageBox.Show(
- "Are you sure you want to delete the converted files?",
- "Confirmation",
- MessageBoxButton.YesNo,
- MessageBoxImage.Question);
-
- if (result == MessageBoxResult.Yes)
- {
- await Task.Run(() =>
- {
- try
- {
- foreach (var filePath in convertedFiles)
- {
- if (File.Exists(filePath))
- {
- File.Delete(filePath);
- }
- }
-
- System.Windows.MessageBox.Show("Deletion successful.");
-
- // Clear the convertedFiles list
- convertedFiles.Clear();
-
- // Refresh the ListBox to reflect changes
- DisplayCombinedFiles();
- }
- catch (Exception ex)
- {
- System.Windows.MessageBox.Show($"Error deleting converted files: {ex.Message}");
- }
- });
- }
- }
-
-
- // Button click event
- private void btnDelete_Click(object sender, RoutedEventArgs e)
- {
- // Call the DeleteConvertedFilesAsync method
- DeleteConvertedFilesAsync();
- }
- private void UpdateButtonStates(bool isEnabled)
- {
- System.Windows.Application.Current.Dispatcher.Invoke(() =>
- {
- btnConvert.IsEnabled = isEnabled;
- btnExport.IsEnabled = isEnabled;
- btnDelete.IsEnabled = isEnabled;
- });
- }
- }
-}
diff --git a/OfficeConverter/OfficeConverter.csproj b/OfficeConverter/OfficeConverter.csproj
deleted file mode 100644
index 7bbff22..0000000
--- a/OfficeConverter/OfficeConverter.csproj
+++ /dev/null
@@ -1,451 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {6E77662E-82C3-4913-8964-5A452B229F78}
- WinExe
- OfficeConverter
- OfficeConverter
- v4.8.1
- 512
- {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- 4
- true
- true
-
- false
-
-
- D:\OneDrive - wyniger\Design & Development\Code\Publish\DocConvert\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 5
- 1.0.0.%2a
- false
- true
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
- 43955F90264C43EAA4330714374C483BFDF3B6C5
-
-
- OfficeConverter_TemporaryKey.pfx
-
-
- true
-
-
- true
-
-
- true
- bin\x64\Debug\
- DEBUG;TRACE
- full
- x64
- 7.3
- prompt
- true
-
-
- bin\x64\Release\
- TRACE
- true
- pdbonly
- x64
- 7.3
- prompt
- true
-
-
- icons8-microsoft-office-480.ico
-
-
- bin\Test\
- TRACE
- true
- pdbonly
- AnyCPU
- 7.3
- prompt
- true
-
-
- bin\x64\Test\
- TRACE
- true
- pdbonly
- x64
- 7.3
- prompt
- true
-
-
-
- ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll
- True
- True
-
-
- True
-
-
- ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll
- True
- True
-
-
- ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
-
-
- True
-
-
- ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll
- True
- True
-
-
- True
-
-
- ..\packages\System.Diagnostics.DiagnosticSource.8.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll
-
-
- ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll
- True
- True
-
-
- ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll
- True
- True
-
-
- ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll
- True
- True
-
-
- ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
- True
- True
-
-
- True
-
-
- ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll
- True
- True
-
-
- ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll
- True
- True
-
-
- ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll
- True
- True
-
-
- ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll
- True
- True
-
-
- ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll
- True
- True
-
-
- ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
-
-
- ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll
- True
- True
-
-
- ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll
- True
- True
-
-
- True
-
-
- ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
-
-
- ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll
- True
- True
-
-
- ..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll
- True
- True
-
-
- ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
-
-
- ..\packages\System.Runtime.Extensions.4.3.1\lib\net462\System.Runtime.Extensions.dll
- True
- True
-
-
- ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll
- True
- True
-
-
- ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
- True
- True
-
-
- ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll
- True
- True
-
-
- ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll
- True
- True
-
-
- ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll
- True
- True
-
-
- ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll
- True
- True
-
-
- ..\packages\System.Text.RegularExpressions.4.3.1\lib\net463\System.Text.RegularExpressions.dll
- True
- True
-
-
- ..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\System.Windows.Controls.Input.Toolkit.dll
-
-
- ..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\System.Windows.Controls.Layout.Toolkit.dll
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- 4.0
- True
-
-
- ..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll
- True
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- ..\packages\Infragistics.Themes.MetroDark.Wpf.1.0.0\lib\net40\WPFToolkit.dll
-
-
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
- App.xaml
- Code
-
-
- MainWindow.xaml
- Code
- PreserveNewest
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
- MSBuild:Compile
- Designer
-
-
-
-
- Code
-
-
- True
- True
- Resources.resx
-
-
- True
- Settings.settings
- True
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
-
-
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
-
-
-
-
-
-
-
-
- {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}
- 2
- 8
- 0
- primary
- False
- True
-
-
- {00020813-0000-0000-C000-000000000046}
- 1
- 9
- 0
- primary
- False
- True
-
-
- {91493440-5A91-11CF-8700-00AA0060263B}
- 2
- 12
- 0
- primary
- False
- True
-
-
- {00020905-0000-0000-C000-000000000046}
- 8
- 7
- 0
- primary
- False
- True
-
-
- {0002E157-0000-0000-C000-000000000046}
- 5
- 3
- 0
- primary
- False
- True
-
-
-
-
-
-
-
- False
- Microsoft .NET Framework 4.8.1 %28x86 und x64%29
- true
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
-
-
-
-
-
-
-
- Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Properties/AssemblyInfo.cs b/OfficeConverter/Properties/AssemblyInfo.cs
deleted file mode 100644
index 34e552c..0000000
--- a/OfficeConverter/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Windows;
-
-// Allgemeine Informationen über eine Assembly werden über die folgenden
-// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
-// die einer Assembly zugeordnet sind.
-[assembly: AssemblyTitle("OfficeConverter")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OfficeConverter")]
-[assembly: AssemblyCopyright("Copyright © 2024")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
-// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
-// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
-[assembly: ComVisible(false)]
-
-//Um mit dem Erstellen lokalisierbarer Anwendungen zu beginnen, legen Sie
-//ImCodeVerwendeteKultur in der .csproj-Datei
-//in einer fest. Wenn Sie in den Quelldateien beispielsweise Deutsch
-//(Deutschland) verwenden, legen Sie auf \"de-DE\" fest. Heben Sie dann die Auskommentierung
-//des nachstehenden NeutralResourceLanguage-Attributs auf. Aktualisieren Sie "en-US" in der nachstehenden Zeile,
-//sodass es mit der UICulture-Einstellung in der Projektdatei übereinstimmt.
-
-//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
-[assembly: ThemeInfo(
- ResourceDictionaryLocation.None, //Speicherort der designspezifischen Ressourcenwörterbücher
- //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
- // oder in den Anwendungsressourcen-Wörterbüchern nicht gefunden werden kann.)
- ResourceDictionaryLocation.SourceAssembly //Speicherort des generischen Ressourcenwörterbuchs
- //(wird verwendet, wenn eine Ressource auf der Seite nicht gefunden wird,
- // designspezifischen Ressourcenwörterbuch nicht gefunden werden kann.)
-)]
-
-
-// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
-//
-// Hauptversion
-// Nebenversion
-// Buildnummer
-// Revision
-//
-// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
-// indem Sie "*" wie unten gezeigt eingeben:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OfficeConverter/Properties/Resources.Designer.cs b/OfficeConverter/Properties/Resources.Designer.cs
deleted file mode 100644
index 3955383..0000000
--- a/OfficeConverter/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// Dieser Code wurde von einem Tool generiert.
-// Laufzeitversion:4.0.30319.42000
-//
-// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-// der Code erneut generiert wird.
-//
-//------------------------------------------------------------------------------
-
-namespace OfficeConverter.Properties {
- using System;
-
-
- ///
- /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
- ///
- // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
- // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
- // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
- // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- ///
- /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OfficeConverter.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
- /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/OfficeConverter/Properties/Resources.resx b/OfficeConverter/Properties/Resources.resx
deleted file mode 100644
index af7dbeb..0000000
--- a/OfficeConverter/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Properties/Settings.Designer.cs b/OfficeConverter/Properties/Settings.Designer.cs
deleted file mode 100644
index 0c20323..0000000
--- a/OfficeConverter/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// Dieser Code wurde von einem Tool generiert.
-// Laufzeitversion:4.0.30319.42000
-//
-// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-// der Code erneut generiert wird.
-//
-//------------------------------------------------------------------------------
-
-namespace OfficeConverter.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/OfficeConverter/Properties/Settings.settings b/OfficeConverter/Properties/Settings.settings
deleted file mode 100644
index 033d7a5..0000000
--- a/OfficeConverter/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/HowToApplyTheme.txt b/OfficeConverter/Themes/MetroDark/HowToApplyTheme.txt
deleted file mode 100644
index b8e9984..0000000
--- a/OfficeConverter/Themes/MetroDark/HowToApplyTheme.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-To apply the Infragistics WPF MetroDark theme to your WPF application, paste the following code into your App.xaml
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Core.Implicit.xaml b/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Core.Implicit.xaml
deleted file mode 100644
index a049843..0000000
--- a/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Core.Implicit.xaml
+++ /dev/null
@@ -1,964 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Toolkit.Implicit.xaml b/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Toolkit.Implicit.xaml
deleted file mode 100644
index 378f869..0000000
--- a/OfficeConverter/Themes/MetroDark/MetroDark.MSControls.Toolkit.Implicit.xaml
+++ /dev/null
@@ -1,934 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/Styles.Shared.xaml b/OfficeConverter/Themes/MetroDark/Styles.Shared.xaml
deleted file mode 100644
index 76d150d..0000000
--- a/OfficeConverter/Themes/MetroDark/Styles.Shared.xaml
+++ /dev/null
@@ -1,769 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/Styles.WPF.xaml b/OfficeConverter/Themes/MetroDark/Styles.WPF.xaml
deleted file mode 100644
index d473b00..0000000
--- a/OfficeConverter/Themes/MetroDark/Styles.WPF.xaml
+++ /dev/null
@@ -1,827 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Visible
-
-
-
-
-
-
-
-
-
-
- Visible
-
-
-
-
-
-
-
-
-
-
-
-
-
- Visible
-
-
-
-
-
-
-
-
-
-
- Visible
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/Themes/MetroDark/Theme.Colors.xaml b/OfficeConverter/Themes/MetroDark/Theme.Colors.xaml
deleted file mode 100644
index a0840a9..0000000
--- a/OfficeConverter/Themes/MetroDark/Theme.Colors.xaml
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- #FF282828
- #FFFFFFFF
- #FFBABABA
- #FF858585
- #FF747474
- #FF565656
- #FF454545
- #FF333333
- #FF292929
- #FF181818
-
-
- #E5FFFFFF
-
- #BFFFFFFF
-
- #99FFFFFF
-
- #72FFFFFF
-
- #4CFFFFFF
-
- #26FFFFFF
-
- #00FFFFFF
-
-
-
- #E5000000
-
- #BF000000
-
- #99000000
-
- #72000000
-
- #4C000000
-
- #26000000
-
- #00000000
-
- #66E2E2E2
-
-
- #FF0086AF
- #FF00AADE
- #FF80D5EF
- #FFB2E1EF
- #2600AADE
-
-
- #FFD0284C
- #FFF55E7F
- #FFFFCAD5
-
-
- #FF006481
- #FF8A9B0F
- #FF3E4700
- #FFF14D0F
- #FF8D2E00
- #FF81106B
- #FF410135
- #FFFCA910
- #FF8D4902
- #FF037A54
- #FF003F2A
- #FF154D85
- #FF02284D
- #FF543511
- #FF211303
- #FF89806D
- #FF393225
- #FF58458B
- #FF211347
- #7FB9B9B9
- #33565656
- #7F3F3F3F
- #FF686868
- #8000AADE
- #CC3F3F3F
-
-
-
- #FF0092BE
- #FF00AADE
- #FF2BB9E5
- #FF55C8EB
- #FF80D7F2
-
-
-
\ No newline at end of file
diff --git a/OfficeConverter/icons8-microsoft-office-480.ico b/OfficeConverter/icons8-microsoft-office-480.ico
deleted file mode 100644
index 02751a0..0000000
Binary files a/OfficeConverter/icons8-microsoft-office-480.ico and /dev/null differ
diff --git a/OfficeConverter/packages.config b/OfficeConverter/packages.config
deleted file mode 100644
index babaf52..0000000
--- a/OfficeConverter/packages.config
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file