diff options
Diffstat (limited to 'doc/quick-tech-report')
22 files changed, 0 insertions, 8275 deletions
diff --git a/doc/quick-tech-report/.gitignore b/doc/quick-tech-report/.gitignore deleted file mode 100644 index c49262e..0000000 --- a/doc/quick-tech-report/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.out -*.bbl -*.aux -*.toc -*.blg -*.bcf -*.log -*.run.xml - -version.tex diff --git a/doc/quick-tech-report/Makefile b/doc/quick-tech-report/Makefile deleted file mode 100644 index 8a4bc75..0000000 --- a/doc/quick-tech-report/Makefile +++ /dev/null @@ -1,35 +0,0 @@ - -LAB_PATH ?= ../lab-windows - -SHELL := bash -.ONESHELL: -.SHELLFLAGS := -eu -o pipefail -c -.DELETE_ON_ERROR: -MAKEFLAGS += --warn-undefined-variables -MAKEFLAGS += --no-builtin-rules - -main_tex ?= rotohsm_paper -brief_tex ?= rotohsm_tech_report - -VERSION_STRING := $(shell git describe --tags --long --dirty) - -all: ${main_tex}.pdf ${brief_tex}.pdf - -%.pdf: %.tex rotohsm.bib version.tex - pdflatex -shell-escape $< - biber $* - pdflatex -shell-escape $< - -version.tex: ${main_tex}.tex ${brief_tex}.tex rotohsm.bib - echo "${VERSION_STRING}" > $@ - -resources/%.pdf: $(LAB_PATH)/%.ipynb - jupyter-nbconvert --to=pdf --output-dir=resources --output=$* --LatexExporter.template_file=resources/nbexport.tplx $^ - -.PHONY: clean -clean: - rm -f ${main_tex}.aux ${main_tex}.bbl ${main_tex}.bcf ${main_tex}.log ${main_tex}.blg - rm -f ${main_tex}.out ${main_tex}.run.xml texput.log - rm -f ${brief_tex}.aux ${brief_tex}.bbl ${brief_tex}.bcf ${brief_tex}.log ${brief_tex}.blg - rm -f ${brief_tex}.out ${brief_tex}.run.xml texput.log - diff --git a/doc/quick-tech-report/circuits.ipynb b/doc/quick-tech-report/circuits.ipynb deleted file mode 100644 index 2e78b30..0000000 --- a/doc/quick-tech-report/circuits.ipynb +++ /dev/null @@ -1,1115 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import schemdraw\n", - "from schemdraw import elements as elm" - ] - }, - { - "cell_type": "code", - "execution_count": 123, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n", - "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", - " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", - "<!-- Created with matplotlib (https://matplotlib.org/) -->\n", - "<svg height=\"85.434687pt\" version=\"1.1\" viewBox=\"0 0 113.22 85.434687\" width=\"113.22pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", - " <metadata>\n", - " <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n", - " <cc:Work>\n", - " <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n", - " <dc:date>2020-12-01T15:29:56.159415</dc:date>\n", - " <dc:format>image/svg+xml</dc:format>\n", - " <dc:creator>\n", - " <cc:Agent>\n", - " <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\n", - " </cc:Agent>\n", - " </dc:creator>\n", - " </cc:Work>\n", - " </rdf:RDF>\n", - " </metadata>\n", - " <defs>\n", - " <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n", - " </defs>\n", - " <g id=\"figure_1\">\n", - " <g id=\"patch_1\">\n", - " <path d=\"M 0 85.434687 \n", - "L 113.22 85.434687 \n", - "L 113.22 0 \n", - "L 0 0 \n", - "z\n", - "\" style=\"fill:none;\"/>\n", - " </g>\n", - " <g id=\"axes_1\">\n", - " <g id=\"patch_2\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 33.12 46.869687 \n", - "L 25.02 57.579687 \n", - "L 16.92 46.869687 \n", - "z\n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_3\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 81.72 57.579687 \n", - "L 89.82 46.869687 \n", - "L 97.92 57.579687 \n", - "z\n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_4\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 57.42 46.104687 \n", - "L 44.46 48.399687 \n", - "L 44.46 46.119987 \n", - "L 47.7 46.119987 \n", - "L 47.7 46.089387 \n", - "L 44.46 46.089387 \n", - "L 44.46 43.809687 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_5\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 57.42 58.344687 \n", - "L 44.46 60.639687 \n", - "L 44.46 58.359987 \n", - "L 47.7 58.359987 \n", - "L 47.7 58.329387 \n", - "L 44.46 58.329387 \n", - "L 44.46 56.049687 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_1\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 25.02 29.274687 \n", - "L 25.02 46.869687 \n", - "M 33.12 57.579687 \n", - "L 16.92 57.579687 \n", - "M 25.02 57.579687 \n", - "L 25.02 75.174687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_2\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 89.82 29.274687 \n", - "L 89.82 46.869687 \n", - "M 81.72 46.869687 \n", - "L 97.92 46.869687 \n", - "M 89.82 57.579687 \n", - "L 89.82 75.174687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_3\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 44.46 46.104687 \n", - "L 50.94 46.104687 \n", - "L 57.42 46.104687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_4\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 44.46 58.344687 \n", - "L 50.94 58.344687 \n", - "L 57.42 58.344687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_5\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 89.82 29.274687 \n", - "L 96.3 29.274687 \n", - "L 102.78 29.274687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_6\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 89.82 75.174687 \n", - "L 96.3 75.174687 \n", - "L 102.78 75.174687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_7\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 25.02 29.274687 \n", - "L 17.73 29.274687 \n", - "L 10.44 29.274687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_8\">\n", - " <path clip-path=\"url(#p4c0da9f43f)\" d=\"M 25.02 75.174687 \n", - "L 17.73 75.174687 \n", - "L 10.44 75.174687 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"text_1\">\n", - " <!-- D2 -->\n", - " <g transform=\"translate(79.97625 17.837812)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 19.671875 64.796875 \n", - "L 19.671875 8.109375 \n", - "L 31.59375 8.109375 \n", - "Q 46.6875 8.109375 53.6875 14.9375 \n", - "Q 60.6875 21.78125 60.6875 36.53125 \n", - "Q 60.6875 51.171875 53.6875 57.984375 \n", - "Q 46.6875 64.796875 31.59375 64.796875 \n", - "z\n", - "M 9.8125 72.90625 \n", - "L 30.078125 72.90625 \n", - "Q 51.265625 72.90625 61.171875 64.09375 \n", - "Q 71.09375 55.28125 71.09375 36.53125 \n", - "Q 71.09375 17.671875 61.125 8.828125 \n", - "Q 51.171875 0 30.078125 0 \n", - "L 9.8125 0 \n", - "z\n", - "\" id=\"DejaVuSans-68\"/>\n", - " <path d=\"M 19.1875 8.296875 \n", - "L 53.609375 8.296875 \n", - "L 53.609375 0 \n", - "L 7.328125 0 \n", - "L 7.328125 8.296875 \n", - "Q 12.9375 14.109375 22.625 23.890625 \n", - "Q 32.328125 33.6875 34.8125 36.53125 \n", - "Q 39.546875 41.84375 41.421875 45.53125 \n", - "Q 43.3125 49.21875 43.3125 52.78125 \n", - "Q 43.3125 58.59375 39.234375 62.25 \n", - "Q 35.15625 65.921875 28.609375 65.921875 \n", - "Q 23.96875 65.921875 18.8125 64.3125 \n", - "Q 13.671875 62.703125 7.8125 59.421875 \n", - "L 7.8125 69.390625 \n", - "Q 13.765625 71.78125 18.9375 73 \n", - "Q 24.125 74.21875 28.421875 74.21875 \n", - "Q 39.75 74.21875 46.484375 68.546875 \n", - "Q 53.21875 62.890625 53.21875 53.421875 \n", - "Q 53.21875 48.921875 51.53125 44.890625 \n", - "Q 49.859375 40.875 45.40625 35.40625 \n", - "Q 44.1875 33.984375 37.640625 27.21875 \n", - "Q 31.109375 20.453125 19.1875 8.296875 \n", - "z\n", - "\" id=\"DejaVuSans-50\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-68\"/>\n", - " <use x=\"77.001953\" xlink:href=\"#DejaVuSans-50\"/>\n", - " </g>\n", - " </g>\n", - " </g>\n", - " </g>\n", - " <defs>\n", - " <clipPath id=\"p4c0da9f43f\">\n", - " <rect height=\"52.02\" width=\"98.82\" x=\"7.2\" y=\"26.214687\"/>\n", - " </clipPath>\n", - " </defs>\n", - "</svg>\n" - ], - "text/plain": [ - "<__main__.DiodeOptocoupler at 0x7ff215993c70>" - ] - }, - "execution_count": 123, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "class DiodeOptocoupler(schemdraw.elements.compound.ElementCompound):\n", - " def __init__(self, *args, **kwargs):\n", - " unit = 1.5\n", - " super().__init__(*args, unit=unit, **kwargs)\n", - "\n", - " box = kwargs.get('box', True)\n", - " boxfill = kwargs.get('boxfill', False)\n", - " bpad = kwargs.get('boxpad', .2)\n", - " label1, label2 = kwargs.get('label1'), kwargs.get('label2')\n", - " rev1, rev2 = kwargs.get('reverse1', False), kwargs.get('reverse2', False)\n", - "\n", - " D1 = self.add(elm.Diode(d='down', reverse=rev1))\n", - " D2 = self.add(elm.Diode(d='down', reverse=rev2, at=[2, 0]))\n", - " if label1:\n", - " self.segments.append(schemdraw.segments.SegmentText(D1.start + (0, 0.5), label1))\n", - " if label2:\n", - " self.segments.append(schemdraw.segments.SegmentText(D2.start + (0, 0.5), label2))\n", - " \n", - " self.add(elm.Arrow('r', at=[.6, -unit/2 + .2], l=.4, headwidth=.15, headlength=.4))\n", - " self.add(elm.Arrow('r', at=[.6, -unit/2 - .2], l=.4, headwidth=.15, headlength=.4))\n", - "\n", - " bbox = self.get_bbox()\n", - " if box:\n", - " self.add(elm.Rect(\n", - " 'r', at=[0, 0],\n", - " corner1=[bbox.xmin-bpad, bbox.ymin-bpad],\n", - " corner2=[bbox.xmax+bpad, bbox.ymax+bpad],\n", - " fill=boxfill, zorder=0))\n", - "\n", - " A = self.add(elm.Line('r', at=D2.start, l=bpad*2))\n", - " B = self.add(elm.Line('r', at=D2.end, l=bpad*2))\n", - " C = self.add(elm.Line('l', at=D1.start, tox=bbox.xmin-bpad))\n", - " D = self.add(elm.Line('l', at=D1.end, tox=bbox.xmin-bpad))\n", - " self.anchors['anode1'] = C.end\n", - " self.anchors['cathode1'] = D.end\n", - " self.anchors['anode2'] = B.end\n", - " self.anchors['cathode2'] = A.end\n", - "DiodeOptocoupler(box=False, reverse2=True, label2='D2')" - ] - }, - { - "cell_type": "code", - "execution_count": 177, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "image/svg+xml": [ - "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n", - "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", - " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", - "<!-- Created with matplotlib (https://matplotlib.org/) -->\n", - "<svg height=\"288.27pt\" version=\"1.1\" viewBox=\"0 0 906.064375 288.27\" width=\"906.064375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", - " <metadata>\n", - " <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n", - " <cc:Work>\n", - " <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n", - " <dc:date>2020-12-01T15:40:27.785440</dc:date>\n", - " <dc:format>image/svg+xml</dc:format>\n", - " <dc:creator>\n", - " <cc:Agent>\n", - " <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title>\n", - " </cc:Agent>\n", - " </dc:creator>\n", - " </cc:Work>\n", - " </rdf:RDF>\n", - " </metadata>\n", - " <defs>\n", - " <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n", - " </defs>\n", - " <g id=\"figure_1\">\n", - " <g id=\"patch_1\">\n", - " <path d=\"M 0 288.27 \n", - "L 906.064375 288.27 \n", - "L 906.064375 0 \n", - "L 0 0 \n", - "z\n", - "\" style=\"fill:none;\"/>\n", - " </g>\n", - " <g id=\"axes_1\">\n", - " <g id=\"patch_2\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 45.124375 117.36 \n", - "C 49.420665 117.36 53.541569 115.747895 56.579505 112.878734 \n", - "C 59.617441 110.009572 61.324375 106.117607 61.324375 102.06 \n", - "C 61.324375 98.002393 59.617441 94.110428 56.579505 91.241266 \n", - "C 53.541569 88.372105 49.420665 86.76 45.124375 86.76 \n", - "C 40.828085 86.76 36.707181 88.372105 33.669245 91.241266 \n", - "C 30.631309 94.110428 28.924375 98.002393 28.924375 102.06 \n", - "C 28.924375 106.117607 30.631309 110.009572 33.669245 112.878734 \n", - "C 36.707181 115.747895 40.828085 117.36 45.124375 117.36 \n", - "z\n", - "\" style=\"fill:none;stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_3\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 262.204375 165.555 \n", - "L 254.104375 176.265 \n", - "L 246.004375 165.555 \n", - "z\n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_4\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 310.804375 176.265 \n", - "L 318.904375 165.555 \n", - "L 327.004375 176.265 \n", - "z\n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_5\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 301.084375 164.79 \n", - "L 288.124375 167.085 \n", - "L 288.124375 164.8053 \n", - "L 291.364375 164.8053 \n", - "L 291.364375 164.7747 \n", - "L 288.124375 164.7747 \n", - "L 288.124375 162.495 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_6\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 301.084375 177.03 \n", - "L 288.124375 179.325 \n", - "L 288.124375 177.0453 \n", - "L 291.364375 177.0453 \n", - "L 291.364375 177.0147 \n", - "L 288.124375 177.0147 \n", - "L 288.124375 174.735 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_7\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 239.524375 230.886 \n", - "L 232.495828 229.226482 \n", - "L 234.593849 226.914773 \n", - "L 227.039832 220.799617 \n", - "L 227.060918 220.776383 \n", - "L 234.614935 226.89154 \n", - "L 236.712956 224.579832 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_1\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 45.124375 147.96 \n", - "L 45.124375 117.36 \n", - "L 45.124375 117.36 \n", - "M 45.124375 86.76 \n", - "L 45.124375 86.76 \n", - "L 45.124375 56.16 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_2\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 48.364375 109.71 \n", - "L 41.884375 109.71 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_3\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 45.124375 97.47 \n", - "L 45.124375 91.35 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_4\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 48.364375 94.41 \n", - "L 41.884375 94.41 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_5\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 45.124375 56.16 \n", - "L 142.324375 56.16 \n", - "L 239.524375 56.16 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_6\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 239.524375 56.16 \n", - "L 239.524375 86.76 \n", - "L 247.624375 89.31 \n", - "L 231.424375 94.41 \n", - "L 247.624375 99.51 \n", - "L 231.424375 104.61 \n", - "L 247.624375 109.71 \n", - "L 231.424375 114.81 \n", - "L 239.524375 117.36 \n", - "L 239.524375 147.96 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_7\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 254.104375 147.96 \n", - "L 254.104375 165.555 \n", - "M 262.204375 176.265 \n", - "L 246.004375 176.265 \n", - "M 254.104375 176.265 \n", - "L 254.104375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_8\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 318.904375 147.96 \n", - "L 318.904375 165.555 \n", - "M 310.804375 165.555 \n", - "L 327.004375 165.555 \n", - "M 318.904375 176.265 \n", - "L 318.904375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_9\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 273.544375 164.79 \n", - "L 280.024375 164.79 \n", - "L 286.504375 164.79 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_10\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 273.544375 177.03 \n", - "L 280.024375 177.03 \n", - "L 286.504375 177.03 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_11\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 318.904375 147.96 \n", - "L 325.384375 147.96 \n", - "L 331.864375 147.96 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_12\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 318.904375 193.86 \n", - "L 325.384375 193.86 \n", - "L 331.864375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_13\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 254.104375 147.96 \n", - "L 246.814375 147.96 \n", - "L 239.524375 147.96 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_14\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 254.104375 193.86 \n", - "L 246.814375 193.86 \n", - "L 239.524375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_15\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 215.170375 215.178 \n", - "L 227.050375 215.178 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_16\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 227.050375 203.958 \n", - "L 227.050375 226.398 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_17\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 227.050375 209.568 \n", - "L 239.524375 199.47 \n", - "L 239.524375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_18\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 227.050375 220.788 \n", - "L 239.524375 230.886 \n", - "L 239.524375 236.496 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_19\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 239.524375 236.496 \n", - "L 239.524375 247.971 \n", - "L 239.524375 259.446 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_20\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 239.524375 259.446 \n", - "L 142.324375 259.446 \n", - "L 45.124375 259.446 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_21\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 45.124375 259.446 \n", - "L 45.124375 203.703 \n", - "L 45.124375 147.96 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_22\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 215.170375 215.178 \n", - "L 182.770375 215.178 \n", - "L 180.070375 222.828 \n", - "L 174.670375 207.528 \n", - "L 169.270375 222.828 \n", - "L 163.870375 207.528 \n", - "L 158.470375 222.828 \n", - "L 153.070375 207.528 \n", - "L 150.370375 215.178 \n", - "L 117.970375 215.178 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_23\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 331.864375 147.96 \n", - "L 331.864375 79.11 \n", - "L 331.864375 10.26 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_24\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 331.864375 10.26 \n", - "L 574.864375 10.26 \n", - "L 817.864375 10.26 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_25\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 331.864375 193.86 \n", - "L 356.164375 193.86 \n", - "L 380.464375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_26\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 193.86 \n", - "L 404.764375 193.86 \n", - "L 429.064375 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_27\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 429.064375 212.985 \n", - "L 429.064375 174.735 \n", - "L 499.212433 212.985 \n", - "L 429.064375 251.235 \n", - "L 429.064375 212.985 \n", - "M 499.212433 212.985 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_28\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 434.592882 193.86 \n", - "L 441.072882 193.86 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_29\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 434.592882 232.11 \n", - "L 441.072882 232.11 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_30\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 437.832882 235.17 \n", - "L 437.832882 229.05 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_31\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 193.86 \n", - "L 380.464375 147.96 \n", - "L 380.464375 102.06 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_32\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 102.06 \n", - "L 412.864375 102.06 \n", - "L 415.564375 94.41 \n", - "L 420.964375 109.71 \n", - "L 426.364375 94.41 \n", - "L 431.764375 109.71 \n", - "L 437.164375 94.41 \n", - "L 442.564375 109.71 \n", - "L 445.264375 102.06 \n", - "L 477.664375 102.06 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_33\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 477.664375 102.06 \n", - "L 501.964375 102.06 \n", - "L 526.264375 102.06 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_34\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 526.264375 102.06 \n", - "L 526.264375 157.5225 \n", - "L 526.264375 212.985 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_35\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 526.264375 212.985 \n", - "L 512.738404 212.985 \n", - "L 499.212433 212.985 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_36\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 102.06 \n", - "L 380.464375 79.11 \n", - "L 380.464375 56.16 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_37\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 56.16 \n", - "L 426.148375 56.16 \n", - "M 426.148375 48.51 \n", - "L 426.148375 63.81 \n", - "M 431.980375 48.51 \n", - "L 431.980375 63.81 \n", - "M 431.980375 56.16 \n", - "L 477.664375 56.16 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_38\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 477.664375 56.16 \n", - "L 501.964375 56.16 \n", - "L 526.264375 56.16 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_39\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 526.264375 56.16 \n", - "L 526.264375 79.11 \n", - "L 526.264375 102.06 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_40\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 429.064375 232.11 \n", - "L 419.344375 232.11 \n", - "L 409.624375 232.11 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_41\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 409.624375 232.11 \n", - "L 409.624375 255.06 \n", - "L 409.624375 278.01 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"line2d_42\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 409.624375 278.01 \n", - "L 652.624375 278.01 \n", - "L 895.624375 278.01 \n", - "\" style=\"fill:none;stroke:#000000;stroke-linecap:round;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"text_1\">\n", - " <!-- 5V -->\n", - " <g transform=\"translate(7.2 105.923125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 10.796875 72.90625 \n", - "L 49.515625 72.90625 \n", - "L 49.515625 64.59375 \n", - "L 19.828125 64.59375 \n", - "L 19.828125 46.734375 \n", - "Q 21.96875 47.46875 24.109375 47.828125 \n", - "Q 26.265625 48.1875 28.421875 48.1875 \n", - "Q 40.625 48.1875 47.75 41.5 \n", - "Q 54.890625 34.8125 54.890625 23.390625 \n", - "Q 54.890625 11.625 47.5625 5.09375 \n", - "Q 40.234375 -1.421875 26.90625 -1.421875 \n", - "Q 22.3125 -1.421875 17.546875 -0.640625 \n", - "Q 12.796875 0.140625 7.71875 1.703125 \n", - "L 7.71875 11.625 \n", - "Q 12.109375 9.234375 16.796875 8.0625 \n", - "Q 21.484375 6.890625 26.703125 6.890625 \n", - "Q 35.15625 6.890625 40.078125 11.328125 \n", - "Q 45.015625 15.765625 45.015625 23.390625 \n", - "Q 45.015625 31 40.078125 35.4375 \n", - "Q 35.15625 39.890625 26.703125 39.890625 \n", - "Q 22.75 39.890625 18.8125 39.015625 \n", - "Q 14.890625 38.140625 10.796875 36.28125 \n", - "z\n", - "\" id=\"DejaVuSans-53\"/>\n", - " <path d=\"M 28.609375 0 \n", - "L 0.78125 72.90625 \n", - "L 11.078125 72.90625 \n", - "L 34.1875 11.53125 \n", - "L 57.328125 72.90625 \n", - "L 67.578125 72.90625 \n", - "L 39.796875 0 \n", - "z\n", - "\" id=\"DejaVuSans-86\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-53\"/>\n", - " <use x=\"63.623047\" xlink:href=\"#DejaVuSans-86\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_2\">\n", - " <!-- R1 -->\n", - " <g transform=\"translate(209.549062 105.923125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 44.390625 34.1875 \n", - "Q 47.5625 33.109375 50.5625 29.59375 \n", - "Q 53.5625 26.078125 56.59375 19.921875 \n", - "L 66.609375 0 \n", - "L 56 0 \n", - "L 46.6875 18.703125 \n", - "Q 43.0625 26.03125 39.671875 28.421875 \n", - "Q 36.28125 30.8125 30.421875 30.8125 \n", - "L 19.671875 30.8125 \n", - "L 19.671875 0 \n", - "L 9.8125 0 \n", - "L 9.8125 72.90625 \n", - "L 32.078125 72.90625 \n", - "Q 44.578125 72.90625 50.734375 67.671875 \n", - "Q 56.890625 62.453125 56.890625 51.90625 \n", - "Q 56.890625 45.015625 53.6875 40.46875 \n", - "Q 50.484375 35.9375 44.390625 34.1875 \n", - "z\n", - "M 19.671875 64.796875 \n", - "L 19.671875 38.921875 \n", - "L 32.078125 38.921875 \n", - "Q 39.203125 38.921875 42.84375 42.21875 \n", - "Q 46.484375 45.515625 46.484375 51.90625 \n", - "Q 46.484375 58.296875 42.84375 61.546875 \n", - "Q 39.203125 64.796875 32.078125 64.796875 \n", - "z\n", - "\" id=\"DejaVuSans-82\"/>\n", - " <path d=\"M 12.40625 8.296875 \n", - "L 28.515625 8.296875 \n", - "L 28.515625 63.921875 \n", - "L 10.984375 60.40625 \n", - "L 10.984375 69.390625 \n", - "L 28.421875 72.90625 \n", - "L 38.28125 72.90625 \n", - "L 38.28125 8.296875 \n", - "L 54.390625 8.296875 \n", - "L 54.390625 0 \n", - "L 12.40625 0 \n", - "z\n", - "\" id=\"DejaVuSans-49\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-82\"/>\n", - " <use x=\"69.482422\" xlink:href=\"#DejaVuSans-49\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_3\">\n", - " <!-- D1 -->\n", - " <g transform=\"translate(244.260625 136.523125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 19.671875 64.796875 \n", - "L 19.671875 8.109375 \n", - "L 31.59375 8.109375 \n", - "Q 46.6875 8.109375 53.6875 14.9375 \n", - "Q 60.6875 21.78125 60.6875 36.53125 \n", - "Q 60.6875 51.171875 53.6875 57.984375 \n", - "Q 46.6875 64.796875 31.59375 64.796875 \n", - "z\n", - "M 9.8125 72.90625 \n", - "L 30.078125 72.90625 \n", - "Q 51.265625 72.90625 61.171875 64.09375 \n", - "Q 71.09375 55.28125 71.09375 36.53125 \n", - "Q 71.09375 17.671875 61.125 8.828125 \n", - "Q 51.171875 0 30.078125 0 \n", - "L 9.8125 0 \n", - "z\n", - "\" id=\"DejaVuSans-68\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-68\"/>\n", - " <use x=\"77.001953\" xlink:href=\"#DejaVuSans-49\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_4\">\n", - " <!-- D2 -->\n", - " <g transform=\"translate(309.060625 136.523125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 19.1875 8.296875 \n", - "L 53.609375 8.296875 \n", - "L 53.609375 0 \n", - "L 7.328125 0 \n", - "L 7.328125 8.296875 \n", - "Q 12.9375 14.109375 22.625 23.890625 \n", - "Q 32.328125 33.6875 34.8125 36.53125 \n", - "Q 39.546875 41.84375 41.421875 45.53125 \n", - "Q 43.3125 49.21875 43.3125 52.78125 \n", - "Q 43.3125 58.59375 39.234375 62.25 \n", - "Q 35.15625 65.921875 28.609375 65.921875 \n", - "Q 23.96875 65.921875 18.8125 64.3125 \n", - "Q 13.671875 62.703125 7.8125 59.421875 \n", - "L 7.8125 69.390625 \n", - "Q 13.765625 71.78125 18.9375 73 \n", - "Q 24.125 74.21875 28.421875 74.21875 \n", - "Q 39.75 74.21875 46.484375 68.546875 \n", - "Q 53.21875 62.890625 53.21875 53.421875 \n", - "Q 53.21875 48.921875 51.53125 44.890625 \n", - "Q 49.859375 40.875 45.40625 35.40625 \n", - "Q 44.1875 33.984375 37.640625 27.21875 \n", - "Q 31.109375 20.453125 19.1875 8.296875 \n", - "z\n", - "\" id=\"DejaVuSans-50\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-68\"/>\n", - " <use x=\"77.001953\" xlink:href=\"#DejaVuSans-50\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_5\">\n", - " <!-- Q1 -->\n", - " <g transform=\"translate(242.764375 219.041125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 39.40625 66.21875 \n", - "Q 28.65625 66.21875 22.328125 58.203125 \n", - "Q 16.015625 50.203125 16.015625 36.375 \n", - "Q 16.015625 22.609375 22.328125 14.59375 \n", - "Q 28.65625 6.59375 39.40625 6.59375 \n", - "Q 50.140625 6.59375 56.421875 14.59375 \n", - "Q 62.703125 22.609375 62.703125 36.375 \n", - "Q 62.703125 50.203125 56.421875 58.203125 \n", - "Q 50.140625 66.21875 39.40625 66.21875 \n", - "z\n", - "M 53.21875 1.3125 \n", - "L 66.21875 -12.890625 \n", - "L 54.296875 -12.890625 \n", - "L 43.5 -1.21875 \n", - "Q 41.890625 -1.3125 41.03125 -1.359375 \n", - "Q 40.1875 -1.421875 39.40625 -1.421875 \n", - "Q 24.03125 -1.421875 14.8125 8.859375 \n", - "Q 5.609375 19.140625 5.609375 36.375 \n", - "Q 5.609375 53.65625 14.8125 63.9375 \n", - "Q 24.03125 74.21875 39.40625 74.21875 \n", - "Q 54.734375 74.21875 63.90625 63.9375 \n", - "Q 73.09375 53.65625 73.09375 36.375 \n", - "Q 73.09375 23.6875 67.984375 14.640625 \n", - "Q 62.890625 5.609375 53.21875 1.3125 \n", - "z\n", - "\" id=\"DejaVuSans-81\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-81\"/>\n", - " <use x=\"78.710938\" xlink:href=\"#DejaVuSans-49\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_6\">\n", - " <!-- R2 -->\n", - " <g transform=\"translate(157.252719 201.556437)scale(0.14 -0.14)\">\n", - " <use xlink:href=\"#DejaVuSans-82\"/>\n", - " <use x=\"69.482422\" xlink:href=\"#DejaVuSans-50\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_7\">\n", - " <!-- R3 -->\n", - " <g transform=\"translate(419.746719 88.438437)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 40.578125 39.3125 \n", - "Q 47.65625 37.796875 51.625 33 \n", - "Q 55.609375 28.21875 55.609375 21.1875 \n", - "Q 55.609375 10.40625 48.1875 4.484375 \n", - "Q 40.765625 -1.421875 27.09375 -1.421875 \n", - "Q 22.515625 -1.421875 17.65625 -0.515625 \n", - "Q 12.796875 0.390625 7.625 2.203125 \n", - "L 7.625 11.71875 \n", - "Q 11.71875 9.328125 16.59375 8.109375 \n", - "Q 21.484375 6.890625 26.8125 6.890625 \n", - "Q 36.078125 6.890625 40.9375 10.546875 \n", - "Q 45.796875 14.203125 45.796875 21.1875 \n", - "Q 45.796875 27.640625 41.28125 31.265625 \n", - "Q 36.765625 34.90625 28.71875 34.90625 \n", - "L 20.21875 34.90625 \n", - "L 20.21875 43.015625 \n", - "L 29.109375 43.015625 \n", - "Q 36.375 43.015625 40.234375 45.921875 \n", - "Q 44.09375 48.828125 44.09375 54.296875 \n", - "Q 44.09375 59.90625 40.109375 62.90625 \n", - "Q 36.140625 65.921875 28.71875 65.921875 \n", - "Q 24.65625 65.921875 20.015625 65.03125 \n", - "Q 15.375 64.15625 9.8125 62.3125 \n", - "L 9.8125 71.09375 \n", - "Q 15.4375 72.65625 20.34375 73.4375 \n", - "Q 25.25 74.21875 29.59375 74.21875 \n", - "Q 40.828125 74.21875 47.359375 69.109375 \n", - "Q 53.90625 64.015625 53.90625 55.328125 \n", - "Q 53.90625 49.265625 50.4375 45.09375 \n", - "Q 46.96875 40.921875 40.578125 39.3125 \n", - "z\n", - "\" id=\"DejaVuSans-51\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-82\"/>\n", - " <use x=\"69.482422\" xlink:href=\"#DejaVuSans-51\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"text_8\">\n", - " <!-- C1 -->\n", - " <g transform=\"translate(419.722656 42.538437)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M 64.40625 67.28125 \n", - "L 64.40625 56.890625 \n", - "Q 59.421875 61.53125 53.78125 63.8125 \n", - "Q 48.140625 66.109375 41.796875 66.109375 \n", - "Q 29.296875 66.109375 22.65625 58.46875 \n", - "Q 16.015625 50.828125 16.015625 36.375 \n", - "Q 16.015625 21.96875 22.65625 14.328125 \n", - "Q 29.296875 6.6875 41.796875 6.6875 \n", - "Q 48.140625 6.6875 53.78125 8.984375 \n", - "Q 59.421875 11.28125 64.40625 15.921875 \n", - "L 64.40625 5.609375 \n", - "Q 59.234375 2.09375 53.4375 0.328125 \n", - "Q 47.65625 -1.421875 41.21875 -1.421875 \n", - "Q 24.65625 -1.421875 15.125 8.703125 \n", - "Q 5.609375 18.84375 5.609375 36.375 \n", - "Q 5.609375 53.953125 15.125 64.078125 \n", - "Q 24.65625 74.21875 41.21875 74.21875 \n", - "Q 47.75 74.21875 53.53125 72.484375 \n", - "Q 59.328125 70.75 64.40625 67.28125 \n", - "z\n", - "\" id=\"DejaVuSans-67\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-67\"/>\n", - " <use x=\"69.824219\" xlink:href=\"#DejaVuSans-49\"/>\n", - " </g>\n", - " </g>\n", - " <g id=\"patch_8\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 117.970375 217.473 \n", - "C 118.614819 217.473 119.232954 217.231184 119.688644 216.80081 \n", - "C 120.144335 216.370436 120.400375 215.786641 120.400375 215.178 \n", - "C 120.400375 214.569359 120.144335 213.985564 119.688644 213.55519 \n", - "C 119.232954 213.124816 118.614819 212.883 117.970375 212.883 \n", - "C 117.325931 212.883 116.707796 213.124816 116.252106 213.55519 \n", - "C 115.796415 213.985564 115.540375 214.569359 115.540375 215.178 \n", - "C 115.540375 215.786641 115.796415 216.370436 116.252106 216.80081 \n", - "C 116.707796 217.231184 117.325931 217.473 117.970375 217.473 \n", - "z\n", - "\" style=\"fill:#ffffff;stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_9\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 196.155 \n", - "C 381.108819 196.155 381.726954 195.913184 382.182644 195.48281 \n", - "C 382.638335 195.052436 382.894375 194.468641 382.894375 193.86 \n", - "C 382.894375 193.251359 382.638335 192.667564 382.182644 192.23719 \n", - "C 381.726954 191.806816 381.108819 191.565 380.464375 191.565 \n", - "C 379.819931 191.565 379.201796 191.806816 378.746106 192.23719 \n", - "C 378.290415 192.667564 378.034375 193.251359 378.034375 193.86 \n", - "C 378.034375 194.468641 378.290415 195.052436 378.746106 195.48281 \n", - "C 379.201796 195.913184 379.819931 196.155 380.464375 196.155 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_10\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 380.464375 104.355 \n", - "C 381.108819 104.355 381.726954 104.113184 382.182644 103.68281 \n", - "C 382.638335 103.252436 382.894375 102.668641 382.894375 102.06 \n", - "C 382.894375 101.451359 382.638335 100.867564 382.182644 100.43719 \n", - "C 381.726954 100.006816 381.108819 99.765 380.464375 99.765 \n", - "C 379.819931 99.765 379.201796 100.006816 378.746106 100.43719 \n", - "C 378.290415 100.867564 378.034375 101.451359 378.034375 102.06 \n", - "C 378.034375 102.668641 378.290415 103.252436 378.746106 103.68281 \n", - "C 379.201796 104.113184 379.819931 104.355 380.464375 104.355 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_11\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 526.264375 104.355 \n", - "C 526.908819 104.355 527.526954 104.113184 527.982644 103.68281 \n", - "C 528.438335 103.252436 528.694375 102.668641 528.694375 102.06 \n", - "C 528.694375 101.451359 528.438335 100.867564 527.982644 100.43719 \n", - "C 527.526954 100.006816 526.908819 99.765 526.264375 99.765 \n", - "C 525.619931 99.765 525.001796 100.006816 524.546106 100.43719 \n", - "C 524.090415 100.867564 523.834375 101.451359 523.834375 102.06 \n", - "C 523.834375 102.668641 524.090415 103.252436 524.546106 103.68281 \n", - "C 525.001796 104.113184 525.619931 104.355 526.264375 104.355 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"patch_12\">\n", - " <path clip-path=\"url(#pa00ebd309e)\" d=\"M 526.264375 215.28 \n", - "C 526.908819 215.28 527.526954 215.038184 527.982644 214.60781 \n", - "C 528.438335 214.177436 528.694375 213.593641 528.694375 212.985 \n", - "C 528.694375 212.376359 528.438335 211.792564 527.982644 211.36219 \n", - "C 527.526954 210.931816 526.908819 210.69 526.264375 210.69 \n", - "C 525.619931 210.69 525.001796 210.931816 524.546106 211.36219 \n", - "C 524.090415 211.792564 523.834375 212.376359 523.834375 212.985 \n", - "C 523.834375 213.593641 524.090415 214.177436 524.546106 214.60781 \n", - "C 525.001796 215.038184 525.619931 215.28 526.264375 215.28 \n", - "z\n", - "\" style=\"stroke:#000000;stroke-linejoin:miter;stroke-width:2;\"/>\n", - " </g>\n", - " <g id=\"text_9\">\n", - " <!-- TX in -->\n", - " <g transform=\"translate(76.948187 219.041125)scale(0.14 -0.14)\">\n", - " <defs>\n", - " <path d=\"M -0.296875 72.90625 \n", - "L 61.375 72.90625 \n", - "L 61.375 64.59375 \n", - "L 35.5 64.59375 \n", - "L 35.5 0 \n", - "L 25.59375 0 \n", - "L 25.59375 64.59375 \n", - "L -0.296875 64.59375 \n", - "z\n", - "\" id=\"DejaVuSans-84\"/>\n", - " <path d=\"M 6.296875 72.90625 \n", - "L 16.890625 72.90625 \n", - "L 35.015625 45.796875 \n", - "L 53.21875 72.90625 \n", - "L 63.8125 72.90625 \n", - "L 40.375 37.890625 \n", - "L 65.375 0 \n", - "L 54.78125 0 \n", - "L 34.28125 31 \n", - "L 13.625 0 \n", - "L 2.984375 0 \n", - "L 29 38.921875 \n", - "z\n", - "\" id=\"DejaVuSans-88\"/>\n", - " <path id=\"DejaVuSans-32\"/>\n", - " <path d=\"M 9.421875 54.6875 \n", - "L 18.40625 54.6875 \n", - "L 18.40625 0 \n", - "L 9.421875 0 \n", - "z\n", - "M 9.421875 75.984375 \n", - "L 18.40625 75.984375 \n", - "L 18.40625 64.59375 \n", - "L 9.421875 64.59375 \n", - "z\n", - "\" id=\"DejaVuSans-105\"/>\n", - " <path d=\"M 54.890625 33.015625 \n", - "L 54.890625 0 \n", - "L 45.90625 0 \n", - "L 45.90625 32.71875 \n", - "Q 45.90625 40.484375 42.875 44.328125 \n", - "Q 39.84375 48.1875 33.796875 48.1875 \n", - "Q 26.515625 48.1875 22.3125 43.546875 \n", - "Q 18.109375 38.921875 18.109375 30.90625 \n", - "L 18.109375 0 \n", - "L 9.078125 0 \n", - "L 9.078125 54.6875 \n", - "L 18.109375 54.6875 \n", - "L 18.109375 46.1875 \n", - "Q 21.34375 51.125 25.703125 53.5625 \n", - "Q 30.078125 56 35.796875 56 \n", - "Q 45.21875 56 50.046875 50.171875 \n", - "Q 54.890625 44.34375 54.890625 33.015625 \n", - "z\n", - "\" id=\"DejaVuSans-110\"/>\n", - " </defs>\n", - " <use xlink:href=\"#DejaVuSans-84\"/>\n", - " <use x=\"61.083984\" xlink:href=\"#DejaVuSans-88\"/>\n", - " <use x=\"129.589844\" xlink:href=\"#DejaVuSans-32\"/>\n", - " <use x=\"161.376953\" xlink:href=\"#DejaVuSans-105\"/>\n", - " <use x=\"189.160156\" xlink:href=\"#DejaVuSans-110\"/>\n", - " </g>\n", - " </g>\n", - " </g>\n", - " </g>\n", - " <defs>\n", - " <clipPath id=\"pa00ebd309e\">\n", - " <rect height=\"273.87\" width=\"873.18\" x=\"25.684375\" y=\"7.2\"/>\n", - " </clipPath>\n", - " </defs>\n", - "</svg>\n" - ], - "text/plain": [ - "<schemdraw.backends.mpl.Figure at 0x7ff215fbb970>" - ] - }, - "execution_count": 177, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "d = schemdraw.Drawing()\n", - "V1 = d.add(elm.SourceV(label='5V'))\n", - "d.add(elm.Line(d='right', l=d.unit*2))\n", - "d.add(elm.Resistor(d='down', label='R1'))\n", - "coupler = d.add(DiodeOptocoupler(d='right', box=False, label1='D1', label2='D2', anchor='anode1', reverse2=True))\n", - "d.here = coupler.cathode1\n", - "Q1 = d.add(elm.BjtNpn(d='right', anchor='collector', label='Q1'))\n", - "d.add(elm.Line(xy=Q1.emitter, d='down', l=d.unit*0.25))\n", - "d.add(elm.Line(d='left', tox=V1.start))\n", - "d.add(elm.Line(d='up', toy=V1.start))\n", - "d.add(elm.Resistor(xy=Q1.base, d='left', label='R2'))\n", - "d.add(elm.Dot(open=True, lftlabel='TX in'))\n", - "\n", - "d.add(elm.Line(xy=coupler.cathode2, d='up', toy=V1.end + d.unit*0.5))\n", - "vbus = d.add(elm.Line(d='right', l=d.unit*5))\n", - "\n", - "d.add(elm.Line(xy=coupler.anode2, d='right', l=d.unit*0.5))\n", - "j1 = d.add(elm.Dot())\n", - "d.add(elm.Line(l=d.unit*0.5))\n", - "amp1 = d.add(elm.Opamp(d='right', anchor='in1'))\n", - "\n", - "d.add(elm.Line(xy=j1.xy, d='up', l=d.unit))\n", - "j2 = d.add(elm.Dot())\n", - "\n", - "d.add(elm.Resistor(label='R3', d='right'))\n", - "d.add(elm.Line(l=d.unit*0.5))\n", - "j3 = d.add(elm.Dot())\n", - "d.add(elm.Line(d='down', toy=amp1.out))\n", - "j4 = d.add(elm.Dot())\n", - "d.add(elm.Line('left', tox=amp1.out))\n", - "\n", - "d.add(elm.Line('up', xy=j2.xy, l=d.unit*0.5))\n", - "d.add(elm.Capacitor(label='C1', d='right'))\n", - "d.add(elm.Line(tox=j3.xy))\n", - "d.add(elm.Line(d='down', toy=j3.xy))\n", - "\n", - "d.add(elm.Line(d='left', xy=amp1.in2, l=d.unit*0.2))\n", - "d.add(elm.Line(d='down', l=d.unit*0.5))\n", - "vgnd_bus = d.add(elm.Line(d='right', l=d.unit*5))\n", - "\n", - "d.draw()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "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.8.6" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/doc/quick-tech-report/concept_vis_one_axis.pdf b/doc/quick-tech-report/concept_vis_one_axis.pdf Binary files differdeleted file mode 100644 index ea37280..0000000 --- a/doc/quick-tech-report/concept_vis_one_axis.pdf +++ /dev/null diff --git a/doc/quick-tech-report/concept_vis_one_axis.svg b/doc/quick-tech-report/concept_vis_one_axis.svg deleted file mode 100644 index f3e909b..0000000 --- a/doc/quick-tech-report/concept_vis_one_axis.svg +++ /dev/null @@ -1,344 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="41mm" - height="48.763126mm" - viewBox="0 0 41 48.763126" - version="1.1" - id="svg8" - sodipodi:docname="concept_vis_one_axis.svg" - inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> - <defs - id="defs2"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="16.373562 : -33.570779 : 0" - inkscape:vp_y="2.5410171e-15 : 41.497959 : 0" - inkscape:vp_z="-28.645893 : 3.5081102e-15 : 0" - inkscape:persp3d-origin="18.745461 : 53.831281 : 1" - id="perspective983" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="3.68" - inkscape:cx="85.615364" - inkscape:cy="90.945457" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:snap-global="false" - inkscape:window-width="1920" - inkscape:window-height="1030" - inkscape:window-x="0" - inkscape:window-y="50" - inkscape:window-maximized="0" - fit-margin-top="3" - fit-margin-left="3" - fit-margin-right="3" - fit-margin-bottom="3" /> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-42.455104,-162.71165)"> - <g - id="g1059" - style="fill:#e59cb7;fill-opacity:1" - transform="matrix(0.27419209,0,0,0.27419209,32.991674,151.31264)"> - <rect - y="123.61843" - x="72.964539" - height="50.270836" - width="73.766556" - id="rect1142-9" - style="opacity:1;vector-effect:none;fill:#e59cb7;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="90.734512" - x="72.964539" - height="50.270836" - width="73.766556" - id="rect1142" - style="opacity:1;vector-effect:none;fill:#e59cb7;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <ellipse - style="opacity:1;vector-effect:none;fill:#d25483;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path815-2" - cx="63.111061" - cy="198.99176" - rx="10.11308" - ry="4.0855379" /> - <ellipse - style="opacity:1;vector-effect:none;fill:#efc1d2;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path815" - cx="63.111061" - cy="176.19139" - rx="10.11308" - ry="4.0855379" /> - <g - id="g1140" - transform="matrix(0.27419209,0,0,0.27419209,31.744781,151.76936)"> - <ellipse - ry="0.91515708" - rx="2.2653215" - cy="90.401382" - cx="108.77869" - id="path815-5-8" - style="opacity:1;vector-effect:none;fill:#6699ff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <ellipse - ry="0.91515708" - rx="2.2653215" - cy="173.55614" - cx="108.77869" - id="path815-5-8-9" - style="opacity:1;vector-effect:none;fill:#6699ff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <path - id="rect999-0-6" - transform="scale(0.26458333)" - d="m 362.64453,390.1582 v 26.78711 h -18.21484 v 188.50977 h 7.55859 l -37.83008,29.16015 h 45.45703 l 48.48633,-37.375 V 390.1582 Z" - style="opacity:1;vector-effect:none;fill:#ffe57e;fill-opacity:1;stroke:none;stroke-width:0.37795272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - inkscape:connector-curvature="0" /> - <rect - transform="matrix(1,0,0.79201025,-0.61050779,0,0)" - y="-185.28603" - x="229.86925" - height="16.197948" - width="12.027128" - id="rect999-0" - style="opacity:1;vector-effect:none;fill:#fff2bd;fill-opacity:1;stroke:none;stroke-width:0.12798361;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <rect - y="113.11856" - x="83.120819" - height="54.790253" - width="12.027128" - id="rect999" - style="opacity:1;vector-effect:none;fill:#fecb00;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <g - id="g1063" - transform="matrix(0.27419209,0,0,0.27419209,32.991674,151.31264)"> - <rect - y="61.600155" - x="106.51337" - height="141.3616" - width="4.530643" - id="rect843" - style="opacity:1;vector-effect:none;fill:#ffab66;fill-opacity:1;stroke:none;stroke-width:0.10000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - <ellipse - ry="0.91515708" - rx="2.2653215" - cy="202.97786" - cx="108.77869" - id="path815-5-8-6" - style="opacity:1;vector-effect:none;fill:#ffab66;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> - </g> - <path - inkscape:connector-curvature="0" - style="opacity:1;vector-effect:none;fill:#efc1d2;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 52.997974,176.19133 a 10.113081,4.085538 0 0 0 10.113033,4.08556 10.113081,4.085538 0 0 0 10.113174,-4.08556 z" - id="path815-56" /> - <ellipse - style="opacity:1;vector-effect:none;fill:#c35800;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path815-5" - cx="62.817928" - cy="168.21754" - rx="0.62113321" - ry="0.25092882" /> - <path - inkscape:connector-curvature="0" - style="opacity:1;vector-effect:none;fill:#d25483;fill-opacity:1;stroke:none;stroke-width:0.02741921;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 52.997973,198.9917 a 10.11308,4.0855378 0 0 0 10.113033,4.08557 10.11308,4.0855378 0 0 0 10.113175,-4.08557 z" - id="path815-56-9" /> - <circle - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#404040;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path1173" - cx="62.916512" - cy="-198.78389" - r="2.6841922" - transform="scale(1,-1)" /> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 65.061099,200.50243 4.832125,4.83213" - id="path916" - inkscape:connector-curvature="0" /> - <flowRoot - xml:space="preserve" - id="flowRoot932" - style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773033,0,0,0.52773033,-194.48069,94.704073)"><flowRegion - id="flowRegion934" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect - id="rect936" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">5</flowPara></flowRoot> <flowRoot - xml:space="preserve" - id="flowRoot932-4" - style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773033,0,0,0.52773033,-219.39342,56.516197)"><flowRegion - id="flowRegion934-7" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect - id="rect936-8" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-6" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">1</flowPara></flowRoot> <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 55.853748,191.05184 -6.884056,7.25047" - id="path916-2-3" - inkscape:connector-curvature="0" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-4-7" - style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773033,0,0,0.52773033,-219.22675,87.653879)"><flowRegion - id="flowRegion934-7-7" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect - id="rect936-8-2" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-6-3" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">3</flowPara></flowRoot> <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 77.179158,195.62747 69.269136,191.4549" - id="path916-2-3-7" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-2" - style="font-style:normal;font-weight:normal;font-size:8.02177334px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773033,0,0,0.52773033,-187.27112,84.532865)"><flowRegion - id="flowRegion934-5" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px"><rect - id="rect936-3" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-7" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177334px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">2</flowPara></flowRoot> <circle - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.46612653;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path1173-6" - cx="62.916512" - cy="-198.78389" - r="2.6841922" - transform="scale(1,-1)" /> - <path - inkscape:connector-curvature="0" - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.46612656;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" - d="m 65.058715,200.26718 a 0.23308658,0.23308658 0 0 0 -0.162239,0.4 l 2.095919,2.09592 a 10.113081,4.085538 0 0 0 0.553451,-0.10528 l -2.319934,-2.31993 a 0.23308658,0.23308658 0 0 0 -0.167197,-0.0707 z" - id="path916-8" /> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 62.41665,170.82997 48.545276,168.19178" - id="path916-2-3-3" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <g - sodipodi:type="inkscape:box3d" - id="g974" - style="opacity:1;vector-effect:none;fill:#66e4ff;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - inkscape:perspectiveID="#perspective983" - inkscape:corner0="0.56858819 : 0.029202637 : 0 : 1" - inkscape:corner7="0.63016664 : 0.059111984 : 0.13997644 : 1"> - <path - sodipodi:type="inkscape:box3dside" - id="path976" - style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="6" - d="m 70.510379,175.51959 v -1.24117 h -4.00975 v 1.24117 z" - points="70.510379,174.27842 66.500629,174.27842 66.500629,175.51959 70.510379,175.51959 " /> - <path - sodipodi:type="inkscape:box3dside" - id="path980" - style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="3" - d="m 70.510379,175.51959 1.008259,2.06724 v -1.24118 l -1.008259,-2.06723 z" - points="71.518638,177.58683 71.518638,176.34565 70.510379,174.27842 70.510379,175.51959 " /> - <path - sodipodi:type="inkscape:box3dside" - id="path978" - style="fill:#66e4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="5" - d="m 70.510379,175.51959 1.008259,2.06724 h -4.00975 l -1.008259,-2.06724 z" - points="71.518638,177.58683 67.508888,177.58683 66.500629,175.51959 70.510379,175.51959 " /> - <path - sodipodi:type="inkscape:box3dside" - id="path984" - style="fill:#d4f7ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="13" - d="m 70.510379,174.27842 1.008259,2.06723 h -4.00975 l -1.008259,-2.06723 z" - points="71.518638,176.34565 67.508888,176.34565 66.500629,174.27842 70.510379,174.27842 " /> - <path - sodipodi:type="inkscape:box3dside" - id="path982" - style="fill:#20d8ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="14" - d="m 71.518638,177.58683 v -1.24118 h -4.00975 v 1.24118 z" - points="71.518638,176.34565 67.508888,176.34565 67.508888,177.58683 71.518638,177.58683 " /> - <path - sodipodi:type="inkscape:box3dside" - id="path986" - style="fill:#0094b4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.09783555px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1" - inkscape:box3dsidetype="11" - d="m 66.500629,175.51959 1.008259,2.06724 v -1.24118 l -1.008259,-2.06723 z" - points="67.508888,177.58683 67.508888,176.34565 66.500629,174.27842 66.500629,175.51959 " /> - </g> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.4661265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 76.603978,171.17976 -7.334841,4.10067" - id="path916-2-3-7-2" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-2-9" - style="font-style:normal;font-weight:normal;font-size:8.02177429px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.13746917px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-187.44932,58.391986)"><flowRegion - id="flowRegion934-5-1" - style="font-size:8.02177429px;fill:#404040;stroke-width:0.13746917px"><rect - id="rect936-3-2" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177429px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-7-7" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177429px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.13746917px">4</flowPara></flowRoot> </g> -</svg> diff --git a/doc/quick-tech-report/goette_inertial_hsms_v1_5_eprint.pdf b/doc/quick-tech-report/goette_inertial_hsms_v1_5_eprint.pdf Binary files differdeleted file mode 100755 index 8fdb2b9..0000000 --- a/doc/quick-tech-report/goette_inertial_hsms_v1_5_eprint.pdf +++ /dev/null diff --git a/doc/quick-tech-report/ir_tx_schema.pdf b/doc/quick-tech-report/ir_tx_schema.pdf Binary files differdeleted file mode 100644 index 0e44ca5..0000000 --- a/doc/quick-tech-report/ir_tx_schema.pdf +++ /dev/null diff --git a/doc/quick-tech-report/ir_tx_schema.svg b/doc/quick-tech-report/ir_tx_schema.svg deleted file mode 100644 index 5d54c2b..0000000 --- a/doc/quick-tech-report/ir_tx_schema.svg +++ /dev/null @@ -1,340 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="49.526539mm" - height="39.935722mm" - viewBox="0 0 49.526539 39.935722" - version="1.1" - id="svg8" - inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" - sodipodi:docname="ir_tx_schema.svg"> - <defs - id="defs2"> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_8" - id="pattern4192" - patternTransform="matrix(0.05072907,0.02928844,-0.5039899,0.87293588,37.264239,23.578155)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="9" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_8" - inkscape:stockid="Stripes 1:8"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect3254" /> - </pattern> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="3.8624494" - inkscape:cx="93.962734" - inkscape:cy="75.480085" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="false" - inkscape:snap-global="false" - inkscape:window-width="960" - inkscape:window-height="1019" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="0" - fit-margin-top="3" - fit-margin-left="3" - fit-margin-right="3" - fit-margin-bottom="3" - lock-margins="true" /> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-15.197803,-13.213541)"> - <circle - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ededed;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.4, 0.4;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000" - id="path1020" - cx="39.058445" - cy="33.180935" - r="16.918251" /> - <path - id="rect1039" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.4, 0.40000000000000002;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 39.046485,26.808772 c -1.983521,0.0037 -3.852197,0.930875 -5.055003,2.508097 h -2.015007 v 7.72812 h 2.01517 c 1.205311,1.5805 3.079093,2.508045 5.066744,2.508098 1.987708,-3e-6 3.861561,-0.927552 5.066906,-2.508098 h 2.089992 v -7.72812 H 44.125295 C 42.91995,27.736324 41.046096,26.808774 39.058389,26.808772 h -0.0119 z" - sodipodi:nodetypes="scccccccccscs" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" - id="path835-6" - cx="39.007404" - cy="33.180935" - r="4.6935949" /> - <circle - style="fill:url(#pattern4192);fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none" - id="path835" - cx="39.007404" - cy="33.180935" - r="4.6935945" /> - <g - id="g903" - transform="matrix(-0.31554927,0,0,-0.31554927,51.951482,61.938954)"> - <path - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ff9900;stroke-width:0.264583" - id="path858-7" - sodipodi:type="arc" - sodipodi:cx="-91.136383" - sodipodi:cy="60.773773" - sodipodi:rx="20.406658" - sodipodi:ry="20.406658" - sodipodi:start="0.52359878" - sodipodi:end="2.6179939" - sodipodi:arc-type="slice" - transform="rotate(-90)" - d="M -73.463699,70.977102 A 20.406658,20.406658 0 0 1 -91.136383,81.180431 20.406658,20.406658 0 0 1 -108.80907,70.977102 l 17.672687,-10.203329 z" /> - <path - style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#003399;stroke-width:0.264583" - id="path858" - sodipodi:type="arc" - sodipodi:cx="91.136383" - sodipodi:cy="-89.61792" - sodipodi:rx="20.406658" - sodipodi:ry="20.406658" - sodipodi:start="1.3089969" - sodipodi:end="1.8325957" - sodipodi:arc-type="slice" - transform="rotate(90)" - d="m 96.418016,-69.906602 a 20.406658,20.406658 0 0 1 -10.563264,0 l 5.281631,-19.711318 z" /> - <path - sodipodi:type="star" - style="fill:#ffcc00;stroke:#ff9900;stroke-width:0.264583" - id="path837-5" - sodipodi:sides="3" - sodipodi:cx="87.192711" - sodipodi:cy="91.708893" - sodipodi:r1="3.7053862" - sodipodi:r2="1.8526928" - sodipodi:arg1="-1.5707963" - sodipodi:arg2="-0.52359875" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - inkscape:transform-center-x="0.3538335" - transform="rotate(90,74.439098,78.382776)" - d="m 87.192711,88.003507 3.208958,5.558079 -6.417917,0 z" /> - <path - sodipodi:type="star" - style="fill:#003399;stroke:none;stroke-width:0.264583" - id="path837" - sodipodi:sides="3" - sodipodi:cx="87.192711" - sodipodi:cy="91.708893" - sodipodi:r1="3.7053862" - sodipodi:r2="1.8526928" - sodipodi:arg1="-1.5707963" - sodipodi:arg2="-0.52359875" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - transform="rotate(-90,87.811557,90.517534)" - inkscape:transform-center-x="0.3538335" - d="m 87.192711,88.003507 3.208958,5.558079 -6.417917,0 z" /> - </g> - <g - id="g1018" - transform="matrix(-0.31554927,0,0,-0.31554927,95.383768,61.938954)"> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#003399;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - id="path858-7-5" - sodipodi:type="arc" - sodipodi:cx="91.136383" - sodipodi:cy="-158.90807" - sodipodi:rx="20.406658" - sodipodi:ry="20.406658" - sodipodi:start="0.52359878" - sodipodi:end="2.6179939" - sodipodi:arc-type="slice" - transform="rotate(90)" - d="m 108.80907,-148.70474 a 20.406658,20.406658 0 0 1 -17.672687,10.20333 20.406658,20.406658 0 0 1 -17.672685,-10.20333 l 17.672685,-10.20333 z" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ff9900;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - id="path858-6" - sodipodi:type="arc" - sodipodi:cx="-91.136383" - sodipodi:cy="130.06392" - sodipodi:rx="20.406658" - sodipodi:ry="20.406658" - sodipodi:start="1.3089969" - sodipodi:end="1.8325957" - sodipodi:arc-type="slice" - transform="rotate(-90)" - d="m -85.854751,149.77524 a 20.406658,20.406658 0 0 1 -10.563264,0 l 5.281632,-19.71132 z" /> - <path - sodipodi:type="star" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#003399;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - id="path837-5-2" - sodipodi:sides="3" - sodipodi:cx="87.192711" - sodipodi:cy="91.708893" - sodipodi:r1="3.7053862" - sodipodi:r2="1.8526928" - sodipodi:arg1="-1.5707963" - sodipodi:arg2="-0.52359875" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - inkscape:transform-center-x="0.3538335" - transform="rotate(-90,122.46625,55.862834)" - d="m 87.192711,88.003507 3.208958,5.558079 -6.417917,0 z" /> - <path - sodipodi:type="star" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffcc00;fill-opacity:1;stroke:#ff9900;stroke-width:0.264583;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - id="path837-9" - sodipodi:sides="3" - sodipodi:cx="87.192711" - sodipodi:cy="91.708893" - sodipodi:r1="3.7053862" - sodipodi:r2="1.8526928" - sodipodi:arg1="-1.5707963" - sodipodi:arg2="-0.52359875" - inkscape:flatsided="true" - inkscape:rounded="0" - inkscape:randomized="0" - transform="rotate(90,109.33693,113.2806)" - inkscape:transform-center-x="0.3538335" - d="m 87.192711,88.003507 3.208958,5.558079 -6.417917,0 z" /> - </g> - <flowRoot - xml:space="preserve" - id="flowRoot932-4" - style="font-style:normal;font-weight:normal;font-size:8.02177px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.137469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-242.95524,-93.135803)"><flowRegion - id="flowRegion934-7" - style="font-size:8.02177px;fill:#404040;stroke-width:0.137469px"><rect - id="rect936-8" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-6" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.137469px">1</flowPara></flowRoot> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 29.885622,23.322353 -5.549194,-4.46386" - id="path916-2-3-3" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 54.460981,34.627606 4.832125,4.83213" - id="path916" - inkscape:connector-curvature="0" /> - <flowRoot - xml:space="preserve" - id="flowRoot932" - style="font-style:normal;font-weight:normal;font-size:8.02177px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.137469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-247.06476,-72.695165)"><flowRegion - id="flowRegion934" - style="font-size:8.02177px;fill:#404040;stroke-width:0.137469px"><rect - id="rect936" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.137469px">5</flowPara></flowRoot> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 23.512484,44.619905 36.004705,37.684762" - id="path916-2-3" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-4-7" - style="font-style:normal;font-weight:normal;font-size:8.02177px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.137469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-212.58381,-92.373671)"><flowRegion - id="flowRegion934-7-7" - style="font-size:8.02177px;fill:#404040;stroke-width:0.137469px"><rect - id="rect936-8-2" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-6-3" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.137469px">3</flowPara></flowRoot> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 51.878367,19.657652 -11.813765,10.5679" - id="path916-2-3-7" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-2" - style="font-style:normal;font-weight:normal;font-size:8.02177px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.137469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-244.26978,-66.944366)"><flowRegion - id="flowRegion934-5" - style="font-size:8.02177px;fill:#404040;stroke-width:0.137469px"><rect - id="rect936-3" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177334px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-7" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.137469px">2</flowPara></flowRoot> - <path - style="opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#404040;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 20.420125,38.206721 3.376333,-3.956215" - id="path916-2-3-7-2" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cc" /> - <flowRoot - xml:space="preserve" - id="flowRoot932-2-9" - style="font-style:normal;font-weight:normal;font-size:8.02177px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#404040;fill-opacity:1;stroke:none;stroke-width:0.137469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - transform="matrix(0.52773032,0,0,0.52773032,-205.60832,-71.292309)"><flowRegion - id="flowRegion934-5-1" - style="font-size:8.02177px;fill:#404040;stroke-width:0.137469px"><rect - id="rect936-3-2" - width="232.85715" - height="202.14285" - x="502.14285" - y="206.8054" - style="font-size:8.02177429px;fill:#404040;stroke-width:0.13746917px" /></flowRegion><flowPara - id="flowPara938-7-7" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.02177px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#404040;stroke-width:0.137469px">4</flowPara></flowRoot> - </g> -</svg> diff --git a/doc/quick-tech-report/mesh_gen_viz.pdf b/doc/quick-tech-report/mesh_gen_viz.pdf Binary files differdeleted file mode 100644 index 7ded2fc..0000000 --- a/doc/quick-tech-report/mesh_gen_viz.pdf +++ /dev/null diff --git a/doc/quick-tech-report/mesh_gen_viz.svg b/doc/quick-tech-report/mesh_gen_viz.svg deleted file mode 100644 index 59a31b9..0000000 --- a/doc/quick-tech-report/mesh_gen_viz.svg +++ /dev/null @@ -1,1547 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="262.86331mm" - height="73.515343mm" - viewBox="0 0 262.86331 73.515343" - version="1.1" - id="svg8" - inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" - sodipodi:docname="mesh_gen_viz.svg"> - <defs - id="defs2"> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462-8" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3475" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462-8-3" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3518" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462-8-8" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3518-9" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462-8-4" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3518-3" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3462-8-38" /> - <rect - x="9.628603" - y="-6.6173596" - width="53.992393" - height="41.325058" - id="rect3518-6" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="0.70710678" - inkscape:cx="359.74548" - inkscape:cy="222.93353" - inkscape:document-units="mm" - inkscape:current-layer="layer1" - inkscape:document-rotation="0" - showgrid="false" - inkscape:snap-global="false" - inkscape:window-width="1920" - inkscape:window-height="1019" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" - fit-margin-top="3" - lock-margins="true" - fit-margin-left="3" - fit-margin-right="3" - fit-margin-bottom="3" /> - <metadata - id="metadata5"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(3.4764858,1.4095656)"> - <g - id="g1789" - transform="matrix(0.85717557,0,0,0.85717557,12.587956,7.9019939)"> - <path - style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-width:0.314487px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 60.987163,20.462401 C 48.220768,21.57942 45.340825,26.773067 47.224241,31.36242 c 1.492547,3.636914 6.492182,6.512111 8.297003,9.373677 10.073433,15.971556 -11.630065,11.634339 -8.725274,22.244622 2.080811,7.600542 29.624481,8.439564 31.9414,-2.553679 1.420912,-6.741903 0.533145,-18.961514 0.536156,-25.666026 0.0044,-9.729725 -3.825785,-15.563867 -18.286363,-14.298613 z" - id="path1164" - sodipodi:nodetypes="sssssss" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="24.952217" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="24.952219" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-6" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="31.573572" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-7" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="31.573574" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-5" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-3" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-56" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-2" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-9" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="24.952217" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-1" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="24.952219" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-6-2" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="31.573572" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-7-7" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="31.573574" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-5-0" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-3-9" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-56-3" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-2-6" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-0" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-6" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-6-26" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-7-1" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-5-8" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-3-7" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-56-9" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect833-3-2-2" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect958" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="24.952219" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect960" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="31.573574" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect962" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect964" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect966" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect968" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect970" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="24.952219" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect972" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="31.573574" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect974" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="38.194927" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect976" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="44.81628" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect978" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="51.437634" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect980" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="58.058987" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect982" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="18.330866" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect984" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="18.330868" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect986" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="18.330866" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect988" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="18.330868" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect990" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="18.330868" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect992" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="18.330868" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect994" - width="6.6213522" - height="6.6213522" - x="48.809456" - y="64.680336" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect996" - width="6.6213522" - height="6.6213522" - x="55.430809" - y="64.680336" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect998" - width="6.6213522" - height="6.6213522" - x="62.052162" - y="64.680336" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1000" - width="6.6213522" - height="6.6213522" - x="68.673515" - y="64.680336" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1002" - width="6.6213522" - height="6.6213522" - x="75.294868" - y="64.680336" /> - <rect - style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1004" - width="6.6213522" - height="6.6213522" - x="42.188103" - y="64.680336" /> - </g> - <path - style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-width:0.269571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 22.312453,25.720521 c -19.615051,1.716254 -8.18449,11.83003 -4.685252,17.378117 8.634699,13.690429 -9.9690077,9.972671 -7.479092,19.067547 1.783621,6.514999 25.393382,7.234188 27.379388,-2.188951 1.217971,-5.778995 0.456999,-16.253347 0.45958,-22.000291 0.0038,-8.340083 -3.27937,-13.340967 -15.674624,-12.256422 z" - id="path942" - sodipodi:nodetypes="ssssss" /> - <g - id="g1840" - transform="matrix(0.85717557,0,0,0.85717557,6.6401983,7.9019939)"> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1170" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="31.573572" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1174" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="38.194927" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1176" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="38.194927" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1178" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="44.81628" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1180" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="44.81628" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1198" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="51.437634" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1200" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="51.437634" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1214" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="24.952219" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1216" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="31.573574" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1218" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="38.194927" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1220" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="44.81628" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1222" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="51.437634" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1224" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="58.058987" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1226" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="24.952219" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1228" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="31.573574" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1230" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="38.194927" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1232" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="44.81628" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1234" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="51.437634" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1236" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="58.058987" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1238" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="18.330866" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1240" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="18.330868" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1242" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="18.330866" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1244" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="18.330868" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1246" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="18.330868" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1248" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="18.330868" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1250" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="64.680336" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1252" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="64.680336" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1254" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="64.680336" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1256" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="64.680336" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1258" - width="6.6213522" - height="6.6213522" - x="133.73009" - y="64.680336" /> - <rect - style="fill:#efefef;fill-opacity:1;stroke:#a4a4a4;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - id="rect1260" - width="6.6213522" - height="6.6213522" - x="100.62331" - y="64.680336" /> - <path - style="fill:#ffcc00;fill-opacity:1;stroke:none;stroke-width:0.314487px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 119.42238,20.462401 c -12.7664,1.117019 -15.64634,6.310666 -13.76293,10.900019 1.49255,3.636914 6.49219,6.512111 8.29701,9.373677 10.07343,15.971556 -11.63007,11.634339 -8.72528,22.244622 2.08081,7.600542 29.62448,8.439564 31.9414,-2.553679 1.42092,-6.741903 0.53315,-18.961514 0.53616,-25.666026 0.004,-9.729725 -3.82579,-15.563867 -18.28636,-14.298613 z" - id="path1262" - sodipodi:nodetypes="sssssss" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1166" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="24.952217" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1168" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="24.952219" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1172" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="31.573574" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1182" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="24.952217" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1184" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="24.952219" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1186" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="31.573572" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1188" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="31.573574" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1190" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="38.194927" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1192" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="38.194927" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1194" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="44.81628" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1196" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="44.81628" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1202" - width="6.6213522" - height="6.6213522" - x="107.24467" - y="58.058987" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1204" - width="6.6213522" - height="6.6213522" - x="113.86602" - y="58.058987" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1206" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="51.437634" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1208" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="51.437634" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1210" - width="6.6213522" - height="6.6213522" - x="120.48737" - y="58.058987" /> - <rect - style="fill:#99cc33;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000" - id="rect1212" - width="6.6213522" - height="6.6213522" - x="127.10873" - y="58.058987" /> - </g> - <g - id="g1884" - transform="matrix(1.0072466,0,0,1.0072466,-21.624133,0.7912122)"> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1364" - width="6.6213522" - height="6.6213522" - x="158.366" - y="24.952217" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1366" - width="6.6213522" - height="6.6213522" - x="164.98735" - y="24.952219" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1370" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="24.952217" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1372" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="24.952219" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1368" - width="6.6213522" - height="6.6213522" - x="164.98735" - y="31.590927" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1374" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="31.573572" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1376" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="31.573574" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1380" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="38.194927" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1384" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="44.81628" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1386" - width="6.6213522" - height="6.6213522" - x="158.366" - y="58.058987" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1388" - width="6.6213522" - height="6.6213522" - x="164.98735" - y="58.058987" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1378" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="38.194927" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1382" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="44.81628" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1390" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="51.437634" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1392" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="51.437634" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1394" - width="6.6213522" - height="6.6213522" - x="171.6087" - y="58.058987" /> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#edf6da;fill-opacity:1;stroke:#90a46a;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.537157;stop-color:#000000;stop-opacity:1" - id="rect1396" - width="6.6213522" - height="6.6213522" - x="178.23006" - y="58.058987" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="m 158.39829,61.369663 h 15.92998" - id="path1400" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="m 165.61096,61.369662 h 15.92998" - id="path1400-7" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="M 181.54073,61.369662 V 52.581993" - id="path1400-7-4" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 181.54073,56.914626 v -8.78767" - id="path1400-7-4-0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 181.54073,48.126956 h -4.70656" - id="path1400-7-4-7" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 179.70128,48.126955 h -4.70656" - id="path1400-7-4-7-8" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 174.99472,43.642542 V 54.74831" - id="path1400-7-4-7-6" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 179.70128,41.505603 h -4.70656" - id="path1400-7-4-7-4" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 174.99472,41.505603 v 4.70656" - id="path1400-7-4-7-3" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 181.54073,41.505603 h -4.70656" - id="path1400-7-4-7-1" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 181.54073,41.505603 V 32.717932" - id="path1400-7-4-0-4" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 181.54073,37.050564 V 28.262893" - id="path1400-7-4-0-4-9" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 169.25512,28.262895 h 12.28561" - id="path1400-7-4-0-4-2" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 161.67667,28.262895 h 8.78768" - id="path1400-7-4-0-4-2-0" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 168.29803,28.262895 v 4.70656" - id="path1400-7-4-7-3-8" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 168.29803,30.177687 v 4.706561" - id="path1400-7-4-7-3-8-9" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 168.29803,34.884248 h 4.70656" - id="path1400-7-4-7-3-8-2" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 170.28816,34.884248 h 4.70656" - id="path1400-7-4-7-3-8-2-6" - sodipodi:nodetypes="cc" /> - <path - id="path1629" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 159.46997,61.369668 -2.62589,0.70484 0.31482,-0.70485 -0.31482,-0.70484 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-x="-0.43765" /> - <path - id="path1629-4" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - inkscape:transform-center-y="-0.43764946" - d="m 181.54073,53.435351 0.70484,2.625898 -0.70485,-0.314828 -0.70484,0.314827 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path1629-4-9" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 174.99472,52.750587 -0.70484,-2.62589 0.70485,0.31482 0.70484,-0.31482 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-y="0.43765" /> - <path - id="path1629-4-9-5" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 174.99473,43.503326 0.70484,2.62589 -0.70485,-0.31482 -0.70484,0.31482 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-y="-0.4376505" /> - <path - id="path1629-4-9-5-0" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 181.54074,33.571296 0.70484,2.62589 -0.70485,-0.31482 -0.70484,0.31482 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-y="-0.4376505" /> - <path - id="path1629-4-9-5-4" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 163.6744,28.262889 2.62589,-0.704839 -0.31482,0.70485 0.31482,0.704839 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-x="0.43765" /> - <path - id="path1629-4-9-5-8" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.179425;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000" - d="m 172.92166,34.892931 -2.62589,0.70484 0.31482,-0.70485 -0.31482,-0.70484 z" - sodipodi:nodetypes="ccccc" - inkscape:transform-center-x="-0.43765" /> - </g> - <g - id="g3132" - transform="matrix(1.0072466,0,0,1.0072466,-47.697518,-0.53768828)"> - <g - id="g2051" - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-opacity:0.537157" - transform="translate(-0.13229167)"> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1886" - width="6.6213522" - height="6.6213522" - x="225.86443" - y="26.271557" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1888" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="26.271559" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1890" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="26.271557" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1892" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="26.271559" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1894" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="32.910267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1896" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="32.89291" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1898" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="32.892914" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1900" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="39.514267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1902" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="46.13562" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1904" - width="6.6213522" - height="6.6213522" - x="225.86443" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1906" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1908" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="39.514267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1910" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="46.13562" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1912" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="52.756973" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1914" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="52.756973" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1916" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1918" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="59.378326" /> - </g> - <g - id="g2032" - style="fill:#404040;stroke:#808080"> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="M 225.89672,62.689003 H 241.8267" - id="path1920" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="m 233.10939,62.689002 h 15.92998" - id="path1922" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264583px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" - d="M 249.03916,62.689002 V 53.901333" - id="path1924" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.265;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 249.03916,58.233966 v -8.78767" - id="path1926" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.265;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 249.03916,49.446296 H 244.3326" - id="path1928" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 247.19971,49.446295 h -4.70656" - id="path1930" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 242.49315,44.961882 V 56.06765" - id="path1932" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 247.19971,42.824943 h -4.70656" - id="path1934" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 242.49315,42.824943 v 4.70656" - id="path1936" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 249.03916,42.824943 H 244.3326" - id="path1938" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 249.03916,42.824943 V 34.037272" - id="path1940" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 249.03916,38.369904 V 29.582233" - id="path1942" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 236.75355,29.582235 h 12.28561" - id="path1944" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 229.1751,29.582235 h 8.78768" - id="path1946" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 235.79646,29.582235 v 4.70656" - id="path1948" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 235.79646,31.497027 v 4.706561" - id="path1950" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 235.79646,36.203588 h 4.70656" - id="path1952" - sodipodi:nodetypes="cc" /> - <path - style="fill:#404040;stroke:#808080;stroke-width:0.264999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 237.78659,36.203588 h 4.70656" - id="path1954" - sodipodi:nodetypes="cc" /> - </g> - <path - id="path2069" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#cc0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 241.49688,21.687661 c -0.0175,0.452278 -0.53072,0.668654 -0.92187,0.578677 -0.64827,-0.149114 -0.93321,-0.888405 -0.74512,-1.483501 0.26678,-0.844117 1.24901,-1.202126 2.04513,-0.911563 1.04071,0.37983 1.47297,1.610675 1.078,2.606754 -0.49082,1.2378 -1.97287,1.744849 -3.16838,1.244446 -1.4352,-0.600744 -2.01732,-2.335371 -1.41088,-3.730006 0.71003,-1.632844 2.69807,-2.290189 4.29162,-1.577324 1.83063,0.81891 2.26301,3.039252 1.74377,4.853253 -1.25901,4.398474 -3.67329,5.293659 -6.44644,5.293659 h -8.78706 -0.1323 l -5.3e-4,2.4e-5 c -0.46461,2.65e-4 -0.88721,0.423159 -0.88728,0.887801 v 0.2651 c 2.6e-4,0.464441 0.42284,0.886907 0.88728,0.887285 h 0.13281 3.80959 c 0.98949,-2.1e-5 1.79164,0.802127 1.79162,1.791621 v 1.894975 0.13281 1.781286 0.132808 c 2.7e-4,0.464441 0.42284,0.886904 0.88729,0.887285 h 0.26561 1.72444 2.84944 0.13126 1.85725 0.13229 c 0.46482,-6.8e-5 0.88774,-0.422989 0.88781,-0.887801 v -0.264583 -5.3e-4 c -2.7e-4,-0.464439 -0.42285,-0.886904 -0.88729,-0.887282 h -0.13281 -1.85725 -0.13126 -1.89497 c -0.9895,2.1e-5 -1.79164,-0.80213 -1.79162,-1.791624 v -0.997355 c -2e-5,-0.989494 0.80212,-1.791642 1.79162,-1.79162 h 7.61866 c 0.98949,-2.2e-5 1.79164,0.802126 1.79162,1.79162 v 1.510504 0.132808 4.332036 0.132807 1.51257 c 2e-5,0.989494 -0.80213,1.791642 -1.79162,1.791621 h -3.60237 -0.13281 -0.13022 -5.3e-4 c -0.46461,2.65e-4 -0.88722,0.423159 -0.88729,0.887801 v 0.130226 0.132807 1.872755 0.131258 2.570384 0.132811 1.650029 0.264064 6.490044 0.130741 c 2.7e-4,0.464442 0.42285,0.886905 0.88729,0.887286 h 0.26355 c 0.46461,-2.65e-4 0.88721,-0.423159 0.88728,-0.887802 v -0.130225 -3.811138 c -2e-5,-0.989494 0.80213,-1.791641 1.79162,-1.79162 h 0.92346 c 0.9895,-2.1e-5 1.79164,0.802126 1.79162,1.79162 v 1.512055 0.131257 4.333586 0.132808 1.510501 c 2e-5,0.989494 -0.80212,1.791644 -1.79162,1.791623 h -4.40128 -15.92978 -0.13229 -5.3e-4" - sodipodi:nodetypes="csssssssssccssccccsccccccccccsscsccccsssccsccccsccccssccccccccccccsccsssccccsccccc" /> - <path - id="path2069-5" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#003399;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 235.21846,49.280483 c 0.2933,-0.344731 0.83049,-0.197625 1.08237,0.114866 0.41745,0.5179 0.18452,1.275184 -0.33116,1.626751 -0.73144,0.498694 -1.72487,0.173046 -2.17113,-0.547435 -0.58336,-0.941822 -0.16242,-2.176582 0.76372,-2.715505 1.15089,-0.669706 2.62936,-0.152268 3.25989,0.979995 0.75694,1.359311 0.14244,3.082734 -1.19628,3.804259 -1.56738,0.844769 -3.53651,0.132772 -4.34864,-1.412545 -0.93295,-1.775227 0.45774,-3.773763 1.09482,-4.553714 1.29591,-1.586539 6.70777,-2.35243 7.1373,0.954309 v 0.13281 1.650029 0.264065 6.490044 0.130741 c 1.4e-4,0.969907 0.88217,1.85194 1.85208,1.852083 h 0.26355 c 0.96991,-1.43e-4 1.85194,-0.882176 1.85208,-1.852083 v -0.130741 -3.811138 c -9e-5,-0.456681 0.37014,-0.826918 0.82683,-0.826823 h 0.92346 c 0.45668,-9.5e-5 0.82691,0.370142 0.82682,0.826823 v 1.512054 0.131257 4.333587 0.132807 1.510501 c 9e-5,0.456682 -0.37014,0.826919 -0.82682,0.826823 h -4.40129 -15.92977 -0.13281" - sodipodi:nodetypes="csssssssscccccsssscccccccccccccc" /> - </g> - <g - id="g3238" - transform="matrix(1.0072466,0,0,1.0072466,-52.498767,-0.53768828)"> - <g - id="g3154"> - <g - id="g2051-0" - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-opacity:0.537157" - transform="translate(46.574491)"> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1886-9" - width="6.6213522" - height="6.6213522" - x="225.86443" - y="26.271557" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1888-6" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="26.271559" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1890-3" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="26.271557" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1892-8" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="26.271559" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1894-5" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="32.910267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1896-6" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="32.89291" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1898-1" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="32.892914" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1900-1" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="39.514267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1902-5" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="46.13562" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1904-9" - width="6.6213522" - height="6.6213522" - x="225.86443" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1906-8" - width="6.6213522" - height="6.6213522" - x="232.48578" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1908-4" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="39.514267" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1910-8" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="46.13562" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1912-1" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="52.756973" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1914-0" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="52.756973" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1916-3" - width="6.6213522" - height="6.6213522" - x="239.10713" - y="59.378326" /> - <rect - style="fill:#f4f4f4;fill-opacity:1;stroke:#808080;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1918-0" - width="6.6213522" - height="6.6213522" - x="245.72849" - y="59.378326" /> - </g> - <path - id="path2915" - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#003399;stroke-width:0.999999px;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000" - sodipodi:type="inkscape:offset" - inkscape:radius="-2.752965" - inkscape:original="M 1042.2051 101.83008 A 9.4749254 9.4749254 0 0 0 1032.7305 111.30469 L 1032.7305 112.30859 A 9.4749254 9.4749254 0 0 0 1042.2051 121.7832 L 1042.707 121.7832 L 1057.7539 121.7832 L 1057.7539 129.5957 L 1057.7539 130.09766 L 1057.7539 136.83008 L 1057.7539 137.33203 A 9.4749254 9.4749254 0 0 0 1067.2285 146.80664 L 1068.2266 146.80664 L 1074.752 146.80664 L 1085.5137 146.80664 L 1086.0156 146.80664 L 1093.0371 146.80664 L 1093.5391 146.80664 A 9.4749254 9.4749254 0 0 0 1103.0137 137.33203 L 1103.0137 136.32812 A 9.4749254 9.4749254 0 0 0 1093.5391 126.85352 L 1093.0371 126.85352 L 1086.0156 126.85352 L 1085.5137 126.85352 L 1077.7012 126.85352 L 1077.7012 121.7832 L 1107.8047 121.7832 L 1107.8047 128.14258 L 1107.8047 128.64453 L 1107.8047 145.01758 L 1107.8047 145.51953 L 1107.8047 151.88672 L 1093.5391 151.88672 L 1093.0371 151.88672 L 1092.541 151.88672 A 9.4749254 9.4749254 0 0 0 1083.0664 161.36133 L 1083.0664 161.85547 L 1083.0664 162.35742 L 1083.0664 169.43555 L 1083.0664 169.93164 L 1083.0664 179.64648 L 1083.0664 180.14844 L 1083.0664 186.38477 L 1083.0664 187.38281 L 1083.0664 211.91211 L 1083.0664 212.40625 A 9.4749254 9.4749254 0 0 0 1092.541 221.88086 L 1093.5391 221.88086 A 9.4749254 9.4749254 0 0 0 1103.0137 212.40625 L 1103.0137 211.91211 L 1103.0137 196.85742 L 1107.8047 196.85742 L 1107.8047 203.22266 L 1107.8047 203.71875 L 1107.8047 220.09766 L 1107.8047 220.59961 L 1107.8047 226.95898 L 1090.5195 226.95898 L 1030.3125 226.95898 L 1029.8105 226.95898 A 9.4749254 9.4749254 0 0 0 1020.3359 236.43359 L 1020.3359 237.43945 A 9.4749254 9.4749254 0 0 0 1029.8105 246.91406 L 1030.3125 246.91406 L 1090.5195 246.91406 L 1117.7812 246.91406 L 1118.2832 246.91406 A 9.4749254 9.4749254 0 0 0 1127.7578 237.43945 L 1127.7578 236.43359 L 1127.7578 203.71875 L 1127.7578 203.22266 L 1127.7578 186.88672 L 1127.7578 186.38477 A 9.4749254 9.4749254 0 0 0 1118.2832 176.91016 L 1117.7812 176.91016 L 1110.8262 176.91016 L 1103.0137 176.91016 L 1103.0137 171.83203 L 1110.8262 171.83203 L 1117.7812 171.83203 L 1118.2832 171.83203 A 9.4749254 9.4749254 0 0 0 1127.7578 162.35742 L 1127.7578 161.36133 L 1127.7578 128.64453 L 1127.7578 128.14258 L 1127.7578 111.80664 L 1127.7578 111.30469 A 9.4749254 9.4749254 0 0 0 1118.2832 101.83008 L 1117.7812 101.83008 L 1075.918 101.83008 L 1042.707 101.83008 L 1042.2051 101.83008 z " - d="m 1042.2051,104.58398 c -3.5195,1.3e-4 -6.7206,3.20125 -6.7207,6.72071 v 1.0039 c 10e-5,3.51946 3.2012,6.72059 6.7207,6.72071 h 0.5019 15.0469 a 2.7532403,2.7532403 0 0 1 2.7539,2.7539 v 7.8125 0.50196 6.73242 0.50195 c 10e-5,3.51946 3.2013,6.72058 6.7207,6.7207 h 0.9981 6.5254 10.7617 0.5019 7.0215 0.502 c 3.5194,-1.2e-4 6.7205,-3.20124 6.7207,-6.7207 v -1.00391 c -2e-4,-3.51945 -3.2013,-6.72058 -6.7207,-6.7207 h -0.502 -7.0215 -0.5019 -7.8125 a 2.7532403,2.7532403 0 0 1 -2.7539,-2.7539 v -5.07032 a 2.7532403,2.7532403 0 0 1 2.7539,-2.7539 h 30.1035 a 2.7532403,2.7532403 0 0 1 2.7539,2.7539 v 6.35938 0.50195 16.37305 0.50195 6.36719 a 2.7532403,2.7532403 0 0 1 -2.7539,2.7539 h -14.2656 -0.502 -0.4961 c -3.5194,1.3e-4 -6.7206,3.20125 -6.7207,6.72071 v 0.49414 0.50195 7.07813 0.49609 9.71484 0.50196 6.23633 0.99804 24.5293 0.49414 c 10e-5,3.51946 3.2013,6.72058 6.7207,6.7207 h 0.9981 c 3.5194,-1.2e-4 6.7205,-3.20124 6.7207,-6.7207 v -0.49414 -15.05469 a 2.7532403,2.7532403 0 0 1 2.7539,-2.7539 h 4.791 a 2.7532403,2.7532403 0 0 1 2.7539,2.7539 v 6.36524 0.49609 16.37891 0.50195 6.35937 a 2.7532403,2.7532403 0 0 1 -2.7539,2.75391 h -17.2852 -60.207 -0.502 c -3.5194,1.2e-4 -6.7225,3.20125 -6.7226,6.7207 v 1.00586 c 10e-5,3.51946 3.2032,6.72059 6.7226,6.72071 h 0.502 60.207 27.2617 0.502 c 3.5195,-1.2e-4 6.7206,-3.20125 6.7207,-6.72071 v -1.00586 -32.71484 -0.49609 -16.33594 -0.50195 c -10e-5,-3.51946 -3.2012,-6.72059 -6.7207,-6.72071 h -0.502 -6.955 -7.8125 a 2.7532403,2.7532403 0 0 1 -2.7539,-2.7539 v -5.07813 a 2.7532403,2.7532403 0 0 1 2.7539,-2.75391 h 7.8125 6.955 0.502 c 3.5195,-1.2e-4 6.7206,-3.20124 6.7207,-6.7207 v -0.99609 -32.7168 -0.50195 -16.33594 -0.50195 c -10e-5,-3.51946 -3.2012,-6.72058 -6.7207,-6.72071 h -0.502 -41.8632 -33.211 z" - transform="scale(0.26458333)" /> - <path - id="path2915-1" - style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#cc0000;stroke-width:0.999999px;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000" - sodipodi:type="inkscape:offset" - inkscape:radius="-7.7552209" - inkscape:original="M 1042.2051 101.83008 A 9.4749254 9.4749254 0 0 0 1032.7305 111.30469 L 1032.7305 112.30859 A 9.4749254 9.4749254 0 0 0 1042.2051 121.7832 L 1042.707 121.7832 L 1057.7539 121.7832 L 1057.7539 129.5957 L 1057.7539 130.09766 L 1057.7539 136.83008 L 1057.7539 137.33203 A 9.4749254 9.4749254 0 0 0 1067.2285 146.80664 L 1068.2266 146.80664 L 1074.752 146.80664 L 1085.5137 146.80664 L 1086.0156 146.80664 L 1093.0371 146.80664 L 1093.5391 146.80664 A 9.4749254 9.4749254 0 0 0 1103.0137 137.33203 L 1103.0137 136.32812 A 9.4749254 9.4749254 0 0 0 1093.5391 126.85352 L 1093.0371 126.85352 L 1086.0156 126.85352 L 1085.5137 126.85352 L 1077.7012 126.85352 L 1077.7012 121.7832 L 1107.8047 121.7832 L 1107.8047 128.14258 L 1107.8047 128.64453 L 1107.8047 145.01758 L 1107.8047 145.51953 L 1107.8047 151.88672 L 1093.5391 151.88672 L 1093.0371 151.88672 L 1092.541 151.88672 A 9.4749254 9.4749254 0 0 0 1083.0664 161.36133 L 1083.0664 161.85547 L 1083.0664 162.35742 L 1083.0664 169.43555 L 1083.0664 169.93164 L 1083.0664 179.64648 L 1083.0664 180.14844 L 1083.0664 186.38477 L 1083.0664 187.38281 L 1083.0664 211.91211 L 1083.0664 212.40625 A 9.4749254 9.4749254 0 0 0 1092.541 221.88086 L 1093.5391 221.88086 A 9.4749254 9.4749254 0 0 0 1103.0137 212.40625 L 1103.0137 211.91211 L 1103.0137 196.85742 L 1107.8047 196.85742 L 1107.8047 203.22266 L 1107.8047 203.71875 L 1107.8047 220.09766 L 1107.8047 220.59961 L 1107.8047 226.95898 L 1090.5195 226.95898 L 1030.3125 226.95898 L 1029.8105 226.95898 A 9.4749254 9.4749254 0 0 0 1020.3359 236.43359 L 1020.3359 237.43945 A 9.4749254 9.4749254 0 0 0 1029.8105 246.91406 L 1030.3125 246.91406 L 1090.5195 246.91406 L 1117.7812 246.91406 L 1118.2832 246.91406 A 9.4749254 9.4749254 0 0 0 1127.7578 237.43945 L 1127.7578 236.43359 L 1127.7578 203.71875 L 1127.7578 203.22266 L 1127.7578 186.88672 L 1127.7578 186.38477 A 9.4749254 9.4749254 0 0 0 1118.2832 176.91016 L 1117.7812 176.91016 L 1110.8262 176.91016 L 1103.0137 176.91016 L 1103.0137 171.83203 L 1110.8262 171.83203 L 1117.7812 171.83203 L 1118.2832 171.83203 A 9.4749254 9.4749254 0 0 0 1127.7578 162.35742 L 1127.7578 161.36133 L 1127.7578 128.64453 L 1127.7578 128.14258 L 1127.7578 111.80664 L 1127.7578 111.30469 A 9.4749254 9.4749254 0 0 0 1118.2832 101.83008 L 1117.7812 101.83008 L 1075.918 101.83008 L 1042.707 101.83008 L 1042.2051 101.83008 z " - d="m 1042.2051,109.58594 c -0.9004,3e-5 -1.7187,0.81835 -1.7188,1.71875 v 1.0039 c 10e-5,0.9004 0.8184,1.71872 1.7188,1.71875 h 0.5019 15.0469 a 7.7559964,7.7559964 0 0 1 7.7559,7.75586 v 7.8125 0.50196 6.73242 0.50195 c 0,0.9004 0.8183,1.71872 1.7187,1.71875 h 0.9981 6.5254 10.7617 0.5019 7.0215 0.502 c 0.9004,-3e-5 1.7187,-0.81835 1.7187,-1.71875 v -1.00391 c 0,-0.90039 -0.8183,-1.71871 -1.7187,-1.71874 h -0.502 -7.0215 -0.5019 -7.8125 a 7.7559964,7.7559964 0 0 1 -7.7559,-7.75586 v -5.07032 a 7.7559964,7.7559964 0 0 1 7.7559,-7.75586 h 30.1035 a 7.7559964,7.7559964 0 0 1 7.7558,7.75586 v 6.35938 0.50195 16.37305 0.50195 6.36719 a 7.7559964,7.7559964 0 0 1 -7.7558,7.75586 h -14.2656 -0.502 -0.4961 c -0.9004,3e-5 -1.7187,0.81835 -1.7187,1.71875 v 0.49414 0.50195 7.07813 0.49609 9.71484 0.50196 6.23633 0.99804 24.5293 0.49414 c 0,0.9004 0.8183,1.71872 1.7187,1.71875 h 0.9981 c 0.9004,-3e-5 1.7187,-0.81835 1.7187,-1.71875 v -0.49414 -15.05469 a 7.7559964,7.7559964 0 0 1 7.7559,-7.75586 h 4.791 a 7.7559964,7.7559964 0 0 1 7.7558,7.75586 v 6.36524 0.49609 16.37891 0.50195 6.35937 a 7.7559964,7.7559964 0 0 1 -7.7558,7.75586 h -17.2852 -60.207 -0.502 c -0.9003,3e-5 -1.7187,0.81836 -1.7187,1.71875 v 1.00586 c 0,0.9004 0.8184,1.71872 1.7187,1.71875 h 0.502 60.207 27.2617 0.502 c 0.9004,-3e-5 1.7187,-0.81835 1.7188,-1.71875 v -1.00586 -32.71484 -0.49609 -16.33594 -0.50195 c -10e-5,-0.9004 -0.8184,-1.71872 -1.7188,-1.71875 h -0.502 -6.955 -7.8125 a 7.7559964,7.7559964 0 0 1 -7.7559,-7.75586 v -5.07813 a 7.7559964,7.7559964 0 0 1 7.7559,-7.75586 h 7.8125 6.955 0.502 c 0.9004,-3e-5 1.7187,-0.81835 1.7188,-1.71875 v -0.99609 -32.7168 -0.50195 -16.33594 -0.50195 c -10e-5,-0.9004 -0.8184,-1.71872 -1.7188,-1.71875 h -0.502 -41.8632 -33.211 z" - transform="matrix(0.26458333,0,0,0.26458333,3.4011196e-6,8.2304686e-7)" /> - </g> - <rect - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.537157;stop-color:#000000" - id="rect1904-9-8" - width="6.6213522" - height="6.6213522" - x="265.71756" - y="59.427937" /> - </g> - <g - id="g3901"> - <path - id="rect3156-9-3" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 208.12388,2.3404349 h 47.51296 v 5.610291 5.6102901 h -47.51296 z" - sodipodi:nodetypes="cccccc" /> - <path - id="rect3156-9-5" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 168.68667,2.3404349 h 44.92247 l 2.5905,5.610291 -2.5905,5.6102901 h -44.92247 z" - sodipodi:nodetypes="cccccc" /> - <path - id="rect3156-9-7" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 126.67233,2.3404349 h 44.92247 l 2.5905,5.610291 -2.5905,5.6102901 h -44.92247 z" - sodipodi:nodetypes="cccccc" /> - <path - id="rect3156-9" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 86.1245,2.3404349 h 44.92247 l 2.5905,5.610291 -2.5905,5.6102901 H 86.1245 Z" - sodipodi:nodetypes="cccccc" /> - <path - id="rect3156-5" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 41.983024,2.3404344 h 44.922469 l 2.590498,5.6102909 -2.590498,5.6102897 H 41.983024 Z" - sodipodi:nodetypes="cccccc" /> - <path - id="rect3156" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#dfdfdf;fill-opacity:1;stroke:#ffffff;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="M 0.27351425,2.3404348 H 45.195981 l 2.5905,5.610291 -2.5905,5.6102902 H 0.27351425 Z" - sodipodi:nodetypes="cccccc" /> - </g> - <g - id="g3959" - transform="translate(1.0904447,1.6484563)" - style="fill:#404040"> - <text - xml:space="preserve" - id="text3460" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(10.446774,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">1</tspan></tspan></text> - <text - xml:space="preserve" - id="text3460-8" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462-8);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(54.277393,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">2</tspan></tspan></text> - <text - xml:space="preserve" - id="text3460-8-1" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462-8-3);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(96.465644,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">3</tspan></tspan></text> - <text - xml:space="preserve" - id="text3460-8-6" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462-8-8);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(138.64331,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">4</tspan></tspan></text> - <text - xml:space="preserve" - id="text3460-8-3" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462-8-4);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(180.89505,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">5</tspan></tspan></text> - <text - xml:space="preserve" - id="text3460-8-0" - style="font-style:normal;font-weight:normal;font-size:7.05556px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3462-8-38);fill:#404040;fill-opacity:1;stroke:none;" - transform="translate(221.61836,9.1851291)"><tspan - x="9.6289062" - y="-0.59173916"><tspan - style="font-size:7.05556px;fill:#404040">6</tspan></tspan></text> - </g> - </g> -</svg> diff --git a/doc/quick-tech-report/mesh_scan_crop.jpg b/doc/quick-tech-report/mesh_scan_crop.jpg Binary files differdeleted file mode 100644 index baa8e6c..0000000 --- a/doc/quick-tech-report/mesh_scan_crop.jpg +++ /dev/null diff --git a/doc/quick-tech-report/photolink_schematic.pdf b/doc/quick-tech-report/photolink_schematic.pdf Binary files differdeleted file mode 100644 index 3284427..0000000 --- a/doc/quick-tech-report/photolink_schematic.pdf +++ /dev/null diff --git a/doc/quick-tech-report/photolink_schematic.pro b/doc/quick-tech-report/photolink_schematic.pro deleted file mode 100644 index 02a2ddf..0000000 --- a/doc/quick-tech-report/photolink_schematic.pro +++ /dev/null @@ -1,43 +0,0 @@ -update=Tue Dec 1 17:26:36 2020 -version=1 -last_client=eeschema -[general] -version=1 -RootSch= -BoardNm= -[pcbnew] -version=1 -LastNetListRead= -UseCmpFile=1 -PadDrill=0.600000000000 -PadDrillOvalY=0.600000000000 -PadSizeH=1.500000000000 -PadSizeV=1.500000000000 -PcbTextSizeV=1.500000000000 -PcbTextSizeH=1.500000000000 -PcbTextThickness=0.300000000000 -ModuleTextSizeV=1.000000000000 -ModuleTextSizeH=1.000000000000 -ModuleTextSizeThickness=0.150000000000 -SolderMaskClearance=0.000000000000 -SolderMaskMinWidth=0.000000000000 -DrawSegmentWidth=0.200000000000 -BoardOutlineThickness=0.100000000000 -ModuleOutlineThickness=0.150000000000 -[cvpcb] -version=1 -NetIExt=net -[eeschema] -version=1 -LibDir= -[eeschema/libraries] -[schematic_editor] -version=1 -PageLayoutDescrFile= -PlotDirectoryName= -SubpartIdSeparator=0 -SubpartFirstId=65 -NetFmtName= -SpiceAjustPassiveValues=0 -LabSize=50 -ERC_TestSimilarLabels=1 diff --git a/doc/quick-tech-report/photolink_schematic.sch b/doc/quick-tech-report/photolink_schematic.sch deleted file mode 100644 index b5c6a64..0000000 --- a/doc/quick-tech-report/photolink_schematic.sch +++ /dev/null @@ -1,486 +0,0 @@ -EESchema Schematic File Version 4 -EELAYER 30 0 -EELAYER END -$Descr A4 11693 8268 -encoding utf-8 -Sheet 1 1 -Title "" -Date "" -Rev "" -Comp "" -Comment1 "" -Comment2 "" -Comment3 "" -Comment4 "" -$EndDescr -$Comp -L Transistor_BJT:BC847 Q1 -U 1 1 5FC67B72 -P 3450 3300 -F 0 "Q1" H 3641 3300 50 0000 L CNN -F 1 "BC847" H 3641 3255 50 0001 L CNN -F 2 "Package_TO_SOT_SMD:SOT-23" H 3650 3225 50 0001 L CIN -F 3 "http://www.infineon.com/dgdl/Infineon-BC847SERIES_BC848SERIES_BC849SERIES_BC850SERIES-DS-v01_01-en.pdf?fileId=db3a304314dca389011541d4630a1657" H 3450 3300 50 0001 L CNN - 1 3450 3300 - 1 0 0 -1 -$EndComp -$Comp -L Device:R_Small R1 -U 1 1 5FC6861A -P 3050 3300 -F 0 "R1" V 3246 3300 50 0000 C CNN -F 1 "R_Small" V 3155 3300 50 0000 C CNN -F 2 "" H 3050 3300 50 0001 C CNN -F 3 "~" H 3050 3300 50 0001 C CNN - 1 3050 3300 - 0 -1 -1 0 -$EndComp -Wire Wire Line - 4750 3050 4600 3050 -Wire Wire Line - 3550 2950 3550 3100 -Wire Wire Line - 3150 3300 3250 3300 -$Comp -L power:GND1 #PWR02 -U 1 1 5FC74679 -P 3550 3500 -F 0 "#PWR02" H 3550 3250 50 0001 C CNN -F 1 "GND1" H 3555 3327 50 0000 C CNN -F 2 "" H 3550 3500 50 0001 C CNN -F 3 "" H 3550 3500 50 0001 C CNN - 1 3550 3500 - 1 0 0 -1 -$EndComp -Wire Wire Line - 4750 3250 4650 3250 -Wire Wire Line - 4600 3050 4600 2650 -Wire Wire Line - 4600 2650 4900 2650 -Connection ~ 4600 3050 -Wire Wire Line - 4900 2300 4600 2300 -Wire Wire Line - 4600 2300 4600 2650 -Connection ~ 4600 2650 -Text GLabel 9150 3350 2 50 Input ~ 0 -RX_OUT -Text GLabel 2850 3300 0 50 Input ~ 0 -TX_IN -Wire Wire Line - 2850 3300 2950 3300 -$Comp -L power:+3V3 #PWR01 -U 1 1 5FC80852 -P 3550 2150 -F 0 "#PWR01" H 3550 2000 50 0001 C CNN -F 1 "+3V3" H 3565 2323 50 0000 C CNN -F 2 "" H 3550 2150 50 0001 C CNN -F 3 "" H 3550 2150 50 0001 C CNN - 1 3550 2150 - 1 0 0 -1 -$EndComp -$Comp -L Device:Opamp_Quad_Generic U1 -U 4 1 5FC81BCB -P 5250 4650 -F 0 "U1" H 5250 4375 50 0000 C CNN -F 1 "MCP6494" H 5250 4374 50 0001 C CNN -F 2 "" H 5250 4650 50 0001 C CNN -F 3 "~" H 5250 4650 50 0001 C CNN - 4 5250 4650 - 1 0 0 1 -$EndComp -$Comp -L Device:R R2 -U 1 1 5FC87551 -P 3550 2400 -F 0 "R2" H 3620 2400 50 0000 L CNN -F 1 "R" H 3620 2355 50 0001 L CNN -F 2 "" V 3480 2400 50 0001 C CNN -F 3 "~" H 3550 2400 50 0001 C CNN - 1 3550 2400 - 1 0 0 -1 -$EndComp -$Comp -L Device:Opamp_Quad_Generic U1 -U 2 1 5FC77130 -P 7200 3250 -F 0 "U1" H 7200 2975 50 0000 C CNN -F 1 "MCP6494" H 7200 2974 50 0001 C CNN -F 2 "" H 7200 3250 50 0001 C CNN -F 3 "~" H 7200 3250 50 0001 C CNN - 2 7200 3250 - 1 0 0 1 -$EndComp -$Comp -L Device:Opamp_Quad_Generic U1 -U 1 1 5FC6A2B7 -P 5050 3150 -F 0 "U1" H 5050 2783 50 0000 C CNN -F 1 "MCP6494" H 5050 2874 50 0000 C CNN -F 2 "" H 5050 3150 50 0001 C CNN -F 3 "~" H 5050 3150 50 0001 C CNN - 1 5050 3150 - 1 0 0 1 -$EndComp -Wire Wire Line - 7500 3250 7600 3250 -Wire Wire Line - 3550 2250 3550 2150 -$Comp -L Device:D_ALT LED1 -U 1 1 5FC90B25 -P 3550 2800 -F 0 "LED1" V 3550 3100 50 0000 R CNN -F 1 "D_ALT" V 3505 2720 50 0001 R CNN -F 2 "" H 3550 2800 50 0001 C CNN -F 3 "~" H 3550 2800 50 0001 C CNN - 1 3550 2800 - 0 -1 -1 0 -$EndComp -Wire Wire Line - 3550 2550 3550 2650 -$Comp -L Device:D_ALT PD1 -U 1 1 5FC93B60 -P 4150 2800 -F 0 "PD1" V 4150 2880 50 0000 L CNN -F 1 "D_ALT" V 4105 2720 50 0001 R CNN -F 2 "" H 4150 2800 50 0001 C CNN -F 3 "~" H 4150 2800 50 0001 C CNN - 1 4150 2800 - 0 1 1 0 -$EndComp -Wire Wire Line - 4150 3050 4150 2950 -Wire Wire Line - 4150 3050 4600 3050 -$Comp -L Device:R R3 -U 1 1 5FC9B279 -P 4350 4500 -F 0 "R3" H 4420 4500 50 0000 L CNN -F 1 "R" H 4420 4455 50 0001 L CNN -F 2 "" V 4280 4500 50 0001 C CNN -F 3 "~" H 4350 4500 50 0001 C CNN - 1 4350 4500 - 1 0 0 -1 -$EndComp -$Comp -L Device:R R4 -U 1 1 5FC9B8DC -P 4350 5000 -F 0 "R4" H 4420 5000 50 0000 L CNN -F 1 "R" H 4420 4955 50 0001 L CNN -F 2 "" V 4280 5000 50 0001 C CNN -F 3 "~" H 4350 5000 50 0001 C CNN - 1 4350 5000 - 1 0 0 -1 -$EndComp -$Comp -L Device:C C1 -U 1 1 5FC9BF27 -P 4650 5000 -F 0 "C1" H 4765 5000 50 0000 L CNN -F 1 "C" H 4765 4955 50 0001 L CNN -F 2 "" H 4688 4850 50 0001 C CNN -F 3 "~" H 4650 5000 50 0001 C CNN - 1 4650 5000 - 1 0 0 -1 -$EndComp -Wire Wire Line - 4350 4650 4350 4750 -Wire Wire Line - 4350 4750 4650 4750 -Wire Wire Line - 4650 4750 4650 4850 -Connection ~ 4350 4750 -Wire Wire Line - 4350 4750 4350 4850 -$Comp -L power:GND2 #PWR05 -U 1 1 5FC9F5E3 -P 4350 5300 -F 0 "#PWR05" H 4350 5050 50 0001 C CNN -F 1 "GND2" H 4355 5127 50 0000 C CNN -F 2 "" H 4350 5300 50 0001 C CNN -F 3 "" H 4350 5300 50 0001 C CNN - 1 4350 5300 - 1 0 0 -1 -$EndComp -Wire Wire Line - 4350 5300 4350 5250 -Wire Wire Line - 4650 5150 4650 5250 -Wire Wire Line - 4650 5250 4350 5250 -Connection ~ 4350 5250 -Wire Wire Line - 4350 5250 4350 5150 -$Comp -L power:+3V0 #PWR04 -U 1 1 5FCA206B -P 4350 4250 -F 0 "#PWR04" H 4350 4100 50 0001 C CNN -F 1 "+3V0" H 4365 4423 50 0000 C CNN -F 2 "" H 4350 4250 50 0001 C CNN -F 3 "" H 4350 4250 50 0001 C CNN - 1 4350 4250 - 1 0 0 -1 -$EndComp -Wire Wire Line - 4350 4250 4350 4350 -Wire Wire Line - 4950 4750 4650 4750 -Connection ~ 4650 4750 -Wire Wire Line - 4950 4550 4800 4550 -Wire Wire Line - 4800 4550 4800 4150 -Wire Wire Line - 4800 4150 5700 4150 -Wire Wire Line - 5700 4150 5700 4650 -Wire Wire Line - 5700 4650 5550 4650 -Connection ~ 5700 4650 -$Comp -L Device:R R5 -U 1 1 5FCB3FD4 -P 5050 2650 -F 0 "R5" V 4843 2650 50 0000 C CNN -F 1 "100k" V 4934 2650 50 0000 C CNN -F 2 "" V 4980 2650 50 0001 C CNN -F 3 "~" H 5050 2650 50 0001 C CNN - 1 5050 2650 - 0 1 1 0 -$EndComp -$Comp -L Device:C C2 -U 1 1 5FCB45E4 -P 5050 2300 -F 0 "C2" V 5302 2300 50 0000 C CNN -F 1 "7p" V 5211 2300 50 0000 C CNN -F 2 "" H 5088 2150 50 0001 C CNN -F 3 "~" H 5050 2300 50 0001 C CNN - 1 5050 2300 - 0 -1 -1 0 -$EndComp -Wire Wire Line - 5200 2300 5500 2300 -Wire Wire Line - 5500 2300 5500 2650 -Wire Wire Line - 5500 3150 5350 3150 -$Comp -L Device:R R6 -U 1 1 5FCB92E2 -P 6150 3150 -F 0 "R6" V 5943 3150 50 0000 C CNN -F 1 "1k" V 6034 3150 50 0000 C CNN -F 2 "" V 6080 3150 50 0001 C CNN -F 3 "~" H 6150 3150 50 0001 C CNN - 1 6150 3150 - 0 1 1 0 -$EndComp -$Comp -L Device:R R7 -U 1 1 5FCB995A -P 7200 2700 -F 0 "R7" V 6993 2700 50 0000 C CNN -F 1 "100k" V 7084 2700 50 0000 C CNN -F 2 "" V 7130 2700 50 0001 C CNN -F 3 "~" H 7200 2700 50 0001 C CNN - 1 7200 2700 - 0 1 1 0 -$EndComp -Wire Wire Line - 5600 3150 5500 3150 -Connection ~ 5500 3150 -Wire Wire Line - 7350 2700 7600 2700 -Wire Wire Line - 7600 2700 7600 3250 -Wire Wire Line - 9150 3350 9050 3350 -Wire Wire Line - 5200 2650 5500 2650 -Connection ~ 5500 2650 -Wire Wire Line - 5500 2650 5500 3150 -$Comp -L power:+3V0 #PWR03 -U 1 1 5FCC0528 -P 4150 2150 -F 0 "#PWR03" H 4150 2000 50 0001 C CNN -F 1 "+3V0" H 4165 2323 50 0000 C CNN -F 2 "" H 4150 2150 50 0001 C CNN -F 3 "" H 4150 2150 50 0001 C CNN - 1 4150 2150 - 1 0 0 -1 -$EndComp -Wire Wire Line - 4150 2150 4150 2650 -$Comp -L Graphic:SYM_Arrow_Normal #SYM1 -U 1 1 5FCC452D -P 3850 2775 -F 0 "#SYM1" H 3850 2835 50 0001 C CNN -F 1 "SYM_Arrow_Normal" H 3860 2725 50 0001 C CNN -F 2 "" H 3850 2775 50 0001 C CNN -F 3 "~" H 3850 2775 50 0001 C CNN - 1 3850 2775 - 1 0 0 -1 -$EndComp -$Comp -L Graphic:SYM_Arrow_Normal #SYM2 -U 1 1 5FCC5099 -P 3850 2850 -F 0 "#SYM2" H 3850 2910 50 0001 C CNN -F 1 "SYM_Arrow_Normal" H 3860 2800 50 0001 C CNN -F 2 "" H 3850 2850 50 0001 C CNN -F 3 "~" H 3850 2850 50 0001 C CNN - 1 3850 2850 - 1 0 0 -1 -$EndComp -Wire Notes Line - 3200 3000 4450 3000 -Wire Notes Line - 4450 3000 4450 2600 -Wire Notes Line - 4450 2600 3200 2600 -Wire Notes Line - 3200 2600 3200 3000 -Text Notes 2900 2700 0 50 ~ 0 -IR link -Wire Wire Line - 4650 3750 5950 3750 -Wire Wire Line - 5950 4650 5950 3750 -Wire Wire Line - 5700 4650 5950 4650 -Wire Notes Line - 3850 1550 3850 5700 -Text Notes 3750 1750 2 100 ~ 0 -Stator -Text Notes 3950 1750 0 100 ~ 0 -Rotor -Text Label 5650 3750 2 50 ~ 0 -VGND -Text Notes 5300 1950 2 50 ~ 0 -TIA G=100kΩ -Text Notes 7500 2350 2 50 ~ 0 -Amplifier G=100 -Text Notes 8950 2900 2 50 ~ 0 -Comparator -Text Notes 5650 4000 2 50 ~ 0 -Virtual Ground Buffer -$Comp -L Device:C C3 -U 1 1 5FC76733 -P 5750 3150 -F 0 "C3" V 5900 3150 50 0000 C CNN -F 1 "7p" V 5911 3150 50 0001 C CNN -F 2 "" H 5788 3000 50 0001 C CNN -F 3 "~" H 5750 3150 50 0001 C CNN - 1 5750 3150 - 0 1 1 0 -$EndComp -Wire Wire Line - 6650 3350 6650 3750 -Wire Wire Line - 6650 3350 6900 3350 -Connection ~ 6650 3750 -$Comp -L Device:Opamp_Quad_Generic U1 -U 3 1 5FC7A609 -P 8750 3350 -F 0 "U1" H 8750 3075 50 0000 C CNN -F 1 "MCP6494" H 8750 3074 50 0001 C CNN -F 2 "" H 8750 3350 50 0001 C CNN -F 3 "~" H 8750 3350 50 0001 C CNN - 3 8750 3350 - 1 0 0 1 -$EndComp -$Comp -L Device:C C4 -U 1 1 5FC8AF8D -P 7850 3250 -F 0 "C4" V 8102 3250 50 0000 C CNN -F 1 "7p" V 8011 3250 50 0001 C CNN -F 2 "" H 7888 3100 50 0001 C CNN -F 3 "~" H 7850 3250 50 0001 C CNN - 1 7850 3250 - 0 1 1 0 -$EndComp -$Comp -L Device:R R8 -U 1 1 5FC9BACD -P 6400 3400 -F 0 "R8" V 6300 3400 50 0000 C CNN -F 1 "1k" V 6284 3400 50 0001 C CNN -F 2 "" V 6330 3400 50 0001 C CNN -F 3 "~" H 6400 3400 50 0001 C CNN - 1 6400 3400 - -1 0 0 1 -$EndComp -Wire Wire Line - 5950 3750 6400 3750 -Connection ~ 5950 3750 -Wire Wire Line - 6400 3550 6400 3750 -Connection ~ 6400 3750 -Wire Wire Line - 6400 3750 6650 3750 -Wire Wire Line - 6300 3150 6400 3150 -Wire Wire Line - 6400 3250 6400 3150 -Wire Wire Line - 6400 2700 7050 2700 -Connection ~ 6400 3150 -Wire Wire Line - 6400 3150 6900 3150 -Wire Wire Line - 6400 3150 6400 2700 -Wire Wire Line - 6000 3150 5900 3150 -$Comp -L Device:R R9 -U 1 1 5FCAEC24 -P 8100 3500 -F 0 "R9" V 8000 3500 50 0000 C CNN -F 1 "100k" V 7984 3500 50 0001 C CNN -F 2 "" V 8030 3500 50 0001 C CNN -F 3 "~" H 8100 3500 50 0001 C CNN - 1 8100 3500 - -1 0 0 1 -$EndComp -Wire Wire Line - 7600 3250 7700 3250 -Connection ~ 7600 3250 -Wire Wire Line - 8450 3450 8350 3450 -Wire Wire Line - 8000 3250 8100 3250 -Wire Wire Line - 6650 3750 8100 3750 -Wire Wire Line - 8350 3450 8350 3750 -Wire Wire Line - 8100 3350 8100 3250 -Connection ~ 8100 3250 -Wire Wire Line - 8100 3250 8450 3250 -Connection ~ 8100 3750 -Wire Wire Line - 8100 3750 8350 3750 -Wire Wire Line - 8100 3650 8100 3750 -Wire Wire Line - 4650 3250 4650 3750 -Text Notes 5700 3750 0 50 ~ 0 -1/2 VCC = 1.5V -$EndSCHEMATC diff --git a/doc/quick-tech-report/photolink_schematic.svg b/doc/quick-tech-report/photolink_schematic.svg deleted file mode 100644 index a24a7ec..0000000 --- a/doc/quick-tech-report/photolink_schematic.svg +++ /dev/null @@ -1,3246 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - width="180.879mm" - height="111.56239mm" - viewBox="0 0 71212.205 43922.205" - id="svg1652" - sodipodi:docname="photolink_schematic.svg" - inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"> - <metadata - id="metadata1658"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title>SVG Picture created as photolink_schematic.svg date 2020/12/01 17:27:56 </dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs1656" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1920" - inkscape:window-height="1019" - id="namedview1654" - showgrid="false" - units="mm" - fit-margin-top="3" - lock-margins="true" - fit-margin-left="3" - fit-margin-right="3" - fit-margin-bottom="3" - inkscape:zoom="1.0618889" - inkscape:cx="323.2906" - inkscape:cy="259.69057" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:current-layer="svg1652" /> - <title - id="title2">SVG Picture created as photolink_schematic.svg date 2020/12/01 17:27:56 </title> - <desc - id="desc4">Picture generated by Eeschema-SVG </desc> - <g - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g6" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g28" - transform="translate(-24788.898,-14288.898)"> - <g - id="g8" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g10" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g14"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 43500,53000 v 500 h 500 l -500,500 -500,-500 h 500" - id="path12" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g26"> - <text - x="43550" - y="55000" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text16">GND2</text> - <path - d="m 42930,54500 -50,-30 h -70 l -70,30 -50,40 -30,50 -20,100 v 70 l 20,90 30,50 50,50 70,20 h 40 l 80,-20 20,-30 v -160 h -100" - id="path18" /> - <path - d="m 43160,54970 v -500 l 290,500 v -500" - id="path20" /> - <path - d="m 43690,54970 v -500 h 120 l 70,30 50,40 20,50 20,100 v 70 l -20,90 -20,50 -50,50 -70,20 h -120" - id="path22" /> - <path - d="m 44160,54520 30,-20 50,-30 h 110 l 50,30 30,20 20,50 v 40 l -20,80 -290,280 h 310" - id="path24" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g54" - transform="translate(-24788.898,-14288.898)"> - <g - id="g30" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g32" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g36"> - <rect - x="35100" - y="23000" - width="800" - height="2000" - rx="0" - id="rect34" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g42"> - <path - d="m 35500,23000 v -500" - id="path38" /> - <path - d="m 35500,25000 v 500" - id="path40" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g52"> - <text - x="36720" - y="24270" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text44">R2</text> - <path - d="m 36630,24240 -160,-240" - id="path46" /> - <path - d="m 36350,24240 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path48" /> - <path - d="m 36820,23790 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 40 l -30,80 -280,280 h 310" - id="path50" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g124" - transform="translate(-24788.898,-14288.898)"> - <g - id="g56" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g58" /> - <g - style="fill:#ffffc2;fill-opacity:0;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g60" /> - <g - style="fill:#ffffc2;fill-opacity:0.6;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g64"> - <path - style="fill:#ffffc2;fill-opacity:0.6;fill-rule:evenodd;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 70000,34500 4000,-2000 -4000,-2000 z" - id="path62" /> - </g> - <g - style="fill:#840000;fill-opacity:0.6;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g66" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g72"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 70000,34500 4000,-2000 -4000,-2000 z" - id="path68" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 70000,34500 4000,-2000 -4000,-2000 z" - id="path70" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g76"> - <path - d="M 70000,33500 H 69000" - id="path74" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g84"> - <text - x="70200" - y="33750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text78">+</text> - <path - d="m 70340,33530 h 390" - id="path80" /> - <path - d="m 70530,33720 v -380" - id="path82" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g92"> - <text - x="69500" - y="33400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text86">5</text> - <path - d="m 69610,32870 h -230 l -30,240 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -120 l -40,-20 -30,-30" - id="path88" /> - <path - d="M 70000,31500 H 69000" - id="path90" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g98"> - <text - x="70200" - y="31750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text94">-</text> - <path - d="m 70340,31530 h 390" - id="path96" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g110"> - <text - x="69500" - y="31400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text100">6</text> - <path - d="m 69590,30870 h -90 l -50,30 -30,20 -40,70 -30,100 v 190 l 30,40 20,30 50,20 h 90 l 50,-20 20,-30 30,-40 v -120 l -30,-50 -20,-20 -50,-30 h -90 l -50,30 -20,20 -30,50" - id="path102" /> - <path - d="m 74000,32500 h 1000" - id="path104" /> - <text - x="74500" - y="32400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text106">7</text> - <path - d="m 74330,31870 h 330 l -210,500" - id="path108" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g122"> - <text - x="72000" - y="29970" - textLength="1560" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text112">U1B</text> - <path - d="m 71360,29440 v 410 l 30,40 20,30 50,20 h 90 l 50,-20 30,-30 20,-40 v -410" - id="path114" /> - <path - d="m 72150,29940 h -290" - id="path116" /> - <path - d="m 72010,29940 v -500 l -50,70 -50,50 -50,20" - id="path118" /> - <path - d="m 72530,29680 70,20 30,30 20,40 v 80 l -20,40 -30,30 -50,20 h -190 v -500 h 170 l 50,30 20,20 30,50 v 40 l -30,50 -20,30 -50,20 h -170" - id="path120" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g218" - transform="translate(-24788.898,-14288.898)"> - <g - id="g126" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g128" /> - <g - style="fill:#ffffc2;fill-opacity:0;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g130" /> - <g - style="fill:#ffffc2;fill-opacity:0.6;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g134"> - <path - style="fill:#ffffc2;fill-opacity:0.6;fill-rule:evenodd;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 48500,33500 4000,-2000 -4000,-2000 z" - id="path132" /> - </g> - <g - style="fill:#840000;fill-opacity:0.6;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g136" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g142"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 48500,33500 4000,-2000 -4000,-2000 z" - id="path138" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 48500,33500 4000,-2000 -4000,-2000 z" - id="path140" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g154"> - <path - d="m 52500,31500 h 1000" - id="path144" /> - <text - x="53000" - y="31400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text146">1</text> - <path - d="m 53140,31370 h -290" - id="path148" /> - <path - d="m 53000,31370 v -500 l -50,70 -50,50 -50,20" - id="path150" /> - <path - d="M 48500,30500 H 47500" - id="path152" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g160"> - <text - x="48700" - y="30750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text156">-</text> - <path - d="m 48840,30530 h 390" - id="path158" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g168"> - <text - x="48000" - y="30400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text162">2</text> - <path - d="m 47850,29920 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 40 l -30,80 -280,280 h 310" - id="path164" /> - <path - d="M 48500,32500 H 47500" - id="path166" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g176"> - <text - x="48700" - y="32750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text170">+</text> - <path - d="m 48840,32530 h 390" - id="path172" /> - <path - d="m 49030,32720 v -380" - id="path174" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g182"> - <text - x="48000" - y="32400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text178">3</text> - <path - d="m 47830,31870 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path180" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g216"> - <text - x="50500" - y="28050" - textLength="1490" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text184">U1A</text> - <path - d="m 49900,27520 v 410 l 20,40 30,30 50,20 h 90 l 50,-20 20,-30 30,-40 v -410" - id="path186" /> - <path - d="m 50690,28020 h -290" - id="path188" /> - <path - d="m 50540,28020 v -500 l -40,70 -50,50 -50,20" - id="path190" /> - <path - d="m 50880,27880 h 230" - id="path192" /> - <path - d="m 50830,28020 170,-500 160,500" - id="path194" /> - <text - x="50500" - y="28960" - textLength="3540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text196">MCP6494</text> - <path - d="m 48880,28930 v -500 l 160,360 170,-360 v 500" - id="path198" /> - <path - d="m 49730,28880 -20,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -30,-90 v -70 l 30,-100 20,-50 50,-40 70,-30 h 50 l 70,30 20,20" - id="path200" /> - <path - d="m 49950,28930 v -500 h 190 l 50,30 20,20 20,50 v 70 l -20,50 -20,20 -50,20 h -190" - id="path202" /> - <path - d="m 50660,28430 h -90 l -50,30 -20,20 -50,70 -30,100 v 190 l 30,40 20,30 50,20 h 90 l 50,-20 30,-30 20,-40 v -120 l -20,-50 -30,-20 -50,-30 h -90 l -50,30 -20,20 -30,50" - id="path204" /> - <path - d="m 51140,28600 v 330" - id="path206" /> - <path - d="m 51020,28410 -120,350 h 310" - id="path208" /> - <path - d="m 51420,28930 h 100 l 50,-20 20,-30 50,-70 20,-90 v -190 l -20,-50 -30,-20 -40,-30 h -100 l -50,30 -20,20 -20,50 v 120 l 20,40 20,30 50,20 h 100 l 40,-20 30,-30 20,-40" - id="path210" /> - <path - d="m 52090,28600 v 330" - id="path212" /> - <path - d="m 51970,28410 -120,350 h 310" - id="path214" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g260" - transform="translate(-24788.898,-14288.898)"> - <g - id="g220" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g222" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g226"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35000,28500 h 1000" - id="path224" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g230"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35500,27500 v 1000" - id="path228" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g234"> - <path - style="fill:#840000;fill-opacity:1;fill-rule:evenodd;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35000,27500 h 1000 l -500,1000 z" - id="path232" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g236" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g242"> - <path - d="m 35500,28500 v 1000" - id="path238" /> - <path - d="M 35500,27500 V 26500" - id="path240" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g258"> - <text - x="33440" - y="28220" - textLength="1890" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text244">LED1</text> - <path - d="m 32880,28190 h -240 v -500" - id="path246" /> - <path - d="m 33040,27930 h 170" - id="path248" /> - <path - d="m 33280,28190 h -240 v -500 h 240" - id="path250" /> - <path - d="m 33490,28190 v -500 h 120 l 80,30 40,40 30,50 20,100 v 70 l -20,90 -30,50 -40,50 -80,20 h -120" - id="path252" /> - <path - d="m 34260,28190 h -290" - id="path254" /> - <path - d="m 34110,28190 v -500 l -40,70 -50,50 -50,20" - id="path256" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g288" - transform="translate(-24788.898,-14288.898)"> - <g - id="g262" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g264" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g268"> - <rect - x="80600" - y="34000" - width="800" - height="2000" - rx="0" - id="rect266" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g274"> - <path - d="m 81000,36000 v 500" - id="path270" /> - <path - d="m 81000,34000 v -500" - id="path272" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g286"> - <g - transform="rotate(-90,81970,35000)" - id="g278"> - <text - x="81970" - y="35250" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text276">R9</text> - </g> - <path - d="m 82190,35080 -240,170" - id="path280" /> - <path - d="m 82190,35360 h -500 v -190 l 30,-40 20,-30 50,-20 h 70 l 50,20 20,30 20,40 v 190" - id="path282" /> - <path - d="m 82190,34840 v -90 l -20,-50 -30,-30 -70,-40 -90,-30 h -190 l -50,30 -20,20 -30,50 v 90 l 30,50 20,20 50,30 h 120 l 40,-30 30,-20 20,-50 v -90 l -20,-50 -30,-20 -40,-30" - id="path284" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g326" - transform="translate(-24788.898,-14288.898)"> - <g - id="g290" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g292" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g296"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 42000,27500 H 41000" - id="path294" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g300"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 41500,28500 V 27500" - id="path298" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g304"> - <path - style="fill:#840000;fill-opacity:1;fill-rule:evenodd;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 42000,28500 h -1000 l 500,-1000 z" - id="path302" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g306" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g312"> - <path - d="M 41500,27500 V 26500" - id="path308" /> - <path - d="m 41500,28500 v 1000" - id="path310" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g324"> - <text - x="43070" - y="28270" - textLength="1540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text314">PD1</text> - <path - d="m 42450,28240 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path316" /> - <path - d="m 42950,28240 v -500 h 120 l 70,30 40,40 30,50 20,100 v 70 l -20,90 -30,50 -40,50 -70,20 h -120" - id="path318" /> - <path - d="m 43710,28240 h -290" - id="path320" /> - <path - d="m 43570,28240 v -500 l -50,70 -50,50 -50,20" - id="path322" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g352" - transform="translate(-24788.898,-14288.898)"> - <g - id="g328" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g330" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g334"> - <rect - x="43100" - y="44000" - width="800" - height="2000" - rx="0" - id="rect332" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g340"> - <path - d="m 43500,44000 v -500" - id="path336" /> - <path - d="m 43500,46000 v 500" - id="path338" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g350"> - <text - x="44720" - y="45270" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text342">R3</text> - <path - d="m 44630,45240 -160,-240" - id="path344" /> - <path - d="m 44350,45240 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path346" /> - <path - d="m 44800,44740 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path348" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g380" - transform="translate(-24788.898,-14288.898)"> - <g - id="g354" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g356" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g362"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 45700,50300 h 1600" - id="path358" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 45700,49700 h 1600" - id="path360" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g368"> - <path - d="M 46500,49600 V 48500" - id="path364" /> - <path - d="m 46500,50400 v 1100" - id="path366" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g378"> - <text - x="48170" - y="50270" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text370">C1</text> - <path - d="m 48080,50190 -20,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -30,-90 v -70 l 30,-100 20,-50 50,-40 70,-30 h 50 l 70,30 20,20" - id="path372" /> - <path - d="m 48560,50240 h -290" - id="path374" /> - <path - d="m 48420,50240 v -500 l -50,70 -50,50 -50,20" - id="path376" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g408" - transform="translate(-24788.898,-14288.898)"> - <g - id="g382" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g384" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g388"> - <rect - x="43100" - y="49000" - width="800" - height="2000" - rx="0" - id="rect386" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g394"> - <path - d="m 43500,49000 v -500" - id="path390" /> - <path - d="m 43500,51000 v 500" - id="path392" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g406"> - <text - x="44720" - y="50270" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text396">R4</text> - <path - d="m 44630,50240 -160,-240" - id="path398" /> - <path - d="m 44350,50240 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path400" /> - <path - d="m 45060,49910 v 330" - id="path402" /> - <path - d="m 44940,49720 -120,350 h 310" - id="path404" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g422" - transform="translate(-24788.898,-14288.898)"> - <g - id="g410" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g412" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g416"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 39100,28500 H 37500" - id="path414" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g420"> - <path - style="fill:#840000;fill-opacity:1;fill-rule:evenodd;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 39500,28500 -700,200 v -400 z" - id="path418" /> - </g> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g448" - transform="translate(-24788.898,-14288.898)"> - <g - id="g424" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g432"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 43200,42000 300,-500" - id="path426" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 43500,42500 V 41500" - id="path428" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 43500,41500 300,500" - id="path430" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g446"> - <text - x="43650" - y="41040" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text434">+3V0</text> - <path - d="m 42760,40820 h 390" - id="path436" /> - <path - d="m 42950,41010 v -380" - id="path438" /> - <path - d="m 43340,40510 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path440" /> - <path - d="m 43790,40510 160,500 170,-500" - id="path442" /> - <path - d="m 44380,40510 h 50 l 50,30 20,20 30,50 20,90 v 120 l -20,100 -30,40 -20,30 -50,20 h -50 l -40,-20 -30,-30 -20,-40 -30,-100 v -120 l 30,-90 20,-50 30,-20 40,-30" - id="path444" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g462" - transform="translate(-24788.898,-14288.898)"> - <g - id="g450" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g452" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g456"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 39100,27750 H 37500" - id="path454" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g460"> - <path - style="fill:#840000;fill-opacity:1;fill-rule:evenodd;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 39500,27750 -700,200 v -400 z" - id="path458" /> - </g> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g488" - transform="translate(-24788.898,-14288.898)"> - <g - id="g464" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g472"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 41200,21000 300,-500" - id="path466" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 41500,21500 V 20500" - id="path468" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 41500,20500 300,500" - id="path470" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g486"> - <text - x="41650" - y="20040" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text474">+3V0</text> - <path - d="m 40760,19820 h 390" - id="path476" /> - <path - d="m 40950,20010 v -380" - id="path478" /> - <path - d="m 41340,19510 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path480" /> - <path - d="m 41790,19510 160,500 170,-500" - id="path482" /> - <path - d="m 42380,19510 h 50 l 50,30 20,20 30,50 20,90 v 120 l -20,100 -30,40 -20,30 -50,20 h -50 l -40,-20 -30,-30 -20,-40 -30,-100 v -120 l 30,-90 20,-50 30,-20 40,-30" - id="path484" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g530" - transform="translate(-24788.898,-14288.898)"> - <g - id="g490" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g492" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g496"> - <rect - x="49500" - y="26100" - width="2000" - height="800" - rx="0" - id="rect494" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g502"> - <path - d="m 51500,26500 h 500" - id="path498" /> - <path - d="m 49500,26500 h -500" - id="path500" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g528"> - <text - x="50500" - y="24700" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text504">R5</text> - <path - d="m 50410,24670 -160,-240" - id="path506" /> - <path - d="m 50130,24670 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path508" /> - <path - d="m 50860,24170 h -230 l -30,240 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -120 l -40,-20 -30,-30" - id="path510" /> - <text - x="50500" - y="25610" - textLength="1890" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text512">100k</text> - <path - d="m 49960,25580 h -290" - id="path514" /> - <path - d="m 49820,25580 v -500 l -50,70 -50,50 -50,20" - id="path516" /> - <path - d="m 50270,25080 h 50 l 40,30 30,20 20,50 30,90 v 120 l -30,100 -20,40 -30,30 -40,20 h -50 l -50,-20 -20,-30 -30,-40 -20,-100 v -120 l 20,-90 30,-50 20,-20 50,-30" - id="path518" /> - <path - d="m 50750,25080 h 40 l 50,30 20,20 30,50 20,90 v 120 l -20,100 -30,40 -20,30 -50,20 h -40 l -50,-20 -30,-30 -20,-40 -20,-100 v -120 l 20,-90 20,-50 30,-20 50,-30" - id="path520" /> - <path - d="m 51130,25580 v -500" - id="path522" /> - <path - d="m 51170,25390 150,190" - id="path524" /> - <path - d="m 51320,25250 -190,190" - id="path526" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g564" - transform="translate(-24788.898,-14288.898)"> - <g - id="g532" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g534" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g540"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 50800,23800 V 22200" - id="path536" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 50200,23800 V 22200" - id="path538" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g546"> - <path - d="M 50100,23000 H 49000" - id="path542" /> - <path - d="m 50900,23000 h 1100" - id="path544" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g562"> - <text - x="50500" - y="20700" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text548">C2</text> - <path - d="m 50410,20620 -20,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -30,-90 v -70 l 30,-100 20,-50 50,-40 70,-30 h 50 l 70,30 20,20" - id="path550" /> - <path - d="m 50600,20220 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 40 l -30,80 -280,280 h 310" - id="path552" /> - <text - x="50490" - y="21610" - textLength="990" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text554">7p</text> - <path - d="m 50090,21080 h 340 l -220,500" - id="path556" /> - <path - d="m 50620,21250 v 500" - id="path558" /> - <path - d="m 50620,21270 40,-20 h 100 l 50,20 20,30 20,40 v 150 l -20,40 -20,30 -50,20 h -100 l -40,-20" - id="path560" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g606" - transform="translate(-24788.898,-14288.898)"> - <g - id="g566" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g568" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g572"> - <rect - x="71000" - y="26600" - width="2000" - height="800" - rx="0" - id="rect570" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g578"> - <path - d="m 73000,27000 h 500" - id="path574" /> - <path - d="m 71000,27000 h -500" - id="path576" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g604"> - <text - x="72000" - y="25200" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text580">R7</text> - <path - d="m 71910,25170 -160,-240" - id="path582" /> - <path - d="m 71630,25170 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path584" /> - <path - d="m 72080,24670 h 330 l -210,500" - id="path586" /> - <text - x="72000" - y="26110" - textLength="1890" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text588">100k</text> - <path - d="m 71460,26080 h -290" - id="path590" /> - <path - d="m 71320,26080 v -500 l -50,70 -50,50 -50,20" - id="path592" /> - <path - d="m 71770,25580 h 50 l 40,30 30,20 20,50 30,90 v 120 l -30,100 -20,40 -30,30 -40,20 h -50 l -50,-20 -20,-30 -30,-40 -20,-100 v -120 l 20,-90 30,-50 20,-20 50,-30" - id="path594" /> - <path - d="m 72250,25580 h 40 l 50,30 20,20 30,50 20,90 v 120 l -20,100 -30,40 -20,30 -50,20 h -40 l -50,-20 -30,-30 -20,-40 -20,-100 v -120 l 20,-90 20,-50 30,-20 50,-30" - id="path596" /> - <path - d="m 72630,26080 v -500" - id="path598" /> - <path - d="m 72670,25890 150,190" - id="path600" /> - <path - d="m 72820,25750 -190,190" - id="path602" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g644" - transform="translate(-24788.898,-14288.898)"> - <g - id="g608" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g610" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g614"> - <rect - x="60500" - y="31100" - width="2000" - height="800" - rx="0" - id="rect612" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g620"> - <path - d="m 62500,31500 h 500" - id="path616" /> - <path - d="m 60500,31500 h -500" - id="path618" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g642"> - <text - x="61500" - y="29700" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text622">R6</text> - <path - d="m 61410,29670 -160,-240" - id="path624" /> - <path - d="m 61130,29670 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path626" /> - <path - d="m 61840,29170 h -90 l -50,30 -30,20 -40,70 -30,100 v 190 l 30,40 20,30 50,20 h 90 l 50,-20 20,-30 30,-40 v -120 l -30,-50 -20,-20 -50,-30 h -90 l -50,30 -20,20 -30,50" - id="path628" /> - <text - x="61500" - y="30610" - textLength="940" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text630">1k</text> - <path - d="m 61440,30580 h -290" - id="path632" /> - <path - d="m 61290,30580 v -500 l -40,70 -50,50 -50,20" - id="path634" /> - <path - d="m 61650,30580 v -500" - id="path636" /> - <path - d="m 61700,30390 140,190" - id="path638" /> - <path - d="m 61840,30250 -190,190" - id="path640" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g672" - transform="translate(-24788.898,-14288.898)"> - <g - id="g646" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g648" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g656"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35200,21000 300,-500" - id="path650" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="M 35500,21500 V 20500" - id="path652" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35500,20500 300,500" - id="path654" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g670"> - <text - x="35650" - y="20040" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text658">+3V3</text> - <path - d="m 34760,19820 h 390" - id="path660" /> - <path - d="m 34950,20010 v -380" - id="path662" /> - <path - d="m 35340,19510 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path664" /> - <path - d="m 35790,19510 160,500 170,-500" - id="path666" /> - <path - d="m 36240,19510 h 310 l -170,190 h 70 l 50,30 30,20 20,50 v 120 l -20,40 -30,30 -50,20 h -140 l -50,-20 -20,-30" - id="path668" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g724" - transform="translate(-24788.898,-14288.898)"> - <g - id="g674" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g676" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:80;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g680"> - <rect - x="29800" - y="32700" - width="1400" - height="600" - rx="0" - id="rect678" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g686"> - <path - d="m 29800,33000 h -300" - id="path682" /> - <path - d="m 31200,33000 h 300" - id="path684" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g722"> - <text - x="30500" - y="31260" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text688">R1</text> - <path - d="m 30410,31230 -160,-240" - id="path690" /> - <path - d="m 30130,31230 v -500 h 190 l 40,30 30,20 20,50 v 70 l -20,50 -30,20 -40,20 h -190" - id="path692" /> - <path - d="m 30890,31230 h -290" - id="path694" /> - <path - d="m 30750,31230 v -500 l -50,70 -50,50 -50,20" - id="path696" /> - <text - x="30500" - y="32170" - textLength="3060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text698">R_Small</text> - <path - d="m 29400,32140 -170,-240" - id="path700" /> - <path - d="m 29110,32140 v -500 h 190 l 50,30 30,20 20,50 v 70 l -20,50 -30,20 -50,20 h -190" - id="path702" /> - <path - d="m 29500,32190 h 380" - id="path704" /> - <path - d="m 29970,32120 70,20 h 120 l 50,-20 20,-30 30,-40 v -50 l -30,-50 -20,-20 -50,-30 -90,-20 -50,-20 -20,-30 -30,-50 v -40 l 30,-50 20,-20 50,-30 h 120 l 70,30" - id="path706" /> - <path - d="m 30470,32140 v -330" - id="path708" /> - <path - d="m 30470,31860 30,-30 40,-20 h 70 l 50,20 30,50 v 260" - id="path710" /> - <path - d="m 30690,31880 20,-50 50,-20 h 70 l 50,20 20,50 v 260" - id="path712" /> - <path - d="m 31350,32140 v -260 l -20,-50 -50,-20 h -90 l -50,20" - id="path714" /> - <path - d="m 31350,32120 -50,20 h -110 l -50,-20 -30,-50 v -50 l 30,-50 50,-20 h 110 l 50,-20" - id="path716" /> - <path - d="m 31660,32140 -50,-20 -20,-50 v -430" - id="path718" /> - <path - d="m 31920,32140 -40,-20 -30,-50 v -430" - id="path720" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g748" - transform="translate(-24788.898,-14288.898)"> - <g - id="g726" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g728" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g732"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35500,35000 v 500 h 500 l -500,500 -500,-500 h 500" - id="path730" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g746"> - <text - x="35550" - y="37000" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text734">GND1</text> - <path - d="m 34930,36500 -50,-30 h -70 l -70,30 -50,40 -30,50 -20,100 v 70 l 20,90 30,50 50,50 70,20 h 40 l 80,-20 20,-30 v -160 h -100" - id="path736" /> - <path - d="m 35160,36970 v -500 l 290,500 v -500" - id="path738" /> - <path - d="m 35690,36970 v -500 h 120 l 70,30 50,40 20,50 20,100 v 70 l -20,90 -20,50 -50,50 -70,20 h -120" - id="path740" /> - <path - d="m 36450,36970 h -290" - id="path742" /> - <path - d="m 36310,36970 v -500 l -50,70 -50,50 -50,20" - id="path744" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g776" - transform="translate(-24788.898,-14288.898)"> - <g - id="g750" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g752" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g756"> - <rect - x="63600" - y="33000" - width="800" - height="2000" - rx="0" - id="rect754" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g762"> - <path - d="m 64000,35000 v 500" - id="path758" /> - <path - d="m 64000,33000 v -500" - id="path760" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g774"> - <g - transform="rotate(-90,64970,34000)" - id="g766"> - <text - x="64970" - y="34250" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text764">R8</text> - </g> - <path - d="m 65190,34080 -240,170" - id="path768" /> - <path - d="m 65190,34360 h -500 v -190 l 30,-40 20,-30 50,-20 h 70 l 50,20 20,30 20,40 v 190" - id="path770" /> - <path - d="m 64910,33790 -30,50 -20,20 -50,30 h -20 l -50,-30 -20,-20 -30,-50 v -90 l 30,-50 20,-20 50,-30 h 20 l 50,30 20,20 30,50 v 90 l 20,50 20,20 50,30 h 100 l 40,-30 30,-20 20,-50 v -90 l -20,-50 -30,-20 -40,-30 h -100 l -50,30 -20,20 -20,50" - id="path772" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g804" - transform="translate(-24788.898,-14288.898)"> - <g - id="g778" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g780" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g786"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 78200,31700 v 1600" - id="path782" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 78800,31700 v 1600" - id="path784" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g792"> - <path - d="m 78900,32500 h 1100" - id="path788" /> - <path - d="M 78100,32500 H 77000" - id="path790" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g802"> - <text - x="78500" - y="35290" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text794">C4</text> - <path - d="m 78410,35210 -20,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -30,-90 v -70 l 30,-100 20,-50 50,-40 70,-30 h 50 l 70,30 20,20" - id="path796" /> - <path - d="m 78840,34930 v 330" - id="path798" /> - <path - d="m 78720,34740 -120,350 h 310" - id="path800" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g866" - transform="translate(-24788.898,-14288.898)"> - <g - id="g806" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g808" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g812"> - <circle - cx="35000" - cy="33000" - r="1110" - id="circle810" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g818"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 34750,32750 750,-750" - id="path814" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 34750,33250 750,750 v 0" - id="path816" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g822"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 34750,32250 v 1500 0" - id="path820" /> - </g> - <g - style="fill:#840000;fill-opacity:1;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g826"> - <path - style="fill:#840000;fill-opacity:1;fill-rule:evenodd;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 35000,33700 200,-200 200,400 z" - id="path824" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g852"> - <path - d="M 34750,33000 H 32500" - id="path828" /> - <text - x="33620" - y="33600" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text830">1</text> - <path - d="m 33760,33570 h -290" - id="path832" /> - <path - d="m 33620,33570 v -500 l -50,70 -50,50 -50,20" - id="path834" /> - <path - d="m 35500,34000 v 1000" - id="path836" /> - <g - transform="rotate(-90,35600,34500)" - id="g840"> - <text - x="35600" - y="35000" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text838">2</text> - </g> - <path - d="m 35620,34640 -20,-30 -30,-40 v -120 l 30,-50 20,-20 50,-30 h 40 l 80,30 280,280 v -310" - id="path842" /> - <path - d="M 35500,32000 V 31000" - id="path844" /> - <g - transform="rotate(-90,35600,31500)" - id="g848"> - <text - x="35600" - y="32000" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text846">3</text> - </g> - <path - d="m 35570,31660 v -310 l 190,170 v -70 l 30,-50 20,-20 50,-30 h 120 l 40,30 30,20 20,50 v 140 l -20,50 -30,20" - id="path850" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g864"> - <text - x="36940" - y="33270" - textLength="1060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text854">Q1</text> - <path - d="m 36890,33290 -50,-20 -50,-50 -70,-70 -50,-30 h -40" - id="path856" /> - <path - d="m 36650,33240 -50,-20 -50,-50 -20,-100 v -160 l 20,-100 50,-40 50,-30 h 90 l 50,30 50,40 20,100 v 160 l -20,100 -50,50 -50,20 h -90" - id="path858" /> - <path - d="m 37340,33240 h -290" - id="path860" /> - <path - d="m 37200,33240 v -500 l -50,70 -50,50 -50,20" - id="path862" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g940" - transform="translate(-24788.898,-14288.898)"> - <g - id="g868" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g870" /> - <g - style="fill:#ffffc2;fill-opacity:0;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g872" /> - <g - style="fill:#ffffc2;fill-opacity:0.6;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g876"> - <path - style="fill:#ffffc2;fill-opacity:0.6;fill-rule:evenodd;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 85500,35500 4000,-2000 -4000,-2000 z" - id="path874" /> - </g> - <g - style="fill:#840000;fill-opacity:0.6;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g878" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g884"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 85500,35500 4000,-2000 -4000,-2000 z" - id="path880" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 85500,35500 4000,-2000 -4000,-2000 z" - id="path882" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g888"> - <path - d="M 85500,34500 H 84500" - id="path886" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g896"> - <text - x="85700" - y="34750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text890">+</text> - <path - d="m 85840,34530 h 390" - id="path892" /> - <path - d="m 86030,34720 v -380" - id="path894" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g914"> - <text - x="85000" - y="34400" - textLength="1010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text898">10</text> - <path - d="m 84900,34370 h -290" - id="path900" /> - <path - d="m 84760,34370 v -500 l -50,70 -50,50 -50,20" - id="path902" /> - <path - d="m 85210,33870 h 50 l 40,30 30,20 20,50 30,90 v 120 l -30,100 -20,40 -30,30 -40,20 h -50 l -50,-20 -20,-30 -30,-40 -20,-100 v -120 l 20,-90 30,-50 20,-20 50,-30" - id="path904" /> - <path - d="m 89500,33500 h 1000" - id="path906" /> - <text - x="90000" - y="33400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text908">8</text> - <path - d="m 89950,33090 -50,-30 -20,-20 -30,-50 v -20 l 30,-50 20,-20 50,-30 h 90 l 50,30 20,20 30,50 v 20 l -30,50 -20,20 -50,30 h -90 l -50,20 -20,20 -30,50 v 100 l 30,40 20,30 50,20 h 90 l 50,-20 20,-30 30,-40 v -100 l -30,-50 -20,-20 -50,-20" - id="path910" /> - <path - d="M 85500,32500 H 84500" - id="path912" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g920"> - <text - x="85700" - y="32750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text916">-</text> - <path - d="m 85840,32530 h 390" - id="path918" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g926"> - <text - x="85000" - y="32400" - textLength="540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text922">9</text> - <path - d="m 84900,32370 h 100 l 40,-20 30,-30 40,-70 30,-90 v -190 l -30,-50 -20,-20 -50,-30 h -90 l -50,30 -20,20 -30,50 v 120 l 30,40 20,30 50,20 h 90 l 50,-20 20,-30 30,-40" - id="path924" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g938"> - <text - x="87500" - y="30970" - textLength="1560" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text928">U1C</text> - <path - d="m 86860,30440 v 410 l 30,40 20,30 50,20 h 90 l 50,-20 30,-30 20,-40 v -410" - id="path930" /> - <path - d="m 87650,30940 h -290" - id="path932" /> - <path - d="m 87510,30940 v -500 l -50,70 -50,50 -50,20" - id="path934" /> - <path - d="m 88150,30890 -20,30 -80,20 h -40 l -70,-20 -50,-50 -30,-50 -20,-90 v -70 l 20,-100 30,-50 50,-40 70,-30 h 40 l 80,30 20,20" - id="path936" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1024" - transform="translate(-24788.898,-14288.898)"> - <g - id="g942" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g944" /> - <g - style="fill:#ffffc2;fill-opacity:0;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g946" /> - <g - style="fill:#ffffc2;fill-opacity:0.6;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g950"> - <path - style="fill:#ffffc2;fill-opacity:0.6;fill-rule:evenodd;stroke:#ffffc2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 50500,48500 4000,-2000 -4000,-2000 z" - id="path948" /> - </g> - <g - style="fill:#840000;fill-opacity:0.6;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g952" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g958"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 50500,48500 4000,-2000 -4000,-2000 z" - id="path954" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 50500,48500 4000,-2000 -4000,-2000 z" - id="path956" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g962"> - <path - d="M 50500,47500 H 49500" - id="path960" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g970"> - <text - x="50700" - y="47750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text964">+</text> - <path - d="m 50840,47530 h 390" - id="path966" /> - <path - d="m 51030,47720 v -380" - id="path968" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g982"> - <text - x="50000" - y="47400" - textLength="1010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text972">12</text> - <path - d="m 49900,47370 h -290" - id="path974" /> - <path - d="m 49760,47370 v -500 l -50,70 -50,50 -50,20" - id="path976" /> - <path - d="m 50090,46920 20,-20 50,-30 h 120 l 50,30 20,20 30,50 v 40 l -30,80 -280,280 h 310" - id="path978" /> - <path - d="M 50500,45500 H 49500" - id="path980" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g988"> - <text - x="50700" - y="45750" - textLength="680" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text984">-</text> - <path - d="m 50840,45530 h 390" - id="path986" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1010"> - <text - x="50000" - y="45400" - textLength="1010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text990">13</text> - <path - d="m 49900,45370 h -290" - id="path992" /> - <path - d="m 49760,45370 v -500 l -50,70 -50,50 -50,20" - id="path994" /> - <path - d="m 50070,44870 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path996" /> - <path - d="m 54500,46500 h 1000" - id="path998" /> - <text - x="55000" - y="46400" - textLength="1010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text1000">14</text> - <path - d="m 54900,46370 h -290" - id="path1002" /> - <path - d="m 54760,46370 v -500 l -50,70 -50,50 -50,20" - id="path1004" /> - <path - d="m 55330,46040 v 330" - id="path1006" /> - <path - d="m 55210,45850 -120,350 h 310" - id="path1008" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1022"> - <text - x="52500" - y="43970" - textLength="1560" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text1012">U1D</text> - <path - d="m 51860,43440 v 410 l 30,40 20,30 50,20 h 90 l 50,-20 30,-30 20,-40 v -410" - id="path1014" /> - <path - d="m 52650,43940 h -290" - id="path1016" /> - <path - d="m 52510,43940 v -500 l -50,70 -50,50 -50,20" - id="path1018" /> - <path - d="m 52860,43940 v -500 h 120 l 70,30 50,40 30,50 20,100 v 70 l -20,90 -30,50 -50,50 -70,20 h -120" - id="path1020" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1050" - transform="translate(-24788.898,-14288.898)"> - <g - id="g1026" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1028" /> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1034"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 57200,30700 v 1600" - id="path1030" /> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:200;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 57800,30700 v 1600" - id="path1032" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1040"> - <path - d="m 57900,31500 h 1100" - id="path1036" /> - <path - d="M 57100,31500 H 56000" - id="path1038" /> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1048"> - <text - x="57500" - y="33270" - textLength="1040" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="middle" - opacity="0" - id="text1042">C3</text> - <path - d="m 57410,33190 -20,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -30,-90 v -70 l 30,-100 20,-50 50,-40 70,-30 h 50 l 70,30 20,20" - id="path1044" /> - <path - d="m 57580,32740 h 310 l -170,190 h 70 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -140 l -50,-20 -20,-30" - id="path1046" /> - </g> - </g> - <g - style="fill:#008484;fill-opacity:0;stroke:#008484;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1052" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1054" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150, 150;stroke-opacity:1" - id="g1058" - transform="translate(-24788.898,-14288.898)"> - <path - d="M 38500,15500 V 57000" - id="path1056" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1060" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150, 150;stroke-opacity:1" - id="g1064" - transform="translate(-24788.898,-14288.898)"> - <path - d="M 32000,30000 H 44500" - id="path1062" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1066" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150, 150;stroke-opacity:1" - id="g1070" - transform="translate(-24788.898,-14288.898)"> - <path - d="M 44500,30000 V 26000" - id="path1068" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1072" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150, 150;stroke-opacity:1" - id="g1076" - transform="translate(-24788.898,-14288.898)"> - <path - d="M 44500,26000 H 32000" - id="path1074" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1078" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:150, 150;stroke-opacity:1" - id="g1082" - transform="translate(-24788.898,-14288.898)"> - <path - d="m 32000,26000 v 4000" - id="path1080" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1084" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:0;stroke:#008400;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1212" - transform="translate(-24788.898,-14288.898)"> - <path - d="m 64000,31500 h 5000" - id="path1086" /> - <path - d="M 60000,31500 H 59000" - id="path1088" /> - <path - d="m 55000,26500 v 5000" - id="path1090" /> - <path - d="M 66500,37500 H 81000" - id="path1092" /> - <path - d="m 52000,26500 h 3000" - id="path1094" /> - <path - d="M 91500,33500 H 90500" - id="path1096" /> - <path - d="m 76000,27000 v 5500" - id="path1098" /> - <path - d="m 73500,27000 h 2500" - id="path1100" /> - <path - d="M 64000,32500 V 31500" - id="path1102" /> - <path - d="m 64000,35500 v 2000" - id="path1104" /> - <path - d="m 83500,34500 v 3000" - id="path1106" /> - <path - d="M 56000,31500 H 55000" - id="path1108" /> - <path - d="m 63000,31500 h 1000" - id="path1110" /> - <path - d="m 41500,21500 v 5000" - id="path1112" /> - <path - d="m 59500,37500 h 4500" - id="path1114" /> - <path - d="M 64000,31500 V 27000" - id="path1116" /> - <path - d="m 66500,33500 h 2500" - id="path1118" /> - <path - d="m 80000,32500 h 1000" - id="path1120" /> - <path - d="M 46500,37500 H 59500" - id="path1122" /> - <path - d="M 59500,46500 V 37500" - id="path1124" /> - <path - d="m 57000,46500 h 2500" - id="path1126" /> - <path - d="m 66500,33500 v 4000" - id="path1128" /> - <path - d="m 64000,37500 h 2500" - id="path1130" /> - <path - d="m 64000,27000 h 6500" - id="path1132" /> - <path - d="M 84500,34500 H 83500" - id="path1134" /> - <path - d="m 76000,32500 h 1000" - id="path1136" /> - <path - d="m 46500,32500 v 5000" - id="path1138" /> - <path - d="m 46500,47500 v 1000" - id="path1140" /> - <path - d="m 43500,47500 h 3000" - id="path1142" /> - <path - d="m 43500,46500 v 1000" - id="path1144" /> - <path - d="m 41500,30500 h 4500" - id="path1146" /> - <path - d="M 41500,30500 V 29500" - id="path1148" /> - <path - d="m 35500,25500 v 1000" - id="path1150" /> - <path - d="M 35500,22500 V 21500" - id="path1152" /> - <path - d="m 75000,32500 h 1000" - id="path1154" /> - <path - d="m 28500,33000 h 1000" - id="path1156" /> - <path - d="m 55000,23000 v 3500" - id="path1158" /> - <path - d="m 46000,23000 v 3500" - id="path1160" /> - <path - d="M 49000,23000 H 46000" - id="path1162" /> - <path - d="m 46000,26500 h 3000" - id="path1164" /> - <path - d="M 46000,30500 V 26500" - id="path1166" /> - <path - d="M 47500,32500 H 46500" - id="path1168" /> - <path - d="m 31500,33000 h 1000" - id="path1170" /> - <path - d="m 35500,29500 v 1500" - id="path1172" /> - <path - d="M 47500,30500 H 46000" - id="path1174" /> - <path - d="M 49500,47500 H 46500" - id="path1176" /> - <path - d="M 81000,33500 V 32500" - id="path1178" /> - <path - d="M 57000,46500 H 55500" - id="path1180" /> - <path - d="m 57000,41500 v 5000" - id="path1182" /> - <path - d="m 48000,41500 h 9000" - id="path1184" /> - <path - d="M 48000,45500 V 41500" - id="path1186" /> - <path - d="M 49500,45500 H 48000" - id="path1188" /> - <path - d="m 81000,32500 h 3500" - id="path1190" /> - <path - d="m 81000,36500 v 1000" - id="path1192" /> - <path - d="m 52000,23000 h 3000" - id="path1194" /> - <path - d="m 43500,42500 v 1000" - id="path1196" /> - <path - d="M 43500,52500 V 51500" - id="path1198" /> - <path - d="m 81000,37500 h 2500" - id="path1200" /> - <path - d="M 55000,31500 H 53500" - id="path1202" /> - <path - d="M 46500,52500 H 43500" - id="path1204" /> - <path - d="m 46500,51500 v 1000" - id="path1206" /> - <path - d="m 43500,53000 v -500" - id="path1208" /> - <path - d="m 43500,47500 v 1000" - id="path1210" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1234" - transform="translate(-24788.898,-14288.898)"> - <text - x="91810" - y="33750" - textLength="2850" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text1214">RX_OUT</text> - <path - d="m 92240,33720 -170,-240" - id="path1216" /> - <path - d="m 91950,33720 v -500 h 190 l 50,30 30,20 20,50 v 70 l -20,50 -30,20 -50,20 h -190" - id="path1218" /> - <path - d="m 92410,33220 330,500" - id="path1220" /> - <path - d="m 92740,33220 -330,500" - id="path1222" /> - <path - d="m 92810,33770 h 380" - id="path1224" /> - <path - d="m 93410,33220 h 90 l 50,30 50,40 20,100 v 160 l -20,100 -50,50 -50,20 h -90 l -50,-20 -50,-50 -20,-100 v -160 l 20,-100 50,-40 50,-30" - id="path1226" /> - <path - d="m 93840,33220 v 410 l 20,40 20,30 50,20 h 100 l 40,-20 30,-30 20,-40 v -410" - id="path1228" /> - <path - d="m 94290,33220 h 280" - id="path1230" /> - <path - d="m 94430,33720 v -500" - id="path1232" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1238" - transform="translate(-24788.898,-14288.898)"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 91500,33500 250,440 h 3020 v -440 -440 h -3020 z" - id="path1236" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1256" - transform="translate(-24788.898,-14288.898)"> - <text - x="28190" - y="33250" - textLength="2060" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1240">TX_IN</text> - <path - d="m 26200,32720 h 290" - id="path1242" /> - <path - d="m 26350,33220 v -500" - id="path1244" /> - <path - d="m 26610,32720 330,500" - id="path1246" /> - <path - d="m 26940,32720 -330,500" - id="path1248" /> - <path - d="m 27010,33270 h 380" - id="path1250" /> - <path - d="m 27510,33220 v -500" - id="path1252" /> - <path - d="m 27750,33220 v -500 l 290,500 v -500" - id="path1254" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1260" - transform="translate(-24788.898,-14288.898)"> - <path - style="fill:none;fill-opacity:0;stroke:#840000;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - d="m 28500,33000 -250,-440 h -2230 v 440 440 h 2230 z" - id="path1258" /> - </g> - <g - style="fill:#840000;fill-opacity:0;stroke:#840000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1262" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1274" - transform="translate(-24788.898,-14288.898)"> - <text - x="56500" - y="37400" - textLength="2010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1264">VGND</text> - <path - d="m 54560,36870 170,500 160,-500" - id="path1266" /> - <path - d="m 55320,36900 -50,-30 h -70 l -70,30 -50,40 -20,50 -20,100 v 70 l 20,90 20,50 50,50 70,20 h 50 l 70,-20 30,-30 v -160 h -100" - id="path1268" /> - <path - d="m 55560,37370 v -500 l 290,500 v -500" - id="path1270" /> - <path - d="m 56080,37370 v -500 h 120 l 70,30 50,40 30,50 20,100 v 70 l -20,90 -30,50 -50,50 -70,20 h -120" - id="path1272" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:60;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1558" - transform="translate(-24788.898,-14288.898)"> - <text - x="57000" - y="37400" - textLength="6350" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text1276">1/2 VCC = 1.5V</text> - <path - d="m 57410,37370 h -290" - id="path1278" /> - <path - d="m 57260,37370 v -500 l -40,70 -50,50 -50,20" - id="path1280" /> - <path - d="m 57980,36850 -430,640" - id="path1282" /> - <path - d="m 58120,36920 20,-20 50,-30 h 120 l 50,30 20,20 30,50 v 40 l -30,80 -280,280 h 310" - id="path1284" /> - <path - d="m 58930,36870 170,500 160,-500" - id="path1286" /> - <path - d="m 59720,37320 -30,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -20,-90 v -70 l 20,-100 20,-50 50,-40 70,-30 h 50 l 70,30 30,20" - id="path1288" /> - <path - d="m 60220,37320 -30,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -20,-90 v -70 l 20,-100 20,-50 50,-40 70,-30 h 50 l 70,30 30,20" - id="path1290" /> - <path - d="m 60810,37110 h 380" - id="path1292" /> - <path - d="m 61190,37250 h -380" - id="path1294" /> - <path - d="m 62070,37370 h -280" - id="path1296" /> - <path - d="m 61930,37370 v -500 l -50,70 -50,50 -40,20" - id="path1298" /> - <path - d="m 62290,37320 20,30 -20,20 -30,-20 30,-30 v 50" - id="path1300" /> - <path - d="m 62760,36870 h -230 l -30,240 30,-20 40,-30 h 120 l 50,30 20,20 30,50 v 120 l -30,40 -20,30 -50,20 h -120 l -40,-20 -30,-30" - id="path1302" /> - <path - d="m 62930,36870 170,500 160,-500" - id="path1304" /> - <text - x="56500" - y="39900" - textLength="8130" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1306">Virtual Ground Buffer</text> - <path - d="m 48440,39370 170,500 160,-500" - id="path1308" /> - <path - d="m 48940,39870 v -330" - id="path1310" /> - <path - d="m 48940,39370 -20,30 20,20 30,-20 -30,-30 v 50" - id="path1312" /> - <path - d="m 49180,39870 v -330" - id="path1314" /> - <path - d="m 49180,39630 20,-40 30,-30 40,-20 h 50" - id="path1316" /> - <path - d="m 49420,39540 h 190" - id="path1318" /> - <path - d="m 49490,39370 v 430 l 20,50 50,20 h 50" - id="path1320" /> - <path - d="m 49990,39540 v 330" - id="path1322" /> - <path - d="m 49770,39540 v 260 l 30,50 50,20 h 70 l 50,-20 20,-30" - id="path1324" /> - <path - d="m 50440,39870 v -260 l -20,-50 -50,-20 h -100 l -40,20" - id="path1326" /> - <path - d="m 50440,39850 -50,20 h -120 l -40,-20 -30,-50 v -50 l 30,-50 40,-20 h 120 l 50,-20" - id="path1328" /> - <path - d="m 50750,39870 -50,-20 -20,-50 v -430" - id="path1330" /> - <path - d="m 51580,39400 -40,-30 h -70 l -80,30 -40,40 -30,50 -20,100 v 70 l 20,90 30,50 40,50 80,20 h 40 l 70,-20 30,-30 v -160 h -100" - id="path1332" /> - <path - d="m 51820,39870 v -330" - id="path1334" /> - <path - d="m 51820,39630 30,-40 20,-30 50,-20 h 50" - id="path1336" /> - <path - d="m 52200,39870 -40,-20 -30,-30 -20,-40 v -150 l 20,-40 30,-30 40,-20 h 70 l 50,20 30,30 20,40 v 150 l -20,40 -30,30 -50,20 h -70" - id="path1338" /> - <path - d="m 52800,39540 v 330" - id="path1340" /> - <path - d="m 52580,39540 v 260 l 30,50 50,20 h 70 l 40,-20 30,-30" - id="path1342" /> - <path - d="m 53040,39540 v 330" - id="path1344" /> - <path - d="m 53040,39590 20,-30 50,-20 h 70 l 50,20 20,50 v 260" - id="path1346" /> - <path - d="m 53700,39870 v -500" - id="path1348" /> - <path - d="m 53700,39850 -40,20 h -100 l -50,-20 -20,-30 -20,-40 v -150 l 20,-40 20,-30 50,-20 h 100 l 40,20" - id="path1350" /> - <path - d="m 54490,39610 70,20 20,30 30,40 v 80 l -30,40 -20,30 -50,20 h -190 v -500 h 170 l 50,30 20,20 20,50 v 40 l -20,50 -20,30 -50,20 h -170" - id="path1352" /> - <path - d="m 55040,39540 v 330" - id="path1354" /> - <path - d="m 54820,39540 v 260 l 30,50 40,20 h 80 l 40,-20 30,-30" - id="path1356" /> - <path - d="m 55200,39540 h 190" - id="path1358" /> - <path - d="m 55270,39870 v -430 l 30,-40 50,-30 h 40" - id="path1360" /> - <path - d="m 55490,39540 h 190" - id="path1362" /> - <path - d="m 55560,39870 v -430 l 20,-40 50,-30 h 50" - id="path1364" /> - <path - d="m 56040,39850 -50,20 h -100 l -40,-20 -30,-50 v -190 l 30,-50 40,-20 h 100 l 50,20 20,50 v 50 l -240,40" - id="path1366" /> - <path - d="m 56270,39870 v -330" - id="path1368" /> - <path - d="m 56270,39630 30,-40 20,-30 50,-20 h 50" - id="path1370" /> - <text - x="89500" - y="28900" - textLength="4390" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1372">Comparator</text> - <path - d="m 85540,28820 -30,30 -70,20 h -50 l -70,-20 -50,-50 -20,-50 -20,-90 v -70 l 20,-100 20,-50 50,-40 70,-30 h 50 l 70,30 30,20" - id="path1374" /> - <path - d="m 85820,28870 -50,-20 -20,-30 -20,-40 v -150 l 20,-40 20,-30 50,-20 h 70 l 50,20 30,30 20,40 v 150 l -20,40 -30,30 -50,20 h -70" - id="path1376" /> - <path - d="m 86200,28870 v -330" - id="path1378" /> - <path - d="m 86200,28590 30,-30 40,-20 h 80 l 40,20 30,50 v 260" - id="path1380" /> - <path - d="m 86420,28610 20,-50 50,-20 h 70 l 50,20 20,50 v 260" - id="path1382" /> - <path - d="m 86870,28540 v 500" - id="path1384" /> - <path - d="m 86870,28560 50,-20 h 90 l 50,20 20,30 30,40 v 150 l -30,40 -20,30 -50,20 h -90 l -50,-20" - id="path1386" /> - <path - d="m 87540,28870 v -260 l -30,-50 -40,-20 h -100 l -50,20" - id="path1388" /> - <path - d="m 87540,28850 -50,20 h -120 l -50,-20 -20,-50 v -50 l 20,-50 50,-20 h 120 l 50,-20" - id="path1390" /> - <path - d="m 87770,28870 v -330" - id="path1392" /> - <path - d="m 87770,28630 30,-40 20,-30 50,-20 h 50" - id="path1394" /> - <path - d="m 88300,28870 v -260 l -30,-50 -40,-20 h -100 l -50,20" - id="path1396" /> - <path - d="m 88300,28850 -50,20 h -120 l -50,-20 -20,-50 v -50 l 20,-50 50,-20 h 120 l 50,-20" - id="path1398" /> - <path - d="m 88470,28540 h 190" - id="path1400" /> - <path - d="m 88540,28370 v 430 l 20,50 50,20 h 50" - id="path1402" /> - <path - d="m 88890,28870 -40,-20 -30,-30 -20,-40 v -150 l 20,-40 30,-30 40,-20 h 80 l 40,20 30,30 20,40 v 150 l -20,40 -30,30 -40,20 h -80" - id="path1404" /> - <path - d="m 89270,28870 v -330" - id="path1406" /> - <path - d="m 89270,28630 30,-40 20,-30 50,-20 h 50" - id="path1408" /> - <text - x="75000" - y="23400" - textLength="6300" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1410">Amplifier G=100</text> - <path - d="m 68820,23230 h 240" - id="path1412" /> - <path - d="m 68770,23370 170,-500 170,500" - id="path1414" /> - <path - d="m 69270,23370 v -330" - id="path1416" /> - <path - d="m 69270,23090 30,-30 50,-20 h 70 l 50,20 20,50 v 260" - id="path1418" /> - <path - d="m 69490,23110 20,-50 50,-20 h 70 l 50,20 20,50 v 260" - id="path1420" /> - <path - d="m 69940,23040 v 500" - id="path1422" /> - <path - d="m 69940,23060 50,-20 h 90 l 50,20 30,30 20,40 v 150 l -20,40 -30,30 -50,20 h -90 l -50,-20" - id="path1424" /> - <path - d="m 70470,23370 -50,-20 -30,-50 v -430" - id="path1426" /> - <path - d="m 70660,23370 v -330" - id="path1428" /> - <path - d="m 70660,22870 -30,30 30,20 20,-20 -20,-30 v 50" - id="path1430" /> - <path - d="m 70820,23040 h 190" - id="path1432" /> - <path - d="m 70890,23370 v -430 l 30,-40 50,-30 h 40" - id="path1434" /> - <path - d="m 71180,23370 v -330" - id="path1436" /> - <path - d="m 71180,22870 -20,30 20,20 20,-20 -20,-30 v 50" - id="path1438" /> - <path - d="m 71610,23350 -50,20 h -90 l -50,-20 -30,-50 v -190 l 30,-50 50,-20 h 90 l 50,20 20,50 v 50 l -240,40" - id="path1440" /> - <path - d="m 71850,23370 v -330" - id="path1442" /> - <path - d="m 71850,23130 20,-40 20,-30 50,-20 h 50" - id="path1444" /> - <path - d="m 72800,22900 -50,-30 h -70 l -70,30 -50,40 -20,50 -30,100 v 70 l 30,90 20,50 50,50 70,20 h 50 l 70,-20 20,-30 v -160 h -90" - id="path1446" /> - <path - d="m 73040,23110 h 380" - id="path1448" /> - <path - d="m 73420,23250 h -380" - id="path1450" /> - <path - d="m 73920,23370 h -290" - id="path1452" /> - <path - d="m 73770,23370 v -500 l -40,70 -50,50 -50,20" - id="path1454" /> - <path - d="m 74230,22870 h 40 l 50,30 30,20 20,50 20,90 v 120 l -20,100 -20,40 -30,30 -50,20 h -40 l -50,-20 -20,-30 -30,-40 -20,-100 v -120 l 20,-90 30,-50 20,-20 50,-30" - id="path1456" /> - <path - d="m 74700,22870 h 50 l 50,30 20,20 30,50 20,90 v 120 l -20,100 -30,40 -20,30 -50,20 h -50 l -40,-20 -30,-30 -20,-40 -30,-100 v -120 l 30,-90 20,-50 30,-20 40,-30" - id="path1458" /> - <text - x="53000" - y="19400" - textLength="5010" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1460">TIA G=100kΩ</text> - <path - d="m 48060,18870 h 290" - id="path1462" /> - <path - d="m 48200,19370 v -500" - id="path1464" /> - <path - d="m 48510,19370 v -500" - id="path1466" /> - <path - d="m 48730,19230 h 240" - id="path1468" /> - <path - d="m 48680,19370 170,-500 160,500" - id="path1470" /> - <path - d="m 49820,18900 -50,-30 h -70 l -70,30 -50,40 -20,50 -20,100 v 70 l 20,90 20,50 50,50 70,20 h 50 l 70,-20 30,-30 v -160 h -100" - id="path1472" /> - <path - d="m 50060,19110 h 380" - id="path1474" /> - <path - d="m 50440,19250 h -380" - id="path1476" /> - <path - d="m 50940,19370 h -280" - id="path1478" /> - <path - d="m 50800,19370 v -500 l -50,70 -50,50 -40,20" - id="path1480" /> - <path - d="m 51250,18870 h 50 l 50,30 20,20 20,50 30,90 v 120 l -30,100 -20,40 -20,30 -50,20 h -50 l -50,-20 -20,-30 -20,-40 -30,-100 v -120 l 30,-90 20,-50 20,-20 50,-30" - id="path1482" /> - <path - d="m 51730,18870 h 40 l 50,30 30,20 20,50 20,90 v 120 l -20,100 -20,40 -30,30 -50,20 h -40 l -50,-20 -20,-30 -30,-40 -20,-100 v -120 l 20,-90 30,-50 20,-20 50,-30" - id="path1484" /> - <path - d="m 52110,19370 v -500" - id="path1486" /> - <path - d="m 52160,19180 140,190" - id="path1488" /> - <path - d="m 52300,19040 -190,190" - id="path1490" /> - <path - d="m 52490,19370 h 120 v -90 l -50,-30 -50,-50 -20,-70 v -120 l 20,-70 50,-40 70,-30 h 100 l 70,30 50,40 20,70 v 120 l -20,70 -50,50 -50,30 v 90 h 120" - id="path1492" /> - <text - x="39500" - y="17400" - textLength="4060" - font-size="1330px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text1494">Rotor</text> - <path - d="m 40330,17350 -330,-480" - id="path1496" /> - <path - d="m 39760,17350 v -1000 h 380 l 100,50 50,40 40,100 v 140 l -40,100 -50,40 -100,50 h -380" - id="path1498" /> - <path - d="m 40910,17350 -100,-50 -50,-50 -40,-90 v -290 l 40,-90 50,-50 100,-50 h 140 l 90,50 50,50 50,90 v 290 l -50,90 -50,50 -90,50 h -140" - id="path1500" /> - <path - d="m 41530,16680 h 380" - id="path1502" /> - <path - d="m 41670,16350 v 850 l 50,100 90,50 h 100" - id="path1504" /> - <path - d="m 42380,17350 -90,-50 -50,-50 -50,-90 v -290 l 50,-90 50,-50 90,-50 h 150 l 90,50 50,50 50,90 v 290 l -50,90 -50,50 -90,50 h -150" - id="path1506" /> - <path - d="m 43140,17350 v -670" - id="path1508" /> - <path - d="m 43140,16870 50,-90 50,-50 90,-50 h 100" - id="path1510" /> - <text - x="37500" - y="17400" - textLength="4580" - font-size="1330px" - lengthAdjust="spacingAndGlyphs" - text-anchor="end" - opacity="0" - id="text1512">Stator</text> - <path - d="m 33130,17300 140,50 h 240 l 100,-50 50,-50 40,-90 v -100 l -40,-90 -50,-50 -100,-50 -190,-50 -90,-40 -50,-50 -50,-100 v -90 l 50,-100 50,-40 90,-50 h 240 l 140,50" - id="path1514" /> - <path - d="m 33990,16680 h 380" - id="path1516" /> - <path - d="m 34130,16350 v 850 l 50,100 90,50 h 100" - id="path1518" /> - <path - d="m 35130,17350 v -530 l -50,-90 -90,-50 h -190 l -100,50" - id="path1520" /> - <path - d="m 35130,17300 -90,50 h -240 l -100,-50 -40,-100 v -90 l 40,-100 100,-40 h 240 l 90,-50" - id="path1522" /> - <path - d="m 35470,16680 h 380" - id="path1524" /> - <path - d="m 35610,16350 v 850 l 50,100 90,50 h 100" - id="path1526" /> - <path - d="m 36320,17350 -90,-50 -50,-50 -50,-90 v -290 l 50,-90 50,-50 90,-50 h 150 l 90,50 50,50 50,90 v 290 l -50,90 -50,50 -90,50 h -150" - id="path1528" /> - <path - d="m 37080,17350 v -670" - id="path1530" /> - <path - d="m 37080,16870 50,-90 50,-50 90,-50 h 100" - id="path1532" /> - <text - x="29000" - y="26900" - textLength="2540" - font-size="660px" - lengthAdjust="spacingAndGlyphs" - text-anchor="start" - opacity="0" - id="text1534">IR link</text> - <path - d="m 29140,26870 v -500" - id="path1536" /> - <path - d="m 29670,26870 -170,-240" - id="path1538" /> - <path - d="m 29380,26870 v -500 h 190 l 50,30 20,20 30,50 v 70 l -30,50 -20,20 -50,20 h -190" - id="path1540" /> - <path - d="m 30330,26870 -40,-20 -30,-50 v -430" - id="path1542" /> - <path - d="m 30530,26870 v -330" - id="path1544" /> - <path - d="m 30530,26370 -30,30 30,20 20,-20 -20,-30 v 50" - id="path1546" /> - <path - d="m 30760,26540 v 330" - id="path1548" /> - <path - d="m 30760,26590 30,-30 40,-20 h 80 l 40,20 30,50 v 260" - id="path1550" /> - <path - d="m 31220,26870 v -500" - id="path1552" /> - <path - d="m 31260,26680 150,190" - id="path1554" /> - <path - d="m 31410,26540 -190,190" - id="path1556" /> - </g> - <g - style="fill:#0000c2;fill-opacity:0;stroke:#0000c2;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1560" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:0;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1562" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1566" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="46000" - cy="30500" - r="200" - id="circle1564" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1568" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1572" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="64000" - cy="37500" - r="200" - id="circle1570" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1574" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1578" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="46000" - cy="26500" - r="200" - id="circle1576" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1580" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1584" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="43500" - cy="47500" - r="200" - id="circle1582" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1586" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1590" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="43500" - cy="52500" - r="200" - id="circle1588" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1592" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1596" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="81000" - cy="37500" - r="200" - id="circle1594" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1598" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1602" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="46500" - cy="47500" - r="200" - id="circle1600" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1604" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1608" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="81000" - cy="32500" - r="200" - id="circle1606" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1610" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1614" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="57000" - cy="46500" - r="200" - id="circle1612" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1616" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1620" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="55000" - cy="31500" - r="200" - id="circle1618" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1622" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1626" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="55000" - cy="26500" - r="200" - id="circle1624" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1628" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1632" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="76000" - cy="32500" - r="200" - id="circle1630" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1634" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1638" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="64000" - cy="31500" - r="200" - id="circle1636" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1640" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1644" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="66500" - cy="37500" - r="200" - id="circle1642" /> - </g> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1646" - transform="translate(-24788.898,-14288.898)" /> - <g - style="fill:#008400;fill-opacity:1;stroke:#008400;stroke-width:100;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" - id="g1650" - transform="translate(-24788.898,-14288.898)"> - <circle - cx="59500" - cy="37500" - r="200" - id="circle1648" /> - </g> -</svg> diff --git a/doc/quick-tech-report/proto_3d_design.jpg b/doc/quick-tech-report/proto_3d_design.jpg Binary files differdeleted file mode 100644 index f527828..0000000 --- a/doc/quick-tech-report/proto_3d_design.jpg +++ /dev/null diff --git a/doc/quick-tech-report/prototype_early_comms_small.jpg b/doc/quick-tech-report/prototype_early_comms_small.jpg Binary files differdeleted file mode 100644 index 506da48..0000000 --- a/doc/quick-tech-report/prototype_early_comms_small.jpg +++ /dev/null diff --git a/doc/quick-tech-report/rotohsm.bib b/doc/quick-tech-report/rotohsm.bib deleted file mode 100644 index 1092c3a..0000000 --- a/doc/quick-tech-report/rotohsm.bib +++ /dev/null @@ -1,200 +0,0 @@ -% Encoding: UTF-8
-@comment{x-kbibtex-encoding=utf-8}
-
-@Book{anderson2020,
- author = {Ross Anderson},
- date = {2020-09-16},
- title = {Security Engineering},
- isbn = {978-1-119-64281-7},
-}
- -@techreport{smith1998, - author = {Sean Smith and Steve Weingart}, - date = {1998-02-19}, - institution = {IBM T.J. Watson Research Center}, - title = {Building a High-Performance, Programmable Secure Coprocessor}, - url = {ftp://www6.software.ibm.com/software/cryptocards/rc21102.pdf}, - urldate = {2020-09-16} -} - -@article{immler2019, - author = {Vincent Immler and Johannes Obermaier and Kuan Kuan Ng and Fei Xiang Ke and Jin Yu Lee and Yak Peng Lim and Wei Koon Oh and Keng Hoong Wee and Georg Sigl}, - date = {2019}, - doi = {10.13154/tches.v2019.i1.51-96}, - issn = {2569-2925}, - journal = {IACR transactions on cryptographic hardware and embedded systems.}, - journaltitle = {IACR Transactions on Cryptographic Hardware and Embedded Systems}, - publisher = {IACR}, - title = {Secure Physical Enclosures from Covers with Tamper-Resistance}, - url = {https://tches.iacr.org/index.php/TCHES/article/view/7334/6506}, - urldate = {2020-09-16} -} - -@article{obermaier2018, - author = {Johannes Obermaier and Vincent Immler}, - date = {2018}, - doi = {10.1007/s41635-018-0045-2}, - issn = {2509-3428}, - journaltitle = {Journal of Hardware and Systems Security}, - pages = {289–296}, - title = {The Past, Present, and Future of Physical Security Enclosures: From Battery-Backed Monitoring to PUF-Based Inherent Security and Beyond}, - volume = {2}, - year = {2018} -} - -@article{tobisch2020, - author = {Johannes Tobisch and Christian Zenger and Christof Paar}, - date = {2020-03-13}, - journaltitle = {TRUDEVICE 2020: 9th Workshop on Trustworthy Manufacturing and Utilization of Secure Devices}, - title = {Electromagnetic Enclosure PUF for Tamper Proofing Commodity Hardware and otherApplications}, - url = {https://www.emsec.ruhr-uni-bochum.de/media/crypto/veroeffentlichungen/2020/05/13/trudevice_submission_enclosure_puf.pdf}, - urldate = {2020-09-17} -} - -@article{kreft2012, - author = {Heinz Kreft and Wael Adi}, - date = {2012}, - doi = {10.1109/ahs.2012.6268655}, - journaltitle = {2012 NASA/ESA Conference on Adaptive Hardware and Systems (AHS)}, - title = {Cocoon-PUF, a novel mechatronic secure element technology}, - year = {2012} -} -
-@Patent{rahman1988,
- author = {Mujib Rahman},
- date = {1988-03-10},
- number = {US Patent US4859024A},
- title = {Optical fiber cable with tampering detecting means},
-}
- -@www{haines2006, - author = {Lester Haines}, - date = {2006-09-25}, - editor = {The Register}, - title = {US outfit patents 'invisible' UAV: Stealth through persistence of vision}, - url = {https://www.theregister.com/2006/09/25/phantom_sentinel/}, - urldate = {2020-09-17} -} - -@article{frazelle2019, - author = {Jessie Frazelle}, - date = {2019-12-01}, - doi = {10.1145/3380774.3382016}, - journaltitle = {ACM Queue}, - title = {Securing the Boot Process: The hardware root of trust}, - url = {https://dl.acm.org/doi/fullHtml/10.1145/3380774.3382016}, - urldate = {2020-10-22} -} -
-@Article{albartus2020,
- author = {Nils Albartus and Max Hoffmann and Sebastian Temme and Leonid Azriel and Christof Paar},
- date = {2020},
- title = {{DANA} Universal Dataflow Analysis for Gate-Level Netlist Reverse Engineering},
- doi = {10.13154/tches.v2020.i4.309-336},
- number = {4},
- pages = {309–336},
- volume = {2020},
- bibsource = {dblp computer science bibliography, https://dblp.org},
- biburl = {https://dblp.org/rec/journals/tches/AlbartusHTAP20.bib},
- journal = {{IACR} Transactions on Cryptographic Hardware and Embedded Systems},
- year = {2020},
-}
-
-@InProceedings{trippel2017,
- author = {Timothy Trippel and Ofir Weisse and Wenyuan Xu and Peter Honeyman and Kevin Fu},
- booktitle = {2017 IEEE European symposium on security and privacy},
- title = {WALNUT: Waging doubt on the integrity of MEMS accelerometers with acoustic injection attacks},
- organization = {IEEE},
- pages = {3–18},
- x-fetchedfrom = {Google Scholar},
- year = {2017},
-}
-
-@WWW{heise2020t2jailbreak,
- author = {Leo Becker},
- date = {2020-03-11},
- title = {Jailbreaker nehmen T2-Sicherheitschip von Macs ins Visier},
- url = {https://www.heise.de/mac-and-i/meldung/Jailbreaker-nehmen-T2-Sicherheitschip-von-Macs-ins-Visier-4681131.html},
- organization = {Heise Online},
- publisher = {Heise Online},
-}
- -@article{kim2018, - author = {Seung Hyun Kim and Su Chang Lim and others}, - journal = {Annals of Nuclear Energy}, - pages = {845–855}, - publisher = {Elsevier}, - title = {Intelligent intrusion detection system featuring a virtual fence, active intruder detection, classification, tracking, and action recognition}, - volume = {112}, - x-fetchedfrom = {Google Scholar}, - year = {2018} -} -
-@Conference{johnson2018,
- author = {Scott Johnson and Dominic Rizzo and Parthasarathy Ranganathan and Jon McCune and Richard Ho},
- booktitle = {Hot Chips: A Symposium on High Performance Chips},
- date = {2018},
- title = {Titan: enabling a transparent silicon root of trust for Cloud},
- url = {https://www.hotchips.org/hc30/1conf/1.14_Google_Titan_GoogleFinalTitanHotChips2018.pdf},
- x-fetchedfrom = {Google Scholar},
- year = {2018},
-}
-
-@TechReport{isaacs2013,
- author = {Phil Isaacs and Thomas {Morris Jr} and Michael J Fisher and Keith Cuthbert},
- date = {2013},
- institution = {Surface Mount Technology Association},
- title = {Tamper proof, tamper evident encryption technology},
- booktitle = {Pan Pacific Microelectronics Symposium},
- organization = {Surface Mount Technology Association},
- x-fetchedfrom = {Google Scholar},
- year = {2013},
-}
- -@inproceedings{drimer2008, - author = {Saar Drimer and Steven J Murdoch and Ross Anderson}, - booktitle = {2008 IEEE Symposium on Security and Privacy (sp 2008)}, - organization = {IEEE}, - pages = {281–295}, - title = {Thinking inside the box: system-level failures of tamper proofing}, - x-fetchedfrom = {Google Scholar}, - year = {2008} -} -
-@WWW{terdiman2013,
- author = {Daniel Terdiman},
- date = {2013-07-23},
- title = {Aboard America's Doomsday command and control plane},
- url = {https://www.cnet.com/news/aboard-americas-doomsday-command-and-control-plane},
- organization = {cnet.com},
- month = jul,
- publisher = {CNET},
- year = {2013},
-}
-
-@Thesis{vrijaldenhoven2004,
- author = {Serge Vrijaldenhoven},
- date = {2004-10-01},
- institution = {Technische Universiteit Eindhoven},
- title = {Acoustical Physical Uncloneable Functions},
- type = {mathesis},
- url = {https://pure.tue.nl/ws/files/46971492/600055-1.pdf},
-}
-
-@WWW{dexter2015,
- author = {Karsten Nohl and Fabian Bräunlein and dexter},
- date = {2015-12-27},
- title = {Shopshifting: The potential for payment system abuse},
- url = {https://media.ccc.de/v/32c3-7368-shopshifting#t=2452},
- organization = {32C3 Chaos Communication Congress},
-}
-
-@WWW{newman2020,
- author = {Lily Hay Newman},
- date = {2020-10-06},
- title = {Apple's T2 Security Chip Has an Unfixable Flaw},
- url = {https://www.wired.com/story/apple-t2-chip-unfixable-flaw-jailbreak-mac/},
- organization = {Wired Magazine},
-}
-
-@Comment{jabref-meta: databaseType:biblatex;}
diff --git a/doc/quick-tech-report/rotohsm_paper.pdf b/doc/quick-tech-report/rotohsm_paper.pdf Binary files differdeleted file mode 100644 index f0ad0b6..0000000 --- a/doc/quick-tech-report/rotohsm_paper.pdf +++ /dev/null diff --git a/doc/quick-tech-report/rotohsm_paper.tex b/doc/quick-tech-report/rotohsm_paper.tex deleted file mode 100644 index e2f3928..0000000 --- a/doc/quick-tech-report/rotohsm_paper.tex +++ /dev/null @@ -1,609 +0,0 @@ -\documentclass[10pt,journal,a4paper]{IEEEtran} -\usepackage[english]{babel} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[ - backend=biber, - style=numeric, - natbib=true, - url=false, - doi=true, - eprint=false - ]{biblatex} -\addbibresource{rotohsm.bib} -\usepackage{amssymb,amsmath} -\usepackage{listings} -\usepackage{eurosym} -\usepackage{wasysym} -\usepackage{amsthm} -\usepackage{tabularx} -\usepackage{multirow} -\usepackage{multicol} -\usepackage{tikz} -\usepackage{mathtools} -\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} -\DeclarePairedDelimiter{\paren}{(}{)} - -\usetikzlibrary{arrows} -\usetikzlibrary{chains} -\usetikzlibrary{backgrounds} -\usetikzlibrary{calc} -\usetikzlibrary{decorations.markings} -\usetikzlibrary{decorations.pathreplacing} -\usetikzlibrary{fit} -\usetikzlibrary{patterns} -\usetikzlibrary{positioning} -\usetikzlibrary{shapes} - -\usepackage[binary-units]{siunitx} -\DeclareSIUnit{\baud}{Bd} -\DeclareSIUnit{\year}{a} -\usepackage{hyperref} -\usepackage{tabularx} -\usepackage{commath} -\usepackage{graphicx,color} -\usepackage{ccicons} -\usepackage{subcaption} -\usepackage{float} -\usepackage{footmisc} -\usepackage{array} -\usepackage[underline=false]{pgf-umlsd} -\usetikzlibrary{calc} -%\usepackage[pdftex]{graphicx,color} -\usepackage{epstopdf} -\usepackage{pdfpages} -\usepackage{minted} % pygmentized source code - -\renewcommand{\floatpagefraction}{.8} -\newcommand{\degree}{\ensuremath{^\circ}} -\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} - -\usepackage{fancyhdr} -\fancyhf{} -\fancyfoot[C]{\thepage} -\newcommand{\includenotebook}[2]{ - \fancyhead[C]{Included Jupyter notebook: #1} - \includepdf[pages=1, - pagecommand={\thispagestyle{fancy}\section{#1}\label{#2_notebook}} - ]{resources/#2.pdf} - \includepdf[pages=2-, - pagecommand={\thispagestyle{fancy}} - ]{resources/#2.pdf} -} - -\begin{document} - -\title{Can't Touch This: Inerial HSMs Thwart Advanced Physical Attacks} -\author{Jan Götte} -\date{2020-12-20} -\maketitle - -\section*{Abstract} - -In this paper, we introduce a novel countermeasure against physical attacks: Inertial hardware security modules (iHSMs). -Conventional systems have in common that they try to detect attacks by crafting sensors responding to increasingly -minute manipulations of the monitored security boundary or volume. Our approach is novel in that we reduce the -sensitivity requirement of security meshes and other sensors and increase the complexity of any manipulations by -rotating the security mesh or sensor at high speed---thereby presenting a moving target to an attacker. Attempts to stop -the rotation are easily monitored with commercial MEMS accelerometers and gyroscopes. Our approach leads to a HSM that -can easily be built from off-the-shelf parts by any university electronics lab, yet offers a level of security that is -comparable to commercial HSMs. By building prototype hardware we have demonstrated solutions to the concept's -engineering challenges. - -\section{Introduction} - -While information security technology has matured a great deal in the last half century, physical security has barely -changed. Given the right skills, physical access to a computer still often means full compromise. The physical -security of modern server hardware hinges on what lock you put on the room it is in. - -Currently, servers and other computers are rarely physically secured as a whole. Servers sometimes have a simple lid -switch and are put in locked ``cages'' inside guarded facilities. This usually provides a good compromise between -physical security and ease of maintenance. To handle highly sensitive data in applications such as banking or public key -infrastructure, general-purpose and low-security servers are augmented with dedicated, physically secure cryptographic -co-processors such as trusted platform modules (TPMs) or hardware security modules (HSMs). Using a limited amount of -trust in components such as the CPU, the larger system's security can then be reduced to that of its physically secured -TPM~\cite{newman2020,frazelle2019,johnson2018}. - -Like smartcards, TPMs rely on a modern IC being hard to tamper with. Shrinking things to the nanoscopic level to secure -them against tampering is a good engineering solution for some years to come. However, in essence this is a type of -security by obscurity: Obscurity here referring to the rarity of the equipment necessary to attack modern -ICs~\cite{albartus2020,anderson2020}. - -HSMs rely on a fragile foil with much larger-scale conductive traces being hard to remove intact. While we are certain -that there still are many insights to be gained in both technologies, we wish to introduce a novel approach to sidestep -the manufacturing issues of both and provide radically better security against physical attacks. Our core observation -is that any cheap but coarse HSM technology can be made much more difficult to attack by moving it very quickly. - -For example, consider an HSM as it is used in online credit card payment processing. Its physical security level is set -by the structure size of its security mesh. An attack on its mesh might involve fine drill bits, needles, wires, glue, -solder and lasers~\cite{drimer2008}. Now consider the same HSM mounted on a large flywheel. In addition to its usual -defenses the HSM is now equipped with an accelerometer that it uses to verify that it is spinning at high speed. How -would an attacker approach this HSM? They would have to either slow down the rotation---which triggers the -accelerometer---or they would have to attack the HSM in motion. The HSM literally becomes a moving target. At slow -speeds, rotating the entire attack workbench might be possible but rotating frames of reference quickly become -inhospitable to human life (see Appendix~\ref{sec_minimum_angular_velocity}). Since non-contact electromagnetic or -optical attacks are more limited in the first place and can be shielded, we have effectively forced the attacker to use -an attack robot. - -This work contains the following contributions: -\begin{enumerate} - \item We present the \emph{Inertial HSM} concept. Inertial HSMs enable cost-effective small-scale production of - highly secure HSMs. - \item We discuss possible boundary sensing modes for inertial HSMs. - \item We explore the design space of our inertial HSM concept. - \item We present our work on a prototype inertial HSM. - % FIXME \item Measurement of the prototype HSM's susceptibility to various types of attack. -\end{enumerate} - -In Section~\ref{sec_related_work}, we will give an overview of the state of the art in the physical security of HSMs. On -this basis, in Section~\ref{sec_ihsm_construction} we will elaborate the principles of our inertial HSM approach. We -will analyze its weaknesses in Section~\ref{sec_attacks}. Based on these results we have built a prototype system that -we will illustrate in Section~\ref{sec_proto}. We conclude this paper with a general evaluation of our design in -Section~\ref{sec_conclusion}. - -\section{Related work} -\label{sec_related_work} -% summaries of research papers on HSMs. I have not found any actual prior art on anything involving mechanical motion -% beyond ultrasound. - -In this section, we will briefly explore the history of HSMs and the state of academic research on active tamper -detection. - -HSMs are an old technology tracing back decades in their electronic realization. Today's common approach of monitoring -meandering electrical traces on a fragile foil that is wrapped around the HSM essentially transforms the security -problem into the challenge to manufacture very fine electrical traces on a flexible foil~\cite{isaacs2013, immler2019, -anderson2020}. There has been some research on monitoring the HSM's inside using e.g.\ electromagnetic -radiation~\cite{tobisch2020, kreft2012} or ultrasound~\cite{vrijaldenhoven2004} but none of this research -has found widespread adoption yet. - -In~\cite{anderson2020}, Anderson gives a comprehensive overview on physical security. An example they cite is the IBM -4758 HSM whose details are laid out in depth in~\cite{smith1998}. This HSM is an example of an industry-standard -construction. Although its turn of the century design is now a bit dated, the construction techniques of the physical -security mechanisms have not evolved much in the last two decades. Besides some auxiliary temperature and radiation -sensors to guard against attacks on the built-in SRAM memory, the module's main security barrier uses the traditional -construction of a flexible mesh wrapped around the module's core. In~\cite{smith1998}, the authors state the module -monitors this mesh for short circuits, open circuits and conductivity. The fundamental approach to tamper detection and -construction is similar to other commercial offerings~\cite{obermaier2018,drimer2008,anderson2020,isaacs2013}. - -In~\cite{immler2019}, Immler et al. describe a HSM based on precise capacitance measurements of a mesh. In contrast to -traditional meshes, the mesh they use consists of a large number of individual traces (more than 30 in their example). -Their concept promises a very high degree of protection. The main disadvantages of their concept are a limitation in -covered area and component height, as well as the high cost of the advanced analog circuitry required for monitoring. A -core component of their design is that they propose its use as a PUF to allow for protection even when powered off, -similar to a smart card---but the design is not limited to this use. - -In~\cite{tobisch2020}, Tobisch et al.\ describe a construction technique for a hardware security module that is based -around commodity Wifi hardware inside a conductive enclosure. In their design, an RF transmitter transmits a reference -signal into the RF cavity formed by the conductive enclosure. One or more receivers listen for the signal's reflections -and use them to characterize the RF cavity w.r.t.\ phase and frequency response. Their fundamental assumption is that -the RF behavior of the cavity is inscrutable from the outside, and that even a small disturbance anywhere within the -volume of the cavity will cause a significant change in its RF response. The core idea in~\cite{tobisch2020} is to use -commodity Wifi hardware to reduce the cost of the HSM's sensing circuitry. The resulting system is likely both much -cheaper and capable of protecting a much larger security envelope than e.g. the design from~\cite{immler2019}, at the -cost of worse and less predictable security guarantees. Where~\cite{tobisch2020} use electromagnetic radiation, -Vrijaldenhoven in~\cite{vrijaldenhoven2004} uses ultrasound waves travelling on a surface acoustic wave (SAW) device to -a similar end. - -While~\cite{tobisch2020} approach the sensing frontend cost as their only optimization target, the prior work of Kreft -and Adi~\cite{kreft2012} considers sensing quality. Their target is an HSM that envelopes a volume barely larger than a -single chip. They theorize how an array of distributed RF transceivers can measure the physical properties of a potting -compound that has been loaded with RF-reflective grains. In their concept, the RF response characterized by these -transceivers is shaped by the precise three-dimensional distribution of RF-reflective grains within the potting -compound. - -To the best of our knowledge, we are the the first to propose a mechanically moving HSM security barrier as part of a -hardware security module. Most academic research concentrates on the issue of creating new, more sensitive security -barriers for HSMs~\cite{immler2019} while commercial vendors concentrate on means to certify and cheaply manufacture -these security barriers~\cite{drimer2008}. Our concept instead focuses on the issue of taking any existing, cheap -low-performance security barrier and transforming it into a marginally more expensive but high-performance one. The -closest to a mechanical HSM that we were able to find during our research is an 1988 patent~\cite{rahman1988} that -describes a mechanism to detect tampering along a communication cable by enclosing the cable inside a conduit filled -with pressurized gas. - -\section{Inertial HSM construction and operation} -\label{sec_ihsm_construction} - -Mechanical motion has been proposed as a means of making things harder to see with the human eye~\cite{haines2006} and is -routinely used in military applications to make things harder to hit~\cite{terdiman2013} but we seem to be the first to -use it in tamper detection. If we consider different ways of moving an HSM to make it harder to tamper with, we find -that making it spin has several advantages. - -First, the HSM has to move fairly fast. If any point of the HSM's tamper sensing mesh moves slow enough for a human to -follow, it becomes a weak spot. E.g.\ in a linear pendulum motion, the pendulum becomes stationary at its apex. Second, -a spinning HSM is compact compared to alternatives like an HSM on wheels. Finally, rotation leads to easily predictable -accelerometer measurements. A beneficial side-effect of spinning the HSM is that if the axis of rotation is within the -HSM itself, an attacker trying to follow the motion would have to rotate around the same axis. Their tangential linear -velocity would rise linearly with the radius from the axis of rotation, which allows us to limit the approximate maximum -size and mass of an attacker using an assumption on tolerable centrifugal force (see Appendix -\ref{sec_minimum_angular_velocity}). In this consideration the axis of rotation is a weak spot, but that can be -mitigated using multiple nested layers of protection. - -\begin{figure} - \center - \includegraphics{concept_vis_one_axis.pdf} - \caption{Concept of a simple spinning inertial HSM. 1 - Shaft. 2 - Security mesh. 3 - Payload. 4 - - Accelerometer. 5 - Shaft penetrating security mesh.} - \label{fig_schema_one_axis} -\end{figure} - -In a rotating reference frame, centrifugal force is proportional to the square of angular velocity and proportional to -distance from the axis of rotation. We can exploit this fact to create a sensor that detects any disturbance of the -rotation by placing a linear accelerometer at some distance from the axis of rotation. During constant rotation, after -subtracting gravity both acceleration tangential to the rotation and along the axis of rotation will be zero. -Centrifugal acceleration will be constant. - -Large centrifugal acceleration at high speeds poses the engineering challenge of preventing the whole thing from flying -apart, but it also creates an obstacle to any attacker trying to manipulate the sensor. We do not need to move the -entire contents of the HSM. It suffices if we move the tamper detection barrier around a stationary payload. This -reduces the moment of inertia of the moving part and it means we can use cables for payload power and data. - -From our back-of-the-envelope calculation in Appendix \ref{sec_minimum_angular_velocity} we conclude that even at -moderate speeds above $\SI{500}{rpm}$, an attack would have to be carried out using a robot. - -In Appendix \ref{sec_degrees_of_freedom} we consider sensor configurations and we conclude that one three-axis -accelerometer each in the rotor and in the stator are a good baseline configuration. In general, the system will be more -sensitive to attacks if we over-determine the system of equations describing its motion by using more sensors than -necessary. - -\subsection{Mechanical layout} - -Thinking about the concrete construction of our mechanical HSM, the first challenge is mounting both mesh and payload on -a single shaft. The simplest way we found to mount a stationary payload inside of a spinning security mesh is a hollow -shaft. The payload can be mounted on a fixed rod threaded through this hollow shaft along with wires for power and -data. The shaft is a weak spot of the system, but this weak spot can be alleviated through either careful construction -or a second layer of rotating meshes with a different axis of rotation. Configurations that do not use a hollow-shaft -motor are possible, but may require additional bearings to keep the stator from vibrating. - -The next design choice we have to make is the physical structure of the security mesh. The spinning mesh must be -designed to cover the entire surface of the payload, but compared to a traditional HSM it suffices if it sweeps over -every part of the payload once per rotation. This means we can design longitudinal gaps into the mesh that allow outside -air to flow through to the payload. In traditional boundary-sensing HSMs, cooling of the payload processor is a serious -issue since any air duct or heat pipe would have to penetrate the HSM's security boundary. This problem can only be -solved with complex and costly siphon-style constructions, so in commercial systems heat conduction is used -exclusively~\cite{isaacs2013}. This limits the maximum power dissipation of the payload and thus its processing power. -Our setup allows direct air cooling of regular heatsinks. This greatly increases the maximum possible power dissipation -of the payload and unlocks much more powerful processing capabilities. In an evolution of our design, the spinning mesh -could even be designed to \emph{be} a cooling fan. - -\subsection{Spinning mesh power and data transmission} - -On the electrical side, the idea of a security mesh spinning at more than $\SI{500}{rpm}$ leaves us with a few -implementation challenges. Since the spinning mesh must be monitored for breaks or short circuits continuously, we need -both a power supply for the spinning monitoring circuit and a data link to the stator. - -We found that a bright lamp shining at a rotating solar panel is a good starting point. In contrast to e.g.\ slip -rings, this setup is mechanically durable at high speeds and it also provides reasonable output power (see Appendix -\ref{sec_energy_calculations} for an estimation of power consumption). A battery may not provide a useful lifetime -without power-optimization. Likewise, an energy harvesting setup may not provide enough current to supply peak demand. - -Since the monitoring circuit uses little current, power transfer efficiency is not important. On the other hand, cost -may be a concern in a production device. Here it may prove worthwhile to replace the solar cell setup with an extra -winding on the rotor of the BLDC motor driving the spinning mesh. This motor is likely to be a custom part, so adding -an extra winding is unlikely to increase cost significantly. More traditional inductive power transfer may also be an -option if it can be integrated into the mechanical design. - -Besides power, the data link between spinning mesh and payload is critical to the HSM's design. This link is used to -transmit the occassional status report along with a low-latency alarm trigger (``heartbeat'') signal from mesh to payload. -As we will elaborate in Section~\ref{sec_proto} a simple infrared optical link turned out to be a good solution for this -purpose. - -\section{Attacks} -\label{sec_attacks} - -After outlining the basic mechanical design of an inertial HSM above, in this section we will detail possible ways to -attack it. Fundamentally, attacks on an inertial HSM are the same as those on a traditional HSM since the tamper -detection mesh is the same. Only, in the inertial HSM any attack on the mesh has to be carried out while the mesh is -rotating, which for most types of attack will require some kind of CNC attack robot moving in sync with it. - -\subsection{Attacks on the mesh} - -There are two locations where one can attack a tamper-detection mesh. On one hand, the mesh itself can be tampered with. -This includes bridging its traces to allow for a hole to be cut. The other option is to tamper with the monitoring -circuit itself to prevent a damaged mesh from triggering an alarm and causing the HSM to erase its -contents~\cite{dexter2015}. Attacks in both locations are electronic attacks, i.e. they require electrical contact to -parts of the circuit. Traditionally, this contact is made by soldering or by placing a probe such as a thin needle. We -consider this contact infeasible to be performed on an object spinning at high speed without a complex setup that -rotates along with the object or that involves ion beams, electron beams or liquids. Thus, we consider them to be -practically infeasible outside of a well-funded, special-purpose laboratory. - -\subsection{Attacks on the rotation sensor} - -Instead of attacking the mesh in motion, an attacker may also try to first stop the rotor. To succeed, they would need -to fool the rotor's MEMS accelerometer. An electronic attack on the sensor or the monitoring microcontroller would be no -easier than directly bridging the mesh traces. - -MEMS accelerometers usually use a cantilever design, where a proof mass moves a cantilever whose precise position can be -measured electronically. A topic of recent academic interest have been acoustic attacks tampering with these -mechanics~\cite{trippel2017}. In the authors' estimate these attacks are too hard to control to be practically useful -against an inertial HSM. - -A possible way to attack the accelerometer inside an inertial HSM may be to first decapsulate it using laser ablation -synchronized with the device's rotation. Then, a fast-setting glue such as a cyanoacrylate could be deposited on the -moving MEMS parts, locking them in place. To mitigate this type of attack the accelerometer should be mounted in a -shielded place inside the security envelope. Further, this attack can only work if the rate of rotation and thus the -expected accelerometer readings are constant. If the rate of rotation is set to vary over time this type of attack is -quickly detected. In Appendix \ref{sec_degrees_of_freedom} we outline the constraints on sensor placement. - -\subsection{Attacks on the alarm circuitry} - -Besides trying to deactivate the tamper detection mesh, an electronic attack could also target the alarm circuitry -inside the stationary payload, or the communication link between rotor and payload. The link can be secured using a -cryptographically secured protocol like one would use for wireless radio links along with a high-frequency heartbeat -message. The alarm circuitry has to be designed such that it is entirely contained within the HSM's security envelope. -Like in conventional HSMs it has to be built to either tolerate or detect environmental attacks such as ones using -temperature, ionizing radiation, lasers, supply voltage variations, ultrasound or other vibration and gases or liquids. -Conventionally, incoming power rails are filtered thoroughly to prevent electrical attacks and other types of attacks -are prevented by sensors that thrigger an alarm. - -In an inertial HSM, the mesh monitoring circuit's tamper alarm is transmitted from rotor to stator through a wireless -link. Since an attacker may wirelessly spoof this link, it must be cryptographically secured. It also must be -bidirectional to allow the alarm signal receiver to verify link latency: If it were unidirectional, an attacker could -act as a Man-in-the-Middle and replay the mesh's authenticated ``no alarm'' signal at slightly below real-time speed -(say at $\SI{99}{\percent}$ speed). The receiver would not be able to distinguish between this attack and ordinary -deviations in the transmitter's local clock frequency. Thus, after some time the attacker can simply stop the rotor and -break the mesh while replaying the leftover recorded ``no alarm'' signal. Given the frequency stability of commercial -crystals, this would yield the attacker several seconds of undisturbed attack time per hour of recording time. - -\subsection{Fast and violent attacks} - -A variation of the above attacks on the alarm circuitry is to simply destroy the part of the HSM that erases data in -response to tampering before it can finish its job. This attack could use a tool such as a large hammer or a gun. -Mitigations for this type of attack include potting the payload inside a mechanically robust enclosure. Additionally, -the integrity of the entire alarm signalling chain can be checked continuously using a cryptographic heartbeat protocol. -A simple active-high or active-low alarm signal as it is used in traditional HSMs cannot be considered fail-safe in this -scenario as such an attack may well short-circuit or break PCB traces. - -\section{Prototype implementation} -\label{sec_proto} - -After elaborating the design principles of inertial HSMs and researching potential attack vectors we have validated -these theoretical studies by implementing a prototype rotary HSM. The main engineering challenges we solved in our -prototype are: - -\begin{enumerate} - \item Fundamental mechanical design suitable for rapid prototyping that can withstand a rotation of $\SI{500}{rpm}$. - \item Automatic generation of security mesh PCB layouts for quick adaption to new form factors. - \item Non-contact power transmission from stator to rotor. - \item Non-contact bidirectional data communication between stator and rotor. -\end{enumerate} - -\subsection{Mechanical design} - -We sized our prototype to have space for up to two full-size Raspberry Pi boards. Each one of these boards is already -more powerful than an ordinary HSM, but they are small enough to simplify our prototype's design. For low-cost -prototyping we designed our prototype to use printed circuit boards as its main structural material. The interlocking -parts were designed in FreeCAD as shown in Figure \ref{proto_3d_design}. The mechanical designs were exported to KiCAD -for electrical design before being sent to a commercial PCB manufacturer. Rotor and stator are built from interlocking, -soldered PCBs. The components are mounted to a $\SI{6}{\milli\meter}$ brass tube using FDM 3D printed flanges. The rotor -is driven by a small hobby quadcopter motor. - -Security is provided by a PCB security mesh enveloping the entire system and extending to within a few millimeters of -the shaft. For security it is not necessary to cover the entire circumference of the module with mesh, so we opted to -use only three narrow longitudinal struts to save weight. - -To mount the entire HSM, we chose to use ``2020'' modular aluminium profile. - -\begin{figure} - \center - \includegraphics[height=7cm]{proto_3d_design.jpg} - \caption{The 3D CAD design of the prototype.} - \label{proto_3d_design} -\end{figure} - -\subsection{PCB security mesh generation} - -The security mesh covers a total of five interlocking PCBs. A sixth PCB contains the monitoring circuit and connects to -these mesh PCBs. To allow us to quickly iterate our design without manually re-routing several large security meshes -for every mechanical chage we wrote a plugin for the KiCAD EDA suite that automatically generates parametrized security -meshes. When KiCAD is used in conjunction with FreeCAD through FreeCAD's KiCAD StepUp plugin, this ends up in an -efficient toolchain from mechanical CAD design to security mesh PCB gerber files. The mesh generation plugin can be -found at its website\footnote{\url{https://blog.jaseg.de/posts/kicad-mesh-plugin/}}. The meshes it produces have a -practical level of security in our application. - -The mesh generation process starts by overlaying a grid on the target area. It then produces a randomized tree covering -this grid. The individual mesh traces are then traced along a depth-first search through this tree. A visualization of -the steps is shown in Figure \ref{mesh_gen_viz}. A sample of the production results from our prototype is shown in -Figure \ref{mesh_gen_sample}. - -\begin{figure} - \center - \includegraphics[width=9cm]{mesh_gen_viz.pdf} - \caption{Overview of the automatic security mesh generation process. 1 - the blob is the example target area. 2 - A - grid is overlayed. 3 - Grid cells outside of the target area are removed. 4 - A random tree covering the remaining - cells is generated. 5 - The mesh traces are traced along a depth-first walk of the tree. 6 - Result.} - \label{mesh_gen_viz} -\end{figure} - -\begin{figure} - \center - \includegraphics[width=6cm]{mesh_scan_crop.jpg} - \caption{A section of the security mesh PCB we produced with our toolchain for the prototype HSM.} - \label{mesh_gen_sample} -\end{figure} - -\subsection{Data transmission through rotating joint} - -With the mesh done, the next engineering challenge was the mesh monitoring data link between rotor and stator. As a -baseline solution, we settled on a $\SI{115}{\kilo\baud}$ UART signal sent through a simple bidirectional infrared link. -In the transmitter, the UART TX line on-off modulates a $\SI{920}{\nano\meter}$ IR LED through a common-emitter driver -transistor. In the receiver, an IR PIN photodiode reverse-biased to $\frac{1}{2}V_\text{CC}$ is connected to a -reasonably wideband transimpedance amplifier (TIA) with a $\SI{100}{\kilo\ohm}$ transimpedance. As shown in Figure -\ref{photolink_schematic}, the output of this TIA is fed through another $G=100$ amplifier whose output is then squared -up by a comparator. We used an \texttt{MCP6494} quad CMOS op-amp. At a specified $\SI{2}{\milli\ampere}$ current -consumption it is within our rotor's power budget, and its Gain Bandwidth Product of $\SI{7.5}{\mega\hertz}$ yields a -useful transimpedance in the photodiode-facing TIA stage. - -To reduce the requirements on power transmission to the rotor, we have tried to reduce power consumption of the -rotor-side receiver/transmitter pair trading off stator-side power consumption. One part of this is that we use -a wide-angle photodiode and IR LED on the stator, but use narrow-angle components on the rotor. The two rx/tx pairs are -arranged next to the motor on opposite sides. By placing the narrow-angle rotor rx/tx components on the outside as -shown in Figure \ref{ir_tx_schema}, the motor shields both IR links from crosstalk. The rotor transmitter LED is -driven at $\SI{1}{\milli\ampere}$ while the stator transmitter LED is driven at $\SI{20}{\milli\ampere}$. - -\begin{figure} - \center - \includegraphics{ir_tx_schema.pdf} - \caption{Schema of our bidirectional IR communication link between rotor and stator, view along axis of rotation. 1 - - Rotor base PCB. 2 - Stator IR link PCB. 3 - Motor. 4 - receiver PIN photodiode. 5 - transmitter IR LED.} - \label{ir_tx_schema} -\end{figure} - -\begin{figure} - \center - \includegraphics[width=9cm]{photolink_schematic.pdf} - \caption{Schematic of the IR communication link. Component values are only examples. In particular C2 depends highly - on the photodiode used and stray capacitances due to the component layout.} - \label{photolink_schematic} -\end{figure} - -\subsection{Power transmission through rotating joint} -Besides the data link, the other electrical interface we need between rotor and stator is for power transmission. We -power Since this prototype serves only demonstration purposes, we chose to use the simplest possible method of power -transmission: solar cells. We mounted six series-connected solar cells in three commercially available modules on the -circular PCB at the end of our cylindrical rotor. The solar cells direclty feed the rotor's logic supply with buffering -by a large $\SI{33}{\micro\farad}$ ceramic capacitor. With six cells in series, they provide around $\SI{3.0}{\volt}$ at -several tens of $\si{\milli\ampere}$ given sufficient illumination. - -For simplicity and weight reduction, at this point we chose to forego large buffer capacitors on the rotor. This means -variations in solar cell illumination directly couple into the microcontroller's supply rail. Initially, we experimented -with regular residential LED light bulbs, but those turned out to have too much flicker and lead to our microcontroller -frequently rebooting. Trials using an incandecent light produced a stable supply, but the large amount of infrared light -emitted by the incandecent light bulb severely disturbed our near-infrared communication link. As a consequence of -this, we settled on a small LED light intended for use as a studio light that provdided us with almost flicker-free -light at lower frequencies, leading to a sufficiently stable microcontroller VCC rail without any disturbance to the IR -link. - -\subsection{Evaluation} - -After building our prototype inertial HSM according to the design decisions we outlined above, we performed a series of -experiments to validate the critical components of the design. - -During these experiments, our prototype performed as intended. Both power and data transmission through the rotating -joint were working reliably. Figure \ref{prototype_early_comms} shows our prototype performing reliably at maximum speed -for the first time. Our improvised IR link is open in both directions for about $\SI{60}{\degree}$ of the rotation, -which allows us to reliably transfer several tens of bytes in each direction during the receivers' fly-by even at high -speed of rotation. As a result of our prototype experiments, we consider a larger-scale implementation of the inertial -HSM concept practical. - -\begin{figure} - \center - \includegraphics[width=8cm]{prototype_early_comms_small.jpg} - \caption{The protoype when we first achieved reliable power transfer and bidirectional communication between stator - and rotor. In the picture, the prototype was communicating reliably up to the maximum $\approx\SI{1500}{rpm}$ that - we could get out of its hobby quadcopter parts.} - \label{prototype_early_comms} -\end{figure} - -\section{Conclusion} - -\label{sec_conclusion} To conclude, in this paper we introduced inertial hardware security modules (iHSMs), a -novel concept for the construction of highly secure hardware security modules from inexpensive, commonly available -parts. We elaborated the engineering considerations underlying a practical implementation of this concept. We -implemented a prototype demonstrating practical solutions to the significant engineering challenges of this concept. We -analyzed the concept for its security properties and highlighted its ability to significantly strengthen otherwise weak -tamper detection barriers. - -Inertial HSMs offer a high level of security beyond what traditional techniques can offer. They allow the construction -of devices secure against a wide range of practical attacks at prototype quantities and without specialized tools. We -hope that this simple construction will stimulate academic research into secure hardware. - -\printbibliography[heading=bibintoc] -\appendix -\subsection{Spinning mesh energy calculations} -\label{sec_energy_calculations} -Assume that the spinning mesh sensor should send its tamper status to the static monitoring circuit at least once every -$T_\text{tx} = \SI{10}{\milli\second}$. At $\SI{100}{\kilo\baud}$ a transmission of a one-byte message in standard UART -framing would take $\SI{100}{\micro\second}$ and yield an $\SI{1}{\percent}$ duty cycle. If we assume an optical or RF -transmitter that requires $\SI{10}{\milli\ampere}$ of active current, this yields an average operating current of -$\SI{100}{\micro\ampere}$. Reserving another $\SI{100}{\micro\ampere}$ for the monitoring circuit itself we arrive at an -energy consumption of $\SI{1.7}{\ampere\hour\per\year}$. - -\subsubsection{Battery power} -\label{sec_energy_calculations_battery} -The annual energy consumption we calculated above is about equivalent to the capacity of a single CR123A -lithium primary cell. Using several such cells or optimizing power consumption would thus easily yield several years of -battery life. - -\subsubsection{LED and solar cell} -\label{sec_energy_calculations_led} -Let us assume an LED with a light output of $\SI{1}{W}$ illuminating a small solar cell. Let us pessimistically assume a -$\SI{5}{\percent}$ conversion efficiency in the solar cell. Let us assume that when the rotor is at its optimal -rotational angle, $\SI{20}{\percent}$ of the LED's light output couple into the solar cell. Let us assume that we loose -another $\SI{90}{\percent}$ of light output on average during one rotation when the rotor is in motion. This results in -an energy output from the solar cell of $\SI{1}{\milli\watt}$. Assuming a $\SI{3.3}{\volt}$ supply this yields -$\SI{300}{\micro\ampere}$ for our monitoring circuit. This is enough even with some conversion losses in the step-up -converter boosing the solar cell's $\SI{0.6}{\volt}$ working voltage to the monitoring circuit's supply voltage. - -\subsection{Minimum angular velocity: Rotating human attacker} -\label{sec_minimum_angular_velocity} - -An attacker might try to rotate along with the HSM to attack the security mesh without triggering the accelerometer. Let -us pessimistically assume that the attacker has the axis of rotation running through their center of mass. The -attacker's body is probably at least $\SI{200}{\milli\meter}$ wide along its shortest axis, resulting in a minimum -radius from axis of rotation to surface of about $\SI{100}{\milli\meter}$. We choose $\SI{250}{\meter\per\second^2}$ as -an arbitrary acceleration well past the range tolerable by humans according to Wikipedia. Centrifugal acceleration is -$a=\omega^2 r$. In our example this results in a minimum angular velocity of $\omega_\text{min} = \sqrt{\frac{a}{r}} = -\sqrt{\frac{\SI{250}{\meter\per\second^2}}{\SI{100}{\milli\meter}}} \approx 8\cdot 2\pi\frac{1}{\si{\second}} \approx 500 -\text{rpm}$. - -\subsection{Fooling the accelerometer} -\label{sec_degrees_of_freedom} - -Let us consider a general inertial HSM with one or more sensors that is attacked by an attacker. In this scenario, it is -reasonable to assume that the rotating parts of the HSM are rigidly coupled to one another and will stay that way: For -the attacker to decouple parts of the HSM (e.g. to remove one of its accelerometers from the PCB), the attacker would -already have to circumvent the rotor's security mesh. - -Assuming the HSM is stationary, a sensor on the rotating part will experience two significant accelerations: -\begin{enumerate} - \item Gravity $g = 9.8\frac{m}{s^2}$ - \item Centrifugal force $a_C=\omega^2 r$, in the order of $\SI{1000}{\meter\per\second^2}$ or $100 g$ at - $r=\SI{100}{\milli\meter}$ and $\SI{1000}{rpm}$ -\end{enumerate} - -Due to the vast differences in both radius and angular velocity, we can neglegt any influence of the earth's rotation on -our system. - -In normal operation, the HSM is stationary ($\mathbf v=0$) and the HSM's motor is tuned to exactly counter-balance -friction so the rotor's angular velocity remains constant. As a rigid body, the rotor's motion is fully defined by its -rotation and translation. In total, this makes for six degrees of freedom. The three degrees of freedom of linear -translation we can measure directly with an accelerometer in the stationary part on the inside of the HSM. This -accelerometer could detect any rapid acceleration of the HSM's rotor. To measure rotation, we could mount a -gyroscope on the rotor to detect deceleration. The issue with this is that like other MEMS acceleration sensors, -commercial MEMS gyroscopes are vulnerable to drift and an attacker could slowly decelerate the rotor without being -detected. - -A linear accelerometer mounted on the rotor however is able to catch even this attack. Subtracting gravity, it could -determine both magnitude and direction of the centrifugal force, which is proportional to the square of angular velocity -and not its derivative. - -In summary, a single three-axis accelerometer on the rotor combined with a three-axis accelerometer in the stator would -be a good baseline configuration. - -\subsection{Patents and licensing} -During development, we performed several hours of research on prior art for the inertial HSM concept. Yet, we could not -find any mentions of similar concepts either in academic literature or in patents. Thus, we are likely the inventors of -this idea and we are fairly sure it is not covered by any patents or other restrictions at this point in time. - -Since the concept is primarily attractive for small-scale production and since cheaper mass-production alternatives are -already commercially available, we have decided against applying for a patent and we wish to make it available to the -general public without any restrictions on its use. This paper itself is licensed CC-BY-SA (see below). As for the -inertial HSM concept, we invite you to use it as you wish and to base your own work on our publications without any fees -or commercial restrictions. Where possible, we ask you to cite this paper and attribute the inertial HSM concept to its -authors. - -\center{ - \center{\ccbysa} - - \center{This work is licensed under a Creative-Commons ``Attribution-ShareAlike 4.0 International'' license. The - full text of the license can be found at:} - - \center{\url{https://creativecommons.org/licenses/by-sa/4.0/}} - - \center{For alternative licensing options, source files, questions or comments please contact the authors.} - - \center{This is version \texttt{\input{version.tex}\unskip} generated on \today. The git repository can be found at:} - - \center{\url{https://git.jaseg.de/rotohsm.git}} -} -\end{document} diff --git a/doc/quick-tech-report/rotohsm_tech_report.pdf b/doc/quick-tech-report/rotohsm_tech_report.pdf Binary files differdeleted file mode 100644 index d87bc8e..0000000 --- a/doc/quick-tech-report/rotohsm_tech_report.pdf +++ /dev/null diff --git a/doc/quick-tech-report/rotohsm_tech_report.tex b/doc/quick-tech-report/rotohsm_tech_report.tex deleted file mode 100644 index e9d571f..0000000 --- a/doc/quick-tech-report/rotohsm_tech_report.tex +++ /dev/null @@ -1,300 +0,0 @@ -\documentclass[10pt,journal,a4paper]{IEEEtran} -\usepackage[english]{babel} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[ - backend=biber, - style=numeric, - natbib=true, - url=false, - doi=true, - eprint=false - ]{biblatex} -\addbibresource{rotohsm.bib} -\usepackage{amssymb,amsmath} -\usepackage{listings} -\usepackage{eurosym} -\usepackage{wasysym} -\usepackage{amsthm} -\usepackage{tabularx} -\usepackage{multirow} -\usepackage{multicol} -\usepackage{tikz} -\usepackage{mathtools} -\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} -\DeclarePairedDelimiter{\paren}{(}{)} - -\usetikzlibrary{arrows} -\usetikzlibrary{chains} -\usetikzlibrary{backgrounds} -\usetikzlibrary{calc} -\usetikzlibrary{decorations.markings} -\usetikzlibrary{decorations.pathreplacing} -\usetikzlibrary{fit} -\usetikzlibrary{patterns} -\usetikzlibrary{positioning} -\usetikzlibrary{shapes} - -\usepackage[binary-units]{siunitx} -\DeclareSIUnit{\baud}{Bd} -\DeclareSIUnit{\year}{a} -\usepackage{hyperref} -\usepackage{tabularx} -\usepackage{commath} -\usepackage{graphicx,color} -\usepackage{ccicons} -\usepackage{subcaption} -\usepackage{float} -\usepackage{footmisc} -\usepackage{array} -\usepackage[underline=false]{pgf-umlsd} -\usetikzlibrary{calc} -%\usepackage[pdftex]{graphicx,color} -\usepackage{epstopdf} -\usepackage{pdfpages} -\usepackage{minted} % pygmentized source code - -\renewcommand{\floatpagefraction}{.8} -\newcommand{\degree}{\ensuremath{^\circ}} -\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} - -\usepackage{fancyhdr} -\fancyhf{} -\fancyfoot[C]{\thepage} -\newcommand{\includenotebook}[2]{ - \fancyhead[C]{Included Jupyter notebook: #1} - \includepdf[pages=1, - pagecommand={\thispagestyle{fancy}\section{#1}\label{#2_notebook}} - ]{resources/#2.pdf} - \includepdf[pages=2-, - pagecommand={\thispagestyle{fancy}} - ]{resources/#2.pdf} -} - -\begin{document} - -\title{Tech Report: Inerial HSMs Thwart Advanced Physical Attacks} -\author{\IEEEauthorblockN{ - Jan Sebastian Götte\IEEEauthorrefmark{1}\IEEEauthorrefmark{2} \and - Björn Scheuermann\IEEEauthorrefmark{1}\IEEEauthorrefmark{2} - }\\ - \IEEEauthorblockA{ - \IEEEauthorrefmark{1}Alexander von Humboldt Institut für Internet und Gesellschaft (HIIG)\\ - \IEEEauthorrefmark{2}Humboldt-Universität zu Berlin\\ - \texttt{\textbf{\small goette@jaseg.de}}, \texttt{\textbf{\small scheuermann@informatik.hu-berlin.de}} - } -} -\date{2021-01-05} -\maketitle - -\section*{Abstract} - -In this tech report, we introduce a novel countermeasure against physical attacks: Inertial hardware security modules -(iHSMs). Conventional systems have in common that they try to detect attacks by crafting sensors responding to -increasingly minute manipulations of the monitored security boundary or volume. Our approach is novel in that we reduce -the sensitivity requirement of security meshes and other sensors and increase the complexity of any manipulations by -rotating the security mesh or sensor at high speed---thereby presenting a moving target to an attacker. Attempts to stop -the rotation are easily monitored with commercial MEMS accelerometers and gyroscopes. Our approach leads to a HSM that -can easily be built from off-the-shelf parts by any university electronics lab, yet offers a level of security that is -comparable to commercial HSMs. - -This tech report is the abridged version of our forthcoming paper. - -\section{Introduction} - -While information security technology has matured a great deal in the last half century, physical security has barely -changed. Given the right skills, physical access to a computer still often means full compromise. The physical -security of modern server hardware hinges on what lock you put on the room it is in. - -Currently, servers and other computers are rarely physically secured as a whole. Servers sometimes have a simple lid -switch and are put in locked ``cages'' inside guarded facilities. This usually provides a good compromise between -physical security and ease of maintenance. To handle highly sensitive data in applications such as banking or public key -infrastructure, general-purpose and low-security servers are augmented with dedicated, physically secure cryptographic -co-processors such as trusted platform modules (TPMs) or hardware security modules (HSMs). Using a limited amount of -trust in components such as the CPU, the larger system's security can then be reduced to that of its physically secured -TPM~\cite{newman2020,frazelle2019,johnson2018}. - -Like smartcards, TPMs rely on a modern IC being hard to tamper with. Shrinking things to the nanoscopic level to secure -them against tampering is a good engineering solution for some years to come. However, in essence this is a type of -security by obscurity: Obscurity here referring to the rarity of the equipment necessary to attack modern -ICs~\cite{albartus2020,anderson2020}. - -HSMs rely on a fragile foil with much larger-scale conductive traces being hard to remove intact. While we are certain -that there still are many insights to be gained in both technologies, we wish to introduce a novel approach to sidestep -the manufacturing issues of both and provide radically better security against physical attacks. Our core observation -is that any cheap but coarse HSM technology can be made much more difficult to attack by moving it very quickly. - -For example, consider an HSM as it is used in online credit card payment processing. Its physical security level is set -by the structure size of its security mesh. An attack on its mesh might involve fine drill bits, needles, wires, glue, -solder and lasers~\cite{drimer2008}. Now consider the same HSM mounted on a large flywheel. In addition to its usual -defenses the HSM is now equipped with an accelerometer that it uses to verify that it is spinning at high speed. How -would an attacker approach this HSM? They would have to either slow down the rotation---which triggers the -accelerometer---or they would have to attack the HSM in motion. The HSM literally becomes a moving target. At slow -speeds, rotating the entire attack workbench might be possible but rotating frames of reference quickly become -inhospitable to human life. Since non-contact electromagnetic or optical attacks are more limited in the first place and -can be shielded, we have effectively forced the attacker to use an attack robot. - -In Section~\ref{sec_related_work}, we will give an overview of the state of the art in the physical security of HSMs. On -this basis, in Section~\ref{sec_ihsm_construction} we will elaborate the principles of our inertial HSM approach. We -conclude this paper with a general evaluation of our concept in Section~\ref{sec_conclusion}. - -\section{Related work} -\label{sec_related_work} -% summaries of research papers on HSMs. I have not found any actual prior art on anything involving mechanical motion -% beyond ultrasound. - -In this section, we will briefly explore the history of HSMs and the state of academic research on active tamper -detection. - -HSMs are an old technology tracing back decades in their electronic realization. Today's common approach of monitoring -meandering electrical traces on a fragile foil that is wrapped around the HSM essentially transforms the security -problem into the challenge to manufacture very fine electrical traces on a flexible foil~\cite{isaacs2013, immler2019, -anderson2020}. There has been some research on monitoring the HSM's inside using e.g.\ electromagnetic -radiation~\cite{tobisch2020, kreft2012} or ultrasound~\cite{vrijaldenhoven2004} but none of this research -has found widespread adoption yet. - -In~\cite{anderson2020}, Anderson gives a comprehensive overview on physical security. An example they cite is the IBM -4758 HSM whose details are laid out in depth in~\cite{smith1998}. This HSM is an example of an industry-standard -construction. Although its turn of the century design is now a bit dated, the construction techniques of the physical -security mechanisms have not evolved much in the last two decades. Besides auxiliary temperature and radiation sensors -to guard against attacks on the built-in SRAM memory, the module's main security barrier uses the traditional -construction of a flexible mesh wrapped around the module's core. In~\cite{smith1998}, the authors state the module -monitors this mesh for short circuits, open circuits and conductivity. The fundamental approach to tamper detection and -construction is similar to other commercial offerings~\cite{obermaier2018,drimer2008,anderson2020,isaacs2013}. - -To the best of our knowledge, we are the the first to propose a mechanically moving HSM security barrier as part of a -hardware security module. Most academic research concentrates on the issue of creating new, more sensitive security -barriers for HSMs~\cite{immler2019} while commercial vendors concentrate on means to certify and cheaply manufacture -these security barriers~\cite{drimer2008}. Our concept instead focuses on the issue of taking any existing, cheap -low-performance security barrier and transforming it into a marginally more expensive but high-performance one. The -closest to a mechanical HSM that we were able to find during our research is an 1988 patent~\cite{rahman1988} that -describes a mechanism to detect tampering along a communication cable by enclosing the cable inside a conduit filled -with pressurized gas. - -\section{Inertial HSM construction and operation} -\label{sec_ihsm_construction} - -Mechanical motion has been proposed as a means of making things harder to see with the human eye~\cite{haines2006} and is -routinely used in military applications to make things harder to hit~\cite{terdiman2013} but we seem to be the first to -use it in tamper detection. If we consider different ways of moving an HSM to make it harder to tamper with, we find -that making it spin has several advantages. - -First, the HSM has to move fairly fast. If any point of the HSM's tamper sensing mesh moves slow enough for a human to -follow, it becomes a weak spot. E.g.\ in a linear pendulum motion, the pendulum becomes stationary at its apex. Second, -a spinning HSM is compact compared to alternatives like an HSM on wheels. Finally, rotation leads to easily predictable -accelerometer measurements. A beneficial side-effect of spinning the HSM is that if the axis of rotation is within the -HSM itself, an attacker trying to follow the motion would have to rotate around the same axis. Their tangential linear -velocity would rise linearly with the radius from the axis of rotation, which allows us to limit the approximate maximum -size and mass of an attacker using an assumption on tolerable centrifugal force. In this consideration the axis of -rotation is a weak spot, but that can be mitigated using multiple nested layers of protection. - -\begin{figure} - \center - \includegraphics{concept_vis_one_axis.pdf} - \caption{Concept of a simple spinning inertial HSM. 1 - Shaft. 2 - Security mesh. 3 - Payload. 4 - - Accelerometer. 5 - Shaft penetrating security mesh.} - \label{fig_schema_one_axis} -\end{figure} - -In a rotating reference frame, centrifugal force is proportional to the square of angular velocity and proportional to -distance from the axis of rotation. We can exploit this fact to create a sensor that detects any disturbance of the -rotation by placing a linear accelerometer at some distance from the axis of rotation. During constant rotation, after -subtracting gravity both acceleration tangential to the rotation and along the axis of rotation will be zero. -Centrifugal acceleration will be constant. - -Large centrifugal acceleration at high speeds poses the engineering challenge of preventing the whole thing from flying -apart, but it also creates an obstacle to any attacker trying to manipulate the sensor. We do not need to move the -entire contents of the HSM. It suffices if we move the tamper detection barrier around a stationary payload. This -reduces the moment of inertia of the moving part and it means we can use cables for payload power and data. Even at -moderate speeds above $\SI{500}{rpm}$, an attack would have to be carried out using a robot. - -\subsection{Mechanical layout} - -Thinking about the concrete construction of our mechanical HSM, the first challenge is mounting both mesh and payload on -a single shaft. The simplest way we found to mount a stationary payload inside of a spinning security mesh is a hollow -shaft. The payload can be mounted on a fixed rod threaded through this hollow shaft along with wires for power and -data. The shaft is a weak spot of the system, but this weak spot can be alleviated through either careful construction -or a second layer of rotating meshes with a different axis of rotation. Configurations that do not use a hollow-shaft -motor are possible, but may require additional bearings to keep the stator from vibrating. - -The next design choice we have to make is the physical structure of the security mesh. The spinning mesh must be -designed to cover the entire surface of the payload, but compared to a traditional HSM it suffices if it sweeps over -every part of the payload once per rotation. This means we can design longitudinal gaps into the mesh that allow outside -air to flow through to the payload. In traditional boundary-sensing HSMs, cooling of the payload processor is a serious -issue since any air duct or heat pipe would have to penetrate the HSM's security boundary. This problem can only be -solved with complex and costly siphon-style constructions, so in commercial systems heat conduction is used -exclusively~\cite{isaacs2013}. This limits the maximum power dissipation of the payload and thus its processing power. -Our setup allows direct air cooling of regular heatsinks. This greatly increases the maximum possible power dissipation -of the payload and unlocks much more powerful processing capabilities. In an evolution of our design, the spinning mesh -could even be designed to \emph{be} a cooling fan. - -\subsection{Spinning mesh power and data transmission} - -On the electrical side, the idea of a security mesh spinning at more than $\SI{500}{rpm}$ leaves us with a few -implementation challenges. Since the spinning mesh must be monitored for breaks or short circuits continuously, we need -both a power supply for the spinning monitoring circuit and a data link to the stator. - -We think that a bright lamp shining at a rotating solar panel is a good starting point. In contrast to e.g.\ slip -rings, this setup is mechanically durable at high speeds and it also provides reasonable output power. A battery may not -provide a useful lifetime without power-optimization. Likewise, an energy harvesting setup may not provide enough -current to supply peak demand. - -Since the monitoring circuit uses little current, power transfer efficiency is not important. On the other hand, cost -may be a concern in a production device. Here it may prove worthwhile to replace the solar cell setup with an extra -winding on the rotor of the BLDC motor driving the spinning mesh. This motor is likely to be a custom part, so adding -an extra winding is unlikely to increase cost significantly. More traditional inductive power transfer may also be an -option if it can be integrated into the mechanical design. - -\begin{figure} - \center - \includegraphics{ir_tx_schema.pdf} - \caption{Example of a bidirectional IR communication link between rotor and stator, view along axis of rotation. 1 - - Rotor base plate. 2 - Stator base plate. 3 - Motor. 4 - receiver PIN photodiode. 5 - transmitter IR LED.} - \label{ir_tx_schema} -\end{figure} - -Besides power, the data link between spinning mesh and payload is critical to the HSM's design. This link is used to -transmit the occassional status report along with a low-latency alarm trigger (``heartbeat'') signal from mesh to payload. -A simple infrared optical link as shown in Figure~\ref{ir_tx_schema} may be a good solution for this purpose. - -\section{Conclusion} - -\label{sec_conclusion} To conclude, in this tech report we introduced inertial hardware security modules (iHSMs), a -novel concept for the construction of highly secure hardware security modules from inexpensive, commonly available -parts. We elaborated the engineering considerations underlying a practical implementation of this concept. - -Inertial HSMs offer a high level of security beyond what traditional techniques can offer. They allow the construction -of devices secure against a wide range of practical attacks at prototype quantities and without specialized tools. We -hope that this simple construction will stimulate academic research into secure hardware. - -\printbibliography[heading=bibintoc] -\appendix - -\subsection{Patents and licensing} -During development, we performed several hours of research on prior art for the inertial HSM concept. Yet, we could not -find any mentions of similar concepts either in academic literature or in patents. Thus, we are likely the inventors of -this idea and we are fairly sure it is not covered by any patents or other restrictions at this point in time. - -Since the concept is primarily attractive for small-scale production and since cheaper mass-production alternatives are -already commercially available, we have decided against applying for a patent and we wish to make it available to the -general public without any restrictions on its use. This paper itself is licensed CC-BY-SA (see below). As for the -inertial HSM concept, we invite you to use it as you wish and to base your own work on our publications without any fees -or commercial restrictions. Where possible, we ask you to cite this paper and attribute the inertial HSM concept to its -authors. - -\center{ - \center{\ccbysa} - - \center{This work is licensed under a Creative-Commons ``Attribution-ShareAlike 4.0 International'' license. The - full text of the license can be found at:} - - \center{\url{https://creativecommons.org/licenses/by-sa/4.0/}} - - \center{For alternative licensing options, source files, questions or comments please contact the authors.} - - \center{This is version \texttt{\input{version.tex}\unskip} generated on \today. Once the full paper has been - published, this project's git repository will be available at:} - - \center{\url{https://git.jaseg.de/rotohsm.git}} -} -\end{document} |