diff --git a/docs/diagrams.xml b/docs/diagrams.xml
index 48cff1b..10c4dc6 100644
--- a/docs/diagrams.xml
+++ b/docs/diagrams.xml
@@ -1 +1 @@
-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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/img/algorithms.png b/img/algorithms.png
index f83c1e6..f5e0887 100644
Binary files a/img/algorithms.png and b/img/algorithms.png differ