diff --git a/.gitignore b/.gitignore index 5d563391a36816c739ef85a8af54689f0ece9608..931c1c361f7de7d26d3813d1ca17f0c5e382e9f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ .ipynb_checkpoints/nowo1_base-checkpoint.py __pycache__/nowo1_base.cpython-39.pyc +Readme_Template.ipynb +README_vers_1.md +.ipynb_checkpoints/Readme_Template-checkpoint.ipynb +.ipynb_checkpoints/README_vers_1-checkpoint.md +nowo1_log_base.py +Balance_Binary_doc.ipynb +Balance_Binary.ipynb diff --git a/Balance_Binary.ipynb b/Balance_Binary.ipynb index f5b6b87cf0e043d78f95b6b9629dc60ca50cc40e..bf1b3ba4caf9c3e20cffbfd17fd383910745e8bd 100644 --- a/Balance_Binary.ipynb +++ b/Balance_Binary.ipynb @@ -1,5 +1,31 @@ { "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "28ffafab-45ee-4719-917f-0cb2bacb4915", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "import markdown \n", + "import ipywidgets as widgets" + ] + }, { "cell_type": "markdown", "id": "valued-saskatchewan", @@ -24,32 +50,34 @@ "tags": [] }, "source": [ - "## Binäre Bilanz " + "### Binäres Bilanzsystem (Knoten)\n", + "###### Bilanzknoten besteht aus drei Größen. Zwei (binär) Angaben sind zur vollstädigen Beschreibung notwendig" ] }, { - "cell_type": "markdown", - "id": "genuine-country", + "cell_type": "code", + "execution_count": 4, + "id": "a1eec605-ec6c-4349-9baa-960c7e6030d3", "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "views": { "grid_default": { - "col": 0, - "height": 11, - "hidden": false, - "row": 2, - "width": 6 + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 } } } }, "tags": [] }, + "outputs": [], "source": [ - "### Kennzeichen einer binären Bilanz\n", - "\n", + "html_kennzeichen = markdown.markdown(r'''\n", "* Nur __extensive__ Größen lassen sich bilanzieren\n", " * Beispiele: \n", " * Masse m, Stoffmenge n, Teilchenzahl N \n", @@ -59,78 +87,221 @@ " * Enthalpie H \n", " * elektrische Ladung Q\n", "\n", - "\n", - "* eine binäre Bilanz summiert __zwei__ (binär) Größen zu einer Dritten\n", - " * Beispiele:\n", - " * $ m_{AB} = m_A + m_B $\n", - " * $ n_{AB} = n_A + n_B $\n", - " * $H_{AB} = H_A + H_B $\n", + "----\n", + "* eine binäre Bilanz summiert Größen zu einer dritten Größe oder zu 0\n", + " * Beispiele summieren von Größen zu einer dritten Größe:\n", + " * $ m_{C} = m_A + m_B $\n", + " * $ n_{C} = n_A + n_B $\n", + " * $ H_{C} = H_A + H_B $\n", + " * Beispiele summieren von Größen zu 0: \n", + " * $ 0 = m_A + m_B + m_{C}$\n", + " * $ 0 = n_A + n_B + n_{C}$\n", + " * $ 0 = H_A + H_B + H_{C}$\n", "\n", "\n", + "----\n", "* Gehaltsangaben erweitern die Ausdrucksweise\n", " * Beispiele\n", " * Verhältnisse \\ Beladungen z.B. $\\quad\\zeta_{A}=\\tfrac{m_A}{m_B}$\n", " * Anteile \\ Gehalt z.B. $\\quad\\xi_{A}=\\tfrac{m_A}{m_A + m_B}$\n", - " * Konzentration (bezug auf Volumen) z.B. $\\quad\\beta_{A}=\\tfrac{m_A}{V_A + V_B}$" + " * Konzentration (bezug auf Volumen) z.B. $\\quad\\beta_{A}=\\tfrac{m_A}{V_A + V_B}$\n", + " ''')\n", + "\n", + "#HTML(html) \n", + "kennzeichen = widgets.HTMLMath(html_kennzeichen)" ] }, { - "cell_type": "markdown", - "id": "76ca1106-5032-4a20-abaf-b2b439dbffe8", + "cell_type": "raw", + "id": "0a599e23-cc50-440a-bf4e-5a0e10378f1c", + "metadata": {}, + "source": [ + "html_test = '''\n", + "<hr>\n", + "<p><strong>Knoten_1: Solvat und Solvent -Eintritt-</strong></p>\n", + "<ul style = \"margin : 0; padding = 0\" >\n", + "<li style = \"margin : 0\" >C: Eintritt (Feed) eines Kristallisators, bestehend aus Solvat (Salz) und Solvent (Lösungsmittel). Der Eintritt wird hier als <strong>konstant</strong> angesehen</li>\n", + "<li style = \"margin : 0\" >A: Solvat gelöstes und / oder kristallines Solvat. Die Masse ist konstant, aber die Zusammensetzung zwischen kristallines und gelöstes Solvat kann sich ändern. Hängt von einer Temperaturänderung und / oder einer Mengenänderung des Solvents ab (Passieren der Löslichkeitsgrenze)</li>\n", + "<li>B: Solventmasse reines Lösungsmittel. Wird hier als <strong>konstant</strong> angesehen.</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_2: Solvat</strong></p>\n", + "<ul>\n", + "<li>C: = Knoten_1.A</li>\n", + "<li>A: Kristallines Solvat. Die Menge kann sich ändern. </li>\n", + "<li>B: gelöstestes Solvat. Die Menge kann sich ändern.</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_3: Solvat und Solvent auf der Löslichkeitskurve</strong></p>\n", + "<ul>\n", + "<li>C: Solvat- und Solventmasse geättigt (Punkt auf Löslichkeitskurve).</li>\n", + "<li>A: Solvent nach einer möglichen Massenänderung </li>\n", + "<li>B: = Knoten_2.B</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_4: Solvent -Austritt-</strong></p>\n", + "<ul>\n", + "<li>C: = Knoten_1.B</li>\n", + "<li>A: Veränderte Solventmasse </li>\n", + "<li>B: = Abgeführte Solventmasse (Dampf) </li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_5: Solvat und Solvent -Austritt-</strong></p>\n", + "<ul>\n", + "<li>C: Solvent und Solvat (gelöstes und kristallines)</li>\n", + "<li>A: = Knoten_3.C </li>\n", + "<li>B: = Knoten_2.A </li>\n", + "</ul>\n", + "'''\n", + "widgets.HTML(html_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a42bacd1-6a9b-411f-a242-c06f3c899832", "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "views": { "grid_default": { - "col": 3, - "height": 4, - "hidden": false, - "row": 13, - "width": 6 + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 } } } }, "tags": [] }, + "outputs": [], "source": [ - "### Bedingungen zur Berechnung einer binären Bilanz\n", - "\n", + "html_bedingungen = markdown.markdown(r'''\n", "* Zwei Größen müssen vorgeben werden\n", "* von den zwei Größen muss eine extensiv sein \n", - "* Volumenberechnung kann nur bei __gleichen Druck und Temperatur__ erfolgen\n" + "* Volumenberechnung kann nur bei __gleichen Druck und Temperatur__ erfolgen\n", + "''')\n", + "\n", + "#HTML(html) \n", + "bedingungen = widgets.HTMLMath(html_bedingungen)" ] }, { - "cell_type": "markdown", - "id": "cc5ef378-a52e-4ced-9050-a82292513eb0", + "cell_type": "code", + "execution_count": 7, + "id": "567374f7-84bd-4f61-afcf-39d21b3fa084", "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "views": { "grid_default": { - "col": 6, - "height": 11, + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + }, + "tags": [] + }, + "outputs": [], + "source": [ + "file = open(\"pics/Knotenmodell_Basis_Vers_1.svg\", \"rb\")\n", + "image_1 = file.read()\n", + "balance_image = widgets.Image(\n", + " value=image_1,\n", + " format='svg+xml',\n", + " height=300,\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a5792526-053c-448a-9e57-7dc25bd86a6f", + "metadata": {}, + "outputs": [], + "source": [ + "html_nodes_infos = markdown.markdown(r'''\n", + "#### Knoten_1: Solvat und Solvent -Eintritt-\n", + "* C: Eintritt (Feed) eines Kristallisators, bestehend aus Solvat (Salz) und Solvent (Lösungsmittel). Der Eintritt wird hier als __konstant__ angesehen\n", + "* A: Solvat gelöstes und / oder kristallines Solvat. Die Masse ist konstant, aber die Zusammensetzung zwischen kristallines und gelöstes Solvat kann sich ändern. Hängt von einer Temperaturänderung und / oder einer Mengenänderung des Solvents ab (Passieren der Löslichkeitsgrenze)\n", + "* B: Solventmasse reines Lösungsmittel. Wird hier als __konstant__ angesehen.\n", + "\n", + "----\n", + "\n", + "''')\n", + "\n", + "#HTML(html) \n", + "html_nodes_infos = widgets.HTMLMath(html_nodes_infos)\n", + "file = open(\"pics/Knotenmodell_Kristallisation_Vers_2.svg\", \"rb\")\n", + "\n", + "image_2 = file.read()\n", + "crystal_image = widgets.Image(\n", + " value=image_2,\n", + " format='svg+xml',\n", + " height=300,\n", + " \n", + ")\n", + "imagebox = widgets.HBox([crystal_image, html_nodes_infos])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "0b6c3312-1d1d-4b6c-8e8c-ea62057b8b3a", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": 0, + "height": 3, "hidden": false, "row": 2, - "width": 6 + "width": 12 } } } - } + }, + "tags": [] }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d38e8827b4f648edb4b80c1a7cb2c2e7", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Accordion(children=(HTMLMath(value='<ul>\\n<li>Nur <strong>extensive</strong> Größen lassen sich bilanzieren<ul…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "<img src=\"pics/binary_balance_1.jpg\" alt=\"My picture\"\n", - "\ttitle=\"A cute kitten\" width=\"400px\" />\n", - "\n", - "Dieses Bild zeigt den Bilanzknoten mit den extensiven und intensiven Größen" + "accordion = widgets.Accordion(children=[kennzeichen, bedingungen, balance_image, imagebox], selected_index=None)\n", + "accordion.set_title(0, 'Kennzeichen einer binären Bilanz')\n", + "accordion.set_title(1, 'Bedingungen zur Berechnung einer binären Bilanz')\n", + "accordion.set_title(2, 'Vollständiges Bild eines binären Bilanzknoten')\n", + "accordion.set_title(3, 'Binäres Bilanzmodel einer Kristallisation')\n", + "accordion" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 10, "id": "ab70ee95-ce3c-4c4c-a7bc-2658a1a5d41a", "metadata": { "extensions": { @@ -146,19 +317,20 @@ } } } - } + }, + "tags": [] }, "outputs": [], "source": [ "import nowo1_base as no_ba\n", "import nowo1_sim_binary as no_bi\n", "import nowo1_gui_base as no_gui\n", - "import nowo1_log_base as no_log" + "import nowo1_log_base as no_log\n" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 11, "id": "eec838fd-a5a9-49c8-a873-07c0e3653622", "metadata": { "extensions": { @@ -178,7 +350,7 @@ }, "outputs": [], "source": [ - "bilanz_1 = no_bi.binary_node('bilanz_1') # Umgebungs\n", + "bilanz_1 = no_bi.binary_node('bilanz_1', init_methode = 'gui') # Umgebungs\n", "step = no_ba.step_single('step')\n", "gui_data = no_gui.gui_ipysheet('gui_data')\n", "log = no_log.log_sheet('log')" @@ -186,8 +358,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "5e7dc37c-8fe1-4569-a233-e3e45f450ae2", + "execution_count": 12, + "id": "7209ba84-1e31-4d7e-b205-eb3b822fba13", "metadata": { "extensions": { "jupyter_dashboards": { @@ -206,55 +378,76 @@ }, "outputs": [], "source": [ - "step.Init(work_objs=[bilanz_1.Calc_A_B])\n", - "log.Init(Values=[bilanz_1.log_all], Gui_For_Data = gui_data)" + "# stepper for options\n", + "step.Init(work_objs=[bilanz_1.Calc_C])" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "9a853d13-b21f-475a-8262-b9616bad6a60", + "execution_count": 13, + "id": "78564e31-2e23-4fd0-879e-e5fec1cf5c8e", "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "views": { "grid_default": { - "col": 6, - "height": 5, - "hidden": false, - "row": 17, - "width": 6 + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 } } } - }, - "tags": [] + } }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "056f50bccc764cb9abda14b18b6f1d74", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(Sheet(cells=(Cell(column_end=0, column_start=0, row_end=7, row_start=0, squeeze_row=False, type…" - ] - }, - "metadata": {}, - "output_type": "display_data" + "outputs": [], + "source": [ + "bilanz_1.Option(options = {\n", + " 'name' : {'alias' : 'Test', 'visible' : True}} )\n", + "bilanz_1.Gate_A.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_A.Option(alias_name = 'A')\n", + "bilanz_1.Gate_B.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_B.Option(alias_name = 'B')\n", + "bilanz_1.Gate_C.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_C.Option(alias_name = 'C')\n", + "bilanz_1.A_ratio.Option(alias_name = 'Beladung A/B')\n", + "bilanz_1.B_ratio.Option(alias_name = 'Beladung B/A')\n", + "bilanz_1.A_portion.Option(alias_name = 'Anteil A/(A+B)')\n", + "bilanz_1.B_portion.Option(alias_name = 'Anteil B/(A+B)')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5bc30890-5c60-4d96-8138-fe9b7c0682d1", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } } - ], + }, + "outputs": [], "source": [ - "gui_data.Show_GUI()" + "#Logger zum Schluss initialisieren\n", + "log.Init(Values=[bilanz_1.log_all], Gui_For_Data = gui_data)" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "155a052c-b1b6-4098-8614-19388211296a", + "execution_count": 15, + "id": "9a853d13-b21f-475a-8262-b9616bad6a60", "metadata": { "extensions": { "jupyter_dashboards": { @@ -262,25 +455,26 @@ "views": { "grid_default": { "col": 0, - "height": 4, + "height": 5, "hidden": false, - "row": 17, - "width": 4 + "row": 5, + "width": 12 } } } - } + }, + "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "df4f302df2794b3592111ef8250b63d6", + "model_id": "8997f6d647954856a5a9cf3850f5d210", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(VBox(children=(Label(value='extensive Größe:'), HBox(children=(Dropdown(layout=Layout(width='10…" + "VBox(children=(HBox(children=(VBox(children=(VBox(children=(Button(description='Löschen', style=ButtonStyle())…" ] }, "metadata": {}, @@ -288,39 +482,67 @@ } ], "source": [ - "bilanz_1.Show_GUI()" + "left_box = widgets.VBox([log.Box(), step.Box()])\n", + "row_1 = widgets.HBox([left_box, gui_data.Box()])\n", + "widgets.VBox([row_1, bilanz_1.Box()])" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "aa1fe3ad-55bb-491d-a677-ea20354ba5c1", + "execution_count": 19, + "id": "305dd061-c441-491c-8b92-8a5c54d739ad", + "metadata": {}, + "outputs": [], + "source": [ + "html_aufgabe_totesmeer = markdown.markdown(r'''\n", + "Im Meerwasser des Toten Meer gibt es Mineralien in hochkonzentrierter Form, durchschnittlich ca. <b>28% (Massenbeladung)</b> Salz. \n", + "Das Salz setzt sich zusammen aus\n", + "Magnesiumchlorid, Calciumchlorid, Natriumchlorid, Kaliumchlorid und Spurenelemente, bezogen auf die wasserfreiem Salze. \n", + "Totes Meer Salz, wird durch die ständige Verdunstung des Wassers, das Wasser hat eine min. Temperatur von 20°C, in sogenannten Salzgärten gewonnen. \n", + "Die Salzgärten sind großflächig, künstlich angelegte Sammel Becken, indem das Wasser verdunstet und reines Salz zurück bleibt.\n", + "\n", + "## Aufgabe:\n", + "Wieviel Wasser des toten Meeres, bezogen auf $10.0\\ \\text{kg} \\cdot \\text{s}^{-1}$ Meerwasser, muss man verdampfen, um 20% (Massenanteil) des gelösten Salzes als kristallines Salz zu gewinnen?\n", + "\n", + "## Vereinfachung:\n", + "* Das gesamte Salz wird als $N_aC_l$ angenommen\n", + "* Die Temperatur bleibt konstant\n", + "''')\n", + "aufgabe_totesmeer = widgets.HTMLMath(html_aufgabe_totesmeer) \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "64a1496c-b05d-4517-8bf5-b853ab41a103", "metadata": { "extensions": { "jupyter_dashboards": { "activeView": "grid_default", "views": { "grid_default": { - "col": 4, - "height": 2, + "col": 0, + "height": 3, "hidden": false, - "row": 18, - "width": 2 + "row": 2, + "width": 12 } } } - } + }, + "tags": [] }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "387ddd748f7c439eb5f9853ae7c70353", + "model_id": "05c853c0fb834afbba1b94d60cc45745", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(Button(description='Calc', style=ButtonStyle()),))" + "Accordion(children=(HTMLMath(value='<p>Im Meerwasser des Toten Meer gibt es Mineralien in hochkonzentrierter F…" ] }, "metadata": {}, @@ -328,8 +550,19 @@ } ], "source": [ - "step.Show_GUI()" + "accordion_aufgaben = widgets.Accordion(children=[aufgabe_totesmeer], selected_index=None)\n", + "accordion_aufgaben.set_title(0, 'Verdunsten von Wasser -Totes Meer-')\n", + "\n", + "accordion_aufgaben" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "837544d5-c2fc-4a20-9077-37efd9c31dfc", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Balance_Crystal.ipynb b/Balance_Crystal.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b94d4f2d061ec354cb86674bcbf5fea2bca24213 --- /dev/null +++ b/Balance_Crystal.ipynb @@ -0,0 +1,352 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "28ffafab-45ee-4719-917f-0cb2bacb4915", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "import markdown \n", + "import ipywidgets as widgets\n", + "import nowo1_base as no_ba\n", + "import nowo1_sim_binary as no_bi\n", + "import nowo1_gui_base as no_gui\n", + "import nowo1_log_base as no_log" + ] + }, + { + "cell_type": "markdown", + "id": "valued-saskatchewan", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": 0, + "height": 2, + "hidden": false, + "row": 0, + "width": 12 + } + } + } + }, + "presto": { + "id": "e13f5e37-bda7-4588-b06b-83f75f0bb857" + }, + "tags": [] + }, + "source": [ + "### Bilanzsystem -Kristallisation- " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0497a7a-9f3a-4566-a880-48e123028b37", + "metadata": {}, + "outputs": [], + "source": [ + "html_infos_nodes = '''\n", + "<hr>\n", + "<p><strong>Knoten_1: Solvat und Solvent -Eintritt-</strong></p>\n", + "<ul style = \"margin : 0; padding = 0\" >\n", + "<li style = \"margin : 0\" >C: Eintritt (Feed) eines Kristallisators, bestehend aus Solvat (Salz) und Solvent (Lösungsmittel). Der Eintritt wird hier als <strong>konstant</strong> angesehen</li>\n", + "<li style = \"margin : 0\" >A: Solvat gelöstes und / oder kristallines Solvat. Die Masse ist konstant, aber die Zusammensetzung zwischen kristallines und gelöstes Solvat kann sich ändern. Hängt von einer Temperaturänderung und / oder einer Mengenänderung des Solvents ab (Passieren der Löslichkeitsgrenze)</li>\n", + "<li>B: Solventmasse reines Lösungsmittel. Wird hier als <strong>konstant</strong> angesehen.</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_2: Solvat</strong></p>\n", + "<ul>\n", + "<li>C: = Knoten_1.A</li>\n", + "<li>A: Kristallines Solvat. Die Menge kann sich ändern. </li>\n", + "<li>B: gelöstestes Solvat. Die Menge kann sich ändern.</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_3: Solvat und Solvent auf der Löslichkeitskurve</strong></p>\n", + "<ul>\n", + "<li>C: Solvat- und Solventmasse geättigt (Punkt auf Löslichkeitskurve).</li>\n", + "<li>A: Solvent nach einer möglichen Massenänderung </li>\n", + "<li>B: = Knoten_2.B</li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_4: Solvent -Austritt-</strong></p>\n", + "<ul>\n", + "<li>C: = Knoten_1.B</li>\n", + "<li>A: Veränderte Solventmasse </li>\n", + "<li>B: = Abgeführte Solventmasse (Dampf) </li>\n", + "</ul>\n", + "<hr>\n", + "<p><strong>Knoten_5: Solvat und Solvent -Austritt-</strong></p>\n", + "<ul>\n", + "<li>C: Solvent und Solvat (gelöstes und kristallines)</li>\n", + "<li>A: = Knoten_3.C </li>\n", + "<li>B: = Knoten_2.A </li>\n", + "</ul>\n", + "'''\n", + "infos_nodes = widgets.HTML(html_infos_nodes)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "305dd061-c441-491c-8b92-8a5c54d739ad", + "metadata": {}, + "outputs": [], + "source": [ + "html_aufgabe_totesmeer = markdown.markdown(r'''\n", + "Im Meerwasser des Toten Meer gibt es Mineralien in hochkonzentrierter Form, durchschnittlich ca. <b>28% (Massenbeladung)</b> Salz. \n", + "Das Salz setzt sich zusammen aus\n", + "Magnesiumchlorid, Calciumchlorid, Natriumchlorid, Kaliumchlorid und Spurenelemente, bezogen auf die wasserfreien Salze. \n", + "Totes Meer Salz, wird durch die ständige Verdunstung des Wassers, das Wasser hat eine min. Temperatur von <b>20°C</b>, in sogenannten Salzgärten gewonnen. \n", + "Die Salzgärten sind großflächig, künstlich angelegte Sammel Becken, indem das Wasser verdunstet und reines Salz zurück bleibt.\n", + "\n", + "#### Aufgabe:\n", + "Wieviel Wasser des toten Meeres, bezogen auf $\\pmb{10.0\\ \\text{kg} \\cdot \\text{s}^{-1}}$ <b>Meerwasser </b>, muss man verdampfen, um <b>20% (Massenanteil)</b> des gelösten Salzes als kristallines Salz zu gewinnen?\n", + "\n", + "#### Vereinfachung:\n", + "* Das gesamte Salz wird als $NaCl$ angenommen\n", + "* Die Temperatur bleibt konstant\n", + "* Die Löslichkeit (Beladung) von $NaCl$ bei 20°C beträgt $\\pmb{0.36\\ \\text{kg/kg}}$ (aus Diagramm)\n", + "''')\n", + "aufgabe_totesmeer = widgets.HTMLMath(html_aufgabe_totesmeer) \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b6c3312-1d1d-4b6c-8e8c-ea62057b8b3a", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": 0, + "height": 3, + "hidden": false, + "row": 2, + "width": 12 + } + } + } + }, + "tags": [] + }, + "outputs": [], + "source": [ + "accordion = widgets.Accordion(children=[aufgabe_totesmeer, infos_nodes\n", + "], selected_index=None)\n", + "accordion.set_title(1, 'Informationen zu den Bilanzknoten')\n", + "accordion.set_title(0, 'Übungsaufgabe')\n", + "accordion" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5792526-053c-448a-9e57-7dc25bd86a6f", + "metadata": {}, + "outputs": [], + "source": [ + "file = open(\"pics/Knotenmodell_Kristallisation_Vers_1.svg\", \"rb\")\n", + "\n", + "image_2 = file.read()\n", + "crystal_image = widgets.Image(\n", + " value=image_2,\n", + " format='svg+xml',\n", + " width = '380px'\n", + " \n", + ")\n", + "#crystal_image.layout.object_fit = 'scale-down'\n", + "#crystal_image.layout.margin = 'image_margin'\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eec838fd-a5a9-49c8-a873-07c0e3653622", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "bilanz_1 = no_bi.binary_node('bilanz_1', init_methode = 'gui') # Umgebungs\n", + "step = no_ba.step_single('step')\n", + "gui_data = no_gui.gui_ipysheet('gui_data')\n", + "log = no_log.log_sheet('log')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7209ba84-1e31-4d7e-b205-eb3b822fba13", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "# stepper for options initialisieren\n", + "step.Init(work_objs=[bilanz_1.Calc_C])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78564e31-2e23-4fd0-879e-e5fec1cf5c8e", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "bilanz_1.Option(options = {\n", + " 'name' : {'alias' : 'Test', 'visible' : True}} )\n", + "bilanz_1.Gate_A.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_A.Option(alias_name = 'A')\n", + "bilanz_1.Gate_B.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_B.Option(alias_name = 'B')\n", + "bilanz_1.Gate_C.general.Option(alias_name = 'size')\n", + "bilanz_1.Gate_C.Option(alias_name = 'C')\n", + "bilanz_1.A_ratio.Option(alias_name = 'Beladung A/B')\n", + "bilanz_1.B_ratio.Option(alias_name = 'Beladung B/A')\n", + "bilanz_1.A_portion.Option(alias_name = 'Anteil A/(A+B)')\n", + "bilanz_1.B_portion.Option(alias_name = 'Anteil B/(A+B)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5bc30890-5c60-4d96-8138-fe9b7c0682d1", + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "views": { + "grid_default": { + "col": null, + "height": 2, + "hidden": true, + "row": null, + "width": 2 + } + } + } + } + }, + "outputs": [], + "source": [ + "#Logger zum Schluss initialisieren\n", + "log.Init(Values=[bilanz_1.log_all], Gui_For_Data = gui_data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d95ff8cb-65bd-4e21-a386-6f83531970df", + "metadata": {}, + "outputs": [], + "source": [ + "Col_1_2 = widgets.VBox([log.Box(), step.Box()])\n", + "Row_1 = widgets.HBox([gui_data.Box(), crystal_image])\n", + "Row_2 = widgets.HBox([Col_1_2, bilanz_1.Box()])\n", + "widgets.VBox([Row_1, Row_2])" + ] + } + ], + "metadata": { + "extensions": { + "jupyter_dashboards": { + "activeView": "grid_default", + "version": 1, + "views": { + "grid_default": { + "cellMargin": 2, + "defaultCellHeight": 50, + "maxColumns": 12, + "name": "grid", + "type": "grid" + } + } + } + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + }, + "presto": { + "id": "15654236-4ba8-4933-8bde-9e7e68b7138c" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/binary_balance_1.jpg b/binary_balance_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f38ed7cfe5b29e470c108db8644087bc13c410b1 Binary files /dev/null and b/binary_balance_1.jpg differ diff --git a/nowo1_base.py b/nowo1_base.py index 00b6cd8d69536fae5abede37f8c97c21f6cfacf5..60938ef3fc7e3f8a6dd9d597b5547ad7b476d412 100644 --- a/nowo1_base.py +++ b/nowo1_base.py @@ -1,4 +1,5 @@ import sys +#from types import NoneType import sim_base as sim_g import pandas as pd import datetime as dt @@ -80,11 +81,16 @@ def analyse_func(func): class sim_value(): - def __init__(self, name: str, parent, value_type ): + def __init__(self, name: str, parent, value_type, alias_name = '' ): self.name = name + if alias_name: + self.alias_name = alias_name + else: self.alias_name = self.name + self._parent = parent self._simparent = getattr(self._parent, 'sim_parent', self._parent) if not self._simparent: self._simparent = self._parent + value_type_list = list(value_type) value_type_list.append(type(None)) self.value_type = tuple(value_type_list) @@ -95,17 +101,27 @@ class sim_value(): self.set = self._set # Überschreibbar durch callback funktion self.call_extern = None self.call_intern = None - self._fullname = self._get_fullname() + self._fullname = '' + self._get_fullname() + self._loggerlist : set = set() + def _get_fullname(self): namelist = [] if not self._simparent == self._parent: - namelist.append(self._simparent.name) - namelist.append(self._parent.name) - namelist.append(self.name) - return '.'.join(namelist) + namelist.append(self._simparent.alias_name) + namelist.append(self._parent.alias_name) + namelist.append(self.alias_name) + self._fullname = '.'.join(namelist) + return self._fullname + + + def _changename_logger(self, oldname : str, new_name : str): + for logger in self._loggerlist: + logger.update_buffer(oldname, new_name) + #TODO typen überprüfen def _set(self, value): @@ -113,12 +129,11 @@ class sim_value(): self._value = value return self._value - # Wird geändert über value erfolgt kein callback zugriff es wird nur - #_value geändert oder zurückgegeben - @property - def value(self): - return self._value + + @property + def value(self): return self._value + @value.setter def value(self, value): @@ -145,6 +160,12 @@ class sim_value(): return self._value + def Option(self, alias_name = ''): + if alias_name: + self.alias_name = alias_name + self._get_fullname() + + #TODO Warum Any würde hier nicht auch ein None genügen? def Init(self, value = Any, default = Any, unit = ''): @@ -185,22 +206,38 @@ class sim_value(): #------------------------------------------------------------------- class gate_base: - def __init__(self, name, sim_parent): + def __init__(self, name, sim_parent, alias_name = '' ): self.name = name + if alias_name: + self.alias_name = alias_name + else: self.alias_name = self.name + self.sim_parent = sim_parent self._success_flag : bool = True - + + def set(self, value: Any, value_name: str = ''):pass - + + def get(self, value_name: str = ''):pass - + + def Init(self, values):pass - + + + def Option(self, alias_name = ''): + if alias_name: + self.alias_name = alias_name + self.sim_parent._sync_fullname() + + + def _reset(self): self._success_flag : bool = True def _node_success(self, stepper): pass + def log_all(self, logger): name_list = [] for key, value in self.__dict__.items(): @@ -360,76 +397,178 @@ class gate_dataframe(gate_base): self._success_flag = False -class gui_api(): - def __init__(self): - self._GUI_visible = True + +class nowo_base(): + def __init__(self, name : str, + init_methode : str = 'normal', + alias_name = ''): + + self.name = name + if alias_name: + self.alias_name = alias_name + else: self.alias_name = self.name + + self._init_methode = self._set_init_methode(init_methode) + self._init_para : dict = dict() + self._options = dict() + + self._gui_name_visible = False + self._GUI_is_visible = False # Warum ? + self._GUI_is_create = False + self._GUI_itemlist : dict = dict() - self.GUI_Item = None - self._GUI_is_visible = False - self.info = widgets.Output() + self.info = widgets.Output()# Dient m Debugen + #display(self.info) + self.total_box = widgets.VBox( + layout = widgets.Layout() + ) + + + + def on_click(self, change): + self.alias_name = self.name_widget.value + self._sync_fullname() + + def _set_init_methode(self, init_name): + if init_name == 'normal': + return None + elif init_name == 'gui': + return self.Init_By_GUI + + + def _sync_fullname(self):pass + + + def Init(self, para_from_Init = dict()): + self._init_para = dict(para_from_Init) + self._init_para.pop('self') + self._init_para.pop('__class__') + + if not self._init_methode: + self._init_methode = self.Init_By_Para + + + + def Init_By_GUI(self): + #with self.info: print(' Init_By_GUI Parent') + pass + + def Init_By_Para(self): + #with self.info: print('Init_by_Para', self.name, self._init_para) + self.Init(**self._init_para) + + + def Option(self, options = dict()): + self._options = options + if 'name' in options.keys(): + # Option sichtbarkeit des Namens und die Möglichkeit des editierens + name_options = options['name'] + if 'alias' in name_options.keys(): + self.alias_name = name_options['alias'] + #self.name_widget.value = self.alias_name + self._sync_fullname() + if 'visible' in name_options.keys(): + self._gui_name_visible = name_options['visible'] + + def Show_GUI(self): - if not self.GUI_Item: - self.GUI_Item = self._create_gui() + if not self._GUI_is_create: + self._create_gui() + display(self.total_box) self._GUI_is_visible = True - display(self.GUI_Item) - + + def Box(self): + if not self._GUI_is_create: + self._create_gui() + self._GUI_is_visible = True + return self.total_box + def _create_gui(self): - for widget in self._GUI_itemlist.values(): - setattr(widget, 'parent', self) - return None + self._GUI_is_create = True + # Grundlegende Desings in den Boxen anlegen + style_box = widgets.Layout(margin = '10px') + self.total_box.layout.margin = style_box.margin + if not self._gui_name_visible: return + + layout_name = widgets.Layout(display = 'block') + style_valbox = widgets.Layout(padding = '1em 0 0 0') + self.name_widget = widgets.Text( + value=self.alias_name, + placeholder='Type something', + description='Name:', + disabled=False, + layout = layout_name) + + self.change_button = widgets.Button( + description = 'Ändere', + button_style='danger') + self.change_button.on_click(self.on_click) + + self.name_box = widgets.VBox( + [self.name_widget, self.change_button], + layout = style_valbox) + self._GUI_itemlist.update({ + 'changename_button' : self.change_button, + 'alias_name' : self.name_widget}) + + self.total_box.children = (self.name_box,) + #***************************************************************** -class step_base(gui_api): - def __init__(self, name : str, GUI : bool = False): - super().__init__() - self.name = name +class step_base(nowo_base): + def __init__(self, name : str, init_methode : str = 'normal'): + super().__init__(name, init_methode) self.step_nr: int = 0 self.total_steps: int = 0 self.work_objs = [ ] # Diese Objekte sind mit dem Timer verknüpft self.sim_funcs : dict = {}# Ersetzt self.work_objs und self.work_funcs self._loggerlist : set = set() - # self._GUI_visible = GUI - # self._GUI_itemlist : dict = dict() - # self.GUI_Item = self._create_gui() - # self._GUI_is_visible = False - - # self.info = widgets.Output() - - - - def on_start_clicked(self, args): - parent = args.parent - parent.reset() - parent.work() - - # def Show_GUI(self, show = True): - # for obj in self.work_objs: - # if obj._GUI_visible: - # obj.Show_GUI() - # super().Show_GUI() - # if self.GUI_Item: - # self._GUI_is_visible = True - # display(self.GUI_Item) - - - # def _create_gui(self): - # for widget in self._GUI_itemlist.values(): - # setattr(widget, 'parent', self) - # return None + def on_start_clicked(self, args): + #with self.info: print('on_start_clicked' , self.name) + self.work() + + def _create_gui(self): + start_button = widgets.Button( + description='Berechne', + button_style='danger' + ) + start_label = widgets.Label(value='Starte eine Berechnung') + start_button.on_click(self.on_start_clicked) + #self.total_box = widgets.HBox([start_label, start_button]) + self.total_box = widgets.HBox([start_button]) + self._GUI_itemlist.update({ + 'start_button' : start_button, + 'start_label' : start_label + }) + + super()._create_gui()# Attention! --must-- because the widget get a parent attr. + return + def reset(self): self.step_nr = 0 - + for obj in self.work_objs: + #obj._create_gui() + obj._init_methode() + obj.ready_for_start(self) + + for logger in self._loggerlist: + #logger._create_gui() + logger._init_methode() + logger.ready_for_start(self) + - def Init(self, work_objs : list = []): + + def Init(self, para_from_Init = dict(), work_objs : list = []): + super().Init(para_from_Init = para_from_Init) self.step_nr = 0 if not work_objs: raise Exception(f'obj : {self.name} |wenigstens eine start Methode muss angeben werden!') self.work_objs = [] # Diese Objekte sind mit dem Timer verknüpft @@ -446,20 +585,19 @@ class step_base(gui_api): {func_info[1] : { 'obj' : func_info[0], 'gate' : gate}}) - - - def work(self): - for obj in self.work_objs: - if obj._GUI_is_visible: - obj.Init_Over_GUI() - + for obj in self.work_objs: - obj.ready_for_start(self) + obj._set_stepper(self) + for logger in self._loggerlist: - logger.ready_for_start(self) + logger._set_stepper(self) + + - if self._GUI_visible: pass - #with self.info: print(logger.name, 'work 1') + def work(self): + self.reset() + + while self.step() == 1: self._node_success() @@ -467,10 +605,11 @@ class step_base(gui_api): obj.ready_for_end() for logger in self._loggerlist: - #with self.info: print(logger.name, 'work 2') + #with self.info: print('work 3', logger.ready_for_end) logger.ready_for_end() + def step(self): for obj in self.work_objs: obj._reset() #Todo ist das immer erforderlich? @@ -496,9 +635,10 @@ class step_base(gui_api): def _node_success(self): pass + class step_range(step_base): - def __init__(self, name : str, GUI : bool = False): - super().__init__(name, GUI) + def __init__(self, name : str, init_methode : str = 'normal'): + super().__init__(name, init_methode) self.total_steps = sim_value('total_steps', self, (float, int,)) self.Gate_Step: gate_general = gate_general( 'Gate_Step', self) @@ -543,31 +683,20 @@ class step_range(step_base): self.Gate_Step._node_success(self) - class step_single(step_base): - def __init__(self, name : str, GUI : bool = False): - super().__init__(name, GUI) + def __init__(self, name : str, init_methode : str = 'normal'): + super().__init__(name) - def Init(self, work_objs : list = []): - super().Init(work_objs=work_objs) + def Init(self, + work_objs : list = []): + + super().Init( + work_objs=work_objs, + para_from_Init = locals()) self.step_nr = 0 - # Später im Parent - def _create_gui(self): - start_button = widgets.Button(description='Calc') - start_button.on_click(self.on_start_clicked) - total_box = widgets.VBox([start_button]) - - self._GUI_itemlist.update({ - 'start_button' : start_button - }) - - super()._create_gui()# Attention! --must-- because the widget get a parent attr. - return total_box - - def step(self): if self.step_nr < 1: super().step() @@ -577,8 +706,8 @@ class step_single(step_base): # ------------------------------------------------------------------ class step_timer(step_base): - def __init__(self, name : str, GUI : bool = False): - super().__init__(name, GUI) + def __init__(self, name : str, init_methode : str = 'normal'): + super().__init__(name, init_methode) self.abs_start = dt.datetime(1, 1, 1, 0, 0, 0) self.start: dt.datetime = dt.datetime(1, 1, 1, 0, 0, 0) @@ -648,23 +777,33 @@ class step_timer(step_base): #***************************************************************** -class work_base(gui_api): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__() - self.name = name +class work_base(nowo_base): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode) self._ctrl_ok : bool = False + self._stepper : step_base = None - def Init(self): pass + def _set_stepper(self, stepper): + if isinstance(stepper, step_base): + self._stepper = stepper + + def Init(self, para_from_Init = dict(),): + super().Init(para_from_Init = para_from_Init) def ready_for_start(self, stepper: step_base): pass def ready_for_end(self):pass + def Option(self, options = dict()): + super().Option(options) + def _sync_fullname(self):pass + #self._stepper.reset() +#***************************************************************** class gui_base(work_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode, **kwargs) def Init_by_dataframe(self, dataframe): pass @@ -672,8 +811,8 @@ class gui_base(work_base): # ------------------------------------------------------------------ class port_base(work_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name ,init_methode, **kwargs) self.buffer_data: dict = dict() self.col_name : list = list() self.Gui_For_Data : gui_base = None @@ -684,12 +823,16 @@ class port_base(work_base): self.buffer_data[key] = [] + def update_buffer(self, oldname : str, new_name : str): + if oldname in self.buffer_data.keys(): + self.buffer_data[new_name] = self.buffer_data.pop(oldname) + + def ready_for_start(self, stepper: step_base): self.clear_buffer() def ready_for_end(self):pass - #with self.info: # print('ready_for_end') @@ -699,11 +842,12 @@ class port_base(work_base): self.ports[port_parentname] = dict() - def Init(self, + def Init(self, + para_from_Init = dict(), Values = [], Gui_For_Data = None, ): - super().Init() + super().Init(para_from_Init = para_from_Init) self.Gui_For_Data = Gui_For_Data self.buffer_data: dict = dict() for value in Values: @@ -724,8 +868,8 @@ class port_base(work_base): # ------------------------------------------------------------------- class sim_base(work_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode, **kwargs) self.time_factor: float = 0.0 self.ch_type: gate_base = None @@ -780,7 +924,9 @@ class sim_base(work_base): - def Init_Over_GUI(self): pass + def Init_By_GUI(self): + super().Init_By_GUI() + pass @@ -892,9 +1038,9 @@ class ctrl_general_step(ctrl_base): #***************************************************************** class sim_dynamic(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) self.Gate_Dynamic = gate_dynamic('Gate_Dynamic', self) self.Feature : dict = None @@ -924,9 +1070,9 @@ class sim_dynamic(sim_base): #-------------------------------------------------------------------- class sim_general_node(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) self._iterat_counter : int = 0 self.Max_Iterat = sim_value('Max_Iterat', self, (int,)) @@ -1177,9 +1323,9 @@ class sim_general_node(sim_base): class sim_general_chanal(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) self.Gate_Set = gate_general('Gate_Set', self) self.Gate_Get = gate_general('Gate_Get', self) @@ -1266,9 +1412,9 @@ class sim_general_user(sim_base): #TODO absolute zeit bezogen auf s einführen #TODO verschiedene Formen auswählen class sim_general_signal(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) self.Gate_Signal = gate_general('Gate_Signal', self) @@ -1319,9 +1465,9 @@ class sim_general_signal(sim_base): #-------------------------------------------------------------------- class sim_general_joker(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) def Init(self, @@ -1346,9 +1492,9 @@ class sim_general_joker(sim_base): #TODO ch_type raus #-------------------------------------------------------------------- class sim_general_store(sim_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : gate_general}) - super().__init__(name, GUI, **kwargs) + super().__init__(name, init_methode, **kwargs) self.Gate_Store = gate_general('Gate_Store', self) self.Gate_Leak = gate_general('Gate_Leak', self) diff --git a/nowo1_gui_base.py b/nowo1_gui_base.py index e79b9aa7ad649073d16aa5c2655a8260e5bf415f..24e151a575452c260c67224f8066f7feeb758115 100644 --- a/nowo1_gui_base.py +++ b/nowo1_gui_base.py @@ -10,13 +10,13 @@ from ipysheet import from_dataframe from IPython.display import display - +#TODO Optionen: +# Möglichkeit der flexiblen Anzahl von Spalten, oder fix +# Safe Button für die Tabelle class gui_ipysheet(nowo.gui_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode, **kwargs) self.sheet : ipysheet.sheet = None - self.sheet_colnames : list = [] - self.sheet_rownames : list = [] self.sheet_data: pd.DataFrame = None self.dataframe_out: pd.DataFrame = None @@ -24,25 +24,23 @@ class gui_ipysheet(nowo.gui_base): def Init_by_dataframe(self, dataframe): #with self.info: print(self.name, 'Init_by') self.sheet_data = dataframe - self.sheet_colnames = list(self.sheet_data.head()) - self.sheet_rownames = list(self.sheet_data.index.tolist()) - + + def ready_for_end(self): - #with self.info: print(self.name, 'ready_1') - buffer = self.sheet_data.values.T.tolist() - ipysheet.cell_range(buffer[0], column_start=1) + col_names = ['Größen'] + list(self.sheet_data.columns) + self.sheet.columns = len(col_names) + rows_1 = ipysheet.row(0, col_names) + buffer = self.sheet_data.values.tolist() + value_field = [] + ipysheet.cell_range(buffer, column_start=1, row_start = 1) - + def _create_gui(self): - # sheet = ipysheet.sheet(rows = len(self.sheet_rownames) + 1, columns= len(self.sheet_colnames) + 1) - self.sheet = ipysheet.sheet(rows = len(self.sheet_rownames), - columns= len(self.sheet_colnames) + 1, - column_headers = ['variable'] + self.sheet_colnames) - - cols_1 = ipysheet.column(0, self.sheet_rownames, row_start = 0) - - total_box = widgets.VBox([self.sheet]) + first_col = list(self.sheet_data.index.values) + self.sheet = ipysheet.sheet(rows = len(first_col) + 1, columns=1) + cols_1 = ipysheet.column(0, first_col, row_start = 1, read_only=True) + self.total_box = widgets.VBox([self.sheet]) self._GUI_itemlist.update({'sheet' : self.sheet}) super()._create_gui()# Attention! --must-- because the widget get a parent attr. - return total_box \ No newline at end of file + diff --git a/nowo1_gui_elements.py b/nowo1_gui_elements.py new file mode 100644 index 0000000000000000000000000000000000000000..98e5539ff473de66de316fcd116ffd7f89aab27f --- /dev/null +++ b/nowo1_gui_elements.py @@ -0,0 +1,44 @@ +import sim_base as sim_g +import nowo1_base as nowo + +import ipywidgets as widgets +from IPython.display import display +import base64 + + +# Download BUTTONS + +class Download_Button_csv(): + def __init__(self, csv_filename = 'daten.csv') -> None: + self.button = widgets.HTML() + self.csv_text : str = 'empty' + self.csv_filename = csv_filename + self.payload : str = '' + self.html_button = ''' + + <html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + </head> + <body> + <a download="{filename}" href="data:text/csv;base64,{payload}" download> + <button class="p-Widget jupyter-widgets jupyter-button widget-button ">Download File</button> + </a> + </body> + </html> + ''' + self.set_button() + self.csv_filename = 'daten.csv' + + def _payload(self): + b64 = base64.b64encode(self.csv_text.encode()) + self.payload = b64.decode() + + + def set_button(self, csv_text='empty'): + self.csv_text = csv_text + self._payload() + html_str = self.html_button.format(payload=self.payload,filename=self.csv_filename) + self.button.value = html_str + + diff --git a/nowo1_log_base.py b/nowo1_log_base.py index 8a93a7138eab21bbd132970b05fabdf760e5c9f4..02567f413e4fafebafd2dffde55e48bad41a06fd 100644 --- a/nowo1_log_base.py +++ b/nowo1_log_base.py @@ -1,13 +1,15 @@ import sim_base as sim_g import nowo1_base as nowo +from nowo1_gui_elements import Download_Button_csv import datetime as dt import pandas as pd import numpy as np -import pyperclip +import ipywidgets as widgets +#import pyperclip class logger(nowo.port_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode, **kwargs) self.log_data: pd.DataFrame = pd.DataFrame() def clear_buffer(self): @@ -20,15 +22,16 @@ class logger(nowo.port_base): -# Nimmt nur den ersten Wert und bildet eine Tabelle -# wird verwendet bei gleichen sim_obj die nur einmal berechnet wurden + class log_sheet(nowo.port_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): self.log_data: pd.DataFrame = pd.DataFrame() - super().__init__(name, GUI, **kwargs) - self.sheet_colnames : list = [] + super().__init__(name, init_methode, **kwargs) + self.sheet_rownames : list = [] self.sheet_data: pd.DataFrame = None + self.full_data: pd.DataFrame = None + self._download_class = Download_Button_csv('sheet_data.csv') def clear_buffer(self): @@ -36,42 +39,86 @@ class log_sheet(nowo.port_base): self.log_data = pd.DataFrame() - def Init(self, Values = [], Gui_For_Data = None): - #with self.info: print(self.name, 'init') - super().Init(Values, Gui_For_Data) + def on_clear_clicked(self, args): + #with self.info: print('on_clear_clicked' , self._init_para) + self.sheet_data.drop(self.sheet_data.columns, axis = 1, inplace = True) + self.full_data.drop(self.sheet_data.columns, axis = 1, inplace = True) + + + + # Später im Parent + def _create_gui(self): + clear_button = widgets.Button(description='Löschen') + clear_label = widgets.Label(value='Löschen') + clear_button.on_click(self.on_clear_clicked) + + + download_button = self._download_class.button + download_label = widgets.Label(value='Download') + + + #self.total_box = widgets.VBox([clear_label, clear_button, download_label, download_button]) + self.total_box = widgets.VBox([clear_button, download_button]) + self._GUI_itemlist.update({ + 'clear_button' : clear_button, + 'clear_label' : clear_label, + 'download_button' : download_button, + 'download_label' : download_label, + }) + + super()._create_gui()# Attention! --must-- because the widget get a parent attr. + return + + + + def Init(self, + Values = [], + Gui_For_Data = None): + + with self.info: print(self.name, 'Init Sheet') + super().Init( + Values = Values, + Gui_For_Data = Gui_For_Data, + para_from_Init = locals()) + + if isinstance(self.sheet_data, pd.DataFrame) : return for name in self.buffer_data.keys(): split_name = name.split('.', 1) - if not split_name[0] in self.sheet_colnames: - self.sheet_colnames.append(split_name[0]) + if not split_name[1] in self.sheet_rownames: self.sheet_rownames.append(split_name[1]) - self.sheet_data = pd.DataFrame(columns = self.sheet_colnames, index = self.sheet_rownames) + self.sheet_data = pd.DataFrame(index = self.sheet_rownames) + self.full_data = pd.DataFrame(index = self.sheet_rownames) if self.Gui_For_Data: self.Gui_For_Data.Init_by_dataframe(self.sheet_data) + def ready_for_end(self): super().ready_for_end() - # self.log_data = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in self.buffer_data.items() ])) - #with self.info: print(self.name, 'ready') - for col_name in self.sheet_colnames: - for row_name in self.sheet_rownames: - key_name = col_name + '.' + row_name - value = self.buffer_data[key_name] - self.sheet_data.at[row_name, col_name] = value - #self.sheet_data.to_clipboard() - csv_str = self.sheet_data.to_csv() - pyperclip.copy(csv_str) - #copyDF(self.sheet_data) + for name, value in self.buffer_data.items(): + split_name = name.split('.', 1) + col_name = split_name[0] + if not col_name in self.sheet_data.columns: + self.sheet_data[col_name] = '' + self.full_data[col_name] = '' + #with self.info: + # print(split_name[1], col_name, value) + # TODO Hier wird immer das erste Ausgegeben das sollt variable sein + self.sheet_data.at[split_name[1], col_name] = value[0] + self.full_data.at[split_name[1], col_name] = value + + csv_text = self.sheet_data.to_csv(sep = ';') + self._download_class.set_button(csv_text) if self.Gui_For_Data: - #with self.info: print(self.Gui_For_Data.name, 'ready_2') self.Gui_For_Data.ready_for_end() + class log_dataframe(nowo.port_base): - def __init__(self, name: str, GUI : bool = False, **kwargs): - super().__init__(name, GUI, **kwargs) + def __init__(self, name: str, init_methode : str = 'normal', **kwargs): + super().__init__(name, init_methode, **kwargs) self.log_data: pd.DataFrame = pd.DataFrame() def clear_buffer(self): diff --git a/nowo1_sim_binary.py b/nowo1_sim_binary.py index 953e140f559f1fa781a17afc07c4cfb287132dd8..3fa63337e2350f6d796359036029b40aff54c131 100644 --- a/nowo1_sim_binary.py +++ b/nowo1_sim_binary.py @@ -9,19 +9,20 @@ from IPython.display import display class binary_node(nowo.sim_base): - def __init__(self, name: str, **kwargs): + def __init__(self, name: str, + init_methode : str = 'normal', **kwargs): kwargs.update({'ch_type' : nowo.gate_general}) - super().__init__(name, **kwargs) + super().__init__(name, init_methode, **kwargs) self.Gate_A = nowo.gate_general('Gate_A', self) self.Gate_B = nowo.gate_general('Gate_B', self) - self.Gate_A_B = nowo.gate_general('Gate_A_B', self) + self.Gate_C = nowo.gate_general('Gate_C', self) self.A_ratio = nowo.sim_value('A_ratio', self, (float, int,)) self.B_ratio = nowo.sim_value('B_ratio', self, (float, int,)) self.A_portion = nowo.sim_value('A_portion', self, (float, int,)) self.B_portion = nowo.sim_value('B_portion', self, (float, int,)) - self.Info = nowo.sim_value('Info', self, (str,)) + #self.Info = nowo.sim_value('Info', self, (str,)) self.calcflag : bool = True self._value_key : np.byte = 0b00000000 @@ -34,7 +35,7 @@ class binary_node(nowo.sim_base): self._value_keys : dict = { 'A' : 0b01000000, 'B' : 0b00100000, - 'A_B': 0b00010000, + 'C': 0b00010000, 'A_ratio': 0b00001000, 'B_ratio': 0b00000100, 'A_portion':0b00000010, @@ -44,45 +45,65 @@ class binary_node(nowo.sim_base): self._funcgate.update({ self.Calc_A : self.Gate_A, self.Calc_B : self.Gate_B, - self.Calc_A_B : self.Gate_A_B + self.Calc_C : self.Gate_C }) + def _sync_fullname(self): + self.Gate_A.general._get_fullname() + self.Gate_B.general._get_fullname() + self.Gate_C.general._get_fullname() + self.A_ratio._get_fullname() + self.B_ratio._get_fullname() + self.A_portion._get_fullname() + self.B_portion._get_fullname() + super()._sync_fullname() + + + def _create_gui(self): - options =[('Strom A', 'A'), - ('Strom B', 'B'), - ('Summe A und B', 'A_B'), - ('Verhältnis A', 'A_ratio'), - ('Verhältnis B', 'B_ratio'), - ('Anteil A', 'A_portion'), - ('Anteil B', 'B_portion') + # if self._GUI_is_create: return + options =[ + (self.Gate_A.alias_name + '.' + self.Gate_A.general.alias_name, 'A'), + (self.Gate_B.alias_name + '.' + self.Gate_B.general.alias_name, 'B'), + (self.Gate_C.alias_name + '.' + self.Gate_C.general.alias_name, 'C'), + (self.A_ratio.alias_name, 'A_ratio'), + (self.B_ratio.alias_name, 'B_ratio'), + (self.A_portion.alias_name, 'A_portion'), + (self.B_portion.alias_name, 'B_portion'), ] - layout_select = widgets.Layout(width='100%') - layout_valbox = widgets.Layout(padding = '1em 0 0 0', background_color='red') - - val_label_1 = widgets.Label(value='extensive Größe:') + + layout_select = widgets.Layout() + layout_valbox = widgets.Layout(padding = '1em 0 0 0') + style_label = widgets.Layout(width = '100px') + + val_label_1 = widgets.HTML( + value='extensive Größe:', + layout = style_label + ) + val_select_1 = widgets.Dropdown(options = options[:3], value='A', - #description='Extensive Größe:', layout = layout_select ) - value_1 = widgets.FloatText(value = 0.0, layout=widgets.Layout(width='15%')) - val_label_2 = widgets.Label(value='extensive oder intensive Größe') + value_1 = widgets.FloatText(value = 1.0) + val1_box = widgets.HBox([val_label_1, widgets.VBox([val_select_1, value_1])]) + + + val_label_2 = widgets.HTML( + value='extensive oder <br> intensive Größe', + layout = style_label + ) val_select_2 = widgets.Dropdown(options = options, - value='B', - #description='extensive oder intensive Größe:', + value='B', layout = layout_select) - value_2 = widgets.FloatText(value = 0.0, layout=widgets.Layout(width='15%')) + value_2 = widgets.FloatText(value = 1.0) - val1_box = widgets.VBox([val_label_1, widgets.HBox([val_select_1, value_1])], - background_color='red') - val2_box = widgets.VBox([val_label_2, widgets.HBox([val_select_2, value_2])], layout = layout_valbox) + + val2_box = widgets.HBox([val_label_2, widgets.VBox([val_select_2, value_2])], layout = layout_valbox) - - total_box = widgets.VBox([val1_box, val2_box], background_color='red') - self._GUI_itemlist.update({ 'val_select_1' : val_select_1, 'value_1' : value_1, @@ -90,51 +111,58 @@ class binary_node(nowo.sim_base): 'value_2' : value_2, }) super()._create_gui()# Attention! --must-- because the widget get a parent attr. - return total_box + + self.total_box.children = (val1_box, val2_box, *self.total_box.children) + self.total_box.layout.width = '60%' - def Init_Over_GUI(self): + + def Init_By_GUI(self): + + super().Init_By_GUI() para = { self._GUI_itemlist['val_select_1'].value : self._GUI_itemlist['value_1'].value, self._GUI_itemlist['val_select_2'].value : self._GUI_itemlist['value_2'].value } + self.Init(**para) + def Init(self, A = np.nan, B = np.nan, - A_B = np.nan, + C = np.nan, A_ratio = np.nan, B_ratio = np.nan, A_portion = np.nan, B_portion = np.nan, ): - - super().Init() + + super().Init(para_from_Init = locals()) self._value_key = 0b00000000 self.Gate_A.general.Init(A) self.Gate_B.general.Init(B) - self.Gate_A_B.general.Init(A_B) + self.Gate_C.general.Init(C) self.A_ratio.Init(A_ratio) self.B_ratio.Init(B_ratio) self.A_portion.Init(A_portion) self.B_portion.Init(B_portion) - self.Info.Init('kein Kommentar') - self.Info._value = 'Oh mann' + #self.Info.Init('kein Kommentar') + #self.Info._value = 'Oh mann' def _set_values(self): if not self._korr_key & 0b01000000: self.A = np.nan if not self._korr_key & 0b00100000: self.B = np.nan - if not self._korr_key & 0b00010000: self.A_B = np.nan + if not self._korr_key & 0b00010000: self.C = np.nan if not self._korr_key & 0b00001000: self.A_ratio = np.nan if not self._korr_key & 0b00000100: self.B_ratio = np.nan if not self._korr_key & 0b00000010: self.A_portion = np.nan if not self._korr_key & 0b00000001: self.B_portion = np.nan - # es muss mindestens ein A oder B oder A_B vorhanden sein aber nicht mehr wie zwei + # es muss mindestens ein A oder B oder C vorhanden sein aber nicht mehr wie zwei def _check_values(self, stepper : nowo.step_base): # Build zahl bei values count : int = 0 @@ -144,8 +172,8 @@ class binary_node(nowo.sim_base): if not np.isnan(self.Gate_B.general.get_set(stepper)): self._value_key = self._value_key |self._value_keys['B'] count = count + 1 - if not np.isnan(self.Gate_A_B.general.get_set(stepper)): - self._value_key = self._value_key |self._value_keys['A_B'] + if not np.isnan(self.Gate_C.general.get_set(stepper)): + self._value_key = self._value_key |self._value_keys['C'] count = count + 1 if not np.isnan(self.A_ratio.get_set(stepper)): self._value_key = self._value_key |self._value_keys['A_ratio'] @@ -161,15 +189,15 @@ class binary_node(nowo.sim_base): count = count + 1 if count < 2: - self.Info._value = 'Es müssen mind. 2 unterschiedliche Werte angeben werden' + # self.Info._value = 'Es müssen mind. 2 unterschiedliche Werte angeben werden' return False elif count > 2: - self.Info._value = 'Es dürfen nicht mehr als 2 unterschiedliche Werte angeben werden' + # self.Info._value = 'Es dürfen nicht mehr als 2 unterschiedliche Werte angeben werden' return False # Abfrage ob wenigstens eine Masse vorhanden ist if self._value_key < 16: - self.Info._value = 'Es muss min. ein Strom (A, B oder A_B) angegeben werden' + # self.Info._value = 'Es muss min. ein Strom (A, B oder C) angegeben werden' return False return True @@ -185,9 +213,9 @@ class binary_node(nowo.sim_base): return self.Gate_B - def Calc_A_B(self, stepper : nowo.step_base, Gate_In: nowo.gate_general): + def Calc_C(self, stepper : nowo.step_base, Gate_In: nowo.gate_general): self._calc(stepper, Gate_In) - return self.Gate_A_B + return self.Gate_C def _calc(self, stepper : nowo.step_base, Gate_In: nowo.gate_general): @@ -201,7 +229,7 @@ class binary_node(nowo.sim_base): self._calc_B_portion() self._calc_A() self._calc_B() - self._calc_A_B() + self._calc_C() def _set_calcflag(self, flag): @@ -225,11 +253,11 @@ class binary_node(nowo.sim_base): elif self._value_keys['A'] & self._value_key and self._value_keys['B'] & self._value_key: self.A_ratio._value = self.Gate_A.general._value / self.Gate_B.general._value - elif self._value_keys['A_B'] & self._value_key and self._value_keys['A'] & self._value_key: - self.A_ratio._value = self.Gate_A.general._value / (self.Gate_A_B.general._value - self.Gate_A.general._value) + elif self._value_keys['C'] & self._value_key and self._value_keys['A'] & self._value_key: + self.A_ratio._value = self.Gate_A.general._value / (self.Gate_C.general._value - self.Gate_A.general._value) - elif self._value_keys['A_B'] & self._value_key and self._value_keys['B'] & self._value_key: - self.A_ratio._value = (self.Gate_A_B.general._value - self.Gate_B.general._value) / self.B + elif self._value_keys['C'] & self._value_key and self._value_keys['B'] & self._value_key: + self.A_ratio._value = (self.Gate_C.general._value - self.Gate_B.general._value) / self.B else: self._set_calcflag(False) @@ -299,11 +327,11 @@ class binary_node(nowo.sim_base): elif self._value_keys['A'] & self._value_key and self._value_keys['B'] & self._value_key: self.B_ratio._value = self.Gate_B.general._value / self.Gate_A.general._value - elif self._value_keys['A_B'] & self._value_key and self._value_keys['B'] & self._value_key: - self.B_ratio._value = self.Gate_B.general._value / (self.Gate_A_B.general._value - self.Gate_B.general._value) + elif self._value_keys['C'] & self._value_key and self._value_keys['B'] & self._value_key: + self.B_ratio._value = self.Gate_B.general._value / (self.Gate_C.general._value - self.Gate_B.general._value) - elif self._value_keys['A_B'] & self._value_key and self._value_keys['A'] & self._value_key: - self.B_ratio._value = (self.Gate_A_B.general._value - self.Gate_A.general._value) / self.Gate_A.general._value + elif self._value_keys['C'] & self._value_key and self._value_keys['A'] & self._value_key: + self.B_ratio._value = (self.Gate_C.general._value - self.Gate_A.general._value) / self.Gate_A.general._value else: self._set_calcflag(False) return @@ -323,14 +351,14 @@ class binary_node(nowo.sim_base): return try: - if self._value_keys['A_B'] & self._value_key and self._value_keys['B'] & self._value_key: - self.Gate_A.general._value = (self.Gate_A_B.general._value - self.B) + if self._value_keys['C'] & self._value_key and self._value_keys['B'] & self._value_key: + self.Gate_A.general._value = (self.Gate_C.general._value - self.Gate_B.general._value) - elif self._value_keys['A_B'] & self._value_key and self._value_keys['A_portion'] & self._value_key: - self.Gate_A.general._value = (self.Gate_A_B.general._value * self.A_portion._value) + elif self._value_keys['C'] & self._value_key and self._value_keys['A_portion'] & self._value_key: + self.Gate_A.general._value = (self.Gate_C.general._value * self.A_portion._value) - elif self._value_keys['A_B'] & self._value_key and self._value_keys['A_ratio'] & self._value_key: - self.Gate_A.general._value = (self.Gate_A_B.general._value * self.A_portion._value) + elif self._value_keys['C'] & self._value_key and self._value_keys['A_ratio'] & self._value_key: + self.Gate_A.general._value = (self.Gate_C.general._value * self.A_portion._value) elif self._value_keys['B'] & self._value_key and self._value_keys['A_ratio'] & self._value_key: self.Gate_A.general._value = (self.Gate_B.general._value * self.A_ratio._value) @@ -354,10 +382,10 @@ class binary_node(nowo.sim_base): return try: - if self._value_keys['A_B'] & self._value_key and self._value_keys['A'] & self._value_key: - self.Gate_B.general._value = (self.Gate_A_B.general._value - self.Gate_A.general._value) - elif self._value_keys['A_B'] & self._value_key and self._value_keys['B_portion'] & self._value_key: - self.Gate_B.general._value = (self.Gate_A_B.general._value * self.B_portion._value) + if self._value_keys['C'] & self._value_key and self._value_keys['A'] & self._value_key: + self.Gate_B.general._value = (self.Gate_C.general._value - self.Gate_A.general._value) + elif self._value_keys['C'] & self._value_key and self._value_keys['B_portion'] & self._value_key: + self.Gate_B.general._value = (self.Gate_C.general._value * self.B_portion._value) elif self._value_keys['A'] & self._value_key and self._value_keys['B_ratio'] & self._value_key: self.Gate_B.general._value = (self.Gate_A.general._value * self.B_ratio._value) @@ -375,15 +403,15 @@ class binary_node(nowo.sim_base): - def _calc_A_B(self): - if self._value_keys['A_B'] & self._value_key: + def _calc_C(self): + if self._value_keys['C'] & self._value_key: self._set_calcflag(False) return if self._value_keys['A'] & self._value_key and self._value_keys['B'] & self._value_key: - self.Gate_A_B.general._value = (self.Gate_A.general._value + self.Gate_B.general._value) + self.Gate_C.general._value = (self.Gate_A.general._value + self.Gate_B.general._value) self._set_calcflag(True) - self._value_key = self._value_key | self._value_keys['A_B'] + self._value_key = self._value_key | self._value_keys['C'] return self._set_calcflag(False) @@ -391,16 +419,16 @@ class binary_node(nowo.sim_base): def _reset(self): self.Gate_A._reset() self.Gate_B._reset() - self.Gate_A_B._reset() + self.Gate_C._reset() super()._reset() def _node_success(self, stepper: nowo.step_base): self.Gate_A._node_success(stepper) self.Gate_B._node_success(stepper) - self.Gate_A_B._node_success(stepper) + self.Gate_C._node_success(stepper) self.A_ratio._node_success(stepper) self.B_ratio._node_success(stepper) self.A_portion._node_success(stepper) self.B_portion._node_success(stepper) - self.Info._node_success(stepper) \ No newline at end of file + # self.Info._node_success(stepper) \ No newline at end of file diff --git a/pics/Knotenmodell_Basis_Vers_1.svg b/pics/Knotenmodell_Basis_Vers_1.svg new file mode 100644 index 0000000000000000000000000000000000000000..f1d319c31b2194d694be7998257871b2bd70fce6 --- /dev/null +++ b/pics/Knotenmodell_Basis_Vers_1.svg @@ -0,0 +1,2642 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="148mm" + viewBox="0 0 210 148.00001" + version="1.1" + id="svg5" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + sodipodi:docname="Knotenmodell_Basis_Vers_1.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title28684">Knotenmodell_Basis</title> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-nodes="false" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true" + inkscape:snap-object-midpoints="false" + inkscape:snap-center="false" + inkscape:snap-text-baseline="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="false" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="false" + inkscape:snap-bbox-midpoints="false" + inkscape:zoom="1" + inkscape:cx="615.5" + inkscape:cy="380" + inkscape:window-width="1920" + inkscape:window-height="1018" + inkscape:window-x="-6" + inkscape:window-y="-6" + inkscape:window-maximized="1" + inkscape:current-layer="layer3" + inkscape:snap-global="true" + inkscape:snap-grids="false" + inkscape:snap-others="false" + inkscape:snap-page="true"> + <sodipodi:guide + position="103.8786,74.642438" + orientation="0,-1" + id="guide48961" /> + <sodipodi:guide + position="0,148.00001" + orientation="0,793.70079" + id="guide90110" /> + <sodipodi:guide + position="210.00001,148.00001" + orientation="559.37008,0" + id="guide90112" /> + <sodipodi:guide + position="210.00001,0" + orientation="0,-793.70079" + id="guide90114" /> + <sodipodi:guide + position="0,0" + orientation="-559.37008,0" + id="guide90116" /> + <sodipodi:guide + position="121.68889,100.85927" + orientation="1,0" + id="guide90862" /> + <sodipodi:guide + position="204.22433,132.12941" + orientation="1,0" + id="guide90864" /> + </sodipodi:namedview> + <defs + id="defs2"> + <path + id="MJX-32-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-32-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-32-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-32-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-32-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-32-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-32-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-32-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-32-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-32-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-35-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-35-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-35-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-35-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-35-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-35-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-35-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-35-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-35-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-35-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-38-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-38-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-38-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-38-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-38-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-38-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-38-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-38-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-38-TEX-I-43" + d="m 50,252 q 0,115 67,221 67,106 169,168 102,62 204,63 90,0 143,-51 9,-10 15,-17 6,-7 8,-10 l 1,-3 q 3,0 27,26 7,6 15,14 8,8 16,16 8,8 10,11 l 15,15 h 6 q 14,0 14,-7 0,-4 -32,-137 -36,-139 -36,-140 -2,-5 -5,-6 -3,-1 -18,-2 h -16 q -6,6 -6,9 0,1 1,7 1,6 2,20 1,14 1,32 0,71 -32,124 -32,53 -109,54 -26,0 -56,-7 -30,-7 -72,-24 -42,-17 -83,-56 -41,-39 -73,-93 -32,-57 -51,-133 -19,-76 -19,-124 0,-114 76,-164 48,-34 118,-34 91,0 162,68 71,68 94,148 4,13 6,15 2,2 16,2 20,0 20,-9 0,-5 -1,-9 Q 618,132 523,55 428,-22 319,-22 206,-22 128,53 50,128 50,252 Z" /> + <path + id="MJX-38-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-38-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-39-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-39-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-39-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-39-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-39-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-39-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-39-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-39-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-39-TEX-I-43" + d="m 50,252 q 0,115 67,221 67,106 169,168 102,62 204,63 90,0 143,-51 9,-10 15,-17 6,-7 8,-10 l 1,-3 q 3,0 27,26 7,6 15,14 8,8 16,16 8,8 10,11 l 15,15 h 6 q 14,0 14,-7 0,-4 -32,-137 -36,-139 -36,-140 -2,-5 -5,-6 -3,-1 -18,-2 h -16 q -6,6 -6,9 0,1 1,7 1,6 2,20 1,14 1,32 0,71 -32,124 -32,53 -109,54 -26,0 -56,-7 -30,-7 -72,-24 -42,-17 -83,-56 -41,-39 -73,-93 -32,-57 -51,-133 -19,-76 -19,-124 0,-114 76,-164 48,-34 118,-34 91,0 162,68 71,68 94,148 4,13 6,15 2,2 16,2 20,0 20,-9 0,-5 -1,-9 Q 618,132 523,55 428,-22 319,-22 206,-22 128,53 50,128 50,252 Z" /> + <path + id="MJX-39-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-54-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-54-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-54-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-54-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-54-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-54-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-54-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-54-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-54-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-54-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-54-TEX-I-43" + d="m 50,252 q 0,115 67,221 67,106 169,168 102,62 204,63 90,0 143,-51 9,-10 15,-17 6,-7 8,-10 l 1,-3 q 3,0 27,26 7,6 15,14 8,8 16,16 8,8 10,11 l 15,15 h 6 q 14,0 14,-7 0,-4 -32,-137 -36,-139 -36,-140 -2,-5 -5,-6 -3,-1 -18,-2 h -16 q -6,6 -6,9 0,1 1,7 1,6 2,20 1,14 1,32 0,71 -32,124 -32,53 -109,54 -26,0 -56,-7 -30,-7 -72,-24 -42,-17 -83,-56 -41,-39 -73,-93 -32,-57 -51,-133 -19,-76 -19,-124 0,-114 76,-164 48,-34 118,-34 91,0 162,68 71,68 94,148 4,13 6,15 2,2 16,2 20,0 20,-9 0,-5 -1,-9 Q 618,132 523,55 428,-22 319,-22 206,-22 128,53 50,128 50,252 Z" /> + <path + id="MJX-59-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-59-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-59-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-59-TEX-I-61" + d="m 33,157 q 0,101 76,192 76,91 171,92 51,0 90,-49 16,30 46,30 13,0 23,-8 10,-8 10,-20 0,-13 -37,-160 -37,-147 -38,-166 0,-25 7,-33 7,-8 21,-9 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 q 19,0 19,-9 0,-6 -5,-27 Q 496,96 481,63 466,30 449,13 436,0 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 z m 318,171 q 0,6 -5,22 -5,16 -23,35 -18,19 -46,20 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 38,0 75,33 37,33 44,51 2,4 27,107 25,103 26,111 z" /> + <path + id="MJX-59-TEX-I-64" + d="m 366,683 q 1,0 72,5 71,5 73,6 12,0 12,-8 0,-7 -73,-302 -73,-295 -75,-301 -2,-6 -1,-15 0,-42 28,-42 9,1 20,9 21,20 41,96 6,20 10,21 2,1 10,1 h 4 4 q 15,0 15,-8 0,-5 -3,-16 Q 490,79 473,48 456,17 445,8 434,-1 417,-8 q -8,-2 -24,-2 -34,0 -57,15 -23,15 -30,31 l -6,15 q -1,1 -4,-1 -2,-2 -4,-4 -59,-56 -120,-56 -55,0 -97,40 -42,40 -42,127 0,48 20,98 20,50 48,86 47,57 94,79 47,22 85,22 56,0 84,-42 5,-6 5,-4 1,4 27,109 26,105 28,111 0,13 -7,16 -7,3 -39,5 h -21 q -6,6 -6,8 0,2 2,19 5,19 13,19 z M 352,326 q -23,79 -75,79 -35,0 -67,-31 -32,-31 -50,-81 -29,-79 -41,-164 0,-3 0,-11 0,-8 -1,-12 0,-45 18,-62 18,-17 43,-18 54,0 111,72 l 8,11 z" /> + <path + id="MJX-59-TEX-I-75" + d="m 21,287 q 0,8 9,31 9,23 25,52 16,29 44,50 28,21 59,22 46,0 69,-25 23,-25 23,-59 0,-18 -34,-112 -34,-94 -34,-141 0,-43 14,-60 14,-17 42,-18 28,-1 53,17 25,18 37,34 l 11,17 q 2,4 38,152 30,120 36,140 6,20 14,29 17,15 36,15 17,0 25,-10 8,-10 8,-19 L 420,84 q -1,-5 -1,-16 0,-25 7,-33 7,-8 21,-9 22,3 35,31 13,28 30,88 2,8 20,8 19,0 19,-9 -1,-5 -2,-14 -1,-9 -9,-32 -8,-23 -17,-43 -9,-20 -25,-38 -16,-18 -36,-25 -8,-2 -24,-2 -66,0 -91,56 -2,-1 -11,-10 -9,-9 -18,-15 -9,-6 -22,-15 -13,-9 -29,-12 -16,-3 -34,-5 -44,0 -78,18 -52,31 -52,106 0,57 35,149 35,92 35,117 0,1 0,2 0,9 0,12 0,3 -4,7 -4,4 -11,4 h -4 Q 131,404 112,385 93,366 82,344 71,322 65,302 59,282 57,280 55,278 41,278 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-59-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-59-TEX-I-67" + d="M 311,43 Q 296,30 267,15 238,0 206,0 143,0 105,45 67,90 66,160 q 0,105 77,193 77,88 171,89 47,0 87,-48 l 3,4 q 2,3 5,6 3,3 9,8 6,5 13,7 7,2 16,3 14,0 23,-9 9,-9 10,-19 0,-15 -57,-242 -57,-227 -60,-232 -18,-54 -77,-89 -59,-35 -135,-36 -141,0 -141,68 0,26 18,46 18,20 46,20 15,0 28,-9 13,-9 14,-31 0,-10 -2,-19 -2,-9 -7,-14 -5,-5 -8,-10 -3,-5 -7,-8 l -2,-2 h 1 q 10,-3 60,-3 38,0 60,12 23,11 43,33 20,22 28,47 6,19 16,62 13,48 13,56 z m 73,285 -4,11 q -3,11 -5,15 -2,4 -6,14 -4,10 -10,14 -6,4 -13,11 -7,7 -18,9 -11,2 -22,3 -44,0 -85,-53 -30,-39 -50,-119 -20,-80 -20,-116 0,-79 62,-79 56,0 110,70 l 8,10 z" /> + <path + id="MJX-59-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-59-TEX-I-43" + d="m 50,252 q 0,115 67,221 67,106 169,168 102,62 204,63 90,0 143,-51 9,-10 15,-17 6,-7 8,-10 l 1,-3 q 3,0 27,26 7,6 15,14 8,8 16,16 8,8 10,11 l 15,15 h 6 q 14,0 14,-7 0,-4 -32,-137 -36,-139 -36,-140 -2,-5 -5,-6 -3,-1 -18,-2 h -16 q -6,6 -6,9 0,1 1,7 1,6 2,20 1,14 1,32 0,71 -32,124 -32,53 -109,54 -26,0 -56,-7 -30,-7 -72,-24 -42,-17 -83,-56 -41,-39 -73,-93 -32,-57 -51,-133 -19,-76 -19,-124 0,-114 76,-164 48,-34 118,-34 91,0 162,68 71,68 94,148 4,13 6,15 2,2 16,2 20,0 20,-9 0,-5 -1,-9 Q 618,132 523,55 428,-22 319,-22 206,-22 128,53 50,128 50,252 Z" /> + <path + id="MJX-67-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-67-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-67-TEX-I-74" + d="m 26,385 q -7,7 -7,10 0,4 3,16 3,12 5,14 2,5 9,5 7,0 51,1 h 53 l 19,80 q 3,11 7,29 4,18 7,26 3,8 6,20 3,12 8,17 5,5 10,12 5,7 14,9 9,2 18,2 18,-1 25,-11 7,-10 7,-19 0,-7 -9,-47 -9,-40 -20,-79 l -10,-37 q 0,-2 50,-2 h 51 q 7,-7 7,-11 0,-22 -13,-35 H 210 L 174,240 Q 135,80 135,68 q 0,-42 27,-42 35,0 68,34 33,34 53,84 2,6 5,7 3,1 15,2 h 4 q 15,0 15,-8 0,-3 -3,-12 Q 314,117 301,95 288,73 267,48 246,23 216,6 186,-11 155,-11 125,-11 98,4 71,19 59,56 57,64 57,83 v 18 l 35,140 q 35,141 36,142 0,2 -51,2 z" /> + <path + id="MJX-67-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-67-TEX-I-69" + d="m 184,600 q 0,24 19,42 19,18 44,19 18,0 30,-12 12,-12 13,-30 0,-23 -20,-42 -20,-19 -44,-20 -15,0 -28,10 -13,10 -14,33 z M 21,287 q 0,8 9,31 9,23 24,51 15,28 44,51 29,23 60,22 39,0 65,-23 26,-23 27,-62 0,-17 -14,-56 -14,-39 -40,-105 -26,-66 -42,-113 -5,-22 -5,-32 0,-25 17,-25 9,0 19,3 10,3 23,14 13,11 27,35 14,24 25,59 3,12 5,14 2,2 17,2 20,0 20,-10 0,-8 -9,-31 -9,-23 -25,-51 -16,-28 -45,-50 -29,-22 -62,-22 -32,0 -59,21 -27,21 -28,64 0,17 5,32 5,15 43,114 38,101 44,121 6,20 7,39 0,24 -17,24 h -2 q -30,0 -55,-33 -25,-33 -38,-84 -1,-1 -2,-3 -1,-2 -1,-3 0,-1 -2,-2 -2,-1 -3,-1 -1,0 -4,0 -3,0 -8,0 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-67-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-67-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-67-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-67-TEX-N-2B" + d="m 56,237 q 0,0 0,13 0,13 14,20 h 299 v 150 l 1,150 q 10,13 19,13 13,0 20,-15 V 270 h 298 q 15,-8 15,-20 0,-12 -15,-20 H 409 V -68 q -8,-14 -18,-14 h -2 -2 q -12,0 -18,14 V 230 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-70-TEX-I-41" + d="m 208,74 q 0,-24 46,-28 18,0 18,-11 0,-1 -2,-13 Q 267,8 264,4 261,0 251,0 249,0 239,0 229,0 205,1 181,2 141,2 70,2 50,0 h -8 q -7,7 -7,11 2,27 13,35 h 14 q 70,3 102,50 6,6 181,305 175,299 178,303 7,12 24,12 h 8 17 q 6,-9 6,-10 l 28,-323 q 28,-323 30,-326 5,-11 65,-11 25,0 25,-10 0,-2 -3,-14 Q 720,7 718,4 716,1 704,0 701,0 690,0 679,0 651,1 623,2 578,2 484,2 455,0 h -12 q -6,6 -6,9 0,3 2,18 4,13 6,16 l 4,3 h 20 q 54,3 64,17 L 521,213 H 283 L 249,155 Q 208,86 208,74 Z m 308,186 q 0,11 -12,156 -12,145 -14,146 L 463,519 Q 447,492 400,412 l -90,-152 103,-1 q 103,0 103,1 z" /> + <path + id="MJX-70-TEX-I-6E" + d="m 21,287 q 1,6 3,16 2,10 12,38 10,28 20,47 10,19 33,37 23,18 46,17 36,0 60,-18 24,-18 30,-34 6,-16 6,-21 0,-2 1,-2 l 11,11 q 61,64 139,64 54,0 87,-27 33,-27 34,-79 1,-52 -38,-157 -39,-105 -38,-127 0,-26 17,-26 6,0 9,1 29,5 52,38 23,33 35,80 2,8 20,8 20,0 20,-8 0,-1 -4,-15 -8,-29 -22,-57 -14,-28 -46,-56 -32,-28 -69,-27 -47,0 -68,27 -21,27 -21,56 0,19 36,120 36,101 37,152 0,59 -44,59 h -5 Q 288,404 229,303 L 222,291 189,157 Q 156,26 151,16 138,-11 108,-11 95,-11 87,-5 79,1 76,7 q -3,6 -2,10 0,13 38,163 38,150 40,163 1,5 1,23 0,39 -24,39 -38,0 -63,-100 -6,-20 -6,-21 -2,-6 -19,-6 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-70-TEX-I-74" + d="m 26,385 q -7,7 -7,10 0,4 3,16 3,12 5,14 2,5 9,5 7,0 51,1 h 53 l 19,80 q 3,11 7,29 4,18 7,26 3,8 6,20 3,12 8,17 5,5 10,12 5,7 14,9 9,2 18,2 18,-1 25,-11 7,-10 7,-19 0,-7 -9,-47 -9,-40 -20,-79 l -10,-37 q 0,-2 50,-2 h 51 q 7,-7 7,-11 0,-22 -13,-35 H 210 L 174,240 Q 135,80 135,68 q 0,-42 27,-42 35,0 68,34 33,34 53,84 2,6 5,7 3,1 15,2 h 4 q 15,0 15,-8 0,-3 -3,-12 Q 314,117 301,95 288,73 267,48 246,23 216,6 186,-11 155,-11 125,-11 98,4 71,19 59,56 57,64 57,83 v 18 l 35,140 q 35,141 36,142 0,2 -51,2 z" /> + <path + id="MJX-70-TEX-I-65" + d="m 39,168 q 0,57 19,104 19,47 49,78 30,31 67,52 37,21 70,31 33,10 63,9 h 3 q 45,0 78,-22 33,-22 33,-65 0,-90 -111,-118 -49,-13 -134,-14 -37,0 -38,-2 0,-2 -6,-35 -6,-33 -7,-58 0,-47 21,-74 21,-27 63,-28 42,-1 93,19 51,20 92,66 9,10 12,10 4,0 13,-9 9,-9 10,-14 1,-5 -9,-16 Q 410,71 390,55 370,39 344,24 318,9 281,-1 244,-11 205,-11 126,-11 83,42 40,95 39,168 Z m 334,185 q -6,52 -68,52 -33,0 -61,-14 -28,-14 -45,-34 -17,-20 -29,-41 -12,-21 -16,-36 -4,-15 -5,-19 0,-1 20,-1 113,0 158,24 45,24 46,69 z" /> + <path + id="MJX-70-TEX-I-69" + d="m 184,600 q 0,24 19,42 19,18 44,19 18,0 30,-12 12,-12 13,-30 0,-23 -20,-42 -20,-19 -44,-20 -15,0 -28,10 -13,10 -14,33 z M 21,287 q 0,8 9,31 9,23 24,51 15,28 44,51 29,23 60,22 39,0 65,-23 26,-23 27,-62 0,-17 -14,-56 -14,-39 -40,-105 -26,-66 -42,-113 -5,-22 -5,-32 0,-25 17,-25 9,0 19,3 10,3 23,14 13,11 27,35 14,24 25,59 3,12 5,14 2,2 17,2 20,0 20,-10 0,-8 -9,-31 -9,-23 -25,-51 -16,-28 -45,-50 -29,-22 -62,-22 -32,0 -59,21 -27,21 -28,64 0,17 5,32 5,15 43,114 38,101 44,121 6,20 7,39 0,24 -17,24 h -2 q -30,0 -55,-33 -25,-33 -38,-84 -1,-1 -2,-3 -1,-2 -1,-3 0,-1 -2,-2 -2,-1 -3,-1 -1,0 -4,0 -3,0 -8,0 H 27 q -6,6 -6,9 z" /> + <path + id="MJX-70-TEX-I-6C" + d="m 117,59 q 0,-33 25,-33 37,0 63,105 6,20 10,21 2,1 10,1 h 4 q 9,0 12,0 3,0 5,-2 2,-2 2,-7 -1,-6 -3,-16 Q 243,118 234,90 225,62 214,43 203,24 183,6 163,-12 137,-11 101,-11 70,11 39,33 38,85 q 0,12 1,17 l 65,258 q 63,255 63,263 0,3 -1,5 -1,2 -4,4 -3,2 -5,2 -2,0 -8,1 -6,1 -8,1 -2,0 -9,1 -7,1 -10,0 -10,0 -13,0 -3,0 -8,1 -5,1 -6,3 -1,2 -1,6 0,2 2,14 5,19 11,21 6,2 72,6 15,1 34,2 19,1 30,3 11,2 11,1 12,0 12,-8 0,-11 -73,-300 -73,-289 -75,-303 0,-2 0,-8 0,-6 -1,-10 z" /> + <path + id="MJX-70-TEX-N-3D" + d="m 56,347 q 0,13 14,20 h 637 q 15,-8 15,-20 0,-11 -14,-19 L 390,327 H 72 q -16,5 -16,20 z m 0,-194 q 0,15 16,20 h 636 q 14,-10 14,-20 0,-13 -15,-20 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-70-TEX-N-2B" + d="m 56,237 q 0,0 0,13 0,13 14,20 h 299 v 150 l 1,150 q 10,13 19,13 13,0 20,-15 V 270 h 298 q 15,-8 15,-20 0,-12 -15,-20 H 409 V -68 q -8,-14 -18,-14 h -2 -2 q -12,0 -18,14 V 230 H 70 q -14,7 -14,20 z" /> + <path + id="MJX-70-TEX-I-42" + d="m 231,637 q -27,0 -32,1 -5,1 -5,11 0,27 11,33 1,1 130,1 259,0 273,-2 63,-10 105,-45 42,-35 43,-92 0,-64 -58,-115 -58,-51 -133,-69 l -10,-3 q 64,-9 105,-46 41,-37 42,-92 Q 702,146 630,78 558,10 453,1 446,0 242,0 42,0 39,2 q -4,3 -4,8 0,7 2,14 5,19 10,21 4,1 15,1 h 6 q 27,0 60,3 14,3 19,12 3,4 72,278 69,274 69,289 0,7 -57,9 z m 418,-93 q 0,30 -15,56 -15,26 -49,34 -7,2 -92,3 -20,0 -42,0 -22,0 -35,-1 h -13 q -15,-1 -19,-10 -2,-4 -32,-120 0,-3 -1,-6 L 320,374 h 81 q 81,0 93,2 60,10 107,58 47,48 48,110 z M 595,229 q 0,44 -23,73 -23,29 -60,34 -6,1 -83,1 -118,0 -119,-1 0,-2 -17,-73 -17,-71 -35,-141 L 240,52 q 0,-4 12,-4 12,0 81,-2 89,0 96,1 62,7 114,58 52,51 52,124 z" /> + <path + id="MJX-87-TEX-I-42" + d="M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z" /> + <path + id="MJX-87-TEX-I-65" + d="M39 168Q39 225 58 272T107 350T174 402T244 433T307 442H310Q355 442 388 420T421 355Q421 265 310 237Q261 224 176 223Q139 223 138 221Q138 219 132 186T125 128Q125 81 146 54T209 26T302 45T394 111Q403 121 406 121Q410 121 419 112T429 98T420 82T390 55T344 24T281 -1T205 -11Q126 -11 83 42T39 168ZM373 353Q367 405 305 405Q272 405 244 391T199 357T170 316T154 280T149 261Q149 260 169 260Q282 260 327 284T373 353Z" /> + <path + id="MJX-87-TEX-I-6C" + d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z" /> + <path + id="MJX-87-TEX-I-61" + d="M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z" /> + <path + id="MJX-87-TEX-I-64" + d="M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z" /> + <path + id="MJX-87-TEX-I-75" + d="M21 287Q21 295 30 318T55 370T99 420T158 442Q204 442 227 417T250 358Q250 340 216 246T182 105Q182 62 196 45T238 27T291 44T328 78L339 95Q341 99 377 247Q407 367 413 387T427 416Q444 431 463 431Q480 431 488 421T496 402L420 84Q419 79 419 68Q419 43 426 35T447 26Q469 29 482 57T512 145Q514 153 532 153Q551 153 551 144Q550 139 549 130T540 98T523 55T498 17T462 -8Q454 -10 438 -10Q372 -10 347 46Q345 45 336 36T318 21T296 6T267 -6T233 -11Q189 -11 155 7Q103 38 103 113Q103 170 138 262T173 379Q173 380 173 381Q173 390 173 393T169 400T158 404H154Q131 404 112 385T82 344T65 302T57 280Q55 278 41 278H27Q21 284 21 287Z" /> + <path + id="MJX-87-TEX-I-6E" + d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z" /> + <path + id="MJX-87-TEX-I-67" + d="M311 43Q296 30 267 15T206 0Q143 0 105 45T66 160Q66 265 143 353T314 442Q361 442 401 394L404 398Q406 401 409 404T418 412T431 419T447 422Q461 422 470 413T480 394Q480 379 423 152T363 -80Q345 -134 286 -169T151 -205Q10 -205 10 -137Q10 -111 28 -91T74 -71Q89 -71 102 -80T116 -111Q116 -121 114 -130T107 -144T99 -154T92 -162L90 -164H91Q101 -167 151 -167Q189 -167 211 -155Q234 -144 254 -122T282 -75Q288 -56 298 -13Q311 35 311 43ZM384 328L380 339Q377 350 375 354T369 368T359 382T346 393T328 402T306 405Q262 405 221 352Q191 313 171 233T151 117Q151 38 213 38Q269 38 323 108L331 118L384 328Z" /> + <path + id="MJX-87-TEX-I-41" + d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z" /> + <path + id="MJX-87-TEX-N-3D" + d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" /> + <path + id="MJX-87-TEX-I-43" + d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q484 659 454 652T382 628T299 572T226 479Q194 422 175 346T156 222Q156 108 232 58Q280 24 350 24Q441 24 512 92T606 240Q610 253 612 255T628 257Q648 257 648 248Q648 243 647 239Q618 132 523 55T319 -22Q206 -22 128 53T50 252Z" /> + <path + id="MJX-93-TEX-I-43" + d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q484 659 454 652T382 628T299 572T226 479Q194 422 175 346T156 222Q156 108 232 58Q280 24 350 24Q441 24 512 92T606 240Q610 253 612 255T628 257Q648 257 648 248Q648 243 647 239Q618 132 523 55T319 -22Q206 -22 128 53T50 252Z" /> + <path + id="MJX-93-TEX-N-3D" + d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" /> + <path + id="MJX-93-TEX-I-41" + d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z" /> + <path + id="MJX-93-TEX-N-2B" + d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z" /> + <path + id="MJX-93-TEX-I-42" + d="M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z" /> + <path + id="MJX-96-TEX-I-41" + d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z" /> + <path + id="MJX-96-TEX-N-3D" + d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" /> + <path + id="MJX-96-TEX-I-43" + d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q484 659 454 652T382 628T299 572T226 479Q194 422 175 346T156 222Q156 108 232 58Q280 24 350 24Q441 24 512 92T606 240Q610 253 612 255T628 257Q648 257 648 248Q648 243 647 239Q618 132 523 55T319 -22Q206 -22 128 53T50 252Z" /> + <path + id="MJX-96-TEX-N-2212" + d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" /> + <path + id="MJX-96-TEX-I-42" + d="M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z" /> + <path + id="MJX-98-TEX-I-42" + d="M231 637Q204 637 199 638T194 649Q194 676 205 682Q206 683 335 683Q594 683 608 681Q671 671 713 636T756 544Q756 480 698 429T565 360L555 357Q619 348 660 311T702 219Q702 146 630 78T453 1Q446 0 242 0Q42 0 39 2Q35 5 35 10Q35 17 37 24Q42 43 47 45Q51 46 62 46H68Q95 46 128 49Q142 52 147 61Q150 65 219 339T288 628Q288 635 231 637ZM649 544Q649 574 634 600T585 634Q578 636 493 637Q473 637 451 637T416 636H403Q388 635 384 626Q382 622 352 506Q352 503 351 500L320 374H401Q482 374 494 376Q554 386 601 434T649 544ZM595 229Q595 273 572 302T512 336Q506 337 429 337Q311 337 310 336Q310 334 293 263T258 122L240 52Q240 48 252 48T333 46Q422 46 429 47Q491 54 543 105T595 229Z" /> + <path + id="MJX-98-TEX-N-3D" + d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z" /> + <path + id="MJX-98-TEX-I-43" + d="M50 252Q50 367 117 473T286 641T490 704Q580 704 633 653Q642 643 648 636T656 626L657 623Q660 623 684 649Q691 655 699 663T715 679T725 690L740 705H746Q760 705 760 698Q760 694 728 561Q692 422 692 421Q690 416 687 415T669 413H653Q647 419 647 422Q647 423 648 429T650 449T651 481Q651 552 619 605T510 659Q484 659 454 652T382 628T299 572T226 479Q194 422 175 346T156 222Q156 108 232 58Q280 24 350 24Q441 24 512 92T606 240Q610 253 612 255T628 257Q648 257 648 248Q648 243 647 239Q618 132 523 55T319 -22Q206 -22 128 53T50 252Z" /> + <path + id="MJX-98-TEX-N-2212" + d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z" /> + <path + id="MJX-98-TEX-I-41" + d="M208 74Q208 50 254 46Q272 46 272 35Q272 34 270 22Q267 8 264 4T251 0Q249 0 239 0T205 1T141 2Q70 2 50 0H42Q35 7 35 11Q37 38 48 46H62Q132 49 164 96Q170 102 345 401T523 704Q530 716 547 716H555H572Q578 707 578 706L606 383Q634 60 636 57Q641 46 701 46Q726 46 726 36Q726 34 723 22Q720 7 718 4T704 0Q701 0 690 0T651 1T578 2Q484 2 455 0H443Q437 6 437 9T439 27Q443 40 445 43L449 46H469Q523 49 533 63L521 213H283L249 155Q208 86 208 74ZM516 260Q516 271 504 416T490 562L463 519Q447 492 400 412L310 260L413 259Q516 259 516 260Z" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Buffer" + style="display:none" + sodipodi:insensitive="true"> + <g + data-mml-node="math" + id="g40247" + transform="matrix(0.00333333,0,0,-0.00333333,131.20507,102.16386)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g40193"> + <use + xlink:href="#MJX-54-TEX-I-42" + id="use40191" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g40197"> + <use + xlink:href="#MJX-54-TEX-I-65" + id="use40195" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g40201"> + <use + xlink:href="#MJX-54-TEX-I-6C" + id="use40199" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g40205"> + <use + xlink:href="#MJX-54-TEX-I-61" + id="use40203" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g40209"> + <use + xlink:href="#MJX-54-TEX-I-64" + id="use40207" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g40213"> + <use + xlink:href="#MJX-54-TEX-I-75" + id="use40211" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g40217"> + <use + xlink:href="#MJX-54-TEX-I-6E" + id="use40215" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g40227"> + <g + data-mml-node="mi" + id="g40221"> + <use + xlink:href="#MJX-54-TEX-I-67" + id="use40219" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-152.7)" + id="g40225"> + <use + xlink:href="#MJX-54-TEX-I-41" + id="use40223" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5079.1)" + id="g40231"> + <use + xlink:href="#MJX-54-TEX-N-3D" + id="use40229" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6134.9)" + id="g40245"> + <g + data-mml-node="mfrac" + id="g40243"> + <g + data-mml-node="mi" + transform="translate(220,676)" + id="g40235"> + <use + xlink:href="#MJX-54-TEX-I-41" + id="use40233" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(237.5,-686)" + id="g40239"> + <use + xlink:href="#MJX-54-TEX-I-43" + id="use40237" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="950" + height="60" + x="120" + y="220" + id="rect40241" /> + </g> + </g> + </g> + <g + data-mml-node="math" + id="g40392" + transform="matrix(0.00338655,0,0,-0.00338655,139.19924,121.68567)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g40338"> + <use + xlink:href="#MJX-59-TEX-I-42" + id="use40336" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g40342"> + <use + xlink:href="#MJX-59-TEX-I-65" + id="use40340" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g40346"> + <use + xlink:href="#MJX-59-TEX-I-6C" + id="use40344" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g40350"> + <use + xlink:href="#MJX-59-TEX-I-61" + id="use40348" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g40354"> + <use + xlink:href="#MJX-59-TEX-I-64" + id="use40352" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g40358"> + <use + xlink:href="#MJX-59-TEX-I-75" + id="use40356" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g40362"> + <use + xlink:href="#MJX-59-TEX-I-6E" + id="use40360" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g40372"> + <g + data-mml-node="mi" + id="g40366"> + <use + xlink:href="#MJX-59-TEX-I-67" + id="use40364" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-150)" + id="g40370"> + <use + xlink:href="#MJX-59-TEX-I-42" + id="use40368" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5085.5)" + id="g40376"> + <use + xlink:href="#MJX-59-TEX-N-3D" + id="use40374" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6141.2)" + id="g40390"> + <g + data-mml-node="mfrac" + id="g40388"> + <g + data-mml-node="mi" + transform="translate(220,676)" + id="g40380"> + <use + xlink:href="#MJX-59-TEX-I-42" + id="use40378" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(242,-686)" + id="g40384"> + <use + xlink:href="#MJX-59-TEX-I-43" + id="use40382" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="959" + height="60" + x="120" + y="220" + id="rect40386" /> + </g> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Hintergrund" + style="display:inline" + transform="translate(-62.291465,-55.243919)" + sodipodi:insensitive="true"> + <rect + style="fill:#ececec;fill-opacity:1;stroke-width:0.265739" + id="rect90118" + width="118.15743" + height="148" + x="62.291466" + y="55.243916" /> + <rect + style="display:inline;fill:#b3b3b3;fill-opacity:1;stroke-width:0.234286" + id="rect90118-8" + width="91.842567" + height="148" + x="180.4489" + y="55.243916" /> + </g> + <g + inkscape:label="Zeichnung" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-62.291465,-55.243919)"> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.580612;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-1" + cx="125.43803" + cy="121.90355" + r="9.4408426" /> + <rect + style="fill:#d4aa00;stroke:#000000;stroke-width:0.417049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294" + width="7.7226257" + height="7.7226253" + x="-55.200184" + y="171.90544" + transform="rotate(-45.647182)" /> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.417049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-82" + width="7.7226257" + height="7.7226253" + x="-5.1059084" + y="223.14436" + transform="rotate(-45.647182)" /> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.417049;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-82-8" + width="7.7226257" + height="7.7226253" + x="26.500803" + y="142.162" + transform="rotate(-45.647182)" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.367814px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 92.446009,156.77848 118.95014,128.76171" + id="path7107" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.367814px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 158.78062,156.79082 131.96084,128.72855" + id="path29090" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-82" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.367814px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 125.48374,112.46299 0.12939,-26.717541" + id="path29708" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-1" + inkscape:connection-end="#rect2294-82-8" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Gleichungen" + style="display:inline"> + <g + id="g40916" + transform="translate(12.01978,10.862935)"> + <rect + style="fill:#8daa00;fill-opacity:1;stroke-width:0.360126" + id="rect40782" + width="29.442022" + height="9.8505335" + x="36.373768" + y="79.41732" /> + <g + data-mml-node="math" + id="g39529" + transform="matrix(0.00340682,0,0,-0.00336862,39.156832,85.584004)" + style="display:inline;fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g39475"> + <use + xlink:href="#MJX-32-TEX-I-42" + id="use39473" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g39479"> + <use + xlink:href="#MJX-32-TEX-I-65" + id="use39477" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g39483"> + <use + xlink:href="#MJX-32-TEX-I-6C" + id="use39481" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g39487"> + <use + xlink:href="#MJX-32-TEX-I-61" + id="use39485" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g39491"> + <use + xlink:href="#MJX-32-TEX-I-64" + id="use39489" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g39495"> + <use + xlink:href="#MJX-32-TEX-I-75" + id="use39493" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g39499"> + <use + xlink:href="#MJX-32-TEX-I-6E" + id="use39497" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g39509"> + <g + data-mml-node="mi" + id="g39503"> + <use + xlink:href="#MJX-32-TEX-I-67" + id="use39501" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-152.7)" + id="g39507"> + <use + xlink:href="#MJX-32-TEX-I-41" + id="use39505" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5079.1)" + id="g39513"> + <use + xlink:href="#MJX-32-TEX-N-3D" + id="use39511" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6134.9)" + id="g39527"> + <g + data-mml-node="mfrac" + id="g39525"> + <g + data-mml-node="mi" + transform="translate(224.5,676)" + id="g39517"> + <use + xlink:href="#MJX-32-TEX-I-41" + id="use39515" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(220,-686)" + id="g39521"> + <use + xlink:href="#MJX-32-TEX-I-42" + id="use39519" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="959" + height="60" + x="120" + y="220" + id="rect39523" /> + </g> + </g> + </g> + </g> + <g + id="g40970" + transform="translate(11.752051,6.7577665)"> + <rect + style="fill:#8daa00;fill-opacity:1;stroke-width:0.360126" + id="rect40782-7" + width="29.442022" + height="9.8505335" + x="36.950562" + y="96.097572" /> + <g + data-mml-node="math" + id="g39673" + transform="matrix(0.00342298,0,0,-0.00342298,38.576949,102.33762)" + style="display:inline;fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g39619"> + <use + xlink:href="#MJX-35-TEX-I-42" + id="use39617" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g39623"> + <use + xlink:href="#MJX-35-TEX-I-65" + id="use39621" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g39627"> + <use + xlink:href="#MJX-35-TEX-I-6C" + id="use39625" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g39631"> + <use + xlink:href="#MJX-35-TEX-I-61" + id="use39629" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g39635"> + <use + xlink:href="#MJX-35-TEX-I-64" + id="use39633" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g39639"> + <use + xlink:href="#MJX-35-TEX-I-75" + id="use39637" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g39643"> + <use + xlink:href="#MJX-35-TEX-I-6E" + id="use39641" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g39653"> + <g + data-mml-node="mi" + id="g39647"> + <use + xlink:href="#MJX-35-TEX-I-67" + id="use39645" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-150)" + id="g39651"> + <use + xlink:href="#MJX-35-TEX-I-42" + id="use39649" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5085.5)" + id="g39657"> + <use + xlink:href="#MJX-35-TEX-N-3D" + id="use39655" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6141.2)" + id="g39671"> + <g + data-mml-node="mfrac" + id="g39669"> + <g + data-mml-node="mi" + transform="translate(220,676)" + id="g39661"> + <use + xlink:href="#MJX-35-TEX-I-42" + id="use39659" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(224.5,-686)" + id="g39665"> + <use + xlink:href="#MJX-35-TEX-I-41" + id="use39663" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="959" + height="60" + x="120" + y="220" + id="rect39667" /> + </g> + </g> + </g> + </g> + <g + id="g41092" + transform="translate(11.662809,0.51077251)"> + <rect + style="fill:#8daa00;fill-opacity:1;stroke-width:0.360126" + id="rect40782-7-4-4" + width="29.442022" + height="9.8505335" + x="63.901882" + y="39.339153" /> + </g> + <g + data-mml-node="math" + id="g39957" + transform="matrix(0.00338655,0,0,-0.00338655,78.553161,59.22966)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g39903"> + <use + xlink:href="#MJX-38-TEX-I-42" + id="use39901" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g39907"> + <use + xlink:href="#MJX-38-TEX-I-65" + id="use39905" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g39911"> + <use + xlink:href="#MJX-38-TEX-I-6C" + id="use39909" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g39915"> + <use + xlink:href="#MJX-38-TEX-I-61" + id="use39913" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g39919"> + <use + xlink:href="#MJX-38-TEX-I-64" + id="use39917" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g39923"> + <use + xlink:href="#MJX-38-TEX-I-75" + id="use39921" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g39927"> + <use + xlink:href="#MJX-38-TEX-I-6E" + id="use39925" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g39937"> + <g + data-mml-node="mi" + id="g39931"> + <use + xlink:href="#MJX-38-TEX-I-67" + id="use39929" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-150)" + id="g39935"> + <use + xlink:href="#MJX-38-TEX-I-43" + id="use39933" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5054.4)" + id="g39941"> + <use + xlink:href="#MJX-38-TEX-N-3D" + id="use39939" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6110.1)" + id="g39955"> + <g + data-mml-node="mfrac" + id="g39953"> + <g + data-mml-node="mi" + transform="translate(237.5,676)" + id="g39945"> + <use + xlink:href="#MJX-38-TEX-I-43" + id="use39943" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(220,-686)" + id="g39949"> + <use + xlink:href="#MJX-38-TEX-I-41" + id="use39947" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="950" + height="60" + x="120" + y="220" + id="rect39951" /> + </g> + </g> + </g> + <g + data-mml-node="math" + id="g40102" + transform="matrix(0.00338655,0,0,-0.00338655,20.910977,59.22966)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g40048"> + <use + xlink:href="#MJX-39-TEX-I-42" + id="use40046" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g40052"> + <use + xlink:href="#MJX-39-TEX-I-65" + id="use40050" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g40056"> + <use + xlink:href="#MJX-39-TEX-I-6C" + id="use40054" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g40060"> + <use + xlink:href="#MJX-39-TEX-I-61" + id="use40058" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g40064"> + <use + xlink:href="#MJX-39-TEX-I-64" + id="use40062" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g40068"> + <use + xlink:href="#MJX-39-TEX-I-75" + id="use40066" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g40072"> + <use + xlink:href="#MJX-39-TEX-I-6E" + id="use40070" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g40082"> + <g + data-mml-node="mi" + id="g40076"> + <use + xlink:href="#MJX-39-TEX-I-67" + id="use40074" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-150)" + id="g40080"> + <use + xlink:href="#MJX-39-TEX-I-43" + id="use40078" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5054.4)" + id="g40086"> + <use + xlink:href="#MJX-39-TEX-N-3D" + id="use40084" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6110.1)" + id="g40100"> + <g + data-mml-node="mfrac" + id="g40098"> + <g + data-mml-node="mi" + transform="translate(242,676)" + id="g40090"> + <use + xlink:href="#MJX-39-TEX-I-43" + id="use40088" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(220,-686)" + id="g40094"> + <use + xlink:href="#MJX-39-TEX-I-42" + id="use40092" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="959" + height="60" + x="120" + y="220" + id="rect40096" /> + </g> + </g> + </g> + <g + id="g41089" + transform="translate(8.8070395,-0.02468449)"> + <rect + style="fill:#8daa00;fill-opacity:1;stroke-width:0.360126" + id="rect40782-7-4" + width="29.442022" + height="9.8505335" + x="10.98091" + y="38.892937" /> + <g + data-mml-node="math" + id="g40537" + transform="matrix(0.00329102,0,0,-0.00329102,12.627122,44.536648)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g40481"> + <use + xlink:href="#MJX-67-TEX-I-41" + id="use40479" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(750)" + id="g40485"> + <use + xlink:href="#MJX-67-TEX-I-6E" + id="use40483" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1350)" + id="g40489"> + <use + xlink:href="#MJX-67-TEX-I-74" + id="use40487" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1711)" + id="g40493"> + <use + xlink:href="#MJX-67-TEX-I-65" + id="use40491" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2177)" + id="g40497"> + <use + xlink:href="#MJX-67-TEX-I-69" + id="use40495" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(2522)" + id="g40507"> + <g + data-mml-node="mi" + id="g40501"> + <use + xlink:href="#MJX-67-TEX-I-6C" + id="use40499" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,298,-150)" + id="g40505"> + <use + xlink:href="#MJX-67-TEX-I-42" + id="use40503" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(3684.5)" + id="g40511"> + <use + xlink:href="#MJX-67-TEX-N-3D" + id="use40509" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(4740.2)" + id="g40535"> + <g + data-mml-node="mfrac" + id="g40533"> + <g + data-mml-node="mi" + transform="translate(1206.2,676)" + id="g40515"> + <use + xlink:href="#MJX-67-TEX-I-42" + id="use40513" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mrow" + transform="translate(220,-686)" + id="g40529"> + <g + data-mml-node="mi" + id="g40519"> + <use + xlink:href="#MJX-67-TEX-I-41" + id="use40517" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(972.2)" + id="g40523"> + <use + xlink:href="#MJX-67-TEX-N-2B" + id="use40521" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1972.4)" + id="g40527"> + <use + xlink:href="#MJX-67-TEX-I-42" + id="use40525" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <rect + width="2931.3999" + height="60" + x="120" + y="220" + id="rect40531" /> + </g> + </g> + </g> + </g> + <g + data-mml-node="math" + id="g40683" + transform="matrix(0.00324074,0,0,-0.00324074,77.40569,45.363844)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g40627"> + <use + xlink:href="#MJX-70-TEX-I-41" + id="use40625" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(750)" + id="g40631"> + <use + xlink:href="#MJX-70-TEX-I-6E" + id="use40629" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1350)" + id="g40635"> + <use + xlink:href="#MJX-70-TEX-I-74" + id="use40633" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1711)" + id="g40639"> + <use + xlink:href="#MJX-70-TEX-I-65" + id="use40637" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2177)" + id="g40643"> + <use + xlink:href="#MJX-70-TEX-I-69" + id="use40641" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(2522)" + id="g40653"> + <g + data-mml-node="mi" + id="g40647"> + <use + xlink:href="#MJX-70-TEX-I-6C" + id="use40645" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,298,-152.7)" + id="g40651"> + <use + xlink:href="#MJX-70-TEX-I-41" + id="use40649" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(3678.1)" + id="g40657"> + <use + xlink:href="#MJX-70-TEX-N-3D" + id="use40655" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(4733.9)" + id="g40681"> + <g + data-mml-node="mfrac" + id="g40679"> + <g + data-mml-node="mi" + transform="translate(1210.7,676)" + id="g40661"> + <use + xlink:href="#MJX-70-TEX-I-41" + id="use40659" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mrow" + transform="translate(220,-686)" + id="g40675"> + <g + data-mml-node="mi" + id="g40665"> + <use + xlink:href="#MJX-70-TEX-I-41" + id="use40663" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(972.2)" + id="g40669"> + <use + xlink:href="#MJX-70-TEX-N-2B" + id="use40667" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1972.4)" + id="g40673"> + <use + xlink:href="#MJX-70-TEX-I-42" + id="use40671" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <rect + width="2931.3999" + height="60" + x="120" + y="220" + id="rect40677" /> + </g> + </g> + </g> + <g + id="g90665" + transform="translate(1.8263596,0.21742376)"> + <rect + style="display:inline;fill:#8daa00;fill-opacity:1;stroke-width:0.559244" + id="rect40782-7-7" + width="30.247076" + height="23.122768" + x="46.79155" + y="116.06202" /> + <g + data-mml-node="math" + id="g90344" + transform="matrix(0.00438596,0,0,-0.00438596,50.263669,121.40467)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g90326"> + <use + xlink:href="#MJX-93-TEX-I-43" + id="use90324" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(992.8)" + id="g90330"> + <use + xlink:href="#MJX-93-TEX-N-3D" + id="use90328" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2048.6)" + id="g90334"> + <use + xlink:href="#MJX-93-TEX-I-41" + id="use90332" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(3020.8)" + id="g90338"> + <use + xlink:href="#MJX-93-TEX-N-2B" + id="use90336" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(4021)" + id="g90342"> + <use + xlink:href="#MJX-93-TEX-I-42" + id="use90340" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="math" + id="g90442" + transform="matrix(0.00474255,0,0,-0.00474255,49.841862,127.02184)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g90424"> + <use + xlink:href="#MJX-96-TEX-I-41" + id="use90422" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(1027.8)" + id="g90428"> + <use + xlink:href="#MJX-96-TEX-N-3D" + id="use90426" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2083.6)" + id="g90432"> + <use + xlink:href="#MJX-96-TEX-I-43" + id="use90430" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(3020.8)" + id="g90436"> + <use + xlink:href="#MJX-96-TEX-N-2212" + id="use90434" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(4021)" + id="g90440"> + <use + xlink:href="#MJX-96-TEX-I-42" + id="use90438" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="math" + id="g90504" + transform="matrix(0.00474255,0,0,-0.00474255,49.841056,133.41039)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g90486"> + <use + xlink:href="#MJX-98-TEX-I-42" + id="use90484" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(1036.8)" + id="g90490"> + <use + xlink:href="#MJX-98-TEX-N-3D" + id="use90488" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2092.6)" + id="g90494"> + <use + xlink:href="#MJX-98-TEX-I-43" + id="use90492" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mo" + transform="translate(3029.8)" + id="g90498"> + <use + xlink:href="#MJX-98-TEX-N-2212" + id="use90496" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(4030)" + id="g90502"> + <use + xlink:href="#MJX-98-TEX-I-41" + id="use90500" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Text" + style="display:inline" + transform="translate(-62.291465,-55.243919)"> + <text + xml:space="preserve" + style="font-size:11.7701px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.367814" + x="120.91795" + y="71.321014" + id="text17927"><tspan + sodipodi:role="line" + id="tspan17925" + style="font-size:11.7701px;stroke-width:0.367814" + x="120.91795" + y="71.321014">C </tspan><tspan + sodipodi:role="line" + style="font-size:11.7701px;stroke-width:0.367814" + x="120.91795" + y="86.033638" + id="tspan17929" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.7701px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.367814" + x="80.865021" + y="174.67903" + id="text17927-1"><tspan + sodipodi:role="line" + id="tspan21666" + x="80.865021" + y="174.67903" + style="stroke-width:0.367814">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.7701px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.367814" + x="162.73154" + y="173.96162" + id="text17927-3"><tspan + sodipodi:role="line" + id="tspan21646" + x="162.73154" + y="173.96162" + style="stroke-width:0.367814">A</tspan></text> + <text + xml:space="preserve" + style="font-size:6.86588px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.367814" + x="94.261185" + y="102.58765" + id="text34495"><tspan + sodipodi:role="line" + id="tspan34493" + style="stroke-width:0.367814" + x="94.261185" + y="102.58765"> </tspan></text> + <g + id="g136022"> + <rect + style="fill:#e6e6e6;fill-opacity:1;stroke-width:0.670019" + id="rect90736" + width="82.535439" + height="12.575505" + x="183.98035" + y="67.851318" /> + <g + id="g90086" + transform="translate(0.18271605,-31.661175)"> + <rect + style="fill:#8daa00;fill-opacity:1;stroke-width:0.145456" + id="rect40782-7-4-1" + width="6.5958691" + height="7.1732497" + x="186.25372" + y="102.43644" /> + <text + xml:space="preserve" + style="font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="196.48686" + y="107.30449" + id="text42847"><tspan + sodipodi:role="line" + id="tspan42845" + style="font-size:4.23333px;stroke-width:0.264583" + x="196.48686" + y="107.30449">Im Berechnungsmodell ausgeführt</tspan></text> + </g> + </g> + <g + id="g136032" + transform="translate(1.109401e-6,-9.525)"> + <rect + style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke-width:0.986745" + id="rect90736-9-0" + width="82.535439" + height="27.274824" + x="183.98035" + y="148.00711" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="186.26335" + y="154.48988" + id="text42847-8-3"><tspan + sodipodi:role="line" + id="tspan84317-2" + x="186.26335" + y="154.48988">Aus Gründen der Einfacheit wurde die</tspan><tspan + sodipodi:role="line" + x="186.26335" + y="159.78154" + id="tspan106403">Summenbildung gegen 0 nicht umgesetzt.</tspan><tspan + sodipodi:role="line" + x="186.26335" + y="165.07321" + id="tspan131947">Summenbildung gegen 0 ist universeller </tspan><tspan + sodipodi:role="line" + x="186.26335" + y="170.36487" + id="tspan131949">erfordert aber die Angabe von Vorzeichen.</tspan><tspan + sodipodi:role="line" + id="tspan84319-7" + x="186.26335" + y="175.65652" /><tspan + sodipodi:role="line" + id="tspan84321-6" + x="186.26335" + y="180.9482" /></text> + </g> + <g + id="g136015" + transform="translate(1.1094087e-6,-10.874544)"> + <rect + style="display:inline;fill:#e6e6e6;fill-opacity:1;stroke-width:1.17315" + id="rect90736-9" + width="82.535439" + height="38.553085" + x="183.98035" + y="100.92294" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="185.24504" + y="109.48244" + id="text42847-8"><tspan + sodipodi:role="line" + id="tspan84315" + x="185.24504" + y="109.48244">Die Definition der Namensgebung bei der</tspan><tspan + sodipodi:role="line" + x="185.24504" + y="114.7741" + id="tspan97016">Beladung führt zu Mehrdeutigkeiten.</tspan><tspan + sodipodi:role="line" + id="tspan84317" + x="185.24504" + y="120.06577">Beispiel:</tspan><tspan + sodipodi:role="line" + id="tspan84319" + x="185.24504" + y="125.35742" /><tspan + sodipodi:role="line" + id="tspan84321" + x="185.24504" + y="130.64908" /></text> + <g + data-mml-node="math" + id="g50346" + transform="matrix(0.00428571,0,0,-0.00428571,188.29492,132.00917)" + style="fill:#000000;stroke:#000000;stroke-width:0"> + <g + data-mml-node="mi" + id="g50232"> + <use + xlink:href="#MJX-87-TEX-I-42" + id="use50230" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(759)" + id="g50236"> + <use + xlink:href="#MJX-87-TEX-I-65" + id="use50234" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1225)" + id="g50240"> + <use + xlink:href="#MJX-87-TEX-I-6C" + id="use50238" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(1523)" + id="g50244"> + <use + xlink:href="#MJX-87-TEX-I-61" + id="use50242" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2052)" + id="g50248"> + <use + xlink:href="#MJX-87-TEX-I-64" + id="use50246" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(2572)" + id="g50252"> + <use + xlink:href="#MJX-87-TEX-I-75" + id="use50250" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(3144)" + id="g50256"> + <use + xlink:href="#MJX-87-TEX-I-6E" + id="use50254" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(3744)" + id="g50266"> + <g + data-mml-node="mi" + id="g50260"> + <use + xlink:href="#MJX-87-TEX-I-67" + id="use50258" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-152.7)" + id="g50264"> + <use + xlink:href="#MJX-87-TEX-I-41" + id="use50262" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(5079.1)" + id="g50270"> + <use + xlink:href="#MJX-87-TEX-N-3D" + id="use50268" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(6134.9)" + id="g50284"> + <g + data-mml-node="mfrac" + id="g50282"> + <g + data-mml-node="mi" + transform="translate(224.5,676)" + id="g50274"> + <use + xlink:href="#MJX-87-TEX-I-41" + id="use50272" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(220,-686)" + id="g50278"> + <use + xlink:href="#MJX-87-TEX-I-42" + id="use50276" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="959" + height="60" + x="120" + y="220" + id="rect50280" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(7611.7)" + id="g50288"> + <use + xlink:href="#MJX-87-TEX-N-3D" + id="use50286" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(8667.4)" + id="g50292"> + <use + xlink:href="#MJX-87-TEX-I-42" + id="use50290" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(9426.4)" + id="g50296"> + <use + xlink:href="#MJX-87-TEX-I-65" + id="use50294" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(9892.4)" + id="g50300"> + <use + xlink:href="#MJX-87-TEX-I-6C" + id="use50298" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(10190.4)" + id="g50304"> + <use + xlink:href="#MJX-87-TEX-I-61" + id="use50302" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(10719.4)" + id="g50308"> + <use + xlink:href="#MJX-87-TEX-I-64" + id="use50306" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(11239.4)" + id="g50312"> + <use + xlink:href="#MJX-87-TEX-I-75" + id="use50310" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(11811.4)" + id="g50316"> + <use + xlink:href="#MJX-87-TEX-I-6E" + id="use50314" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="msub" + transform="translate(12411.4)" + id="g50326"> + <g + data-mml-node="mi" + id="g50320"> + <use + xlink:href="#MJX-87-TEX-I-67" + id="use50318" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="matrix(0.707,0,0,0.707,477,-152.7)" + id="g50324"> + <use + xlink:href="#MJX-87-TEX-I-41" + id="use50322" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + </g> + <g + data-mml-node="mo" + transform="translate(13746.5)" + id="g50330"> + <use + xlink:href="#MJX-87-TEX-N-3D" + id="use50328" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mstyle" + transform="translate(14802.3)" + id="g50344"> + <g + data-mml-node="mfrac" + id="g50342"> + <g + data-mml-node="mi" + transform="translate(220,676)" + id="g50334"> + <use + xlink:href="#MJX-87-TEX-I-41" + id="use50332" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <g + data-mml-node="mi" + transform="translate(237.5,-686)" + id="g50338"> + <use + xlink:href="#MJX-87-TEX-I-43" + id="use50336" + x="0" + y="0" + width="100%" + height="100%" /> + </g> + <rect + width="950" + height="60" + x="120" + y="220" + id="rect50340" /> + </g> + </g> + </g> + </g> + </g> + <metadata + id="metadata28682"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:title>Knotenmodell_Basis</dc:title> + <dc:date>21.01.2022</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Alois Rolfes</dc:title> + </cc:Agent> + </dc:creator> + <dc:subject> + <rdf:Bag> + <rdf:li>Bilanz</rdf:li> + <rdf:li>Knoten</rdf:li> + <rdf:li>Kristallisator</rdf:li> + <rdf:li>Hochschule</rdf:li> + <rdf:li>Programm</rdf:li> + </rdf:Bag> + </dc:subject> + <dc:description>Zeigt die Knotenstruktur einer Kristallisation</dc:description> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/pics/Knotenmodell_Kristallisation_Vers_1.svg b/pics/Knotenmodell_Kristallisation_Vers_1.svg new file mode 100644 index 0000000000000000000000000000000000000000..25202da2ca0520e251b5b2846e7fe0bc8d285be9 --- /dev/null +++ b/pics/Knotenmodell_Kristallisation_Vers_1.svg @@ -0,0 +1,669 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="189.368mm" + height="110.03374mm" + viewBox="0 0 189.368 110.03374" + version="1.1" + id="svg5" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + sodipodi:docname="Knotenmodell_Kristallisation_Vers_1.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title28684">Knotenmodell_Kristallisation</title> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + showguides="false" + inkscape:guide-bbox="true" + inkscape:snap-nodes="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:snap-text-baseline="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:zoom="0.84041062" + inkscape:cx="265.94143" + inkscape:cy="116.60966" + inkscape:window-width="1920" + inkscape:window-height="1018" + inkscape:window-x="-6" + inkscape:window-y="-6" + inkscape:window-maximized="1" + inkscape:current-layer="layer3" + inkscape:snap-global="false"> + <sodipodi:guide + position="-62.291466,165.27766" + orientation="0,1122.5197" + id="guide1057" /> + <sodipodi:guide + position="234.70854,165.27766" + orientation="793.70079,0" + id="guide1059" /> + <sodipodi:guide + position="234.70854,-44.722344" + orientation="0,-1122.5197" + id="guide1061" /> + <sodipodi:guide + position="-62.291466,-44.722344" + orientation="-793.70079,0" + id="guide1063" /> + <sodipodi:guide + position="1.8082864e-06,-14.814291" + orientation="1,0" + id="guide7597" /> + <sodipodi:guide + position="189.36801,126.15307" + orientation="1,0" + id="guide7599" /> + <sodipodi:guide + position="92.571236,92.115778" + orientation="1,0" + id="guide1983" /> + </sodipodi:namedview> + <defs + id="defs2"> + <rect + x="639.56831" + y="436.09635" + width="229.0547" + height="108.2804" + id="rect172248" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Hintergrund" + style="display:inline" + transform="translate(-62.291465,-55.243919)" + sodipodi:insensitive="true"> + <g + id="g9073" + style="display:inline" + transform="matrix(1.0695271,0,0,1,-4.3309457,0)"> + <rect + style="fill:#ececec;stroke:none;stroke-width:0.340654;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7377" + width="177.05769" + height="57.202" + x="62.291466" + y="55.243919" /> + <rect + style="fill:#cccccc;stroke:none;stroke-width:0.327382;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7377-1" + width="177.05769" + height="52.83173" + x="62.291466" + y="112.44592" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="75.588104" + y="66.890434" + id="text2960"><tspan + sodipodi:role="line" + id="tspan3676" + x="75.588104" + y="66.890434">Solvat</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="76.555458" + y="153.5972" + id="text2960-2"><tspan + sodipodi:role="line" + id="tspan3723" + x="76.555458" + y="153.5972">Solvent</tspan></text> + </g> + <g + inkscape:label="Zeichnung" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-62.291465,-55.243919)" + sodipodi:insensitive="true"> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31" + cx="135.87231" + cy="89.563972" + r="4.8780489" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-1" + cx="99.297806" + cy="112.44592" + r="4.8780489" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-2" + cx="135.81276" + cy="132.22543" + r="4.8780489" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-0" + cx="171.39656" + cy="112.44592" + r="4.8780489" /> + <rect + style="fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294" + width="5.5551906" + height="5.5551901" + x="-29.2388" + y="131.00598" + transform="rotate(-45.647182)" /> + <rect + style="fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9" + width="5.5551906" + height="5.5551901" + x="50.391106" + y="161.87997" + transform="rotate(-45.647182)" /> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4" + width="5.5551906" + height="5.5551901" + x="81.951218" + y="244.80037" + transform="rotate(-45.647182)" /> + <rect + style="fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-8" + width="5.5551906" + height="5.5551901" + x="50.262993" + y="212.32437" + transform="rotate(-45.647182)" /> + <rect + style="fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-4" + width="5.5551906" + height="5.5551901" + x="3.7021451" + y="207.4637" + transform="rotate(-45.647182)" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 139.97319,92.205437 27.32249,17.599023" + id="path6608" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31" + inkscape:connection-end="#path31-0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 131.52364,129.90209 103.58693,114.76926" + id="path6895" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 103.43314,109.85875 131.73698,92.151145" + id="path6897" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-1" + inkscape:connection-end="#path31" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 140.07632,129.8555 167.133,114.81586" + id="path7001" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#path31-0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 81.047856,112.44579 13.371901,1e-4" + id="path7107" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 152.52832,78.648628 -12.57608,8.241607" + id="path7109" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-9" + inkscape:connection-end="#path31" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 176.27461,112.44588 10.72857,-9e-5" + id="path7111" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-0" + inkscape:connection-end="#rect2294-8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 140.12102,134.51316 12.18453,6.47009" + id="path7113" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#rect2294-4" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="96.669197" + y="114.98151" + id="text4881"><tspan + sodipodi:role="line" + id="tspan4879" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="96.669197" + y="114.98151">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="133.2437" + y="92.099564" + id="text4881-2"><tspan + sodipodi:role="line" + id="tspan9308" + x="133.2437" + y="92.099564">2</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="169.44664" + y="114.93673" + id="text4881-2-5"><tspan + sodipodi:role="line" + id="tspan9355" + x="169.44664" + y="114.93673">3</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="133.97652" + y="134.75069" + id="text4881-2-5-8"><tspan + sodipodi:role="line" + id="tspan9402" + x="133.97652" + y="134.75069">4</tspan></text> + <circle + style="display:inline;fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-8" + cx="211.89583" + cy="112.45097" + r="4.8780489" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="209.9995" + y="115.42236" + id="text4881-2-2"><tspan + sodipodi:role="line" + id="tspan135" + x="209.9995" + y="115.42236">5</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 194.77124,112.44672 12.24655,0.003" + id="path309" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-8" + inkscape:connection-end="#path31-8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 216.77383,112.45884 15.60985,0.0252" + id="path1348" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-8" + inkscape:connection-end="#rect2294-9-4" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 157.32484,78.589963 50.4261,31.289127" + id="path1350" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-9" + inkscape:connection-end="#path31-8" + sodipodi:nodetypes="cc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Text" + style="display:inline" + transform="translate(-62.291465,-55.243919)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="146.00139" + y="68.558945" + id="text2960-2-8"><tspan + sodipodi:role="line" + id="tspan3770" + x="146.00139" + y="68.558945">Kristalle</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="228.66666" + y="106.18404" + id="text2960-2-8-5"><tspan + sodipodi:role="line" + id="tspan3770-6" + x="228.66666" + y="106.18404">Austritt</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="70.176537" + y="123.77015" + id="text2960-2-8-4"><tspan + sodipodi:role="line" + id="tspan3853" + x="70.176537" + y="123.77015">Feed</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="190.13219" + y="121.45745" + id="text2960-2-8-4-2"><tspan + sodipodi:role="line" + id="tspan2055" + x="190.13219" + y="121.45745">ges.</tspan><tspan + sodipodi:role="line" + id="tspan2057" + x="190.13219" + y="126.74911">Lösung</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="147.31316" + y="151.66415" + id="text2960-2-8-4-4"><tspan + sodipodi:role="line" + id="tspan3937" + x="147.31316" + y="151.66415">Dampf</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="90.031036" + y="110.92877" + id="text17927"><tspan + sodipodi:role="line" + id="tspan17925" + style="stroke-width:0.264583" + x="90.031036" + y="110.92877">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="90.031036" + y="117.10239" + id="tspan17929" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="102.9058" + y="121.00934" + id="text17927-1"><tspan + sodipodi:role="line" + id="tspan21666" + x="102.9058" + y="121.00934">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="103.37024" + y="107.21708" + id="text17927-3"><tspan + sodipodi:role="line" + id="tspan21646" + x="103.37024" + y="107.21708">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';display:inline;stroke-width:0.264583" + x="126.44048" + y="92.219185" + id="text17927-5"><tspan + sodipodi:role="line" + id="tspan17925-2" + style="stroke-width:0.264583" + x="126.44048" + y="92.219185">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="126.44048" + y="98.392807" + id="tspan17929-5" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="139.20383" + y="97.598221" + id="text17927-1-3"><tspan + sodipodi:role="line" + id="tspan21666-4" + x="139.20383" + y="97.598221">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="137.0918" + y="83.809402" + id="text17927-3-1"><tspan + sodipodi:role="line" + id="tspan21646-4" + x="137.0918" + y="83.809402">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';display:inline;stroke-width:0.264583" + x="128.97603" + y="127.66626" + id="text17927-4"><tspan + sodipodi:role="line" + id="tspan17925-1" + style="stroke-width:0.264583" + x="128.97603" + y="127.66626">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="128.97603" + y="133.83989" + id="tspan17929-0" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="131.59081" + y="141.48419" + id="text17927-1-34"><tspan + sodipodi:role="line" + id="tspan21666-5" + x="131.59081" + y="141.48419">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="142.0965" + y="132.79713" + id="text17927-3-2"><tspan + sodipodi:role="line" + id="tspan21646-1" + x="142.0965" + y="132.79713">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';display:inline;stroke-width:0.264583" + x="177.23695" + y="110.77304" + id="text17927-12"><tspan + sodipodi:role="line" + id="tspan17925-5" + style="stroke-width:0.264583" + x="177.23695" + y="110.77304">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="177.23695" + y="116.94666" + id="tspan17929-4" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="161.04665" + y="111.68336" + id="text17927-1-1"><tspan + sodipodi:role="line" + id="tspan21666-6" + x="161.04665" + y="111.68336">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="165.48331" + y="120.74818" + id="text17927-3-3"><tspan + sodipodi:role="line" + id="tspan21646-7" + x="165.48331" + y="120.74818">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';display:inline;stroke-width:0.264583" + x="217.64957" + y="116.89028" + id="text17927-5-4"><tspan + sodipodi:role="line" + id="tspan17925-2-4" + style="stroke-width:0.264583" + x="217.64957" + y="116.89028">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="217.64957" + y="123.0639" + id="tspan17929-5-9" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="204.78934" + y="106.66243" + id="text17927-1-3-7"><tspan + sodipodi:role="line" + id="tspan21666-4-3" + x="204.78934" + y="106.66243">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="203.56633" + y="117.47902" + id="text17927-3-1-7"><tspan + sodipodi:role="line" + id="tspan21646-4-9" + x="203.56633" + y="117.47902">A</tspan></text> + <g + id="g187621" + transform="translate(4.8798071,1.4167182)"> + <rect + style="fill:#ececec;fill-opacity:1;stroke-width:0.241954" + id="rect177370" + width="50.105061" + height="20.932934" + x="191.47997" + y="137.92616" /> + <g + id="g166229" + transform="translate(-2.3031101,6.6572776)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="204.04491" + y="139.37309" + id="text2960-2-8-5-4"><tspan + sodipodi:role="line" + id="tspan3770-6-3" + x="204.04491" + y="139.37309">Ein- und Ausgänge </tspan></text> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.177129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4-6" + width="3.2799497" + height="3.2799494" + x="39.203697" + y="236.97296" + transform="rotate(-45.647182)" /> + </g> + <g + id="g166234" + transform="translate(19.204402,-1.7315444)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="182.64436" + y="155.53413" + id="text2960-2-8-5-4-9"><tspan + sodipodi:role="line" + id="tspan3770-6-3-7" + x="182.64436" + y="155.53413">Interne Größen</tspan></text> + <rect + style="display:inline;fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.177129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4-6-0" + width="3.2799497" + height="3.2799494" + x="12.806045" + y="233.35071" + transform="rotate(-45.647182)" /> + </g> + </g> + <text + xml:space="preserve" + transform="matrix(0.26458333,0,0,0.26458333,62.291465,55.243919)" + id="text172246" + style="line-height:1.25;font-family:Arial;font-size:18.66666794px;-inkscape-font-specification:'Arial, Normal';white-space:pre;shape-inside:url(#rect172248)" /> + </g> + <metadata + id="metadata28682"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:title>Knotenmodell_Kristallisation</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/pics/Knotenmodell_Kristallisation_Vers_2.svg b/pics/Knotenmodell_Kristallisation_Vers_2.svg new file mode 100644 index 0000000000000000000000000000000000000000..29892977954a1bf416a1332f47b437374c58a5f7 --- /dev/null +++ b/pics/Knotenmodell_Kristallisation_Vers_2.svg @@ -0,0 +1,657 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="115.92763mm" + height="177.55925mm" + viewBox="0 0 115.92763 177.55925" + version="1.1" + id="svg5" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + sodipodi:docname="Knotenmodell_Kristallisation_Vers_2.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title28684">Knotenmodell_Kristallisation</title> + <sodipodi:namedview + id="namedview7" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + showguides="true" + inkscape:guide-bbox="true" + inkscape:snap-nodes="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:snap-smooth-nodes="true" + inkscape:snap-midpoints="true" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="true" + inkscape:snap-text-baseline="true" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" + inkscape:zoom="0.84041062" + inkscape:cx="314.7271" + inkscape:cy="291.52416" + inkscape:window-width="1920" + inkscape:window-height="1018" + inkscape:window-x="-6" + inkscape:window-y="-6" + inkscape:window-maximized="1" + inkscape:current-layer="layer3" + inkscape:snap-global="true"> + <sodipodi:guide + position="-8.3886718e-06,177.55925" + orientation="0,559.37008" + id="guide7332" /> + <sodipodi:guide + position="147.99999,177.55925" + orientation="793.70079,0" + id="guide7334" /> + <sodipodi:guide + position="147.99999,-32.44075" + orientation="0,-559.37008" + id="guide7336" /> + <sodipodi:guide + position="-8.3886718e-06,-32.44075" + orientation="-793.70079,0" + id="guide7338" /> + </sodipodi:namedview> + <defs + id="defs2"> + <rect + x="639.5683" + y="436.09634" + width="229.0547" + height="108.2804" + id="rect172248" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Hintergrund" + style="display:inline" + transform="translate(-62.291473,-55.243919)"> + <rect + style="fill:#ececec;stroke:none;stroke-width:0.343507;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7377" + width="177.55925" + height="58" + x="55.243919" + y="-178.2191" + transform="rotate(90)" /> + <rect + style="fill:#cccccc;stroke:none;stroke-width:0.343507;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7377-1" + width="177.55925" + height="58" + x="55.243919" + y="-120.29147" + transform="rotate(90)" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="149.86214" + y="90.762817" + id="text2960"><tspan + sodipodi:role="line" + id="tspan3676" + x="149.86214" + y="90.762817">Solvat</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="75.675407" + y="90.229065" + id="text2960-2"><tspan + sodipodi:role="line" + id="tspan3723" + x="75.675407" + y="90.229065">Solvent</tspan></text> + </g> + <g + inkscape:label="Zeichnung" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-62.291473,-55.243919)"> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31" + cx="114.25462" + cy="-142.82207" + r="4.8780489" + transform="rotate(90)" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-1" + cx="85.617615" + cy="-120.27406" + r="4.8780489" + transform="rotate(90)" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-2" + cx="114.19506" + cy="-97.514809" + r="4.8780489" + transform="rotate(90)" /> + <circle + style="fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-0" + cx="146.60387" + cy="-120.27406" + r="4.8780489" + transform="rotate(90)" /> + <rect + style="fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294" + width="5.5551906" + height="5.5551901" + x="129.82336" + y="-39.194393" + transform="rotate(44.352818)" /> + <rect + style="fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9" + width="5.5551906" + height="5.5551901" + x="203.1817" + y="-18.000479" + transform="rotate(44.352818)" /> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4" + width="5.5551906" + height="5.5551901" + x="225.6752" + y="58.911568" + transform="rotate(44.352818)" /> + <rect + style="fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-8" + width="5.5551906" + height="5.5551901" + x="200.33194" + y="32.925446" + transform="rotate(44.352818)" /> + <rect + style="fill:#d4aa00;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-4" + width="5.5551906" + height="5.5551901" + x="149.94678" + y="33.865585" + transform="rotate(44.352818)" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 140.03275,118.2564 -16.96937,24.34569" + id="path6608" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31" + inkscape:connection-end="#path31-0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 100.5537,110.37931 117.23518,89.433366" + id="path6895" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 123.2917,89.450158 16.51273,20.971922" + id="path6897" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-1" + inkscape:connection-end="#path31" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 100.3182,118.18705 17.15247,24.42483" + id="path7001" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#path31-0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 120.27417,70.54266 -7e-5,10.196906" + id="path7107" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294" + inkscape:connection-end="#path31-1" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 156.16357,130.91184 145.87155,118.06198" + id="path7109" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-9" + inkscape:connection-end="#path31" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 120.27407,151.48192 2e-5,12.15175" + id="path7111" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-0" + inkscape:connection-end="#rect2294-8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 94.608521,118.11282 -9.349243,12.60304" + id="path7113" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-2" + inkscape:connection-end="#rect2294-4" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="118.05291" + y="87.644585" + id="text4881"><tspan + sodipodi:role="line" + id="tspan4879" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583" + x="118.05291" + y="87.644585">1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="140.93959" + y="116.04406" + id="text4881-2"><tspan + sodipodi:role="line" + id="tspan9308" + x="140.93959" + y="116.04406">2</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="118.32413" + y="149.09473" + id="text4881-2-5"><tspan + sodipodi:role="line" + id="tspan9355" + x="118.32413" + y="149.09473">3</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="95.678581" + y="116.72031" + id="text4881-2-5-8"><tspan + sodipodi:role="line" + id="tspan9402" + x="95.678581" + y="116.72031">4</tspan></text> + <circle + style="display:inline;fill:#999999;fill-rule:evenodd;stroke:#000000;stroke-width:0.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path31-8" + cx="186.57423" + cy="-120.269" + r="4.8780489" + transform="rotate(90)" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05556px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="118.00082" + y="188.87018" + id="text4881-2-2"><tspan + sodipodi:role="line" + id="tspan135" + x="118.00082" + y="188.87018">5</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 120.27306,171.40163 -0.003,10.29456" + id="path309" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-8" + inkscape:connection-end="#path31-8" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 120.25783,191.45221 -0.0194,8.48831" + id="path1348" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#path31-8" + inkscape:connection-end="#rect2294-9-4" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 156.29316,135.39683 -33.21634,47.18849" + id="path1350" + inkscape:connector-type="polyline" + inkscape:connector-curvature="0" + inkscape:connection-start="#rect2294-9" + inkscape:connection-end="#path31-8" + sodipodi:nodetypes="cc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Text" + style="display:inline" + transform="translate(-62.291473,-55.243919)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="138.56404" + y="134.37471" + id="text2960-2-8"><tspan + sodipodi:role="line" + id="tspan3770" + x="138.56404" + y="134.37471">Kristalle</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="100.31959" + y="207.19911" + id="text2960-2-8-5"><tspan + sodipodi:role="line" + id="tspan3770-6" + x="100.31959" + y="207.19911">Austritt</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="127.897" + y="68.085945" + id="text2960-2-8-4"><tspan + sodipodi:role="line" + id="tspan3853" + x="127.897" + y="68.085945">Feed</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="105.59402" + y="165.1544" + id="text2960-2-8-4-2"><tspan + sodipodi:role="line" + id="tspan2055" + x="105.59402" + y="165.1544">ges.</tspan><tspan + sodipodi:role="line" + id="tspan2057" + x="105.59402" + y="170.44606">Lösung</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="87.82476" + y="134.08067" + id="text2960-2-8-4-4"><tspan + sodipodi:role="line" + id="tspan3937" + x="87.82476" + y="134.08067">Dampf</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="121.51449" + y="79.440201" + id="text17927"><tspan + sodipodi:role="line" + id="tspan17925" + style="stroke-width:0.264583" + x="121.51449" + y="79.440201">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="121.51449" + y="85.613823" + id="tspan17929" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="112.10262" + y="91.980194" + id="text17927-1"><tspan + sodipodi:role="line" + id="tspan21666" + x="112.10262" + y="91.980194">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="125.833" + y="91.727364" + id="text17927-3"><tspan + sodipodi:role="line" + id="tspan21646" + x="125.833" + y="91.727364">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="103.53815" + y="110.10027" + id="text17927-9"><tspan + sodipodi:role="line" + id="tspan17925-59" + style="stroke-width:0.264583" + x="103.53815" + y="110.10027">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="103.53815" + y="116.2739" + id="tspan17929-2" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="89.312553" + y="120.18967" + id="text17927-1-6"><tspan + sodipodi:role="line" + id="tspan21666-1" + x="89.312553" + y="120.18967">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="98.061516" + y="123.94577" + id="text17927-3-15"><tspan + sodipodi:role="line" + id="tspan21646-3" + x="98.061516" + y="123.94577">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="139.91019" + y="107.76276" + id="text17927-2"><tspan + sodipodi:role="line" + id="tspan17925-0" + style="stroke-width:0.264583" + x="139.91019" + y="107.76276">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="139.91019" + y="113.93638" + id="tspan17929-7" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="134.58934" + y="121.0546" + id="text17927-1-2"><tspan + sodipodi:role="line" + id="tspan21666-14" + x="134.58934" + y="121.0546">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="148.23575" + y="120.04996" + id="text17927-3-32"><tspan + sodipodi:role="line" + id="tspan21646-2" + x="148.23575" + y="120.04996">A</tspan></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';stroke-width:0.264583" + x="122.15571" + y="155.48297" + id="text17927-29"><tspan + sodipodi:role="line" + id="tspan17925-7" + style="stroke-width:0.264583" + x="122.15571" + y="155.48297">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="122.15571" + y="161.6566" + id="tspan17929-57" /></text> + <text + xml:space="preserve" + style="font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';display:inline;stroke-width:0.264583" + x="115.73702" + y="196.06419" + id="text17927-29-8"><tspan + sodipodi:role="line" + id="tspan17925-7-5" + style="stroke-width:0.264583" + x="115.73702" + y="196.06419">C</tspan><tspan + sodipodi:role="line" + style="stroke-width:0.264583" + x="115.73702" + y="202.23782" + id="tspan17929-57-0" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="121.23235" + y="139.38945" + id="text17927-1-8"><tspan + sodipodi:role="line" + id="tspan21666-44" + x="121.23235" + y="139.38945">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="112.06072" + y="142.80972" + id="text17927-3-6"><tspan + sodipodi:role="line" + id="tspan21646-37" + x="112.06072" + y="142.80972">A</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="126.37992" + y="182.10629" + id="text17927-1-8-7"><tspan + sodipodi:role="line" + id="tspan21666-44-9" + x="126.37992" + y="182.10629">B</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.9389px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;stroke-width:0.264583" + x="114.50951" + y="180.40645" + id="text17927-3-6-9"><tspan + sodipodi:role="line" + id="tspan21646-37-7" + x="114.50951" + y="180.40645">A</tspan></text> + <g + id="g7219" + transform="translate(-36.460196,44.232117)"> + <rect + style="fill:#cccccc;fill-opacity:1;stroke-width:0.214262" + id="rect177370" + width="49.160583" + height="16.730906" + x="161.38887" + y="167.40012" /> + <g + id="g166229" + transform="translate(-33.338676,34.084856)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="204.04491" + y="139.37309" + id="text2960-2-8-5-4"><tspan + sodipodi:role="line" + id="tspan3770-6-3" + x="204.04491" + y="139.37309">Ein- und Ausgänge </tspan></text> + <rect + style="display:inline;fill:#d4aa00;stroke:#000000;stroke-width:0.177129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4-6" + width="3.2799497" + height="3.2799494" + x="39.203697" + y="236.97296" + transform="rotate(-45.647182)" /> + </g> + <g + id="g166234" + transform="translate(-11.831164,25.696034)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="182.64436" + y="155.53413" + id="text2960-2-8-5-4-9"><tspan + sodipodi:role="line" + id="tspan3770-6-3-7" + x="182.64436" + y="155.53413">Interne Größen</tspan></text> + <rect + style="display:inline;fill:#8daa00;fill-opacity:1;stroke:#000000;stroke-width:0.177129;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2294-9-4-6-0" + width="3.2799497" + height="3.2799494" + x="12.806045" + y="233.35071" + transform="rotate(-45.647182)" /> + </g> + </g> + <text + xml:space="preserve" + transform="matrix(0.26458333,0,0,0.26458333,62.291465,55.243919)" + id="text172246" + style="font-size:18.6667px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial, Normal';white-space:pre;shape-inside:url(#rect172248)" /> + </g> + <metadata + id="metadata28682"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:title>Knotenmodell_Kristallisation</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/requirements.txt b/requirements.txt index 947c3237362b98cec7fb6b74d3231de8899eb5f8..3faaafa02ab59d108b8011344f188e1c70792139 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,4 @@ voila -voila-gridstack ipysheet pandas -pyperclip \ No newline at end of file +markdown \ No newline at end of file