changeset 134:6f2af8e66c35

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Mon, 08 Feb 2021 09:49:50 +0900
parents 4e800dcf936e
children 58a8b3df7e9b
files slide/gears_structure.svg slide/index.html slide/index.md
diffstat 3 files changed, 1002 insertions(+), 436 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slide/gears_structure.svg	Mon Feb 08 09:49:50 2021 +0900
@@ -0,0 +1,645 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="713pt" height="418pt" viewBox="0 0 713 418" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 4.90625 -7.984375 L 1.21875 -7.984375 L 1.21875 -0.5625 L 4.90625 -0.5625 Z M 5.515625 -8.546875 L 5.515625 -0.015625 L 0.609375 -0.015625 L 0.609375 -8.546875 Z M 5.515625 -8.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 2.875 -7.609375 L 2.875 0 L 4.015625 0 L 4.015625 -7.609375 L 6.875 -7.609375 L 6.875 -8.5625 L 0.03125 -8.5625 L 0.03125 -7.609375 Z M 2.875 -7.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 6.265625 -0.03125 C 6.085938 0.0703125 5.84375 0.125 5.53125 0.125 C 5.269531 0.125 5.0625 0.0507812 4.90625 -0.09375 C 4.75 -0.238281 4.671875 -0.476562 4.671875 -0.8125 C 4.390625 -0.476562 4.0625 -0.238281 3.6875 -0.09375 C 3.3125 0.0507812 2.910156 0.125 2.484375 0.125 C 2.203125 0.125 1.9375 0.09375 1.6875 0.03125 C 1.4375 -0.03125 1.21875 -0.128906 1.03125 -0.265625 C 0.84375 -0.398438 0.695312 -0.578125 0.59375 -0.796875 C 0.488281 -1.015625 0.4375 -1.28125 0.4375 -1.59375 C 0.4375 -1.945312 0.492188 -2.234375 0.609375 -2.453125 C 0.734375 -2.679688 0.890625 -2.863281 1.078125 -3 C 1.273438 -3.144531 1.5 -3.253906 1.75 -3.328125 C 2.007812 -3.398438 2.269531 -3.457031 2.53125 -3.5 C 2.8125 -3.5625 3.078125 -3.601562 3.328125 -3.625 C 3.578125 -3.65625 3.796875 -3.695312 3.984375 -3.75 C 4.179688 -3.800781 4.335938 -3.875 4.453125 -3.96875 C 4.566406 -4.070312 4.625 -4.222656 4.625 -4.421875 C 4.625 -4.640625 4.582031 -4.816406 4.5 -4.953125 C 4.414062 -5.085938 4.304688 -5.191406 4.171875 -5.265625 C 4.035156 -5.335938 3.882812 -5.382812 3.71875 -5.40625 C 3.5625 -5.4375 3.398438 -5.453125 3.234375 -5.453125 C 2.804688 -5.453125 2.445312 -5.367188 2.15625 -5.203125 C 1.875 -5.035156 1.71875 -4.722656 1.6875 -4.265625 L 0.671875 -4.265625 C 0.691406 -4.648438 0.769531 -4.972656 0.90625 -5.234375 C 1.050781 -5.503906 1.242188 -5.71875 1.484375 -5.875 C 1.722656 -6.039062 1.992188 -6.160156 2.296875 -6.234375 C 2.609375 -6.304688 2.941406 -6.34375 3.296875 -6.34375 C 3.578125 -6.34375 3.851562 -6.320312 4.125 -6.28125 C 4.40625 -6.25 4.65625 -6.171875 4.875 -6.046875 C 5.101562 -5.921875 5.285156 -5.742188 5.421875 -5.515625 C 5.554688 -5.296875 5.625 -5.003906 5.625 -4.640625 L 5.625 -1.453125 C 5.625 -1.210938 5.640625 -1.035156 5.671875 -0.921875 C 5.703125 -0.804688 5.796875 -0.75 5.953125 -0.75 C 6.035156 -0.75 6.140625 -0.769531 6.265625 -0.8125 Z M 4.609375 -3.203125 C 4.484375 -3.109375 4.316406 -3.035156 4.109375 -2.984375 C 3.898438 -2.941406 3.679688 -2.90625 3.453125 -2.875 C 3.222656 -2.851562 2.988281 -2.820312 2.75 -2.78125 C 2.519531 -2.75 2.3125 -2.691406 2.125 -2.609375 C 1.945312 -2.535156 1.800781 -2.421875 1.6875 -2.265625 C 1.570312 -2.117188 1.515625 -1.921875 1.515625 -1.671875 C 1.515625 -1.503906 1.546875 -1.359375 1.609375 -1.234375 C 1.679688 -1.117188 1.769531 -1.023438 1.875 -0.953125 C 1.988281 -0.890625 2.113281 -0.835938 2.25 -0.796875 C 2.394531 -0.765625 2.550781 -0.75 2.71875 -0.75 C 3.050781 -0.75 3.335938 -0.796875 3.578125 -0.890625 C 3.816406 -0.984375 4.007812 -1.097656 4.15625 -1.234375 C 4.3125 -1.378906 4.425781 -1.53125 4.5 -1.6875 C 4.570312 -1.851562 4.609375 -2.007812 4.609375 -2.15625 Z M 4.609375 -3.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 1.390625 -1.953125 L 0.375 -1.953125 C 0.382812 -1.566406 0.460938 -1.238281 0.609375 -0.96875 C 0.753906 -0.707031 0.945312 -0.492188 1.1875 -0.328125 C 1.425781 -0.160156 1.703125 -0.046875 2.015625 0.015625 C 2.328125 0.0859375 2.65625 0.125 3 0.125 C 3.3125 0.125 3.625 0.09375 3.9375 0.03125 C 4.257812 -0.0195312 4.546875 -0.117188 4.796875 -0.265625 C 5.046875 -0.421875 5.25 -0.625 5.40625 -0.875 C 5.5625 -1.125 5.640625 -1.4375 5.640625 -1.8125 C 5.640625 -2.101562 5.582031 -2.347656 5.46875 -2.546875 C 5.351562 -2.753906 5.203125 -2.921875 5.015625 -3.046875 C 4.828125 -3.179688 4.609375 -3.285156 4.359375 -3.359375 C 4.117188 -3.441406 3.867188 -3.515625 3.609375 -3.578125 C 3.367188 -3.628906 3.128906 -3.679688 2.890625 -3.734375 C 2.648438 -3.785156 2.429688 -3.847656 2.234375 -3.921875 C 2.046875 -4.003906 1.890625 -4.101562 1.765625 -4.21875 C 1.640625 -4.332031 1.578125 -4.476562 1.578125 -4.65625 C 1.578125 -4.8125 1.617188 -4.941406 1.703125 -5.046875 C 1.785156 -5.148438 1.890625 -5.226562 2.015625 -5.28125 C 2.140625 -5.34375 2.28125 -5.382812 2.4375 -5.40625 C 2.59375 -5.4375 2.75 -5.453125 2.90625 -5.453125 C 3.070312 -5.453125 3.234375 -5.429688 3.390625 -5.390625 C 3.554688 -5.359375 3.707031 -5.300781 3.84375 -5.21875 C 3.988281 -5.132812 4.101562 -5.023438 4.1875 -4.890625 C 4.269531 -4.765625 4.320312 -4.601562 4.34375 -4.40625 L 5.359375 -4.40625 C 5.335938 -4.78125 5.257812 -5.09375 5.125 -5.34375 C 4.988281 -5.59375 4.804688 -5.789062 4.578125 -5.9375 C 4.347656 -6.09375 4.082031 -6.195312 3.78125 -6.25 C 3.488281 -6.3125 3.164062 -6.34375 2.8125 -6.34375 C 2.539062 -6.34375 2.265625 -6.304688 1.984375 -6.234375 C 1.710938 -6.171875 1.46875 -6.066406 1.25 -5.921875 C 1.03125 -5.785156 0.847656 -5.601562 0.703125 -5.375 C 0.566406 -5.15625 0.5 -4.890625 0.5 -4.578125 C 0.5 -4.179688 0.597656 -3.867188 0.796875 -3.640625 C 1.003906 -3.421875 1.253906 -3.25 1.546875 -3.125 C 1.847656 -3 2.175781 -2.898438 2.53125 -2.828125 C 2.882812 -2.765625 3.207031 -2.691406 3.5 -2.609375 C 3.800781 -2.523438 4.050781 -2.414062 4.25 -2.28125 C 4.457031 -2.144531 4.5625 -1.945312 4.5625 -1.6875 C 4.5625 -1.488281 4.507812 -1.328125 4.40625 -1.203125 C 4.3125 -1.078125 4.191406 -0.984375 4.046875 -0.921875 C 3.898438 -0.859375 3.738281 -0.8125 3.5625 -0.78125 C 3.382812 -0.757812 3.21875 -0.75 3.0625 -0.75 C 2.851562 -0.75 2.648438 -0.769531 2.453125 -0.8125 C 2.253906 -0.851562 2.078125 -0.921875 1.921875 -1.015625 C 1.765625 -1.109375 1.640625 -1.234375 1.546875 -1.390625 C 1.453125 -1.546875 1.398438 -1.734375 1.390625 -1.953125 Z M 1.390625 -1.953125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 0.828125 -8.5625 L 0.828125 0 L 1.84375 0 L 1.84375 -2.359375 L 2.8125 -3.234375 L 4.9375 0 L 6.234375 0 L 3.59375 -3.953125 L 6.046875 -6.203125 L 4.6875 -6.203125 L 1.84375 -3.484375 L 1.84375 -8.5625 Z M 0.828125 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 0.953125 -8.5625 L 0.953125 0 L 2.046875 0 L 2.046875 -7.125 L 2.0625 -7.125 L 4.734375 0 L 5.71875 0 L 8.390625 -7.125 L 8.40625 -7.125 L 8.40625 0 L 9.484375 0 L 9.484375 -8.5625 L 7.9375 -8.5625 L 5.21875 -1.375 L 2.515625 -8.5625 Z M 0.953125 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.765625 -6.203125 L 0.765625 0 L 1.78125 0 L 1.78125 -3.5 C 1.78125 -3.78125 1.816406 -4.035156 1.890625 -4.265625 C 1.972656 -4.503906 2.085938 -4.710938 2.234375 -4.890625 C 2.390625 -5.066406 2.582031 -5.203125 2.8125 -5.296875 C 3.039062 -5.398438 3.3125 -5.453125 3.625 -5.453125 C 4.019531 -5.453125 4.328125 -5.335938 4.546875 -5.109375 C 4.773438 -4.890625 4.890625 -4.585938 4.890625 -4.203125 L 4.890625 0 L 5.90625 0 L 5.90625 -4.078125 C 5.90625 -4.410156 5.867188 -4.710938 5.796875 -4.984375 C 5.734375 -5.265625 5.617188 -5.503906 5.453125 -5.703125 C 5.285156 -5.910156 5.0625 -6.066406 4.78125 -6.171875 C 4.507812 -6.285156 4.171875 -6.34375 3.765625 -6.34375 C 2.847656 -6.34375 2.175781 -5.96875 1.75 -5.21875 L 1.734375 -5.21875 L 1.734375 -6.203125 Z M 0.765625 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 6.125 -0.53125 L 6.125 -6.203125 L 5.15625 -6.203125 L 5.15625 -5.3125 L 5.140625 -5.3125 C 4.960938 -5.65625 4.707031 -5.910156 4.375 -6.078125 C 4.050781 -6.253906 3.691406 -6.34375 3.296875 -6.34375 C 2.765625 -6.34375 2.3125 -6.238281 1.9375 -6.03125 C 1.570312 -5.832031 1.273438 -5.570312 1.046875 -5.25 C 0.828125 -4.9375 0.671875 -4.585938 0.578125 -4.203125 C 0.484375 -3.816406 0.4375 -3.441406 0.4375 -3.078125 C 0.4375 -2.648438 0.492188 -2.242188 0.609375 -1.859375 C 0.722656 -1.484375 0.894531 -1.148438 1.125 -0.859375 C 1.351562 -0.578125 1.640625 -0.351562 1.984375 -0.1875 C 2.335938 -0.0195312 2.742188 0.0625 3.203125 0.0625 C 3.597656 0.0625 3.972656 -0.0234375 4.328125 -0.203125 C 4.691406 -0.390625 4.960938 -0.675781 5.140625 -1.0625 L 5.15625 -1.0625 L 5.15625 -0.640625 C 5.15625 -0.296875 5.117188 0.015625 5.046875 0.296875 C 4.984375 0.585938 4.875 0.832031 4.71875 1.03125 C 4.570312 1.238281 4.378906 1.398438 4.140625 1.515625 C 3.910156 1.628906 3.628906 1.6875 3.296875 1.6875 C 3.128906 1.6875 2.953125 1.664062 2.765625 1.625 C 2.585938 1.59375 2.421875 1.535156 2.265625 1.453125 C 2.109375 1.378906 1.972656 1.273438 1.859375 1.140625 C 1.753906 1.015625 1.695312 0.863281 1.6875 0.6875 L 0.671875 0.6875 C 0.691406 1.019531 0.78125 1.300781 0.9375 1.53125 C 1.09375 1.769531 1.289062 1.957031 1.53125 2.09375 C 1.78125 2.238281 2.054688 2.34375 2.359375 2.40625 C 2.660156 2.476562 2.953125 2.515625 3.234375 2.515625 C 4.234375 2.515625 4.960938 2.257812 5.421875 1.75 C 5.890625 1.25 6.125 0.488281 6.125 -0.53125 Z M 3.265625 -0.828125 C 2.929688 -0.828125 2.648438 -0.894531 2.421875 -1.03125 C 2.203125 -1.175781 2.023438 -1.363281 1.890625 -1.59375 C 1.753906 -1.820312 1.65625 -2.070312 1.59375 -2.34375 C 1.539062 -2.625 1.515625 -2.90625 1.515625 -3.1875 C 1.515625 -3.488281 1.546875 -3.773438 1.609375 -4.046875 C 1.679688 -4.316406 1.789062 -4.554688 1.9375 -4.765625 C 2.082031 -4.972656 2.269531 -5.140625 2.5 -5.265625 C 2.738281 -5.390625 3.019531 -5.453125 3.34375 -5.453125 C 3.664062 -5.453125 3.9375 -5.382812 4.15625 -5.25 C 4.382812 -5.125 4.566406 -4.953125 4.703125 -4.734375 C 4.847656 -4.523438 4.953125 -4.289062 5.015625 -4.03125 C 5.078125 -3.769531 5.109375 -3.503906 5.109375 -3.234375 C 5.109375 -2.941406 5.070312 -2.648438 5 -2.359375 C 4.9375 -2.078125 4.832031 -1.820312 4.6875 -1.59375 C 4.539062 -1.363281 4.347656 -1.175781 4.109375 -1.03125 C 3.878906 -0.894531 3.597656 -0.828125 3.265625 -0.828125 Z M 3.265625 -0.828125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 5.078125 -3.703125 L 1.515625 -3.703125 C 1.523438 -3.941406 1.570312 -4.164062 1.65625 -4.375 C 1.75 -4.582031 1.867188 -4.765625 2.015625 -4.921875 C 2.171875 -5.085938 2.351562 -5.21875 2.5625 -5.3125 C 2.78125 -5.40625 3.019531 -5.453125 3.28125 -5.453125 C 3.539062 -5.453125 3.773438 -5.40625 3.984375 -5.3125 C 4.203125 -5.21875 4.390625 -5.09375 4.546875 -4.9375 C 4.703125 -4.78125 4.820312 -4.59375 4.90625 -4.375 C 5 -4.164062 5.054688 -3.941406 5.078125 -3.703125 Z M 6.0625 -1.96875 L 5.046875 -1.96875 C 4.960938 -1.5625 4.78125 -1.253906 4.5 -1.046875 C 4.226562 -0.847656 3.875 -0.75 3.4375 -0.75 C 3.101562 -0.75 2.8125 -0.804688 2.5625 -0.921875 C 2.320312 -1.035156 2.117188 -1.1875 1.953125 -1.375 C 1.796875 -1.5625 1.679688 -1.773438 1.609375 -2.015625 C 1.535156 -2.265625 1.503906 -2.523438 1.515625 -2.796875 L 6.15625 -2.796875 C 6.175781 -3.171875 6.140625 -3.566406 6.046875 -3.984375 C 5.960938 -4.398438 5.8125 -4.78125 5.59375 -5.125 C 5.375 -5.476562 5.082031 -5.769531 4.71875 -6 C 4.351562 -6.226562 3.894531 -6.34375 3.34375 -6.34375 C 2.925781 -6.34375 2.535156 -6.265625 2.171875 -6.109375 C 1.816406 -5.953125 1.507812 -5.726562 1.25 -5.4375 C 0.988281 -5.144531 0.785156 -4.800781 0.640625 -4.40625 C 0.503906 -4.019531 0.4375 -3.59375 0.4375 -3.125 C 0.445312 -2.644531 0.515625 -2.207031 0.640625 -1.8125 C 0.765625 -1.414062 0.953125 -1.070312 1.203125 -0.78125 C 1.453125 -0.488281 1.753906 -0.265625 2.109375 -0.109375 C 2.472656 0.046875 2.90625 0.125 3.40625 0.125 C 4.113281 0.125 4.695312 -0.046875 5.15625 -0.390625 C 5.625 -0.742188 5.925781 -1.269531 6.0625 -1.96875 Z M 6.0625 -1.96875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 0.734375 -6.203125 L 0.734375 0 L 1.75 0 L 1.75 -2.765625 C 1.75 -3.160156 1.785156 -3.507812 1.859375 -3.8125 C 1.941406 -4.125 2.070312 -4.390625 2.25 -4.609375 C 2.425781 -4.828125 2.660156 -4.988281 2.953125 -5.09375 C 3.242188 -5.207031 3.59375 -5.265625 4 -5.265625 L 4 -6.34375 C 3.445312 -6.363281 2.988281 -6.253906 2.625 -6.015625 C 2.269531 -5.773438 1.96875 -5.398438 1.71875 -4.890625 L 1.6875 -4.890625 L 1.6875 -6.203125 Z M 0.734375 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 8.671875 0 L 10.96875 -8.5625 L 9.828125 -8.5625 L 8.09375 -1.4375 L 8.0625 -1.4375 L 6.171875 -8.5625 L 4.9375 -8.5625 L 3.015625 -1.4375 L 2.984375 -1.4375 L 1.3125 -8.5625 L 0.140625 -8.5625 L 2.34375 0 L 3.53125 0 L 5.515625 -7.203125 L 5.53125 -7.203125 L 7.484375 0 Z M 8.671875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 1.515625 -3.09375 C 1.515625 -3.46875 1.5625 -3.800781 1.65625 -4.09375 C 1.757812 -4.382812 1.898438 -4.628906 2.078125 -4.828125 C 2.253906 -5.035156 2.457031 -5.191406 2.6875 -5.296875 C 2.925781 -5.398438 3.175781 -5.453125 3.4375 -5.453125 C 3.707031 -5.453125 3.957031 -5.398438 4.1875 -5.296875 C 4.425781 -5.191406 4.632812 -5.035156 4.8125 -4.828125 C 4.988281 -4.628906 5.125 -4.382812 5.21875 -4.09375 C 5.320312 -3.800781 5.375 -3.46875 5.375 -3.09375 C 5.375 -2.71875 5.320312 -2.382812 5.21875 -2.09375 C 5.125 -1.800781 4.988281 -1.554688 4.8125 -1.359375 C 4.632812 -1.160156 4.425781 -1.007812 4.1875 -0.90625 C 3.957031 -0.800781 3.707031 -0.75 3.4375 -0.75 C 3.175781 -0.75 2.925781 -0.800781 2.6875 -0.90625 C 2.457031 -1.007812 2.253906 -1.160156 2.078125 -1.359375 C 1.898438 -1.554688 1.757812 -1.800781 1.65625 -2.09375 C 1.5625 -2.382812 1.515625 -2.71875 1.515625 -3.09375 Z M 0.4375 -3.09375 C 0.4375 -2.632812 0.5 -2.207031 0.625 -1.8125 C 0.75 -1.425781 0.9375 -1.085938 1.1875 -0.796875 C 1.445312 -0.503906 1.765625 -0.273438 2.140625 -0.109375 C 2.523438 0.046875 2.957031 0.125 3.4375 0.125 C 3.9375 0.125 4.367188 0.046875 4.734375 -0.109375 C 5.109375 -0.273438 5.425781 -0.503906 5.6875 -0.796875 C 5.945312 -1.085938 6.140625 -1.425781 6.265625 -1.8125 C 6.390625 -2.207031 6.453125 -2.632812 6.453125 -3.09375 C 6.453125 -3.550781 6.390625 -3.976562 6.265625 -4.375 C 6.140625 -4.769531 5.945312 -5.113281 5.6875 -5.40625 C 5.425781 -5.695312 5.109375 -5.925781 4.734375 -6.09375 C 4.367188 -6.257812 3.9375 -6.34375 3.4375 -6.34375 C 2.957031 -6.34375 2.523438 -6.257812 2.140625 -6.09375 C 1.765625 -5.925781 1.445312 -5.695312 1.1875 -5.40625 C 0.9375 -5.113281 0.75 -4.769531 0.625 -4.375 C 0.5 -3.976562 0.4375 -3.550781 0.4375 -3.09375 Z M 0.4375 -3.09375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 2.1875 -6.203125 L 2.1875 -8.0625 L 1.15625 -8.0625 L 1.15625 -6.203125 L 0.109375 -6.203125 L 0.109375 -5.296875 L 1.15625 -5.296875 L 1.15625 -1.359375 C 1.15625 -1.066406 1.179688 -0.832031 1.234375 -0.65625 C 1.296875 -0.476562 1.382812 -0.34375 1.5 -0.25 C 1.625 -0.15625 1.78125 -0.0859375 1.96875 -0.046875 C 2.15625 -0.015625 2.378906 0 2.640625 0 L 3.421875 0 L 3.421875 -0.90625 L 2.953125 -0.90625 C 2.796875 -0.90625 2.664062 -0.910156 2.5625 -0.921875 C 2.457031 -0.929688 2.378906 -0.957031 2.328125 -1 C 2.273438 -1.039062 2.238281 -1.09375 2.21875 -1.15625 C 2.195312 -1.226562 2.1875 -1.328125 2.1875 -1.453125 L 2.1875 -5.296875 L 3.421875 -5.296875 L 3.421875 -6.203125 Z M 2.1875 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 5.40625 -2.453125 L 4.796875 -1.75 L 5.75 -1 C 5.363281 -0.832031 4.96875 -0.75 4.5625 -0.75 C 4.039062 -0.75 3.59375 -0.851562 3.21875 -1.0625 C 2.84375 -1.269531 2.535156 -1.539062 2.296875 -1.875 C 2.054688 -2.207031 1.878906 -2.582031 1.765625 -3 C 1.648438 -3.425781 1.59375 -3.851562 1.59375 -4.28125 C 1.59375 -4.71875 1.648438 -5.144531 1.765625 -5.5625 C 1.878906 -5.976562 2.054688 -6.351562 2.296875 -6.6875 C 2.535156 -7.03125 2.84375 -7.300781 3.21875 -7.5 C 3.59375 -7.707031 4.039062 -7.8125 4.5625 -7.8125 C 5.082031 -7.8125 5.53125 -7.707031 5.90625 -7.5 C 6.28125 -7.300781 6.585938 -7.03125 6.828125 -6.6875 C 7.066406 -6.351562 7.242188 -5.976562 7.359375 -5.5625 C 7.472656 -5.144531 7.53125 -4.71875 7.53125 -4.28125 C 7.53125 -3.75 7.445312 -3.242188 7.28125 -2.765625 C 7.125 -2.285156 6.878906 -1.875 6.546875 -1.53125 Z M 7.921875 0.734375 L 8.5 0.015625 L 7.375 -0.875 C 7.800781 -1.3125 8.117188 -1.820312 8.328125 -2.40625 C 8.546875 -3 8.65625 -3.625 8.65625 -4.28125 C 8.65625 -4.863281 8.566406 -5.425781 8.390625 -5.96875 C 8.222656 -6.507812 7.96875 -6.988281 7.625 -7.40625 C 7.28125 -7.820312 6.851562 -8.148438 6.34375 -8.390625 C 5.832031 -8.640625 5.238281 -8.765625 4.5625 -8.765625 C 3.882812 -8.765625 3.285156 -8.640625 2.765625 -8.390625 C 2.253906 -8.148438 1.828125 -7.820312 1.484375 -7.40625 C 1.140625 -6.988281 0.878906 -6.507812 0.703125 -5.96875 C 0.535156 -5.425781 0.453125 -4.863281 0.453125 -4.28125 C 0.453125 -3.695312 0.535156 -3.132812 0.703125 -2.59375 C 0.878906 -2.050781 1.140625 -1.570312 1.484375 -1.15625 C 1.828125 -0.75 2.253906 -0.421875 2.765625 -0.171875 C 3.285156 0.0664062 3.882812 0.1875 4.5625 0.1875 C 5.351562 0.1875 6.035156 0.0195312 6.609375 -0.3125 Z M 7.921875 0.734375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 5.90625 0 L 5.90625 -6.203125 L 4.890625 -6.203125 L 4.890625 -2.703125 C 4.890625 -2.421875 4.847656 -2.160156 4.765625 -1.921875 C 4.691406 -1.691406 4.578125 -1.488281 4.421875 -1.3125 C 4.273438 -1.132812 4.085938 -0.992188 3.859375 -0.890625 C 3.628906 -0.796875 3.359375 -0.75 3.046875 -0.75 C 2.648438 -0.75 2.335938 -0.859375 2.109375 -1.078125 C 1.890625 -1.304688 1.78125 -1.613281 1.78125 -2 L 1.78125 -6.203125 L 0.765625 -6.203125 L 0.765625 -2.125 C 0.765625 -1.789062 0.796875 -1.484375 0.859375 -1.203125 C 0.929688 -0.929688 1.050781 -0.691406 1.21875 -0.484375 C 1.382812 -0.285156 1.601562 -0.132812 1.875 -0.03125 C 2.15625 0.0703125 2.5 0.125 2.90625 0.125 C 3.363281 0.125 3.757812 0.0351562 4.09375 -0.140625 C 4.425781 -0.316406 4.703125 -0.597656 4.921875 -0.984375 L 4.9375 -0.984375 L 4.9375 0 Z M 5.90625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 4.984375 -4.21875 L 6.03125 -4.21875 C 5.988281 -4.582031 5.890625 -4.894531 5.734375 -5.15625 C 5.585938 -5.425781 5.394531 -5.648438 5.15625 -5.828125 C 4.925781 -6.003906 4.65625 -6.132812 4.34375 -6.21875 C 4.039062 -6.300781 3.710938 -6.34375 3.359375 -6.34375 C 2.867188 -6.34375 2.441406 -6.253906 2.078125 -6.078125 C 1.710938 -5.910156 1.40625 -5.675781 1.15625 -5.375 C 0.914062 -5.082031 0.734375 -4.734375 0.609375 -4.328125 C 0.492188 -3.921875 0.4375 -3.488281 0.4375 -3.03125 C 0.4375 -2.5625 0.492188 -2.128906 0.609375 -1.734375 C 0.734375 -1.347656 0.914062 -1.015625 1.15625 -0.734375 C 1.40625 -0.460938 1.710938 -0.25 2.078125 -0.09375 C 2.441406 0.0507812 2.863281 0.125 3.34375 0.125 C 4.132812 0.125 4.757812 -0.078125 5.21875 -0.484375 C 5.675781 -0.898438 5.960938 -1.492188 6.078125 -2.265625 L 5.03125 -2.265625 C 4.96875 -1.785156 4.789062 -1.410156 4.5 -1.140625 C 4.21875 -0.878906 3.828125 -0.75 3.328125 -0.75 C 3.003906 -0.75 2.722656 -0.8125 2.484375 -0.9375 C 2.253906 -1.070312 2.066406 -1.242188 1.921875 -1.453125 C 1.785156 -1.671875 1.679688 -1.914062 1.609375 -2.1875 C 1.546875 -2.457031 1.515625 -2.738281 1.515625 -3.03125 C 1.515625 -3.332031 1.546875 -3.628906 1.609375 -3.921875 C 1.671875 -4.222656 1.773438 -4.484375 1.921875 -4.703125 C 2.066406 -4.929688 2.265625 -5.113281 2.515625 -5.25 C 2.765625 -5.382812 3.070312 -5.453125 3.4375 -5.453125 C 3.875 -5.453125 4.21875 -5.34375 4.46875 -5.125 C 4.726562 -4.90625 4.898438 -4.601562 4.984375 -4.21875 Z M 4.984375 -4.21875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 2.453125 2.359375 L 3.234375 2.359375 C 2.660156 1.441406 2.25 0.53125 2 -0.375 C 1.757812 -1.28125 1.640625 -2.234375 1.640625 -3.234375 C 1.640625 -4.222656 1.757812 -5.164062 2 -6.0625 C 2.238281 -6.957031 2.648438 -7.859375 3.234375 -8.765625 L 2.453125 -8.765625 C 1.828125 -7.941406 1.351562 -7.050781 1.03125 -6.09375 C 0.71875 -5.132812 0.5625 -4.179688 0.5625 -3.234375 C 0.5625 -2.710938 0.601562 -2.210938 0.6875 -1.734375 C 0.78125 -1.253906 0.90625 -0.785156 1.0625 -0.328125 C 1.226562 0.128906 1.425781 0.578125 1.65625 1.015625 C 1.894531 1.460938 2.160156 1.910156 2.453125 2.359375 Z M 2.453125 2.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 6.953125 -5.984375 L 8.09375 -5.984375 C 8.03125 -6.441406 7.894531 -6.84375 7.6875 -7.1875 C 7.476562 -7.539062 7.21875 -7.832031 6.90625 -8.0625 C 6.59375 -8.289062 6.238281 -8.460938 5.84375 -8.578125 C 5.445312 -8.703125 5.023438 -8.765625 4.578125 -8.765625 C 3.921875 -8.765625 3.335938 -8.644531 2.828125 -8.40625 C 2.316406 -8.175781 1.890625 -7.859375 1.546875 -7.453125 C 1.210938 -7.046875 0.957031 -6.566406 0.78125 -6.015625 C 0.601562 -5.472656 0.515625 -4.890625 0.515625 -4.265625 C 0.515625 -3.640625 0.597656 -3.050781 0.765625 -2.5 C 0.929688 -1.957031 1.175781 -1.484375 1.5 -1.078125 C 1.820312 -0.679688 2.234375 -0.367188 2.734375 -0.140625 C 3.234375 0.078125 3.8125 0.1875 4.46875 0.1875 C 5.570312 0.1875 6.4375 -0.109375 7.0625 -0.703125 C 7.695312 -1.304688 8.070312 -2.148438 8.1875 -3.234375 L 7.046875 -3.234375 C 7.023438 -2.878906 6.953125 -2.546875 6.828125 -2.234375 C 6.703125 -1.929688 6.535156 -1.671875 6.328125 -1.453125 C 6.117188 -1.234375 5.867188 -1.0625 5.578125 -0.9375 C 5.285156 -0.8125 4.953125 -0.75 4.578125 -0.75 C 4.054688 -0.75 3.613281 -0.84375 3.25 -1.03125 C 2.882812 -1.226562 2.582031 -1.488281 2.34375 -1.8125 C 2.101562 -2.132812 1.925781 -2.515625 1.8125 -2.953125 C 1.707031 -3.390625 1.65625 -3.851562 1.65625 -4.34375 C 1.65625 -4.789062 1.707031 -5.222656 1.8125 -5.640625 C 1.925781 -6.054688 2.101562 -6.425781 2.34375 -6.75 C 2.582031 -7.070312 2.882812 -7.328125 3.25 -7.515625 C 3.613281 -7.710938 4.050781 -7.8125 4.5625 -7.8125 C 5.15625 -7.8125 5.671875 -7.660156 6.109375 -7.359375 C 6.546875 -7.054688 6.828125 -6.597656 6.953125 -5.984375 Z M 6.953125 -5.984375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 2.4375 -3.265625 L 0.109375 0 L 1.34375 0 L 3.078125 -2.5625 L 4.796875 0 L 6.109375 0 L 3.703125 -3.34375 L 5.84375 -6.203125 L 4.625 -6.203125 L 3.078125 -4.03125 L 1.578125 -6.203125 L 0.28125 -6.203125 Z M 2.4375 -3.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M -0.109375 2.359375 L 0.65625 2.359375 C 1.28125 1.535156 1.75 0.648438 2.0625 -0.296875 C 2.382812 -1.253906 2.546875 -2.207031 2.546875 -3.15625 C 2.546875 -3.6875 2.5 -4.191406 2.40625 -4.671875 C 2.320312 -5.148438 2.195312 -5.617188 2.03125 -6.078125 C 1.863281 -6.535156 1.664062 -6.984375 1.4375 -7.421875 C 1.207031 -7.867188 0.945312 -8.316406 0.65625 -8.765625 L -0.109375 -8.765625 C 0.453125 -7.847656 0.851562 -6.9375 1.09375 -6.03125 C 1.34375 -5.125 1.46875 -4.164062 1.46875 -3.15625 C 1.46875 -2.175781 1.347656 -1.234375 1.109375 -0.328125 C 0.867188 0.566406 0.460938 1.460938 -0.109375 2.359375 Z M -0.109375 2.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 0.9375 -8.5625 L 0.9375 0 L 2.078125 0 L 2.078125 -3.65625 L 4.859375 -3.65625 C 5.140625 -3.65625 5.363281 -3.613281 5.53125 -3.53125 C 5.695312 -3.445312 5.832031 -3.332031 5.9375 -3.1875 C 6.039062 -3.050781 6.113281 -2.890625 6.15625 -2.703125 C 6.207031 -2.515625 6.25 -2.316406 6.28125 -2.109375 C 6.320312 -1.898438 6.347656 -1.6875 6.359375 -1.46875 C 6.367188 -1.257812 6.375 -1.0625 6.375 -0.875 C 6.382812 -0.6875 6.40625 -0.515625 6.4375 -0.359375 C 6.46875 -0.203125 6.519531 -0.0820312 6.59375 0 L 7.875 0 C 7.75 -0.144531 7.65625 -0.3125 7.59375 -0.5 C 7.539062 -0.6875 7.5 -0.882812 7.46875 -1.09375 C 7.4375 -1.300781 7.414062 -1.507812 7.40625 -1.71875 C 7.394531 -1.9375 7.382812 -2.148438 7.375 -2.359375 C 7.34375 -2.566406 7.304688 -2.765625 7.265625 -2.953125 C 7.222656 -3.148438 7.15625 -3.328125 7.0625 -3.484375 C 6.96875 -3.640625 6.84375 -3.773438 6.6875 -3.890625 C 6.53125 -4.003906 6.328125 -4.082031 6.078125 -4.125 L 6.078125 -4.15625 C 6.597656 -4.300781 6.976562 -4.566406 7.21875 -4.953125 C 7.457031 -5.347656 7.578125 -5.804688 7.578125 -6.328125 C 7.578125 -7.023438 7.34375 -7.570312 6.875 -7.96875 C 6.414062 -8.363281 5.78125 -8.5625 4.96875 -8.5625 Z M 4.453125 -4.625 L 2.078125 -4.625 L 2.078125 -7.609375 L 4.90625 -7.609375 C 5.445312 -7.609375 5.835938 -7.472656 6.078125 -7.203125 C 6.316406 -6.929688 6.4375 -6.578125 6.4375 -6.140625 C 6.4375 -5.828125 6.378906 -5.570312 6.265625 -5.375 C 6.160156 -5.1875 6.015625 -5.03125 5.828125 -4.90625 C 5.648438 -4.789062 5.441406 -4.710938 5.203125 -4.671875 C 4.960938 -4.640625 4.710938 -4.625 4.453125 -4.625 Z M 4.453125 -4.625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 1.515625 -3.046875 C 1.515625 -3.347656 1.546875 -3.644531 1.609375 -3.9375 C 1.671875 -4.226562 1.773438 -4.484375 1.921875 -4.703125 C 2.066406 -4.929688 2.257812 -5.113281 2.5 -5.25 C 2.738281 -5.382812 3.03125 -5.453125 3.375 -5.453125 C 3.726562 -5.453125 4.023438 -5.382812 4.265625 -5.25 C 4.515625 -5.113281 4.71875 -4.9375 4.875 -4.71875 C 5.03125 -4.507812 5.144531 -4.257812 5.21875 -3.96875 C 5.289062 -3.6875 5.328125 -3.394531 5.328125 -3.09375 C 5.328125 -2.800781 5.289062 -2.515625 5.21875 -2.234375 C 5.15625 -1.960938 5.046875 -1.710938 4.890625 -1.484375 C 4.742188 -1.265625 4.550781 -1.085938 4.3125 -0.953125 C 4.070312 -0.816406 3.78125 -0.75 3.4375 -0.75 C 3.101562 -0.75 2.8125 -0.8125 2.5625 -0.9375 C 2.320312 -1.070312 2.125 -1.242188 1.96875 -1.453125 C 1.8125 -1.671875 1.695312 -1.914062 1.625 -2.1875 C 1.550781 -2.46875 1.515625 -2.753906 1.515625 -3.046875 Z M 6.3125 0 L 6.3125 -8.5625 L 5.296875 -8.5625 L 5.296875 -5.375 L 5.265625 -5.375 C 5.148438 -5.5625 5.007812 -5.71875 4.84375 -5.84375 C 4.6875 -5.96875 4.515625 -6.066406 4.328125 -6.140625 C 4.148438 -6.210938 3.96875 -6.265625 3.78125 -6.296875 C 3.59375 -6.328125 3.421875 -6.34375 3.265625 -6.34375 C 2.796875 -6.34375 2.378906 -6.253906 2.015625 -6.078125 C 1.660156 -5.910156 1.363281 -5.679688 1.125 -5.390625 C 0.894531 -5.097656 0.722656 -4.753906 0.609375 -4.359375 C 0.492188 -3.972656 0.4375 -3.5625 0.4375 -3.125 C 0.4375 -2.675781 0.492188 -2.253906 0.609375 -1.859375 C 0.734375 -1.472656 0.910156 -1.128906 1.140625 -0.828125 C 1.378906 -0.535156 1.675781 -0.300781 2.03125 -0.125 C 2.382812 0.0390625 2.800781 0.125 3.28125 0.125 C 3.71875 0.125 4.113281 0.0507812 4.46875 -0.09375 C 4.832031 -0.25 5.097656 -0.5 5.265625 -0.84375 L 5.296875 -0.84375 L 5.296875 0 Z M 6.3125 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 0.984375 -8.5625 L 0.984375 0 L 2.125 0 L 2.125 -8.5625 Z M 0.984375 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-24">
+<path style="stroke:none;" d="M 2.078125 -0.953125 L 2.078125 -7.609375 L 4 -7.609375 C 4.519531 -7.609375 4.960938 -7.53125 5.328125 -7.375 C 5.691406 -7.226562 5.984375 -7.015625 6.203125 -6.734375 C 6.429688 -6.453125 6.597656 -6.109375 6.703125 -5.703125 C 6.804688 -5.296875 6.859375 -4.835938 6.859375 -4.328125 C 6.859375 -3.804688 6.800781 -3.359375 6.6875 -2.984375 C 6.582031 -2.609375 6.445312 -2.296875 6.28125 -2.046875 C 6.113281 -1.804688 5.921875 -1.613281 5.703125 -1.46875 C 5.492188 -1.320312 5.28125 -1.207031 5.0625 -1.125 C 4.84375 -1.050781 4.632812 -1.003906 4.4375 -0.984375 C 4.25 -0.960938 4.09375 -0.953125 3.96875 -0.953125 Z M 0.9375 -8.5625 L 0.9375 0 L 3.875 0 C 4.582031 0 5.195312 -0.0976562 5.71875 -0.296875 C 6.238281 -0.492188 6.664062 -0.78125 7 -1.15625 C 7.34375 -1.539062 7.59375 -2.007812 7.75 -2.5625 C 7.90625 -3.125 7.984375 -3.765625 7.984375 -4.484375 C 7.984375 -5.859375 7.628906 -6.878906 6.921875 -7.546875 C 6.210938 -8.222656 5.195312 -8.5625 3.875 -8.5625 Z M 0.9375 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-25">
+<path style="stroke:none;" d="M 0.796875 -6.203125 L 0.796875 2.359375 L 1.828125 2.359375 L 1.828125 -0.828125 L 1.84375 -0.828125 C 1.957031 -0.640625 2.097656 -0.484375 2.265625 -0.359375 C 2.429688 -0.242188 2.601562 -0.148438 2.78125 -0.078125 C 2.96875 -0.00390625 3.15625 0.046875 3.34375 0.078125 C 3.53125 0.109375 3.703125 0.125 3.859375 0.125 C 4.328125 0.125 4.738281 0.0390625 5.09375 -0.125 C 5.445312 -0.289062 5.742188 -0.519531 5.984375 -0.8125 C 6.222656 -1.101562 6.398438 -1.441406 6.515625 -1.828125 C 6.628906 -2.222656 6.6875 -2.640625 6.6875 -3.078125 C 6.6875 -3.523438 6.625 -3.941406 6.5 -4.328125 C 6.382812 -4.722656 6.207031 -5.066406 5.96875 -5.359375 C 5.726562 -5.660156 5.429688 -5.898438 5.078125 -6.078125 C 4.722656 -6.253906 4.304688 -6.34375 3.828125 -6.34375 C 3.398438 -6.34375 3.003906 -6.265625 2.640625 -6.109375 C 2.273438 -5.953125 2.007812 -5.703125 1.84375 -5.359375 L 1.828125 -5.359375 L 1.828125 -6.203125 Z M 5.609375 -3.15625 C 5.609375 -2.851562 5.570312 -2.554688 5.5 -2.265625 C 5.4375 -1.984375 5.332031 -1.726562 5.1875 -1.5 C 5.050781 -1.269531 4.863281 -1.085938 4.625 -0.953125 C 4.382812 -0.816406 4.09375 -0.75 3.75 -0.75 C 3.394531 -0.75 3.09375 -0.816406 2.84375 -0.953125 C 2.59375 -1.085938 2.390625 -1.257812 2.234375 -1.46875 C 2.078125 -1.6875 1.960938 -1.9375 1.890625 -2.21875 C 1.816406 -2.507812 1.78125 -2.804688 1.78125 -3.109375 C 1.78125 -3.398438 1.8125 -3.679688 1.875 -3.953125 C 1.945312 -4.234375 2.0625 -4.484375 2.21875 -4.703125 C 2.375 -4.929688 2.570312 -5.113281 2.8125 -5.25 C 3.050781 -5.382812 3.34375 -5.453125 3.6875 -5.453125 C 4.007812 -5.453125 4.289062 -5.382812 4.53125 -5.25 C 4.78125 -5.125 4.984375 -4.953125 5.140625 -4.734375 C 5.296875 -4.523438 5.410156 -4.28125 5.484375 -4 C 5.566406 -3.726562 5.609375 -3.445312 5.609375 -3.15625 Z M 5.609375 -3.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-26">
+<path style="stroke:none;" d="M 1.84375 -7.3125 L 1.84375 -8.5625 L 0.828125 -8.5625 L 0.828125 -7.3125 Z M 0.828125 -6.203125 L 0.828125 0 L 1.84375 0 L 1.84375 -6.203125 Z M 0.828125 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-27">
+<path style="stroke:none;" d="M 0.9375 -8.5625 L 0.9375 0 L 6.609375 0 L 6.609375 -0.953125 L 2.078125 -0.953125 L 2.078125 -8.5625 Z M 0.9375 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-28">
+<path style="stroke:none;" d="M 0.828125 -8.5625 L 0.828125 0 L 1.84375 0 L 1.84375 -8.5625 Z M 0.828125 -8.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-29">
+<path style="stroke:none;" d="M 3.5625 0 L 5.828125 -6.203125 L 4.765625 -6.203125 L 3.078125 -1.03125 L 3.046875 -1.03125 L 1.3125 -6.203125 L 0.171875 -6.203125 L 2.46875 0 Z M 3.5625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-30">
+<path style="stroke:none;" d="M 6.90625 0 L 8.890625 -6.203125 L 7.84375 -6.203125 L 6.4375 -1.125 L 6.421875 -1.125 L 5.125 -6.203125 L 4.015625 -6.203125 L 2.765625 -1.125 L 2.734375 -1.125 L 1.328125 -6.203125 L 0.203125 -6.203125 L 2.203125 0 L 3.296875 0 L 4.546875 -4.9375 L 4.578125 -4.9375 L 5.828125 0 Z M 6.90625 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-31">
+<path style="stroke:none;" d="M 5.890625 -6.0625 L 6.96875 -6.0625 C 6.957031 -6.53125 6.867188 -6.929688 6.703125 -7.265625 C 6.535156 -7.609375 6.3125 -7.890625 6.03125 -8.109375 C 5.75 -8.335938 5.414062 -8.503906 5.03125 -8.609375 C 4.65625 -8.710938 4.25 -8.765625 3.8125 -8.765625 C 3.425781 -8.765625 3.046875 -8.710938 2.671875 -8.609375 C 2.296875 -8.515625 1.960938 -8.363281 1.671875 -8.15625 C 1.378906 -7.957031 1.144531 -7.695312 0.96875 -7.375 C 0.789062 -7.0625 0.703125 -6.691406 0.703125 -6.265625 C 0.703125 -5.867188 0.78125 -5.539062 0.9375 -5.28125 C 1.09375 -5.019531 1.300781 -4.804688 1.5625 -4.640625 C 1.820312 -4.484375 2.113281 -4.351562 2.4375 -4.25 C 2.769531 -4.15625 3.101562 -4.066406 3.4375 -3.984375 C 3.78125 -3.910156 4.113281 -3.835938 4.4375 -3.765625 C 4.769531 -3.691406 5.066406 -3.597656 5.328125 -3.484375 C 5.585938 -3.367188 5.796875 -3.21875 5.953125 -3.03125 C 6.109375 -2.851562 6.1875 -2.613281 6.1875 -2.3125 C 6.1875 -2 6.125 -1.742188 6 -1.546875 C 5.875 -1.347656 5.707031 -1.191406 5.5 -1.078125 C 5.289062 -0.960938 5.054688 -0.878906 4.796875 -0.828125 C 4.535156 -0.773438 4.273438 -0.75 4.015625 -0.75 C 3.703125 -0.75 3.390625 -0.789062 3.078125 -0.875 C 2.773438 -0.957031 2.507812 -1.082031 2.28125 -1.25 C 2.050781 -1.414062 1.867188 -1.628906 1.734375 -1.890625 C 1.597656 -2.148438 1.53125 -2.457031 1.53125 -2.8125 L 0.4375 -2.8125 C 0.4375 -2.300781 0.53125 -1.851562 0.71875 -1.46875 C 0.914062 -1.09375 1.175781 -0.78125 1.5 -0.53125 C 1.820312 -0.289062 2.195312 -0.113281 2.625 0 C 3.050781 0.125 3.503906 0.1875 3.984375 0.1875 C 4.378906 0.1875 4.773438 0.140625 5.171875 0.046875 C 5.566406 -0.0351562 5.921875 -0.179688 6.234375 -0.390625 C 6.554688 -0.597656 6.816406 -0.863281 7.015625 -1.1875 C 7.222656 -1.507812 7.328125 -1.898438 7.328125 -2.359375 C 7.328125 -2.773438 7.25 -3.125 7.09375 -3.40625 C 6.9375 -3.6875 6.726562 -3.914062 6.46875 -4.09375 C 6.207031 -4.28125 5.910156 -4.425781 5.578125 -4.53125 C 5.253906 -4.644531 4.921875 -4.738281 4.578125 -4.8125 C 4.242188 -4.894531 3.910156 -4.96875 3.578125 -5.03125 C 3.253906 -5.101562 2.960938 -5.191406 2.703125 -5.296875 C 2.441406 -5.398438 2.234375 -5.535156 2.078125 -5.703125 C 1.921875 -5.867188 1.84375 -6.082031 1.84375 -6.34375 C 1.84375 -6.625 1.894531 -6.859375 2 -7.046875 C 2.113281 -7.234375 2.257812 -7.382812 2.4375 -7.5 C 2.625 -7.613281 2.832031 -7.691406 3.0625 -7.734375 C 3.289062 -7.785156 3.523438 -7.8125 3.765625 -7.8125 C 4.359375 -7.8125 4.84375 -7.671875 5.21875 -7.390625 C 5.601562 -7.117188 5.828125 -6.675781 5.890625 -6.0625 Z M 5.890625 -6.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0.390625 0 L 0.390625 -8.609375 L 7.21875 -8.609375 L 7.21875 0 Z M 6.140625 -1.078125 L 6.140625 -7.53125 L 1.46875 -7.53125 L 1.46875 -1.078125 Z M 6.140625 -1.078125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 4.546875 -8.84375 C 5.628906 -8.84375 6.472656 -8.554688 7.078125 -7.984375 C 7.679688 -7.410156 8.015625 -6.757812 8.078125 -6.03125 L 6.9375 -6.03125 C 6.8125 -6.582031 6.554688 -7.019531 6.171875 -7.34375 C 5.785156 -7.664062 5.242188 -7.828125 4.546875 -7.828125 C 3.703125 -7.828125 3.019531 -7.53125 2.5 -6.9375 C 1.976562 -6.34375 1.71875 -5.429688 1.71875 -4.203125 C 1.71875 -3.191406 1.953125 -2.367188 2.421875 -1.734375 C 2.890625 -1.109375 3.59375 -0.796875 4.53125 -0.796875 C 5.382812 -0.796875 6.039062 -1.128906 6.5 -1.796875 C 6.726562 -2.140625 6.90625 -2.597656 7.03125 -3.171875 L 8.15625 -3.171875 C 8.0625 -2.265625 7.726562 -1.503906 7.15625 -0.890625 C 6.46875 -0.148438 5.546875 0.21875 4.390625 0.21875 C 3.390625 0.21875 2.550781 -0.0820312 1.875 -0.6875 C 0.976562 -1.488281 0.53125 -2.722656 0.53125 -4.390625 C 0.53125 -5.660156 0.863281 -6.703125 1.53125 -7.515625 C 2.257812 -8.398438 3.265625 -8.84375 4.546875 -8.84375 Z M 4.3125 -8.84375 Z M 4.3125 -8.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 0.796875 -6.28125 L 1.8125 -6.28125 L 1.8125 -5.1875 C 1.882812 -5.40625 2.082031 -5.664062 2.40625 -5.96875 C 2.726562 -6.269531 3.097656 -6.421875 3.515625 -6.421875 C 3.535156 -6.421875 3.566406 -6.414062 3.609375 -6.40625 C 3.660156 -6.40625 3.742188 -6.398438 3.859375 -6.390625 L 3.859375 -5.28125 C 3.796875 -5.289062 3.738281 -5.296875 3.6875 -5.296875 C 3.632812 -5.296875 3.578125 -5.296875 3.515625 -5.296875 C 2.984375 -5.296875 2.570312 -5.125 2.28125 -4.78125 C 2 -4.445312 1.859375 -4.054688 1.859375 -3.609375 L 1.859375 0 L 0.796875 0 Z M 0.796875 -6.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 3.390625 -6.421875 C 3.835938 -6.421875 4.269531 -6.316406 4.6875 -6.109375 C 5.101562 -5.898438 5.421875 -5.628906 5.640625 -5.296875 C 5.847656 -4.972656 5.988281 -4.601562 6.0625 -4.1875 C 6.125 -3.894531 6.15625 -3.429688 6.15625 -2.796875 L 1.546875 -2.796875 C 1.566406 -2.160156 1.71875 -1.648438 2 -1.265625 C 2.28125 -0.878906 2.71875 -0.6875 3.3125 -0.6875 C 3.863281 -0.6875 4.300781 -0.867188 4.625 -1.234375 C 4.8125 -1.441406 4.945312 -1.6875 5.03125 -1.96875 L 6.0625 -1.96875 C 6.039062 -1.738281 5.953125 -1.484375 5.796875 -1.203125 C 5.640625 -0.921875 5.46875 -0.6875 5.28125 -0.5 C 4.957031 -0.1875 4.554688 0.0195312 4.078125 0.125 C 3.828125 0.1875 3.539062 0.21875 3.21875 0.21875 C 2.4375 0.21875 1.773438 -0.0625 1.234375 -0.625 C 0.691406 -1.195312 0.421875 -1.992188 0.421875 -3.015625 C 0.421875 -4.023438 0.691406 -4.84375 1.234375 -5.46875 C 1.785156 -6.101562 2.503906 -6.421875 3.390625 -6.421875 Z M 5.0625 -3.640625 C 5.019531 -4.097656 4.921875 -4.460938 4.765625 -4.734375 C 4.484375 -5.242188 4.003906 -5.5 3.328125 -5.5 C 2.835938 -5.5 2.425781 -5.320312 2.09375 -4.96875 C 1.769531 -4.625 1.597656 -4.179688 1.578125 -3.640625 Z M 3.28125 -6.421875 Z M 3.28125 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 1.578125 -1.671875 C 1.578125 -1.367188 1.6875 -1.128906 1.90625 -0.953125 C 2.132812 -0.773438 2.398438 -0.6875 2.703125 -0.6875 C 3.078125 -0.6875 3.4375 -0.769531 3.78125 -0.9375 C 4.375 -1.226562 4.671875 -1.695312 4.671875 -2.34375 L 4.671875 -3.1875 C 4.535156 -3.113281 4.363281 -3.046875 4.15625 -2.984375 C 3.957031 -2.929688 3.757812 -2.894531 3.5625 -2.875 L 2.9375 -2.796875 C 2.550781 -2.742188 2.257812 -2.660156 2.0625 -2.546875 C 1.738281 -2.367188 1.578125 -2.078125 1.578125 -1.671875 Z M 4.140625 -3.796875 C 4.378906 -3.828125 4.539062 -3.929688 4.625 -4.109375 C 4.664062 -4.203125 4.6875 -4.335938 4.6875 -4.515625 C 4.6875 -4.867188 4.554688 -5.125 4.296875 -5.28125 C 4.046875 -5.445312 3.6875 -5.53125 3.21875 -5.53125 C 2.664062 -5.53125 2.273438 -5.382812 2.046875 -5.09375 C 1.910156 -4.925781 1.820312 -4.679688 1.78125 -4.359375 L 0.796875 -4.359375 C 0.816406 -5.128906 1.066406 -5.664062 1.546875 -5.96875 C 2.035156 -6.269531 2.597656 -6.421875 3.234375 -6.421875 C 3.972656 -6.421875 4.570312 -6.28125 5.03125 -6 C 5.488281 -5.71875 5.71875 -5.28125 5.71875 -4.6875 L 5.71875 -1.078125 C 5.71875 -0.972656 5.738281 -0.882812 5.78125 -0.8125 C 5.832031 -0.75 5.929688 -0.71875 6.078125 -0.71875 C 6.117188 -0.71875 6.164062 -0.71875 6.21875 -0.71875 C 6.28125 -0.726562 6.347656 -0.738281 6.421875 -0.75 L 6.421875 0.03125 C 6.253906 0.0703125 6.125 0.0976562 6.03125 0.109375 C 5.945312 0.128906 5.832031 0.140625 5.6875 0.140625 C 5.320312 0.140625 5.0625 0.0078125 4.90625 -0.25 C 4.8125 -0.382812 4.75 -0.578125 4.71875 -0.828125 C 4.5 -0.546875 4.1875 -0.300781 3.78125 -0.09375 C 3.382812 0.113281 2.945312 0.21875 2.46875 0.21875 C 1.882812 0.21875 1.40625 0.0390625 1.03125 -0.3125 C 0.664062 -0.664062 0.484375 -1.109375 0.484375 -1.640625 C 0.484375 -2.222656 0.664062 -2.675781 1.03125 -3 C 1.394531 -3.320312 1.867188 -3.519531 2.453125 -3.59375 Z M 3.265625 -6.421875 Z M 3.265625 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 0.984375 -8.03125 L 2.046875 -8.03125 L 2.046875 -6.28125 L 3.046875 -6.28125 L 3.046875 -5.421875 L 2.046875 -5.421875 L 2.046875 -1.3125 C 2.046875 -1.09375 2.125 -0.945312 2.28125 -0.875 C 2.351562 -0.832031 2.488281 -0.8125 2.6875 -0.8125 C 2.738281 -0.8125 2.789062 -0.8125 2.84375 -0.8125 C 2.90625 -0.820312 2.972656 -0.828125 3.046875 -0.828125 L 3.046875 0 C 2.929688 0.03125 2.804688 0.0507812 2.671875 0.0625 C 2.546875 0.0820312 2.40625 0.09375 2.25 0.09375 C 1.757812 0.09375 1.425781 -0.03125 1.25 -0.28125 C 1.070312 -0.53125 0.984375 -0.859375 0.984375 -1.265625 L 0.984375 -5.421875 L 0.140625 -5.421875 L 0.140625 -6.28125 L 0.984375 -6.28125 Z M 0.984375 -8.03125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 7.171875 -8.609375 L 7.171875 -7.578125 L 4.28125 -7.578125 L 4.28125 0 L 3.09375 0 L 3.09375 -7.578125 L 0.1875 -7.578125 L 0.1875 -8.609375 Z M 7.171875 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 1.40625 -1.96875 C 1.4375 -1.613281 1.523438 -1.34375 1.671875 -1.15625 C 1.929688 -0.820312 2.390625 -0.65625 3.046875 -0.65625 C 3.441406 -0.65625 3.785156 -0.738281 4.078125 -0.90625 C 4.378906 -1.070312 4.53125 -1.332031 4.53125 -1.6875 C 4.53125 -1.957031 4.410156 -2.164062 4.171875 -2.3125 C 4.015625 -2.394531 3.710938 -2.492188 3.265625 -2.609375 L 2.421875 -2.8125 C 1.890625 -2.945312 1.5 -3.097656 1.25 -3.265625 C 0.789062 -3.546875 0.5625 -3.941406 0.5625 -4.453125 C 0.5625 -5.046875 0.773438 -5.523438 1.203125 -5.890625 C 1.628906 -6.253906 2.207031 -6.4375 2.9375 -6.4375 C 3.875 -6.4375 4.550781 -6.160156 4.96875 -5.609375 C 5.238281 -5.253906 5.367188 -4.875 5.359375 -4.46875 L 4.359375 -4.46875 C 4.335938 -4.707031 4.253906 -4.925781 4.109375 -5.125 C 3.867188 -5.394531 3.445312 -5.53125 2.84375 -5.53125 C 2.445312 -5.53125 2.144531 -5.453125 1.9375 -5.296875 C 1.738281 -5.148438 1.640625 -4.953125 1.640625 -4.703125 C 1.640625 -4.429688 1.773438 -4.210938 2.046875 -4.046875 C 2.203125 -3.953125 2.429688 -3.867188 2.734375 -3.796875 L 3.421875 -3.625 C 4.179688 -3.4375 4.691406 -3.257812 4.953125 -3.09375 C 5.359375 -2.820312 5.5625 -2.394531 5.5625 -1.8125 C 5.5625 -1.257812 5.347656 -0.78125 4.921875 -0.375 C 4.503906 0.03125 3.863281 0.234375 3 0.234375 C 2.0625 0.234375 1.394531 0.0234375 1 -0.390625 C 0.613281 -0.816406 0.410156 -1.34375 0.390625 -1.96875 Z M 2.953125 -6.421875 Z M 2.953125 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 0.75 -8.609375 L 1.765625 -8.609375 L 1.765625 -3.609375 L 4.46875 -6.28125 L 5.8125 -6.28125 L 3.421875 -3.921875 L 5.953125 0 L 4.609375 0 L 2.65625 -3.171875 L 1.765625 -2.359375 L 1.765625 0 L 0.75 0 Z M 0.75 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 4.640625 -8.828125 C 5.441406 -8.828125 6.140625 -8.671875 6.734375 -8.359375 C 7.585938 -7.910156 8.109375 -7.125 8.296875 -6 L 7.15625 -6 C 7.007812 -6.625 6.710938 -7.082031 6.265625 -7.375 C 5.828125 -7.664062 5.273438 -7.8125 4.609375 -7.8125 C 3.804688 -7.8125 3.132812 -7.507812 2.59375 -6.90625 C 2.050781 -6.3125 1.78125 -5.421875 1.78125 -4.234375 C 1.78125 -3.210938 2.003906 -2.378906 2.453125 -1.734375 C 2.898438 -1.097656 3.628906 -0.78125 4.640625 -0.78125 C 5.421875 -0.78125 6.066406 -1.003906 6.578125 -1.453125 C 7.085938 -1.898438 7.347656 -2.628906 7.359375 -3.640625 L 4.671875 -3.640625 L 4.671875 -4.609375 L 8.4375 -4.609375 L 8.4375 0 L 7.6875 0 L 7.40625 -1.109375 C 7.019531 -0.671875 6.671875 -0.367188 6.359375 -0.203125 C 5.847656 0.0859375 5.195312 0.234375 4.40625 0.234375 C 3.394531 0.234375 2.519531 -0.0976562 1.78125 -0.765625 C 0.976562 -1.585938 0.578125 -2.722656 0.578125 -4.171875 C 0.578125 -5.609375 0.96875 -6.753906 1.75 -7.609375 C 2.488281 -8.421875 3.453125 -8.828125 4.640625 -8.828125 Z M 4.4375 -8.84375 Z M 4.4375 -8.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 4.921875 -4.671875 C 5.460938 -4.671875 5.890625 -4.78125 6.203125 -5 C 6.523438 -5.21875 6.6875 -5.609375 6.6875 -6.171875 C 6.6875 -6.785156 6.46875 -7.207031 6.03125 -7.4375 C 5.789062 -7.550781 5.46875 -7.609375 5.0625 -7.609375 L 2.21875 -7.609375 L 2.21875 -4.671875 Z M 1.0625 -8.609375 L 5.046875 -8.609375 C 5.703125 -8.609375 6.238281 -8.515625 6.65625 -8.328125 C 7.46875 -7.953125 7.875 -7.269531 7.875 -6.28125 C 7.875 -5.769531 7.765625 -5.347656 7.546875 -5.015625 C 7.335938 -4.691406 7.039062 -4.429688 6.65625 -4.234375 C 7 -4.097656 7.253906 -3.914062 7.421875 -3.6875 C 7.585938 -3.46875 7.679688 -3.109375 7.703125 -2.609375 L 7.75 -1.453125 C 7.757812 -1.128906 7.785156 -0.882812 7.828125 -0.71875 C 7.898438 -0.445312 8.023438 -0.269531 8.203125 -0.1875 L 8.203125 0 L 6.78125 0 C 6.738281 -0.0703125 6.703125 -0.164062 6.671875 -0.28125 C 6.648438 -0.40625 6.632812 -0.632812 6.625 -0.96875 L 6.546875 -2.40625 C 6.523438 -2.96875 6.316406 -3.34375 5.921875 -3.53125 C 5.703125 -3.632812 5.351562 -3.6875 4.875 -3.6875 L 2.21875 -3.6875 L 2.21875 0 L 1.0625 0 Z M 1.0625 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M 1.4375 -3.0625 C 1.4375 -2.394531 1.578125 -1.832031 1.859375 -1.375 C 2.148438 -0.925781 2.609375 -0.703125 3.234375 -0.703125 C 3.722656 -0.703125 4.125 -0.910156 4.4375 -1.328125 C 4.757812 -1.742188 4.921875 -2.347656 4.921875 -3.140625 C 4.921875 -3.929688 4.753906 -4.515625 4.421875 -4.890625 C 4.097656 -5.273438 3.703125 -5.46875 3.234375 -5.46875 C 2.703125 -5.46875 2.269531 -5.265625 1.9375 -4.859375 C 1.601562 -4.453125 1.4375 -3.851562 1.4375 -3.0625 Z M 3.03125 -6.390625 C 3.507812 -6.390625 3.910156 -6.285156 4.234375 -6.078125 C 4.421875 -5.960938 4.632812 -5.757812 4.875 -5.46875 L 4.875 -8.640625 L 5.890625 -8.640625 L 5.890625 0 L 4.9375 0 L 4.9375 -0.875 C 4.695312 -0.488281 4.40625 -0.207031 4.0625 -0.03125 C 3.726562 0.132812 3.34375 0.21875 2.90625 0.21875 C 2.207031 0.21875 1.601562 -0.0703125 1.09375 -0.65625 C 0.582031 -1.25 0.328125 -2.03125 0.328125 -3 C 0.328125 -3.914062 0.5625 -4.707031 1.03125 -5.375 C 1.5 -6.050781 2.164062 -6.390625 3.03125 -6.390625 Z M 3.03125 -6.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M 4.21875 -1 C 4.613281 -1 4.9375 -1.039062 5.1875 -1.125 C 5.644531 -1.269531 6.019531 -1.5625 6.3125 -2 C 6.539062 -2.34375 6.703125 -2.785156 6.796875 -3.328125 C 6.859375 -3.660156 6.890625 -3.960938 6.890625 -4.234375 C 6.890625 -5.304688 6.675781 -6.132812 6.25 -6.71875 C 5.832031 -7.3125 5.148438 -7.609375 4.203125 -7.609375 L 2.140625 -7.609375 L 2.140625 -1 Z M 0.96875 -8.609375 L 4.453125 -8.609375 C 5.640625 -8.609375 6.554688 -8.1875 7.203125 -7.34375 C 7.785156 -6.59375 8.078125 -5.625 8.078125 -4.4375 C 8.078125 -3.519531 7.90625 -2.691406 7.5625 -1.953125 C 6.957031 -0.648438 5.914062 0 4.4375 0 L 0.96875 0 Z M 0.96875 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 1.03125 -8.609375 L 7.296875 -8.609375 L 7.296875 -7.546875 L 2.15625 -7.546875 L 2.15625 -4.9375 L 6.921875 -4.9375 L 6.921875 -3.9375 L 2.15625 -3.9375 L 2.15625 -1.03125 L 7.390625 -1.03125 L 7.390625 0 L 1.03125 0 Z M 4.203125 -8.609375 Z M 4.203125 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-15">
+<path style="stroke:none;" d="M 0.171875 -6.28125 L 1.546875 -6.28125 L 2.984375 -4.0625 L 4.4375 -6.28125 L 5.71875 -6.25 L 3.609375 -3.21875 L 5.8125 0 L 4.46875 0 L 2.90625 -2.359375 L 1.40625 0 L 0.0625 0 L 2.28125 -3.21875 Z M 0.171875 -6.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-16">
+<path style="stroke:none;" d="M 3.1875 -6.453125 C 3.894531 -6.453125 4.46875 -6.28125 4.90625 -5.9375 C 5.351562 -5.59375 5.625 -5.003906 5.71875 -4.171875 L 4.6875 -4.171875 C 4.625 -4.554688 4.484375 -4.875 4.265625 -5.125 C 4.046875 -5.382812 3.6875 -5.515625 3.1875 -5.515625 C 2.519531 -5.515625 2.039062 -5.1875 1.75 -4.53125 C 1.5625 -4.101562 1.46875 -3.578125 1.46875 -2.953125 C 1.46875 -2.328125 1.597656 -1.796875 1.859375 -1.359375 C 2.128906 -0.929688 2.550781 -0.71875 3.125 -0.71875 C 3.5625 -0.71875 3.90625 -0.851562 4.15625 -1.125 C 4.414062 -1.394531 4.59375 -1.757812 4.6875 -2.21875 L 5.71875 -2.21875 C 5.601562 -1.382812 5.3125 -0.773438 4.84375 -0.390625 C 4.375 -0.00390625 3.773438 0.1875 3.046875 0.1875 C 2.222656 0.1875 1.566406 -0.113281 1.078125 -0.71875 C 0.585938 -1.320312 0.34375 -2.070312 0.34375 -2.96875 C 0.34375 -4.070312 0.609375 -4.925781 1.140625 -5.53125 C 1.679688 -6.144531 2.363281 -6.453125 3.1875 -6.453125 Z M 3.03125 -6.421875 Z M 3.03125 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-17">
+<path style="stroke:none;" d="M 3.265625 -0.6875 C 3.960938 -0.6875 4.441406 -0.945312 4.703125 -1.46875 C 4.960938 -2 5.09375 -2.585938 5.09375 -3.234375 C 5.09375 -3.828125 5 -4.304688 4.8125 -4.671875 C 4.507812 -5.242188 4 -5.53125 3.28125 -5.53125 C 2.632812 -5.53125 2.164062 -5.285156 1.875 -4.796875 C 1.582031 -4.304688 1.4375 -3.710938 1.4375 -3.015625 C 1.4375 -2.347656 1.582031 -1.789062 1.875 -1.34375 C 2.164062 -0.90625 2.628906 -0.6875 3.265625 -0.6875 Z M 3.3125 -6.453125 C 4.113281 -6.453125 4.789062 -6.179688 5.34375 -5.640625 C 5.90625 -5.109375 6.1875 -4.316406 6.1875 -3.265625 C 6.1875 -2.253906 5.941406 -1.414062 5.453125 -0.75 C 4.960938 -0.09375 4.203125 0.234375 3.171875 0.234375 C 2.304688 0.234375 1.617188 -0.0546875 1.109375 -0.640625 C 0.597656 -1.234375 0.34375 -2.019531 0.34375 -3 C 0.34375 -4.050781 0.609375 -4.890625 1.140625 -5.515625 C 1.679688 -6.140625 2.40625 -6.453125 3.3125 -6.453125 Z M 3.265625 -6.421875 Z M 3.265625 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-18">
+<path style="stroke:none;" d="M 0.78125 -6.28125 L 1.8125 -6.28125 L 1.8125 -5.390625 C 2.0625 -5.691406 2.289062 -5.914062 2.5 -6.0625 C 2.84375 -6.300781 3.238281 -6.421875 3.6875 -6.421875 C 4.1875 -6.421875 4.585938 -6.296875 4.890625 -6.046875 C 5.054688 -5.910156 5.210938 -5.703125 5.359375 -5.421875 C 5.585938 -5.765625 5.859375 -6.015625 6.171875 -6.171875 C 6.492188 -6.335938 6.851562 -6.421875 7.25 -6.421875 C 8.09375 -6.421875 8.664062 -6.113281 8.96875 -5.5 C 9.132812 -5.175781 9.21875 -4.734375 9.21875 -4.171875 L 9.21875 0 L 8.125 0 L 8.125 -4.359375 C 8.125 -4.773438 8.019531 -5.0625 7.8125 -5.21875 C 7.601562 -5.375 7.347656 -5.453125 7.046875 -5.453125 C 6.628906 -5.453125 6.269531 -5.3125 5.96875 -5.03125 C 5.675781 -4.757812 5.53125 -4.300781 5.53125 -3.65625 L 5.53125 0 L 4.453125 0 L 4.453125 -4.09375 C 4.453125 -4.519531 4.398438 -4.832031 4.296875 -5.03125 C 4.140625 -5.320312 3.84375 -5.46875 3.40625 -5.46875 C 3.007812 -5.46875 2.644531 -5.3125 2.3125 -5 C 1.988281 -4.695312 1.828125 -4.140625 1.828125 -3.328125 L 1.828125 0 L 0.78125 0 Z M 0.78125 -6.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-19">
+<path style="stroke:none;" d="M 0.78125 -6.25 L 1.84375 -6.25 L 1.84375 0 L 0.78125 0 Z M 0.78125 -8.609375 L 1.84375 -8.609375 L 1.84375 -7.40625 L 0.78125 -7.40625 Z M 0.78125 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-20">
+<path style="stroke:none;" d="M 2.984375 -6.390625 C 3.484375 -6.390625 3.914062 -6.269531 4.28125 -6.03125 C 4.476562 -5.882812 4.679688 -5.679688 4.890625 -5.421875 L 4.890625 -6.21875 L 5.859375 -6.21875 L 5.859375 -0.515625 C 5.859375 0.285156 5.742188 0.914062 5.515625 1.375 C 5.078125 2.226562 4.25 2.65625 3.03125 2.65625 C 2.351562 2.65625 1.785156 2.503906 1.328125 2.203125 C 0.867188 1.898438 0.609375 1.425781 0.546875 0.78125 L 1.625 0.78125 C 1.675781 1.0625 1.773438 1.28125 1.921875 1.4375 C 2.160156 1.664062 2.535156 1.78125 3.046875 1.78125 C 3.859375 1.78125 4.390625 1.492188 4.640625 0.921875 C 4.785156 0.585938 4.851562 -0.0078125 4.84375 -0.875 C 4.632812 -0.550781 4.378906 -0.3125 4.078125 -0.15625 C 3.785156 0 3.394531 0.078125 2.90625 0.078125 C 2.226562 0.078125 1.632812 -0.160156 1.125 -0.640625 C 0.613281 -1.128906 0.359375 -1.929688 0.359375 -3.046875 C 0.359375 -4.097656 0.613281 -4.914062 1.125 -5.5 C 1.644531 -6.09375 2.265625 -6.390625 2.984375 -6.390625 Z M 4.890625 -3.171875 C 4.890625 -3.941406 4.726562 -4.515625 4.40625 -4.890625 C 4.082031 -5.265625 3.675781 -5.453125 3.1875 -5.453125 C 2.4375 -5.453125 1.925781 -5.101562 1.65625 -4.40625 C 1.507812 -4.039062 1.4375 -3.554688 1.4375 -2.953125 C 1.4375 -2.242188 1.578125 -1.703125 1.859375 -1.328125 C 2.148438 -0.960938 2.539062 -0.78125 3.03125 -0.78125 C 3.789062 -0.78125 4.320312 -1.125 4.625 -1.8125 C 4.800781 -2.195312 4.890625 -2.648438 4.890625 -3.171875 Z M 3.109375 -6.421875 Z M 3.109375 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-21">
+<path style="stroke:none;" d="M 1.828125 -6.28125 L 1.828125 -2.109375 C 1.828125 -1.785156 1.878906 -1.523438 1.984375 -1.328125 C 2.171875 -0.953125 2.519531 -0.765625 3.03125 -0.765625 C 3.757812 -0.765625 4.257812 -1.09375 4.53125 -1.75 C 4.675781 -2.101562 4.75 -2.582031 4.75 -3.1875 L 4.75 -6.28125 L 5.796875 -6.28125 L 5.796875 0 L 4.8125 0 L 4.8125 -0.921875 C 4.675781 -0.679688 4.507812 -0.484375 4.3125 -0.328125 C 3.90625 0.00390625 3.414062 0.171875 2.84375 0.171875 C 1.945312 0.171875 1.335938 -0.128906 1.015625 -0.734375 C 0.835938 -1.046875 0.75 -1.472656 0.75 -2.015625 L 0.75 -6.28125 Z M 3.28125 -6.421875 Z M 3.28125 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-22">
+<path style="stroke:none;" d="M 0.78125 -6.28125 L 1.78125 -6.28125 L 1.78125 -5.390625 C 2.070312 -5.753906 2.382812 -6.015625 2.71875 -6.171875 C 3.050781 -6.335938 3.421875 -6.421875 3.828125 -6.421875 C 4.710938 -6.421875 5.3125 -6.109375 5.625 -5.484375 C 5.800781 -5.140625 5.890625 -4.65625 5.890625 -4.03125 L 5.890625 0 L 4.8125 0 L 4.8125 -3.953125 C 4.8125 -4.335938 4.753906 -4.644531 4.640625 -4.875 C 4.453125 -5.269531 4.113281 -5.46875 3.625 -5.46875 C 3.375 -5.46875 3.171875 -5.441406 3.015625 -5.390625 C 2.722656 -5.304688 2.46875 -5.132812 2.25 -4.875 C 2.070312 -4.664062 1.957031 -4.453125 1.90625 -4.234375 C 1.851562 -4.015625 1.828125 -3.695312 1.828125 -3.28125 L 1.828125 0 L 0.78125 0 Z M 3.25 -6.421875 Z M 3.25 -6.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-23">
+<path style="stroke:none;" d="M 1.171875 -8.609375 L 2.359375 -8.609375 L 2.359375 0 L 1.171875 0 Z M 1.171875 -8.609375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-24">
+<path style="stroke:none;" d="M 3.421875 -0.703125 C 3.910156 -0.703125 4.316406 -0.910156 4.640625 -1.328125 C 4.972656 -1.742188 5.140625 -2.359375 5.140625 -3.171875 C 5.140625 -3.671875 5.066406 -4.101562 4.921875 -4.46875 C 4.648438 -5.15625 4.148438 -5.5 3.421875 -5.5 C 2.691406 -5.5 2.191406 -5.132812 1.921875 -4.40625 C 1.773438 -4.019531 1.703125 -3.523438 1.703125 -2.921875 C 1.703125 -2.429688 1.773438 -2.019531 1.921875 -1.6875 C 2.191406 -1.03125 2.691406 -0.703125 3.421875 -0.703125 Z M 0.6875 -6.25 L 1.71875 -6.25 L 1.71875 -5.421875 C 1.925781 -5.703125 2.15625 -5.921875 2.40625 -6.078125 C 2.757812 -6.304688 3.175781 -6.421875 3.65625 -6.421875 C 4.375 -6.421875 4.976562 -6.148438 5.46875 -5.609375 C 5.96875 -5.066406 6.21875 -4.289062 6.21875 -3.28125 C 6.21875 -1.90625 5.859375 -0.925781 5.140625 -0.34375 C 4.691406 0.03125 4.164062 0.21875 3.5625 0.21875 C 3.09375 0.21875 2.695312 0.113281 2.375 -0.09375 C 2.1875 -0.21875 1.976562 -0.421875 1.75 -0.703125 L 1.75 2.5 L 0.6875 2.5 Z M 0.6875 -6.25 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-25">
+<path style="stroke:none;" d="M 4.625 -8.84375 C 6.144531 -8.84375 7.269531 -8.351562 8 -7.375 C 8.570312 -6.613281 8.859375 -5.640625 8.859375 -4.453125 C 8.859375 -3.171875 8.53125 -2.101562 7.875 -1.25 C 7.113281 -0.25 6.023438 0.25 4.609375 0.25 C 3.285156 0.25 2.242188 -0.1875 1.484375 -1.0625 C 0.804688 -1.90625 0.46875 -2.972656 0.46875 -4.265625 C 0.46875 -5.421875 0.757812 -6.414062 1.34375 -7.25 C 2.082031 -8.3125 3.175781 -8.84375 4.625 -8.84375 Z M 4.75 -0.796875 C 5.769531 -0.796875 6.507812 -1.160156 6.96875 -1.890625 C 7.4375 -2.628906 7.671875 -3.476562 7.671875 -4.4375 C 7.671875 -5.445312 7.40625 -6.257812 6.875 -6.875 C 6.34375 -7.5 5.617188 -7.8125 4.703125 -7.8125 C 3.804688 -7.8125 3.078125 -7.503906 2.515625 -6.890625 C 1.953125 -6.273438 1.671875 -5.375 1.671875 -4.1875 C 1.671875 -3.226562 1.910156 -2.421875 2.390625 -1.765625 C 2.878906 -1.117188 3.664062 -0.796875 4.75 -0.796875 Z M 4.671875 -8.84375 Z M 4.671875 -8.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-26">
+<path style="stroke:none;" d="M 1.671875 -2.78125 C 1.703125 -2.289062 1.816406 -1.894531 2.015625 -1.59375 C 2.410156 -1.019531 3.09375 -0.734375 4.0625 -0.734375 C 4.5 -0.734375 4.898438 -0.796875 5.265625 -0.921875 C 5.960938 -1.160156 6.3125 -1.59375 6.3125 -2.21875 C 6.3125 -2.6875 6.160156 -3.019531 5.859375 -3.21875 C 5.566406 -3.414062 5.101562 -3.585938 4.46875 -3.734375 L 3.3125 -4 C 2.539062 -4.164062 2 -4.351562 1.6875 -4.5625 C 1.144531 -4.925781 0.875 -5.460938 0.875 -6.171875 C 0.875 -6.953125 1.140625 -7.585938 1.671875 -8.078125 C 2.203125 -8.578125 2.957031 -8.828125 3.9375 -8.828125 C 4.84375 -8.828125 5.609375 -8.609375 6.234375 -8.171875 C 6.867188 -7.734375 7.1875 -7.035156 7.1875 -6.078125 L 6.09375 -6.078125 C 6.03125 -6.546875 5.90625 -6.898438 5.71875 -7.140625 C 5.363281 -7.585938 4.757812 -7.8125 3.90625 -7.8125 C 3.21875 -7.8125 2.722656 -7.664062 2.421875 -7.375 C 2.117188 -7.09375 1.96875 -6.757812 1.96875 -6.375 C 1.96875 -5.957031 2.144531 -5.648438 2.5 -5.453125 C 2.726562 -5.328125 3.25 -5.171875 4.0625 -4.984375 L 5.28125 -4.703125 C 5.851562 -4.566406 6.300781 -4.382812 6.625 -4.15625 C 7.164062 -3.757812 7.4375 -3.175781 7.4375 -2.40625 C 7.4375 -1.457031 7.085938 -0.773438 6.390625 -0.359375 C 5.703125 0.046875 4.898438 0.25 3.984375 0.25 C 2.910156 0.25 2.070312 -0.0195312 1.46875 -0.5625 C 0.863281 -1.113281 0.566406 -1.851562 0.578125 -2.78125 Z M 4.03125 -8.84375 Z M 4.03125 -8.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-27">
+<path style="stroke:none;" d="M 1.265625 -6.28125 L 2.46875 -1.328125 L 3.6875 -6.28125 L 4.875 -6.28125 L 6.109375 -1.359375 L 7.390625 -6.28125 L 8.4375 -6.28125 L 6.625 0 L 5.53125 0 L 4.25 -4.859375 L 3.015625 0 L 1.921875 0 L 0.109375 -6.28125 Z M 1.265625 -6.28125 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface1">
+<rect x="0" y="0" width="713" height="418" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 212.371094 93.628906 L 346 93.628906 C 348.761719 93.628906 351 95.867188 351 98.628906 L 351 250.371094 C 351 253.132812 348.761719 255.371094 346 255.371094 L 212.371094 255.371094 C 209.609375 255.371094 207.371094 253.132812 207.371094 250.371094 L 207.371094 98.628906 C 207.371094 95.867188 209.609375 93.628906 212.371094 93.628906 Z M 212.371094 93.628906 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="98.3936" y="29.938501"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="103.9496" y="29.938501"/>
+  <use xlink:href="#glyph0-3" x="110.3936" y="29.938501"/>
+  <use xlink:href="#glyph0-4" x="116.3936" y="29.938501"/>
+  <use xlink:href="#glyph0-5" x="122.6216" y="29.938501"/>
+  <use xlink:href="#glyph0-2" x="133.0736" y="29.938501"/>
+  <use xlink:href="#glyph0-6" x="139.5176" y="29.938501"/>
+  <use xlink:href="#glyph0-2" x="146.1896" y="29.938501"/>
+  <use xlink:href="#glyph0-7" x="152.6336" y="29.938501"/>
+  <use xlink:href="#glyph0-8" x="159.5216" y="29.938501"/>
+  <use xlink:href="#glyph0-9" x="165.9656" y="29.938501"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 317.425781 129.675781 C 338.222656 137.015625 338.222656 148.910156 317.425781 156.246094 C 296.628906 163.582031 262.914062 163.582031 242.117188 156.246094 C 221.324219 148.910156 221.324219 137.015625 242.117188 129.675781 C 262.914062 122.339844 296.628906 122.339844 317.425781 129.675781 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="105.4262" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="114.0926" y="91.9612"/>
+  <use xlink:href="#glyph1-3" x="118.0886" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="124.763" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="131.4374" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="134.771" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="141.4454" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="147.4454" y="91.9612"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="154.1198" y="91.9612"/>
+  <use xlink:href="#glyph1-8" x="160.1198" y="91.9612"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 665.480469 312.355469 L 805.332031 312.355469 L 805.332031 80.480469 L 665.480469 80.480469 Z M 665.480469 312.355469 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 656.742188 331.675781 L 796.59375 331.675781 L 796.59375 99.804688 L 656.742188 99.804688 Z M 656.742188 331.675781 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 648 351 L 787.851562 351 L 787.851562 119.128906 L 648 119.128906 Z M 648 351 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 751.265625 138.585938 C 768.632812 145.921875 768.632812 157.816406 751.265625 165.152344 C 733.902344 172.488281 705.75 172.488281 688.386719 165.152344 C 671.019531 157.816406 671.019531 145.921875 688.386719 138.585938 C 705.75 131.25 733.902344 131.25 751.265625 138.585938 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-9" x="552.25676" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-3" x="561.59036" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="568.26476" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-10" x="571.59836" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="574.72196" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="580.72196" y="100.8688"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="587.39636" y="100.8688"/>
+  <use xlink:href="#glyph1-8" x="593.39636" y="100.8688"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 751.265625 191.1875 C 768.632812 198.523438 768.632812 210.417969 751.265625 217.753906 C 733.902344 225.089844 705.75 225.089844 688.386719 217.753906 C 671.019531 210.417969 671.019531 198.523438 688.386719 191.1875 C 705.75 183.847656 733.902344 183.847656 751.265625 191.1875 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-11" x="547.14153" y="153.4695"/>
+  <use xlink:href="#glyph1-3" x="555.80793" y="153.4695"/>
+  <use xlink:href="#glyph1-4" x="562.48233" y="153.4695"/>
+  <use xlink:href="#glyph1-12" x="569.15673" y="153.4695"/>
+  <use xlink:href="#glyph1-10" x="575.83113" y="153.4695"/>
+  <use xlink:href="#glyph1-13" x="579.16953" y="153.4695"/>
+  <use xlink:href="#glyph1-4" x="587.83593" y="153.4695"/>
+  <use xlink:href="#glyph1-5" x="594.51033" y="153.4695"/>
+  <use xlink:href="#glyph1-4" x="597.84873" y="153.4695"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 751.265625 243.785156 C 768.632812 251.121094 768.632812 263.015625 751.265625 270.355469 C 733.902344 277.691406 705.75 277.691406 688.386719 270.355469 C 671.019531 263.015625 671.019531 251.121094 688.386719 243.785156 C 705.75 236.449219 733.902344 236.449219 751.265625 243.785156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-14" x="548.5888" y="206.0702"/>
+  <use xlink:href="#glyph1-15" x="556.5928" y="206.0702"/>
+  <use xlink:href="#glyph1-3" x="562.5928" y="206.0702"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-16" x="569.2672" y="206.0702"/>
+  <use xlink:href="#glyph1-10" x="575.2672" y="206.0702"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="578.3908" y="206.0702"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="584.3908" y="206.0702"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="591.0652" y="206.0702"/>
+  <use xlink:href="#glyph1-8" x="597.0652" y="206.0702"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 751.265625 296.386719 C 768.632812 303.722656 768.632812 315.617188 751.265625 322.953125 C 733.902344 330.289062 705.75 330.289062 688.386719 322.953125 C 671.019531 315.617188 671.019531 303.722656 688.386719 296.386719 C 705.75 289.050781 733.902344 289.050781 751.265625 296.386719 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-13" x="563.15227" y="251.6709"/>
+  <use xlink:href="#glyph1-4" x="571.81867" y="251.6709"/>
+  <use xlink:href="#glyph1-5" x="578.49307" y="251.6709"/>
+  <use xlink:href="#glyph1-4" x="581.83147" y="251.6709"/>
+  <use xlink:href="#glyph1-10" x="588.50587" y="251.6709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="555.16008" y="265.6709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-17" x="563.82648" y="265.6709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-18" x="570.50088" y="265.6709"/>
+  <use xlink:href="#glyph1-18" x="580.49688" y="265.6709"/>
+  <use xlink:href="#glyph1-19" x="590.49288" y="265.6709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="593.15928" y="265.6709"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-10" x="564.96253" y="16.790201"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-11" x="575.39053" y="16.790201"/>
+  <use xlink:href="#glyph0-9" x="582.27853" y="16.790201"/>
+  <use xlink:href="#glyph0-4" x="586.27453" y="16.790201"/>
+  <use xlink:href="#glyph0-8" x="592.50253" y="16.790201"/>
+  <use xlink:href="#glyph0-9" x="598.94653" y="16.790201"/>
+  <use xlink:href="#glyph0-3" x="602.94253" y="16.790201"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 549 234 L 681.101562 170.488281 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 688.3125 167.019531 L 679.800781 167.785156 L 682.402344 173.191406 Z M 688.3125 167.019531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 171.15625 L 719.824219 180.054688 L 719.824219 176.285156 L 719.824219 178.285156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 183.285156 L 722.824219 175.285156 L 719.824219 178.285156 L 716.824219 175.285156 Z M 719.824219 183.285156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 223.753906 L 719.824219 232.65625 L 719.824219 228.882812 L 719.824219 230.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 235.882812 L 722.824219 227.882812 L 719.824219 230.882812 L 716.824219 227.882812 Z M 719.824219 235.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 276.355469 L 719.824219 285.257812 L 719.824219 281.484375 L 719.824219 283.484375 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 719.824219 288.484375 L 722.824219 280.484375 L 719.824219 283.484375 L 716.824219 280.484375 Z M 719.824219 288.484375 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="586.4155" y="123.814201"/>
+  <use xlink:href="#glyph0-11" x="593.3035" y="123.814201"/>
+  <use xlink:href="#glyph0-12" x="600.1915" y="123.814201"/>
+  <use xlink:href="#glyph0-11" x="603.9715" y="123.814201"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 764.316406 306.894531 L 780.070312 306.894531 L 780.070312 155.707031 L 769.257812 155.707031 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 764.257812 155.707031 L 772.257812 158.707031 L 769.257812 155.707031 L 772.257812 152.707031 Z M 764.257812 155.707031 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 184.785156 309.035156 L 225.226562 309.035156 L 225.226562 339.09375 L 184.785156 339.09375 Z M 184.785156 309.035156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 225.226562 309.035156 L 265.671875 309.035156 L 265.671875 339.09375 L 225.226562 339.09375 Z M 225.226562 309.035156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 265.671875 309.035156 L 306.113281 309.035156 L 306.113281 339.09375 L 265.671875 339.09375 Z M 265.671875 309.035156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 306.113281 309.035156 L 346.558594 309.035156 L 346.558594 339.09375 L 306.113281 339.09375 Z M 306.113281 309.035156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 346.558594 309.035156 L 387 309.035156 L 387 339.09375 L 346.558594 339.09375 Z M 346.558594 309.035156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-10" x="78.05195" y="240.356001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-11" x="88.47995" y="240.356001"/>
+  <use xlink:href="#glyph0-9" x="95.36795" y="240.356001"/>
+  <use xlink:href="#glyph0-4" x="99.36395" y="240.356001"/>
+  <use xlink:href="#glyph0-8" x="105.59195" y="240.356001"/>
+  <use xlink:href="#glyph0-9" x="112.03595" y="240.356001"/>
+  <use xlink:href="#glyph0-3" x="116.03195" y="240.356001"/>
+  <use xlink:href="#glyph0-13" x="122.03195" y="240.356001"/>
+  <use xlink:href="#glyph0-1" x="125.36795" y="240.356001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="130.92395" y="240.356001"/>
+  <use xlink:href="#glyph0-3" x="137.36795" y="240.356001"/>
+  <use xlink:href="#glyph0-4" x="143.36795" y="240.356001"/>
+  <use xlink:href="#glyph0-14" x="149.59595" y="240.356001"/>
+  <use xlink:href="#glyph0-15" x="158.71595" y="240.356001"/>
+  <use xlink:href="#glyph0-8" x="165.38795" y="240.356001"/>
+  <use xlink:href="#glyph0-15" x="171.83195" y="240.356001"/>
+  <use xlink:href="#glyph0-8" x="178.50395" y="240.356001"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 182.621094 314.882812 L 223.066406 314.882812 L 223.066406 344.941406 L 182.621094 344.941406 Z M 182.621094 314.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 223.066406 314.882812 L 263.507812 314.882812 L 263.507812 344.941406 L 223.066406 344.941406 Z M 223.066406 314.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 263.507812 314.882812 L 303.953125 314.882812 L 303.953125 344.941406 L 263.507812 344.941406 Z M 263.507812 314.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 303.953125 314.882812 L 344.394531 314.882812 L 344.394531 344.941406 L 303.953125 344.941406 Z M 303.953125 314.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 344.394531 314.882812 L 384.835938 314.882812 L 384.835938 344.941406 L 344.394531 344.941406 Z M 344.394531 314.882812 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 180 320.941406 L 220.441406 320.941406 L 220.441406 351 L 180 351 Z M 180 320.941406 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 220.441406 320.941406 L 260.886719 320.941406 L 260.886719 351 L 220.441406 351 Z M 220.441406 320.941406 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 260.886719 320.941406 L 301.328125 320.941406 L 301.328125 351 L 260.886719 351 Z M 260.886719 320.941406 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 301.328125 320.941406 L 341.773438 320.941406 L 341.773438 351 L 301.328125 351 Z M 301.328125 320.941406 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 341.773438 320.941406 L 382.214844 320.941406 L 382.214844 351 L 341.773438 351 Z M 341.773438 320.941406 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 310.730469 158.585938 L 451.308594 229.539062 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 458.449219 233.144531 L 452.660156 226.859375 L 449.957031 232.21875 Z M 458.449219 233.144531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-16" x="235.7355" y="133.503601"/>
+  <use xlink:href="#glyph0-9" x="242.1795" y="133.503601"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="245.9595" y="133.503601"/>
+  <use xlink:href="#glyph0-2" x="252.4035" y="133.503601"/>
+  <use xlink:href="#glyph0-12" x="258.8475" y="133.503601"/>
+  <use xlink:href="#glyph0-8" x="262.6275" y="133.503601"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="324.1291" y="188.308001"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="329.6851" y="188.308001"/>
+  <use xlink:href="#glyph0-3" x="336.1291" y="188.308001"/>
+  <use xlink:href="#glyph0-4" x="342.1291" y="188.308001"/>
+  <use xlink:href="#glyph0-17" x="348.3571" y="188.308001"/>
+  <use xlink:href="#glyph0-18" x="351.4651" y="188.308001"/>
+  <use xlink:href="#glyph0-11" x="360.1291" y="188.308001"/>
+  <use xlink:href="#glyph0-6" x="367.0171" y="188.308001"/>
+  <use xlink:href="#glyph0-12" x="373.6891" y="188.308001"/>
+  <use xlink:href="#glyph0-8" x="377.4691" y="188.308001"/>
+  <use xlink:href="#glyph0-19" x="383.9131" y="188.308001"/>
+  <use xlink:href="#glyph0-12" x="390.1291" y="188.308001"/>
+  <use xlink:href="#glyph0-20" x="393.9091" y="188.308001"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 450 252 L 567 252 L 567 276.773438 L 450 276.773438 Z M 450 252 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-19" x="340.14844" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-12" x="342.81484" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-20" x="349.48924" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-10" x="356.16364" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-16" x="359.49724" y="213.3864"/>
+  <use xlink:href="#glyph1-17" x="365.49724" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-21" x="372.17164" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-22" x="378.84604" y="213.3864"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="385.52044" y="213.3864"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 450 276.773438 L 567 276.773438 L 567 301.546875 L 450 301.546875 Z M 450 276.773438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-23" x="321.80859" y="238.1592"/>
+  <use xlink:href="#glyph1-22" x="325.14219" y="238.1592"/>
+  <use xlink:href="#glyph1-24" x="331.81179" y="238.1592"/>
+  <use xlink:href="#glyph1-21" x="338.48139" y="238.1592"/>
+  <use xlink:href="#glyph1-5" x="345.15099" y="238.1592"/>
+  <use xlink:href="#glyph1-10" x="348.48459" y="238.1592"/>
+  <use xlink:href="#glyph1-13" x="351.81819" y="238.1592"/>
+  <use xlink:href="#glyph1-4" x="360.47979" y="238.1592"/>
+  <use xlink:href="#glyph1-5" x="367.14939" y="238.1592"/>
+  <use xlink:href="#glyph1-4" x="370.48299" y="238.1592"/>
+  <use xlink:href="#glyph1-10" x="377.15259" y="238.1592"/>
+  <use xlink:href="#glyph1-9" x="380.48619" y="238.1592"/>
+  <use xlink:href="#glyph1-3" x="389.81979" y="238.1592"/>
+  <use xlink:href="#glyph1-4" x="396.48939" y="238.1592"/>
+  <use xlink:href="#glyph1-2" x="403.15899" y="238.1592"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 450 301.546875 L 567 301.546875 L 567 326.320312 L 450 326.320312 Z M 450 301.546875 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-25" x="317.1416" y="262.932"/>
+  <use xlink:href="#glyph1-21" x="326.4752" y="262.932"/>
+  <use xlink:href="#glyph1-5" x="333.1448" y="262.932"/>
+  <use xlink:href="#glyph1-24" x="336.4784" y="262.932"/>
+  <use xlink:href="#glyph1-21" x="343.148" y="262.932"/>
+  <use xlink:href="#glyph1-5" x="349.8176" y="262.932"/>
+  <use xlink:href="#glyph1-10" x="353.1512" y="262.932"/>
+  <use xlink:href="#glyph1-13" x="356.4848" y="262.932"/>
+  <use xlink:href="#glyph1-4" x="365.1464" y="262.932"/>
+  <use xlink:href="#glyph1-5" x="371.816" y="262.932"/>
+  <use xlink:href="#glyph1-4" x="375.1496" y="262.932"/>
+  <use xlink:href="#glyph1-10" x="381.8192" y="262.932"/>
+  <use xlink:href="#glyph1-9" x="385.1528" y="262.932"/>
+  <use xlink:href="#glyph1-3" x="394.4864" y="262.932"/>
+  <use xlink:href="#glyph1-4" x="401.156" y="262.932"/>
+  <use xlink:href="#glyph1-2" x="407.8256" y="262.932"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 450 326.320312 L 567 326.320312 L 567 351.089844 L 450 351.089844 Z M 450 326.320312 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="335.15039" y="287.7048"/>
+  <use xlink:href="#glyph1-17" x="343.81679" y="287.7048"/>
+  <use xlink:href="#glyph1-12" x="350.49119" y="287.7048"/>
+  <use xlink:href="#glyph1-3" x="357.16559" y="287.7048"/>
+  <use xlink:href="#glyph1-10" x="363.83999" y="287.7048"/>
+  <use xlink:href="#glyph1-9" x="367.17839" y="287.7048"/>
+  <use xlink:href="#glyph1-3" x="376.51679" y="287.7048"/>
+  <use xlink:href="#glyph1-4" x="383.19119" y="287.7048"/>
+  <use xlink:href="#glyph1-2" x="389.86559" y="287.7048"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 387 317.421875 L 443.605469 250.554688 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 448.773438 244.449219 L 441.3125 248.617188 L 445.894531 252.496094 Z M 448.773438 244.449219 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-12" x="231.27" y="218.335601"/>
+  <use xlink:href="#glyph0-2" x="235.05" y="218.335601"/>
+  <use xlink:href="#glyph0-4" x="241.494" y="218.335601"/>
+  <use xlink:href="#glyph0-8" x="247.722" y="218.335601"/>
+  <use xlink:href="#glyph0-13" x="254.166" y="218.335601"/>
+  <use xlink:href="#glyph0-1" x="257.502" y="218.335601"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="263.058" y="218.335601"/>
+  <use xlink:href="#glyph0-3" x="269.502" y="218.335601"/>
+  <use xlink:href="#glyph0-4" x="275.502" y="218.335601"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 567 289.160156 L 683.765625 224.449219 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 690.765625 220.574219 L 682.3125 221.828125 L 685.222656 227.074219 Z M 690.765625 220.574219 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-21" x="441.0516" y="194.645801"/>
+  <use xlink:href="#glyph0-8" x="449.2716" y="194.645801"/>
+  <use xlink:href="#glyph0-2" x="455.7156" y="194.645801"/>
+  <use xlink:href="#glyph0-22" x="462.1596" y="194.645801"/>
+  <use xlink:href="#glyph0-13" x="469.2756" y="194.645801"/>
+  <use xlink:href="#glyph0-23" x="472.6116" y="194.645801"/>
+  <use xlink:href="#glyph0-24" x="475.7196" y="194.645801"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 317.425781 199.648438 C 338.222656 206.984375 338.222656 218.878906 317.425781 226.214844 C 296.628906 233.554688 262.914062 233.554688 242.117188 226.214844 C 221.324219 218.878906 221.324219 206.984375 242.117188 199.648438 C 262.914062 192.3125 296.628906 192.3125 317.425781 199.648438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-6" x="123.43499" y="154.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="129.43499" y="154.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="136.10939" y="154.9331"/>
+  <use xlink:href="#glyph1-8" x="142.10939" y="154.9331"/>
+  <use xlink:href="#glyph1-10" x="148.10939" y="154.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-26" x="117.4262" y="168.9331"/>
+  <use xlink:href="#glyph1-24" x="125.4302" y="168.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="132.1046" y="168.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-27" x="138.779" y="168.9331"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-22" x="147.4454" y="168.9331"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 263.542969 231.242188 L 201.480469 301.25 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.175781 307.234375 L 203.726562 303.238281 L 199.234375 299.257812 Z M 196.175781 307.234375 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-25" x="8.88574" y="207.018201"/>
+  <use xlink:href="#glyph0-15" x="16.00174" y="207.018201"/>
+  <use xlink:href="#glyph0-12" x="22.67374" y="207.018201"/>
+  <use xlink:href="#glyph0-13" x="26.45374" y="207.018201"/>
+  <use xlink:href="#glyph0-1" x="29.78974" y="207.018201"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="35.34574" y="207.018201"/>
+  <use xlink:href="#glyph0-3" x="41.78974" y="207.018201"/>
+  <use xlink:href="#glyph0-4" x="47.78974" y="207.018201"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 729.539062 328.472656 L 759.472656 386.425781 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 763.144531 393.535156 L 762.140625 385.050781 L 756.808594 387.804688 Z M 763.144531 393.535156 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 702.097656 400.273438 C 712.09375 409.589844 712.09375 424.695312 702.097656 434.011719 C 692.101562 443.328125 675.898438 443.328125 665.902344 434.011719 C 655.90625 424.695312 655.90625 409.589844 665.902344 400.273438 C 675.898438 390.957031 692.101562 390.957031 702.097656 400.273438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="528.99609" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="532.32969" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="539.00409" y="366.14384"/>
+  <use xlink:href="#glyph1-8" x="545.00409" y="366.14384"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 793.503906 400.273438 C 803.5 409.589844 803.5 424.695312 793.503906 434.011719 C 783.507812 443.328125 767.304688 443.328125 757.308594 434.011719 C 747.3125 424.695312 747.3125 409.589844 757.308594 400.273438 C 767.304688 390.957031 783.507812 390.957031 793.503906 400.273438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="620.40229" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="623.73589" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="630.41029" y="366.14384"/>
+  <use xlink:href="#glyph1-8" x="636.41029" y="366.14384"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 610.691406 400.273438 C 620.6875 409.589844 620.6875 424.695312 610.691406 434.011719 C 600.695312 443.328125 584.492188 443.328125 574.496094 434.011719 C 564.5 424.695312 564.5 409.589844 574.496094 400.273438 C 584.492188 390.957031 600.695312 390.957031 610.691406 400.273438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-5" x="437.58989" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="440.92349" y="366.14384"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="447.59789" y="366.14384"/>
+  <use xlink:href="#glyph1-8" x="453.59789" y="366.14384"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 618.6875 417.144531 L 651.007812 417.144531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,14.901733%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 656.007812 417.144531 L 648.007812 414.144531 L 651.007812 417.144531 L 648.007812 420.144531 Z M 656.007812 417.144531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 710.09375 417.144531 L 742.414062 417.144531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(100%,14.901733%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(100%,14.901733%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 747.414062 417.144531 L 739.414062 414.144531 L 742.414062 417.144531 L 739.414062 420.144531 Z M 747.414062 417.144531 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-10" x="516.996" y="325.475841"/>
+</g>
+<g style="fill:rgb(100%,14.901733%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="527.664" y="325.475841"/>
+  <use xlink:href="#glyph0-26" x="534.108" y="325.475841"/>
+  <use xlink:href="#glyph0-12" x="536.772" y="325.475841"/>
+  <use xlink:href="#glyph0-13" x="540.552" y="325.475841"/>
+  <use xlink:href="#glyph0-27" x="543.888" y="325.475841"/>
+  <use xlink:href="#glyph0-26" x="550.56" y="325.475841"/>
+  <use xlink:href="#glyph0-3" x="553.224" y="325.475841"/>
+  <use xlink:href="#glyph0-12" x="559.224" y="325.475841"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 567 315 L 584.246094 383.820312 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 586.1875 391.582031 L 587.15625 383.09375 L 581.335938 384.550781 Z M 586.1875 391.582031 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-21" x="609.9546" y="311.645801"/>
+  <use xlink:href="#glyph0-8" x="618.1746" y="311.645801"/>
+  <use xlink:href="#glyph0-3" x="624.6186" y="311.645801"/>
+  <use xlink:href="#glyph0-11" x="630.6186" y="311.645801"/>
+  <use xlink:href="#glyph0-28" x="637.5066" y="311.645801"/>
+  <use xlink:href="#glyph0-29" x="640.1706" y="311.645801"/>
+  <use xlink:href="#glyph0-8" x="646.1706" y="311.645801"/>
+  <use xlink:href="#glyph0-13" x="652.6146" y="311.645801"/>
+  <use xlink:href="#glyph0-30" x="655.9506" y="311.645801"/>
+  <use xlink:href="#glyph0-2" x="665.0466" y="311.645801"/>
+  <use xlink:href="#glyph0-26" x="671.4906" y="311.645801"/>
+  <use xlink:href="#glyph0-12" x="674.1546" y="311.645801"/>
+  <use xlink:href="#glyph0-13" x="677.9346" y="311.645801"/>
+  <use xlink:href="#glyph0-28" x="681.2706" y="311.645801"/>
+  <use xlink:href="#glyph0-26" x="683.9346" y="311.645801"/>
+  <use xlink:href="#glyph0-3" x="686.5986" y="311.645801"/>
+  <use xlink:href="#glyph0-12" x="692.5986" y="311.645801"/>
+  <use xlink:href="#glyph0-13" x="696.3786" y="311.645801"/>
+</g>
+<path style="fill:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 774.097656 441.46875 L 772.667969 468 L 198 468 L 200.023438 361.398438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 200.175781 353.398438 L 197.023438 361.339844 L 203.023438 361.457031 Z M 200.175781 353.398438 " transform="matrix(1,0,0,1,-144,-55)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-21" x="286.658" y="392.645771"/>
+  <use xlink:href="#glyph0-8" x="294.878" y="392.645771"/>
+  <use xlink:href="#glyph0-3" x="301.322" y="392.645771"/>
+  <use xlink:href="#glyph0-11" x="307.322" y="392.645771"/>
+  <use xlink:href="#glyph0-28" x="314.21" y="392.645771"/>
+  <use xlink:href="#glyph0-29" x="316.874" y="392.645771"/>
+  <use xlink:href="#glyph0-8" x="322.874" y="392.645771"/>
+  <use xlink:href="#glyph0-22" x="329.318" y="392.645771"/>
+  <use xlink:href="#glyph0-13" x="336.434" y="392.645771"/>
+  <use xlink:href="#glyph0-1" x="339.77" y="392.645771"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="345.326" y="392.645771"/>
+  <use xlink:href="#glyph0-3" x="351.77" y="392.645771"/>
+  <use xlink:href="#glyph0-4" x="357.77" y="392.645771"/>
+  <use xlink:href="#glyph0-13" x="363.998" y="392.645771"/>
+  <use xlink:href="#glyph0-31" x="367.334" y="392.645771"/>
+  <use xlink:href="#glyph0-8" x="375.11" y="392.645771"/>
+  <use xlink:href="#glyph0-6" x="381.554" y="392.645771"/>
+  <use xlink:href="#glyph0-22" x="388.226" y="392.645771"/>
+</g>
+</g>
+</svg>
--- a/slide/index.html	Mon Feb 08 08:51:56 2021 +0900
+++ b/slide/index.html	Mon Feb 08 09:49:50 2021 +0900
@@ -8,7 +8,7 @@
  * @auto-scaling true
  * @size 4:3 960px 720px
  */div#p>svg>foreignObject>section .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{width:16px;height:16px;content:" ";display:inline-block;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E")}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5;word-wrap:break-word}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border-bottom:1px solid #dfe2e5}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{display:table;content:""}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-spacing:0;border-collapse:collapse}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-top:0;margin-bottom:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-top:0;margin-bottom:10px}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:0;margin-top:0;margin-bottom:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-top:0;margin-bottom:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}div#p>svg>foreignObject>section :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{color:#fafbfc;background-color:#b31d28}div#p>svg>foreignObject>section .pl-c2{color:#fafbfc;background-color:#d73a49}div#p>svg>foreignObject>section .pl-c2:before{content:"^M"}div#p>svg>foreignObject>section .pl-sr .pl-cce{font-weight:700;color:#22863a}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{font-weight:700;color:#005cc5}div#p>svg>foreignObject>section .pl-mi{font-style:italic;color:#24292e}div#p>svg>foreignObject>section .pl-mb{font-weight:700;color:#24292e}div#p>svg>foreignObject>section .pl-md{color:#b31d28;background-color:#ffeef0}div#p>svg>foreignObject>section .pl-mi1{color:#22863a;background-color:#f0fff4}div#p>svg>foreignObject>section .pl-mc{color:#e36209;background-color:#ffebda}div#p>svg>foreignObject>section .pl-mi2{color:#f6f8fa;background-color:#005cc5}div#p>svg>foreignObject>section .pl-mdr{font-weight:700;color:#6f42c1}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{text-decoration:underline;color:#032f62}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-top:0!important;padding-bottom:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-top:8px!important;padding-bottom:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{display:table
-  /* content:""; */}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-top:0;margin-bottom:16px}div#p>svg>foreignObject>section hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}div#p>svg>foreignObject>section blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{font-size:.85em;color:#6a737d}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-top:0;margin-bottom:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}div#p>svg>foreignObject>section dl dd{padding:0 16px;margin-bottom:16px}div#p>svg>foreignObject>section table{display:block;width:100%;overflow:auto}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{padding:6px 13px;border:1px solid #dfe2e5}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{max-width:100%;box-sizing:initial;background-color:#fff}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}div#p>svg>foreignObject>section pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:initial;border:0}div#p>svg>foreignObject>section .commit-tease-sha{display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%;color:#444d56}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,.3);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;color:#24292e;word-wrap:normal;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{cursor:pointer;background:#ffea7f}div#p>svg>foreignObject>section .tab-size[data-tab-size="1"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size="2"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size="3"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size="4"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size="5"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size="6"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size="7"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size="8"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size="9"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size="10"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size="11"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size="12"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{color:#55a532;background-color:#eaffea}div#p>svg>foreignObject>section .hljs-deletion{color:#bd2c00;background-color:#ffecec}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{font-weight:inherit;color:#48c}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{margin:0;position:absolute;left:30px;color:hsla(0,0%,40%,.75);font-size:18px}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{position:absolute;padding:0;right:30px;bottom:21px;font-size:24px;color:#777}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button><button data-bespoke-marp-osc="presenter" tabindex="-1" title="Open presenter view (p)">Open presenter view</button></div><div id="p"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-paginate="true" data-marpit-pagination="1" data-marpit-pagination-total="65" style="--paginate:true;">
+  /* content:""; */}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-top:0;margin-bottom:16px}div#p>svg>foreignObject>section hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}div#p>svg>foreignObject>section blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{font-size:.85em;color:#6a737d}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-top:0;margin-bottom:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}div#p>svg>foreignObject>section dl dd{padding:0 16px;margin-bottom:16px}div#p>svg>foreignObject>section table{display:block;width:100%;overflow:auto}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{padding:6px 13px;border:1px solid #dfe2e5}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{max-width:100%;box-sizing:initial;background-color:#fff}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}div#p>svg>foreignObject>section pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:initial;border:0}div#p>svg>foreignObject>section .commit-tease-sha{display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%;color:#444d56}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;color:rgba(27,31,35,.3);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{overflow:visible;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;color:#24292e;word-wrap:normal;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{cursor:pointer;background:#ffea7f}div#p>svg>foreignObject>section .tab-size[data-tab-size="1"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size="2"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size="3"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size="4"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size="5"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size="6"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size="7"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size="8"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size="9"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size="10"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size="11"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size="12"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{display:block;background:#fff;padding:.5em;color:#333;overflow-x:auto}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{color:#55a532;background-color:#eaffea}div#p>svg>foreignObject>section .hljs-deletion{color:#bd2c00;background-color:#ffecec}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{font-weight:inherit;color:#48c}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{margin:0;position:absolute;left:30px;color:hsla(0,0%,40%,.75);font-size:18px}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{position:absolute;padding:0;right:30px;bottom:21px;font-size:24px;color:#777}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button><button data-bespoke-marp-osc="presenter" tabindex="-1" title="Open presenter view (p)">Open presenter view</button></div><div id="p"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-paginate="true" data-marpit-pagination="1" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>GearsOSのメタ計算</h1>
 <ul>
 <li>清水 隆博
@@ -20,7 +20,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-paginate="true" data-marpit-pagination="2" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-paginate="true" data-marpit-pagination="2" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>研究発表の構成</h1>
 <ul>
 <li>研究目的</li>
@@ -34,7 +34,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="3" data-paginate="true" data-marpit-pagination="3" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="3" data-paginate="true" data-marpit-pagination="3" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>研究目的</h1>
 <ul>
 <li>OSとアプリケーションの信頼性の保証したい</li>
@@ -55,7 +55,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-marpit-pagination="4" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-marpit-pagination="4" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルとメタレベルを用いた信頼性の向上</h1>
 <ul>
 <li>プログラムの実行部分は以下の2つからなる
@@ -76,7 +76,7 @@
 <li>メタレベルの計算として信頼性を保証する</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-paginate="true" data-marpit-pagination="5" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-paginate="true" data-marpit-pagination="5" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマル、メタレベルの計算とGearsOS</h1>
 <ul>
 <li>ノーマル/メタレベルを一貫して記述できる言語にContinuation Based Cがある
@@ -92,7 +92,7 @@
 <li>トランスパイラで生成するメタレベルの計算をより拡張したい</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="6" data-paginate="true" data-marpit-pagination="6" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="6" data-paginate="true" data-marpit-pagination="6" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>トランスパイラによるメタレベルの計算の改善</h1>
 <ul>
 <li>本研究ではトランスパイラの機能を改善し、様々な新機能をGearsOSに導入した</li>
@@ -103,12 +103,12 @@
 <li>手書きからの解放</li>
 <li>MetaCodeGearの入れ替え機能の追加</li>
 </ul>
-<h4>まずGearsOSについて確認をしてから、新機能の解説を行う</h4>
+<p>まずGearsOSについて確認をしてから、新機能の解説を行う</p>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-marpit-pagination="7" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-marpit-pagination="7" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルから見たGearsOSの構成</h1>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-marpit-pagination="8" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-marpit-pagination="8" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>CodeGear</h1>
 <ul>
 <li>CbCで定義する軽量継続で表現する単位をCodeGearと呼ぶ
@@ -121,7 +121,7 @@
 <li><code>goto CodeGear()</code>でCodeGearに継続する</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-marpit-pagination="9" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-marpit-pagination="9" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>DataGear</h1>
 <ul>
 <li>GearsOSで扱うデータの単位</li>
@@ -130,7 +130,7 @@
 <li>Cの構造体の形でメタレベルでは表現される</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-paginate="true" data-marpit-pagination="10" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-paginate="true" data-marpit-pagination="10" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベル/メタレベルのCodeGear</h1>
 <ul>
 <li>ノーマルレベルのCodeGearから見ると、直接別のCodeGearに継続している</li>
@@ -142,7 +142,7 @@
 </ul>
 <p><img src="./metacg.svg" alt="h:220 w:800" style="width:800px;height:220px;" /></p>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-marpit-pagination="11" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-marpit-pagination="11" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルでのGearsOSの実装</h1>
 <ul>
 <li>次に継続するCodeGearを引数で受け取れる
@@ -162,7 +162,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="12" data-paginate="true" data-marpit-pagination="12" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="12" data-paginate="true" data-marpit-pagination="12" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルでのGearsOSの実装</h1>
 <ul>
 <li>通常のプログラミング言語のように引数を受け取れる</li>
@@ -178,7 +178,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-paginate="true" data-marpit-pagination="13" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-paginate="true" data-marpit-pagination="13" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Interface</h1>
 <ul>
 <li>GearsOSのモジュール化の仕組み</li>
@@ -191,7 +191,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-marpit-pagination="14" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-marpit-pagination="14" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルでのInterface(ノーマルレベル)</h1>
 <ul>
 <li>実装したいInterfaceのCodeGearの名前と引数を列挙する</li>
@@ -209,7 +209,7 @@
 } Stack;
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-marpit-pagination="15" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-marpit-pagination="15" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Interfaceの実装(ノーマルレベル)</h1>
 <ul>
 <li>実装したいInterfaceで定義されたAPIを実装する
@@ -232,7 +232,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-paginate="true" data-marpit-pagination="16" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-paginate="true" data-marpit-pagination="16" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>InterfaceのAPI呼び出し(ノーマルレベル)</h1>
 <ul>
 <li><code>goto interfaceName-&gt;method()</code>のようにAPIを呼び出す</li>
@@ -248,7 +248,26 @@
 <span class="hljs-keyword">goto</span> stackTest-&gt;insertTest1(<span class="hljs-built_in">stack</span>, shutdown);
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-marpit-pagination="17" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-marpit-pagination="17" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>par goto</h1>
+<ul>
+<li>GearsOSの並行呼び出し構文</li>
+<li>通常のgoto文の様に<code>par goto</code>と書くと、並列実行される</li>
+</ul>
+<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>    Phils* phils0 = createPhilsImpl(context,<span class="hljs-number">0</span>,fork0,fork1);
+    Phils* phils1 = createPhilsImpl(context,<span class="hljs-number">1</span>,fork1,fork2); 
+    Phils* phils2 = createPhilsImpl(context,<span class="hljs-number">2</span>,fork2,fork3); 
+    Phils* phils3 = createPhilsImpl(context,<span class="hljs-number">3</span>,fork3,fork4); 
+    Phils* phils4 = createPhilsImpl(context,<span class="hljs-number">4</span>,fork4,fork0); 
+
+    par <span class="hljs-keyword">goto</span> phils0-&gt;thinking(exit_code);
+    par <span class="hljs-keyword">goto</span> phils1-&gt;thinking(exit_code);
+    par <span class="hljs-keyword">goto</span> phils2-&gt;thinking(exit_code);
+    par <span class="hljs-keyword">goto</span> phils3-&gt;thinking(exit_code);
+    par <span class="hljs-keyword">goto</span> phils4-&gt;thinking(exit_code);
+</span></span></foreignObject></svg></code></pre>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-paginate="true" data-marpit-pagination="18" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>ノーマルレベルのまとめ</h1>
 <ul>
 <li><code>goto next</code>などで次の継続に飛ぶ
@@ -262,35 +281,36 @@
 <li>呼び出す際は<code>goto interface-&gt;method()</code>を使う</li>
 </ul>
 </li>
+<li><code>par goto</code>で並列実行</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-paginate="true" data-marpit-pagination="18" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-paginate="true" data-marpit-pagination="19" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>GearsOSのメタレベルの計算とMetaDataGear</h1>
 <ul>
 <li>GearsOSのメタレベルの計算は、GearsOSの基本構造と関わりが深い</li>
 <li>GearsOSの基本構造はメタなCodeGear/DataGearで表現される</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-paginate="true" data-marpit-pagination="19" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-paginate="true" data-marpit-pagination="20" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>MetaDataGear</h1>
 <ul>
 <li>ノーマルレベルのCodeGearの前後でMetaCodeGearが実行される
 <ul>
-<li>MetaCodeGear参照するDataGearのことをMetaDataGearと呼ぶ
-<ul>
-<li>Context</li>
-<li>TaskManager</li>
-<li>Worker</li>
-<li>...<br />
+<li>MetaCodeGear参照するDataGearのことをMetaDataGearと呼ぶ<br />
 <img src="./metacg.svg" alt="h:220 w:800" style="width:800px;height:220px;" /></li>
 </ul>
 </li>
 </ul>
-</li>
-</ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-paginate="true" data-marpit-pagination="20" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Context(1)</h1>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-paginate="true" data-marpit-pagination="21" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>GearsOSのシステム構成</h1>
+<ul>
+<li>MetaDataGearであるContext, TaskManager, Workerによって構成</li>
+</ul>
+<p><img src="./gears_structure.svg" alt="" /></p>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-paginate="true" data-marpit-pagination="22" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>Context</h1>
 <ul>
 <li>従来のOSのプロセスに相当するMetaDataGear</li>
 <li>GearsOSでのプログラム実行に必要な情報を持っている
@@ -303,8 +323,8 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-paginate="true" data-marpit-pagination="21" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Context(2)</h1>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-marpit-pagination="23" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>Context</h1>
 <ul>
 <li>GearsOSでcontextを触るのはメタ計算部分だけ
 <ul>
@@ -312,15 +332,63 @@
 </ul>
 </li>
 <li>従来は手書きでcontext.hの中で定義</li>
-<li>Context自体は構造体で定義されている
+<li>Context自体は構造体で定義されている<br />
+<img src="./context.svg" alt="w:532 h:10cm" style="width:532px;height:10cm;" /></li>
+</ul>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-marpit-pagination="24" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>メタレベルでのDataGearの管理</h1>
+<ul>
+<li>メタレベルではDataGearを纏めて管理する必要がある</li>
+<li>すべてのDataGearはCの共用体を使って定義される
+<ul>
+<li><code>union Data</code>型</li>
+</ul>
+</li>
+<li><code>union Data</code>はすべてのDataGearにキャストすることが可能
 <ul>
-<li>Contextの要素にDataGearの型がすべて揃った共用体がある<br />
-<img src="./context.svg" alt="w:532 h:10cm" style="width:532px;height:10cm;" /></li>
+<li>Contextには<code>union Data</code>としてDataGearを保存する</li>
+</ul>
+</li>
+<li>メタレベルの計算では必ずこの<code>union Data</code>が利用される</li>
+</ul>
+<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-class"><span class="hljs-keyword">union</span> <span class="hljs-title">Data</span> {</span>
+    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Stack</span> {</span>
+        ...
+    } Stack;
+    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">SingleLinkedStack</span> {</span>
+        ...
+    } SingleLinkedStack;
+    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Context</span> <span class="hljs-title">Context</span>;</span>
+    ...
+}
+</span></span></foreignObject></svg></code></pre>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-marpit-pagination="25" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>union Dataの定義</h1>
+<ul>
+<li>union Data型はcontext.hに定義されている</li>
+<li>計算で使うすべてのDataGearの構造体の定義を列挙する
+<ul>
+<li>従来は手書きですべて記述</li>
+<li>Intefaceの定義を書き、CbCを書き、context.hに追記...</li>
+</ul>
+</li>
+<li>手書きで生成していたので、いくつかの問題があった
+<ul>
+<li>整理しないと計算に使わないDataGearの定義が残る</li>
+<li>Interfaceの定義ファイルと食い違うケースがある</li>
+<li>DataGearの数が増えると手書きするのが煩雑</li>
+</ul>
+</li>
+<li>すべてのメタレベルの計算の元となる重要なデータ
+<ul>
+<li>手書きの場合ミスが発生する可能性が高い</li>
 </ul>
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-paginate="true" data-marpit-pagination="22" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-marpit-pagination="26" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>CodeGear、DataGearの番号</h1>
 <ul>
 <li>Perlで変換すると番号の形に抽象化される
@@ -330,7 +398,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-marpit-pagination="23" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-paginate="true" data-marpit-pagination="27" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>メタレベルに変換されたGearsOSの実装</h1>
 <ul>
 <li>
@@ -350,7 +418,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-marpit-pagination="24" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="28" data-paginate="true" data-marpit-pagination="28" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>メタレベルに変換されたGearsOSの実装</h1>
 <ul>
 <li>継続先は<code>goto meta</code>に変更されている
@@ -378,7 +446,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-marpit-pagination="25" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="29" data-paginate="true" data-marpit-pagination="29" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>メタに変換されたGearsOSの実装</h1>
 <ul>
 <li>直接checkAndSetに行かずにmetaに飛ぶ</li>
@@ -400,7 +468,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-marpit-pagination="26" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-paginate="true" data-marpit-pagination="30" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>メタに変換されたGearsOSの実装</h1>
 <ul>
 <li>変換前</li>
@@ -424,7 +492,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-paginate="true" data-marpit-pagination="27" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-paginate="true" data-marpit-pagination="31" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>データを取り出すStubCodeGear</h1>
 <pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pickup_rforkPhilsImpl_stub</span><span class="hljs-params">(struct Context* context)</span> </span>{
   PhilsImpl* phils = (PhilsImpl*)GearImpl(context, Phils, phils);
@@ -433,7 +501,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="28" data-paginate="true" data-marpit-pagination="28" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="32" data-paginate="true" data-marpit-pagination="32" data-marpit-pagination-total="62" style="--paginate:true;">
 <ul>
 <li>メタレベルの処理を全部手で書くのは面倒
 <ul>
@@ -452,68 +520,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="29" data-paginate="true" data-marpit-pagination="29" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>GearsOSのメタ計算フレームワークとInterface</h1>
-<ul>
-<li>CbCには無いモジュール化の仕組みとしてInterfaceがある
-<ul>
-<li>Perlフレームワーク上に構築</li>
-<li>コンパイル時に等価な純粋なCbCに変換する</li>
-</ul>
-</li>
-<li>Interfaceの機能が他の言語のInterfaceの機能とギャップがあった
-<ul>
-<li>実装していないAPIがあっても、変換前の時点でエラーが出ないなど</li>
-</ul>
-</li>
-<li>Interfaceの定義ファイルもあるものと無いものがあった
-<ul>
-<li>トランスパイラで統一な処理が出来ない</li>
-</ul>
-</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-paginate="true" data-marpit-pagination="30" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Perlを中心としたフレームワークによるメタ計算の生成</h1>
-<ul>
-<li>GearsOSの例題を作製する場合も、コピペや手書きが多発していた
-<ul>
-<li>フレームワークに実装したAPIを使って自動生成に変更したい</li>
-</ul>
-</li>
-<li>Interfaceの機能充実も、 メタ計算の生成もCbCで行うのは難しい
-<ul>
-<li>Perlを中心としたフレームワークを活用したい</li>
-</ul>
-</li>
-<li>コード変換(トランスパイル)を行うために必要な環境の整備もする必要がある</li>
-<li>Perlを中心としたトランスパイルシステムの整備、拡張を行った
-<ul>
-<li>GearsOSのメタ計算の生成がより柔軟かつ高い信頼性で可能となった</li>
-</ul>
-</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-paginate="true" data-marpit-pagination="31" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>GearsOSの基礎概念</h1>
-<ul>
-<li>CodeGear、DataGear</li>
-<li>Interface</li>
-<li>GearsOSのビルドシステム
-<ul>
-<li>cmake</li>
-<li>Perlトランスパイラ</li>
-</ul>
-</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="32" data-paginate="true" data-marpit-pagination="32" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>InterfaceとDataGear</h1>
-<ul>
-<li>Interface</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="33" data-paginate="true" data-marpit-pagination="33" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="33" data-paginate="true" data-marpit-pagination="33" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>GearsOSのビルドシステム</h1>
 <ul>
 <li>CMakeとPerlを使ってビルドする
@@ -530,7 +537,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="34" data-paginate="true" data-marpit-pagination="34" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="34" data-paginate="true" data-marpit-pagination="34" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>GearsOSのビルドシステム</h1>
 <ul>
 <li>Perlスクリプトはファイルの変換・生成を行う
@@ -546,10 +553,14 @@
 </ul>
 <p><img src="./geasflow1.svg" alt="w:632 h:10cm" style="width:632px;height:10cm;" /></p>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="35" data-paginate="true" data-marpit-pagination="35" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="35" data-paginate="true" data-marpit-pagination="35" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Perlトランスパイラが生成するファイル</h1>
 <ul>
-<li>context.hの中身をもとに生成するファイルが多い</li>
+<li>context.hの中身をもとに生成するファイルが多い
+<ul>
+<li>このファイルで定義した内容をもとにメタレベルの計算をするので重要</li>
+</ul>
+</li>
 </ul>
 <table>
 <thead>
@@ -598,7 +609,46 @@
 </tbody>
 </table>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="36" data-paginate="true" data-marpit-pagination="36" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="36" data-paginate="true" data-marpit-pagination="36" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>GearsOSのメタレベルについてのまとめ</h1>
+<ul>
+<li>ノーマルレベルで書いたCodeGearにはContextの操作が付け加わる</li>
+<li>継続への書き込み、CodeGearの値の受け取りはContext経由で行われる
+<ul>
+<li>値の受け取りはStubCodeGearが行う</li>
+<li>PerlトランスパイラでMetaCodeGearが生成される</li>
+</ul>
+</li>
+<li>メタレベルへの変換はビルド時にPerlトランスパイラによって行われる</li>
+<li>メタレベルの情報はPerlトランスパイラが生成するファイがル重要
+<ul>
+<li>DataGearの扱いはcontext.hに定義したunion Dataに依存する</li>
+</ul>
+</li>
+</ul>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="37" data-paginate="true" data-marpit-pagination="37" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>Perlを中心としたフレームワークによるメタ計算の生成</h1>
+<ul>
+<li>GearsOSの例題を作製する場合も、コピペや手書きが多発していた
+<ul>
+<li>フレームワークに実装したAPIを使って自動生成に変更したい</li>
+</ul>
+</li>
+<li>Interfaceの機能充実も、 メタ計算の生成もCbCで行うのは難しい
+<ul>
+<li>Perlを中心としたフレームワークを活用したい</li>
+</ul>
+</li>
+<li>コード変換(トランスパイル)を行うために必要な環境の整備もする必要がある</li>
+<li>Perlを中心としたトランスパイルシステムの整備、拡張を行った
+<ul>
+<li>GearsOSのメタ計算の生成がより柔軟かつ高い信頼性で可能となった</li>
+</ul>
+</li>
+</ul>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="38" data-paginate="true" data-marpit-pagination="38" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>主なGearsOSに導入された新機能</h1>
 <ul>
 <li>Interfaceシステムの強化</li>
@@ -606,7 +656,7 @@
 <li>MetaCodeGearの入れ替え機能の追加</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="37" data-paginate="true" data-marpit-pagination="37" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="39" data-paginate="true" data-marpit-pagination="39" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Interfaceシステムの強化</h1>
 <ul>
 <li>Interface構文の簡素化
@@ -619,6 +669,7 @@
 <li>GearsOSでの型定義の方法に一貫性が生まれた</li>
 </ul>
 </li>
+<li>InterfaceのParserの実装</li>
 <li>Interfaceの引数の確認</li>
 <li>Interfaceで未定義のAPIの検知</li>
 <li>InterfaceにないAPIの呼び出しの検知
@@ -629,7 +680,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="38" data-paginate="true" data-marpit-pagination="38" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="40" data-paginate="true" data-marpit-pagination="40" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>手書きからの解放</h1>
 <ul>
 <li>Interfaceの雛形ファイルの作製スクリプトの導入</li>
@@ -643,15 +694,19 @@
 <li>GearsOSの初期化ルーチンの自動生成</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="39" data-paginate="true" data-marpit-pagination="39" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="41" data-paginate="true" data-marpit-pagination="41" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>GearsOSの新機能</h1>
 <ul>
 <li><strong>自由なMetaCodeGearの作製、継続の入れ替え機能</strong></li>
-<li>Perlトランスパイラの変換ルーチンのデバッグ機能の追加</li>
+<li>Perlトランスパイラの変換ルーチンのデバッグ機能の追加
+<ul>
+<li>トランスパイラそのもののデバッグが困難であった</li>
+</ul>
+</li>
 <li>ジェネリクスのサポート</li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="40" data-paginate="true" data-marpit-pagination="40" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="42" data-paginate="true" data-marpit-pagination="42" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Interfaceの改良</h1>
 <ul>
 <li>従来のInterfaceにまつわるPerlのフレームワークを改良した
@@ -661,71 +716,25 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="41" data-paginate="true" data-marpit-pagination="41" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Interfaceの定義構文の改良</h1>
-<ul>
-<li>従来は引数とCodeGearの定義を別けて記述していた
-<ul>
-<li>Interfaceの宣言なので、書ける変数は引数/出力のもののみ</li>
-</ul>
-</li>
-<li>Javaのクラス変数やインスタンス変数のようなものだと思われてしまった
-<ul>
-<li>GearsOSに慣れてない</li>
-<li>シンタックスが問題</li>
-</ul>
-</li>
-<li>シンタックスをgolangやJavaのInterfaceを参考に簡潔なものにした</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="42" data-paginate="true" data-marpit-pagination="42" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>従来のInterface</h1>
-<ul>
-<li>引数の組とAPI(CodeGear)は別けて記述する必要があった</li>
-</ul>
-<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-keyword">typedef</span> <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Stack</span>&lt;</span>Type, Impl&gt;{
-        <span class="hljs-class"><span class="hljs-keyword">union</span> <span class="hljs-title">Data</span>* <span class="hljs-title">stack</span>;</span>
-        <span class="hljs-class"><span class="hljs-keyword">union</span> <span class="hljs-title">Data</span>* <span class="hljs-title">data</span>;</span>
-        <span class="hljs-class"><span class="hljs-keyword">union</span> <span class="hljs-title">Data</span>* <span class="hljs-title">data1</span>;</span>
-
-
-        <span class="hljs-function">__code <span class="hljs-title">whenEmpty</span><span class="hljs-params">(...)</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">clear</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>,__code next(...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">push</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>,Type* data, __code next(...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">pop</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>, __code next(Type* data, ...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">pop2</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>, __code next(Type* data, Type* data1, ...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">isEmpty</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>, __code next(...), __code whenEmpty(...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">get</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>, __code next(Type* data, ...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">get2</span><span class="hljs-params">(Impl* <span class="hljs-built_in">stack</span>, __code next(Type* data, Type* data1, ...))</span></span>;
-        <span class="hljs-function">__code <span class="hljs-title">next</span><span class="hljs-params">(...)</span></span>;
-} Stack;
-</span></span></foreignObject></svg></code></pre>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="43" data-paginate="true" data-marpit-pagination="43" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>定義し直したInterface構文</h1>
-<ul>
-<li>APIのみを記述すれば良くなった</li>
-</ul>
-<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap></span></span></foreignObject></svg></code></pre>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="44" data-paginate="true" data-marpit-pagination="44" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="43" data-paginate="true" data-marpit-pagination="43" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Implementの型定義ファイルの導入</h1>
 <ul>
 <li>Interfaceは型定義ファイルがあったが、実装側はなかった</li>
-<li>context.h上にメタな構造体に直した実装の型を手で書いていた
+<li>context.h上のunion Dataの定義に型定義を書いていた
 <ul>
+<li>メタな構造体に直した実装の型を手書き</li>
+<li>型定義の一貫性がない(Intefaceはファイルが導入)</li>
 <li>これはメタ情報なので手で書きたくない</li>
-<li>型定義の一貫性がない</li>
 </ul>
 </li>
 <li>実装側にも型定義ファイルを導入して一貫性を持たせたい
 <ul>
-<li>Perlトランスパイラフレームワークで利用可能</li>
+<li>PerlトランスパイラフレームワークでInterface/Implの定義ファイルを纏めて扱える</li>
 </ul>
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="45" data-paginate="true" data-marpit-pagination="45" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="44" data-paginate="true" data-marpit-pagination="44" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Implementの型定義</h1>
 <ul>
 <li>基本はInterfaceと同じシンタックス
@@ -744,31 +753,11 @@
 } PhilsImpl;
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="46" data-paginate="true" data-marpit-pagination="46" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="45" data-paginate="true" data-marpit-pagination="45" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Interfaceの実装時の型名の省略</h1>
 <ul>
-<li>従来は型名を必ず書かなければならなかった
-<ul>
-<li>これはメタ情報なので変換時に書き換える</li>
-</ul>
-</li>
+<li>APIのCodeGearには、トランスパイル時に具体的な型が名前につけられる</li>
 </ul>
-<h3>従来</h3>
-<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pickup_lforkPhilsImpl</span><span class="hljs-params">(struct PhilsImpl* phils, __code next(...))</span> </span>{
-    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">AtomicT_int</span>* <span class="hljs-title">left_fork</span> =</span> phils-&gt;Leftfork;
-    <span class="hljs-keyword">goto</span> left_fork-&gt;checkAndSet(<span class="hljs-number">-1</span>, phils-&gt;self, pickup_rforkPhilsImpl, eatingPhilsImpl);
-
-}
-</span></span></foreignObject></svg></code></pre>
-<h3>現在</h3>
-<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pickup_lfork</span><span class="hljs-params">(struct PhilsImpl* phils, __code next(...))</span> </span>{
-    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">AtomicT_int</span>* <span class="hljs-title">left_fork</span> =</span> phils-&gt;Leftfork;
-    <span class="hljs-keyword">goto</span> left_fork-&gt;checkAndSet(<span class="hljs-number">-1</span>, phils-&gt;self, pickup_rfork, eating);
-
-}
-</span></span></foreignObject></svg></code></pre>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="47" data-paginate="true" data-marpit-pagination="47" data-marpit-pagination-total="65" style="--paginate:true;">
 <h3>トランスパイル前</h3>
 <pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pickup_lfork</span><span class="hljs-params">(struct PhilsImpl* phils, __code next(...))</span> </span>{
     <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">AtomicT_int</span>* <span class="hljs-title">left_fork</span> =</span> phils-&gt;Leftfork;
@@ -780,37 +769,60 @@
 <pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pickup_lforkPhilsImpl</span><span class="hljs-params">(struct Context *context,struct PhilsImpl* phils, <span class="hljs-keyword">enum</span> Code next)</span> </span>{
     <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">AtomicT_int</span>* <span class="hljs-title">left_fork</span> =</span> phils-&gt;Leftfork;
     Gearef(context, AtomicT_int)-&gt;atomicT_int = (<span class="hljs-keyword">union</span> Data*) left_fork;
-    Gearef(context, AtomicT_int)-&gt;oldData = <span class="hljs-number">-1</span>;
-    Gearef(context, AtomicT_int)-&gt;newData = phils-&gt;self;
+    ...
     Gearef(context, AtomicT_int)-&gt;next = C_pickup_rforkPhilsImpl;
     Gearef(context, AtomicT_int)-&gt;fail = C_eatingPhilsImpl;
     <span class="hljs-function"><span class="hljs-keyword">goto</span> <span class="hljs-title">meta</span><span class="hljs-params">(context, left_fork-&gt;checkAndSet)</span></span>;
-
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="48" data-paginate="true" data-marpit-pagination="48" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Interfaceのパーサーの導入</h1>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="46" data-paginate="true" data-marpit-pagination="46" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>PerlトランスパイラでのInterfaceのエラー生成</h1>
 <ul>
-<li>PerlでのInterfaceの情報の取得は、CbC自体のファイルの解析処理と共通だった
+<li>Interfaceの実装時に様々なミスをする可能性がある
 <ul>
-<li>Interfaceならではの情報が取れない</li>
-<li>スクリプトに直接書かれているので他のツールが使えない</li>
+<li>APIを完全に実装していない</li>
+<li>呼び出しの引数を間違えている</li>
+<li>無いAPIを呼び出している</li>
 </ul>
 </li>
-<li>モジュール化したInterfaceのパーサーを導入した
-<ul>
-<li>Perlフレームワークを使う一連のツールの作製が可能になった
+<li>従来は変換した後CbCコンパイラがコンパイルする際や、実行時にしかエラーが出なかった
 <ul>
-<li>InterfaceとImplを見た実装の雛形ファイルの作製ツール</li>
-<li>コード変換時にInterfaceのAPIに関連するチェック機能</li>
-</ul>
-</li>
+<li>どの記述でエラーが出たのかの特定が困難</li>
+<li>CbCコンパイラがコンパイルする前にトランスパイラで検知したい</li>
 </ul>
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="49" data-paginate="true" data-marpit-pagination="49" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="47" data-paginate="true" data-marpit-pagination="47" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>実装をし忘れているAPIがあった場合のエラー終了</h1>
+<ul>
+<li>PerlトランスパイラでのInterfaceのエラー生成
+<ul>
+<li>CbCコンパイラが動く前にエラーを検知</li>
+</ul>
+</li>
+</ul>
+<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>[ 33%] Generating c/examples/DPP2/PhilsImpl.c
+[ERROR] Not define eating at examples/DPP2/PhilsImpl.cbc
+make[3]: *** [CMakeFiles/DPP2.dir/build.make:101: c/examples/DPP2/PhilsImpl.c] Error 25
+make[2]: *** [CMakeFiles/Makefile2:442: CMakeFiles/DPP2.dir/all] Error 2
+make[1]: *** [CMakeFiles/Makefile2:450: CMakeFiles/DPP2.dir/rule] Error 2
+make: *** [Makefile:293: DPP2] Error 2
+</span></span></foreignObject></svg></code></pre>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="48" data-paginate="true" data-marpit-pagination="48" data-marpit-pagination-total="62" style="--paginate:true;">
+<h1>手書きからの解放</h1>
+<ul>
+<li>従来はメタレベルの計算に関係する処理・ファイルを手書きするケースが多々あった
+<ul>
+<li>手書きではなく型定義ファイルからのファイル生成</li>
+<li>トランスパイル時にコードの解析を行いメタ計算を自動生成</li>
+</ul>
+</li>
+</ul>
+</section>
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="49" data-paginate="true" data-marpit-pagination="49" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>今回の修論での変更点/追加点の一覧</h1>
 <table>
 <thead>
@@ -861,64 +873,15 @@
 <td>手書き</td>
 <td>meta.pmによって自動化</td>
 </tr>
+<tr>
+<td>par gotoのInterface呼び出し</td>
+<td>非対応</td>
+<td>対応</td>
+</tr>
 </tbody>
 </table>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="50" data-paginate="true" data-marpit-pagination="50" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>Interfaceの実装の雛形生成コマンドの実装</h1>
-<ul>
-<li>Interfaceと実装する型が決まると、最低限書かないといけないCodeGearが決まる</li>
-<li>従来は手作業でCbCファイルにCodeGearの定義を書いて実装していた
-<ul>
-<li>コンストラクタも手書き</li>
-</ul>
-</li>
-<li>JavaはIDEで、golangはコマンドとして雛形を生成するものを用意している
-<ul>
-<li>GearsOSでも導入した</li>
-</ul>
-</li>
-<li>実装の型ファイルを引数で渡すと雛形を生成する</li>
-</ul>
-<pre><code class="language-shell"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-meta">$</span><span class="bash">perl too/impl2cbc.pl SingleLinkedStack.h</span>
-</span></span></foreignObject></svg></code></pre>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="51" data-paginate="true" data-marpit-pagination="51" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>PerlトランスパイラでのInterfaceのエラー生成</h1>
-<ul>
-<li>Interfaceの実装時に様々なミスをする可能性がある
-<ul>
-<li>APIを完全に実装していない</li>
-<li>呼び出しの引数を間違えている</li>
-<li>無いAPIを呼び出している</li>
-</ul>
-</li>
-<li>従来は変換した後CbCコンパイラがコンパイルする際や、実行時にしかエラーが出なかった
-<ul>
-<li>どの記述でエラーが出たのかの特定が困難</li>
-<li>CbCコンパイラがコンパイルする前にトランスパイラで検知したい</li>
-</ul>
-</li>
-</ul>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="52" data-paginate="true" data-marpit-pagination="52" data-marpit-pagination-total="65" style="--paginate:true;">
-<h1>実装をし忘れているAPIがあった場合のエラー終了</h1>
-<ul>
-<li>PerlトランスパイラでのInterfaceのエラー生成
-<ul>
-<li>CbCコンパイラが動く前にエラーを検知</li>
-</ul>
-</li>
-</ul>
-<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>[ 33%] Generating c/examples/DPP2/PhilsImpl.c
-[ERROR] Not define eating at examples/DPP2/PhilsImpl.cbc
-make[3]: *** [CMakeFiles/DPP2.dir/build.make:101: c/examples/DPP2/PhilsImpl.c] Error 25
-make[2]: *** [CMakeFiles/Makefile2:442: CMakeFiles/DPP2.dir/all] Error 2
-make[1]: *** [CMakeFiles/Makefile2:450: CMakeFiles/DPP2.dir/rule] Error 2
-make: *** [Makefile:293: DPP2] Error 2
-</span></span></foreignObject></svg></code></pre>
-</section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="53" data-paginate="true" data-marpit-pagination="53" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="50" data-paginate="true" data-marpit-pagination="50" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Context定義ファイルの自動生成</h1>
 <ul>
 <li>ContextはすべてのDataGearの型情報をunion Dataとして持つ必要がある
@@ -933,17 +896,8 @@
 </li>
 <li>ビルド時に使用しているDataGearを回収し、 context.hを作製する</li>
 </ul>
-<pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-class"><span class="hljs-keyword">union</span> <span class="hljs-title">Data</span> {</span>
-    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Stack</span> {</span>
-        ...
-    } Stack;
-    <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">SingleLinkedStack</span> {</span>
-        ...
-    } SingleLinkedStack;
-}
-</span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="54" data-paginate="true" data-marpit-pagination="54" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="51" data-paginate="true" data-marpit-pagination="51" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>StubCodeGear</h1>
 <ul>
 <li>実行したいCodeGearの直前に実行されるMetaCodeGear</li>
@@ -956,7 +910,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="55" data-paginate="true" data-marpit-pagination="55" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="52" data-paginate="true" data-marpit-pagination="52" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>出力があるIntefaceのAPI</h1>
 <h2>Stackから値を2つ取得するpop2 APIの定義の一部</h2>
 <ul>
@@ -983,7 +937,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="56" data-paginate="true" data-marpit-pagination="56" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="53" data-paginate="true" data-marpit-pagination="53" data-marpit-pagination-total="62" style="--paginate:true;">
 <h2>メタに変換されたpop2</h2>
 <ul>
 <li>Contextの中のDataGearの保存場所にあるStack Interfaceにdataを書き込んでいる</li>
@@ -1009,7 +963,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="57" data-paginate="true" data-marpit-pagination="57" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="54" data-paginate="true" data-marpit-pagination="54" data-marpit-pagination-total="62" style="--paginate:true;">
 <h2>pop2 APIの呼び出し(ノーマルレベル)</h2>
 <ul>
 <li>継続で渡している <code>pop2Test1</code>で2つの値を受け取りたい</li>
@@ -1032,7 +986,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="58" data-paginate="true" data-marpit-pagination="58" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="55" data-paginate="true" data-marpit-pagination="55" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Stackからの値を受け取るCodeGear</h1>
 <ul>
 <li>継続で渡されたCodeGearがContextから値をとってくるMetaCodeGearは手書きする必要があった
@@ -1042,7 +996,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="59" data-paginate="true" data-marpit-pagination="59" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="56" data-paginate="true" data-marpit-pagination="56" data-marpit-pagination-total="62" style="--paginate:true;">
 <h2>別のInterfaceの出力を受けるCodeGearのメタ計算部分の自動生成</h2>
 <ul>
 <li><code>goto interface-&gt;method()</code>している箇所を読み取る
@@ -1059,7 +1013,7 @@
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="60" data-paginate="true" data-marpit-pagination="60" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="57" data-paginate="true" data-marpit-pagination="57" data-marpit-pagination-total="62" style="--paginate:true;">
 <h2>元のStub</h2>
 <pre><code class="language-c"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-function">__code <span class="hljs-title">pop2Test1StackTestImpl3_stub</span><span class="hljs-params">(struct Context* context)</span> </span>{
   StackTestImpl3* stackTest = (StackTestImpl3*)GearImpl(context, StackTest, stackTest);
@@ -1081,7 +1035,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="61" data-paginate="true" data-marpit-pagination="61" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="58" data-paginate="true" data-marpit-pagination="58" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>メタ計算の切り替えAPI</h1>
 <ul>
 <li>CodeGearが継続するMetaCodeGearを自由に選択できるPerlモジュールを導入した
@@ -1094,7 +1048,7 @@
 <img src="./metapm.svg" alt="w:932 h:10cm" style="width:932px;height:10cm;" /></li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="62" data-paginate="true" data-marpit-pagination="62" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="59" data-paginate="true" data-marpit-pagination="59" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1><a href="http://meta.pm">meta.pm</a></h1>
 <ul>
 <li><code>replaceMeta</code>関数に置換対象を登録
@@ -1118,7 +1072,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="63" data-paginate="true" data-marpit-pagination="63" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="60" data-paginate="true" data-marpit-pagination="60" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>Perlトランスパイルで生成されたメタ部分の比較</h1>
 <h2>meta.pm導入前</h2>
 <ul>
@@ -1139,7 +1093,7 @@
 }
 </span></span></foreignObject></svg></code></pre>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="64" data-paginate="true" data-marpit-pagination="64" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="61" data-paginate="true" data-marpit-pagination="61" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>今後の課題</h1>
 <ul>
 <li>Perlトランスパイラのリファクタリング
@@ -1159,14 +1113,15 @@
 <li>GearsOSを既存のUNIXの置き換えとして実行したい</li>
 </ul>
 </li>
-<li>ノーマルレベルの記述の純粋関数化
+<li>ノーマルレベルの記述の純粋関数化、別の言語での定義
 <ul>
 <li>CbC/Cベースの記述ではノーマルレベルの記述に限界がある</li>
+<li>Perlトランスパイラの機能をさらに拡張すると、PerlでCbCコンパイラを実装することに近くなってしまう</li>
 </ul>
 </li>
 </ul>
 </section>
-</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="65" data-paginate="true" data-marpit-pagination="65" data-marpit-pagination-total="65" style="--paginate:true;">
+</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="62" data-paginate="true" data-marpit-pagination="62" data-marpit-pagination-total="62" style="--paginate:true;">
 <h1>まとめ</h1>
 <ul>
 <li>Perlトランスパイラのフレームワークの機能を充実させた</li>
--- a/slide/index.md	Mon Feb 08 08:51:56 2021 +0900
+++ b/slide/index.md	Mon Feb 08 09:49:50 2021 +0900
@@ -64,7 +64,7 @@
 - 手書きからの解放
 - MetaCodeGearの入れ替え機能の追加
 
-#### まずGearsOSについて確認をしてから、新機能の解説を行う
+まずGearsOSについて確認をしてから、新機能の解説を行う
 
 ---
 # ノーマルレベルから見たGearsOSの構成
@@ -185,12 +185,32 @@
 ```
 
 ---
+# par goto
+- GearsOSの並行呼び出し構文
+- 通常のgoto文の様に`par goto`と書くと、並列実行される
+
+```c
+    Phils* phils0 = createPhilsImpl(context,0,fork0,fork1);
+    Phils* phils1 = createPhilsImpl(context,1,fork1,fork2); 
+    Phils* phils2 = createPhilsImpl(context,2,fork2,fork3); 
+    Phils* phils3 = createPhilsImpl(context,3,fork3,fork4); 
+    Phils* phils4 = createPhilsImpl(context,4,fork4,fork0); 
+
+    par goto phils0->thinking(exit_code);
+    par goto phils1->thinking(exit_code);
+    par goto phils2->thinking(exit_code);
+    par goto phils3->thinking(exit_code);
+    par goto phils4->thinking(exit_code);
+```
+
+---
 # ノーマルレベルのまとめ
 - `goto next`などで次の継続に飛ぶ
     - 継続に値を渡すことも可能
 - ノーマルレベルのGearsOSのコードにはInterfaceがある
     - 実装を隠蔽、抽象化できる
     - 呼び出す際は`goto interface->method()`を使う
+- `par goto`で並列実行
 
 ---
 # GearsOSのメタレベルの計算とMetaDataGear
@@ -202,14 +222,16 @@
 # MetaDataGear
 - ノーマルレベルのCodeGearの前後でMetaCodeGearが実行される
     - MetaCodeGear参照するDataGearのことをMetaDataGearと呼ぶ
-        - Context
-        - TaskManager
-        - Worker
-        - ...
 ![h:220 w:800](./metacg.svg)
 
 ---
-# Context(1)
+# GearsOSのシステム構成
+- MetaDataGearであるContext, TaskManager, Workerによって構成
+
+![](./gears_structure.svg)
+
+---
+# Context
 - 従来のOSのプロセスに相当するMetaDataGear
 - GearsOSでのプログラム実行に必要な情報を持っている
     - DataGearの型定義
@@ -217,15 +239,49 @@
     - goto時に引数を書き込むDataGearごとの場所
     - DataGearを管理するヒープ情報
 ---
-# Context(2)
+# Context
 - GearsOSでcontextを触るのはメタ計算部分だけ
     - ノーマルレベルではcontextに触れない
 - 従来は手書きでcontext.hの中で定義
 - Context自体は構造体で定義されている
-    - Contextの要素にDataGearの型がすべて揃った共用体がある
 ![w:532 h:10cm](./context.svg)
 
 
+---
+# メタレベルでのDataGearの管理
+- メタレベルではDataGearを纏めて管理する必要がある
+- すべてのDataGearはCの共用体を使って定義される
+    - `union Data`型
+- `union Data`はすべてのDataGearにキャストすることが可能
+    - Contextには`union Data`としてDataGearを保存する
+- メタレベルの計算では必ずこの`union Data`が利用される
+
+```c
+union Data {
+    struct Stack {
+        ...
+    } Stack;
+    struct SingleLinkedStack {
+        ...
+    } SingleLinkedStack;
+    struct Context Context;
+    ...
+}
+```
+
+---
+# union Dataの定義
+
+- union Data型はcontext.hに定義されている
+- 計算で使うすべてのDataGearの構造体の定義を列挙する
+    - 従来は手書きですべて記述
+    - Intefaceの定義を書き、CbCを書き、context.hに追記...
+- 手書きで生成していたので、いくつかの問題があった
+    - 整理しないと計算に使わないDataGearの定義が残る
+    - Interfaceの定義ファイルと食い違うケースがある
+    - DataGearの数が増えると手書きするのが煩雑
+- すべてのメタレベルの計算の元となる重要なデータ
+    - 手書きの場合ミスが発生する可能性が高い
 
 
 ---
@@ -337,44 +393,8 @@
     - 実装のコードをほとんど変えずにモデル検査を導入できるようにしたい
 
 
----
-# GearsOSのメタ計算フレームワークとInterface
-- CbCには無いモジュール化の仕組みとしてInterfaceがある
-    - Perlフレームワーク上に構築
-    - コンパイル時に等価な純粋なCbCに変換する
-- Interfaceの機能が他の言語のInterfaceの機能とギャップがあった
-    - 実装していないAPIがあっても、変換前の時点でエラーが出ないなど
-- Interfaceの定義ファイルもあるものと無いものがあった
-    - トランスパイラで統一な処理が出来ない
 
 
----
-# Perlを中心としたフレームワークによるメタ計算の生成
-- GearsOSの例題を作製する場合も、コピペや手書きが多発していた
-    - フレームワークに実装したAPIを使って自動生成に変更したい
-- Interfaceの機能充実も、 メタ計算の生成もCbCで行うのは難しい
-    - Perlを中心としたフレームワークを活用したい
-- コード変換(トランスパイル)を行うために必要な環境の整備もする必要がある
-- Perlを中心としたトランスパイルシステムの整備、拡張を行った
-    - GearsOSのメタ計算の生成がより柔軟かつ高い信頼性で可能となった
-
----
-# GearsOSの基礎概念
-- CodeGear、DataGear
-- Interface
-- GearsOSのビルドシステム
-    - cmake
-    - Perlトランスパイラ
-
-
-
-
-
-
-
----
-# InterfaceとDataGear
-- Interface
 
 ---
 # GearsOSのビルドシステム
@@ -399,6 +419,7 @@
 # Perlトランスパイラが生成するファイル
 
 - context.hの中身をもとに生成するファイルが多い
+    - このファイルで定義した内容をもとにメタレベルの計算をするので重要
 
 |ファイル名|内容|元にするファイル|
 |-|-|-|
@@ -410,6 +431,28 @@
 |typedefData.h | DataGearのtypef一覧| context.h|
 |dataGearInit.c| DataGearのアロケート処理| context.h|
 
+
+---
+# GearsOSのメタレベルについてのまとめ
+- ノーマルレベルで書いたCodeGearにはContextの操作が付け加わる
+- 継続への書き込み、CodeGearの値の受け取りはContext経由で行われる
+    - 値の受け取りはStubCodeGearが行う
+    - PerlトランスパイラでMetaCodeGearが生成される
+- メタレベルへの変換はビルド時にPerlトランスパイラによって行われる
+- メタレベルの情報はPerlトランスパイラが生成するファイがル重要
+    - DataGearの扱いはcontext.hに定義したunion Dataに依存する
+
+
+---
+# Perlを中心としたフレームワークによるメタ計算の生成
+- GearsOSの例題を作製する場合も、コピペや手書きが多発していた
+    - フレームワークに実装したAPIを使って自動生成に変更したい
+- Interfaceの機能充実も、 メタ計算の生成もCbCで行うのは難しい
+    - Perlを中心としたフレームワークを活用したい
+- コード変換(トランスパイル)を行うために必要な環境の整備もする必要がある
+- Perlを中心としたトランスパイルシステムの整備、拡張を行った
+    - GearsOSのメタ計算の生成がより柔軟かつ高い信頼性で可能となった
+
 ---
 # 主なGearsOSに導入された新機能
 - Interfaceシステムの強化
@@ -422,6 +465,7 @@
     - より簡潔に明確に記述できるように定義した。
 - Interfaceの実装の型の導入
     - GearsOSでの型定義の方法に一貫性が生まれた
+- InterfaceのParserの実装
 - Interfaceの引数の確認
 - Interfaceで未定義のAPIの検知
 - InterfaceにないAPIの呼び出しの検知
@@ -440,6 +484,7 @@
 # GearsOSの新機能
 - **自由なMetaCodeGearの作製、継続の入れ替え機能**
 - Perlトランスパイラの変換ルーチンのデバッグ機能の追加
+    - トランスパイラそのもののデバッグが困難であった
 - ジェネリクスのサポート
 
 
@@ -449,51 +494,14 @@
     - CbCの変換後のコードでなく、Perlレベルでエラー検知可能になった
 
 ---
-# Interfaceの定義構文の改良
-- 従来は引数とCodeGearの定義を別けて記述していた
-    - Interfaceの宣言なので、書ける変数は引数/出力のもののみ
-- Javaのクラス変数やインスタンス変数のようなものだと思われてしまった
-    - GearsOSに慣れてない
-    - シンタックスが問題
-- シンタックスをgolangやJavaのInterfaceを参考に簡潔なものにした
-
-
----
-# 従来のInterface
-- 引数の組とAPI(CodeGear)は別けて記述する必要があった
-```c
-typedef struct Stack<Type, Impl>{
-        union Data* stack;
-        union Data* data;
-        union Data* data1;
-
-
-        __code whenEmpty(...);
-        __code clear(Impl* stack,__code next(...));
-        __code push(Impl* stack,Type* data, __code next(...));
-        __code pop(Impl* stack, __code next(Type* data, ...));
-        __code pop2(Impl* stack, __code next(Type* data, Type* data1, ...));
-        __code isEmpty(Impl* stack, __code next(...), __code whenEmpty(...));
-        __code get(Impl* stack, __code next(Type* data, ...));
-        __code get2(Impl* stack, __code next(Type* data, Type* data1, ...));
-        __code next(...);
-} Stack;
-```
-
----
-# 定義し直したInterface構文
-- APIのみを記述すれば良くなった
-```c
-```
-
----
 # Implementの型定義ファイルの導入
 - Interfaceは型定義ファイルがあったが、実装側はなかった
-- context.h上にメタな構造体に直した実装の型を手で書いていた
+- context.h上のunion Dataの定義に型定義を書いていた
+    - メタな構造体に直した実装の型を手書き
+    - 型定義の一貫性がない(Intefaceはファイルが導入)
     - これはメタ情報なので手で書きたくない
-    - 型定義の一貫性がない
 - 実装側にも型定義ファイルを導入して一貫性を持たせたい
-    - Perlトランスパイラフレームワークで利用可能
+    - PerlトランスパイラフレームワークでInterface/Implの定義ファイルを纏めて扱える
 
 ---
 # Implementの型定義
@@ -511,28 +519,7 @@
 ```
 ---
 # Interfaceの実装時の型名の省略
-- 従来は型名を必ず書かなければならなかった
-    - これはメタ情報なので変換時に書き換える
-### 従来
-
-```c
-__code pickup_lforkPhilsImpl(struct PhilsImpl* phils, __code next(...)) {
-    struct AtomicT_int* left_fork = phils->Leftfork;
-    goto left_fork->checkAndSet(-1, phils->self, pickup_rforkPhilsImpl, eatingPhilsImpl);
-
-}
-```
-### 現在
-
-```c
-__code pickup_lfork(struct PhilsImpl* phils, __code next(...)) {
-    struct AtomicT_int* left_fork = phils->Leftfork;
-    goto left_fork->checkAndSet(-1, phils->self, pickup_rfork, eating);
-
-}
-```
-
----
+- APIのCodeGearには、トランスパイル時に具体的な型が名前につけられる
 ### トランスパイル前
 ```c
 __code pickup_lfork(struct PhilsImpl* phils, __code next(...)) {
@@ -546,50 +533,13 @@
 __code pickup_lforkPhilsImpl(struct Context *context,struct PhilsImpl* phils, enum Code next) {
     struct AtomicT_int* left_fork = phils->Leftfork;
     Gearef(context, AtomicT_int)->atomicT_int = (union Data*) left_fork;
-    Gearef(context, AtomicT_int)->oldData = -1;
-    Gearef(context, AtomicT_int)->newData = phils->self;
+    ...
     Gearef(context, AtomicT_int)->next = C_pickup_rforkPhilsImpl;
     Gearef(context, AtomicT_int)->fail = C_eatingPhilsImpl;
     goto meta(context, left_fork->checkAndSet);
-
 }
 ```
----
-# Interfaceのパーサーの導入
-- PerlでのInterfaceの情報の取得は、CbC自体のファイルの解析処理と共通だった
-    - Interfaceならではの情報が取れない
-    - スクリプトに直接書かれているので他のツールが使えない
-- モジュール化したInterfaceのパーサーを導入した
-    - Perlフレームワークを使う一連のツールの作製が可能になった
-        - InterfaceとImplを見た実装の雛形ファイルの作製ツール
-        - コード変換時にInterfaceのAPIに関連するチェック機能
 
----
-# 今回の修論での変更点/追加点の一覧
-
-|項目|従来|今回の修論|
-|-|-|-|
-|実装の型ファイル|無し|新たに導入|
-|union Dataの定義|手書き|自動生成|
-|実装のCodeGearの型名|手書き|自動生成|
-|実装のCbCファイル|手書き|雛形を自動生成|
-|別のInterfaceの出力を取得するStub|手書き|自動生成|
-|Interfaceの未実装の場合の警告|無し|新たに導入|
-|Interfaceのparser|スクリプトに埋め込み|モジュール化|
-|MetaCodeGearの差し替え処理|手書き|meta.pmによって自動化|
-
-
----
-# Interfaceの実装の雛形生成コマンドの実装
-- Interfaceと実装する型が決まると、最低限書かないといけないCodeGearが決まる
-- 従来は手作業でCbCファイルにCodeGearの定義を書いて実装していた
-    - コンストラクタも手書き
-- JavaはIDEで、golangはコマンドとして雛形を生成するものを用意している
-    - GearsOSでも導入した
-- 実装の型ファイルを引数で渡すと雛形を生成する
-```shell
-$perl too/impl2cbc.pl SingleLinkedStack.h
-```
 
 
 ---
@@ -617,22 +567,37 @@
 ```
 
 ---
+# 手書きからの解放
+- 従来はメタレベルの計算に関係する処理・ファイルを手書きするケースが多々あった
+    - 手書きではなく型定義ファイルからのファイル生成
+    - トランスパイル時にコードの解析を行いメタ計算を自動生成
+
+
+---
+# 今回の修論での変更点/追加点の一覧
+
+|項目|従来|今回の修論|
+|-|-|-|
+|実装の型ファイル|無し|新たに導入|
+|union Dataの定義|手書き|自動生成|
+|実装のCodeGearの型名|手書き|自動生成|
+|実装のCbCファイル|手書き|雛形を自動生成|
+|別のInterfaceの出力を取得するStub|手書き|自動生成|
+|Interfaceの未実装の場合の警告|無し|新たに導入|
+|Interfaceのparser|スクリプトに埋め込み|モジュール化|
+|MetaCodeGearの差し替え処理|手書き|meta.pmによって自動化|
+|par gotoのInterface呼び出し|非対応|対応|
+
+
+
+
+---
 # Context定義ファイルの自動生成
 - ContextはすべてのDataGearの型情報をunion Dataとして持つ必要がある
     - すべてのDataGearの定義をunion Dataの定義内に書く
 - これは今まで手書きで作製していた
     - Interfaceの型定義ファイルを導入したので、自動生成が可能になった
 - ビルド時に使用しているDataGearを回収し、 context.hを作製する
-```c
-union Data {
-    struct Stack {
-        ...
-    } Stack;
-    struct SingleLinkedStack {
-        ...
-    } SingleLinkedStack;
-}
-```
 ---
 # StubCodeGear
 - 実行したいCodeGearの直前に実行されるMetaCodeGear
@@ -825,8 +790,9 @@
     - GearsOS自身で記述したい
 - xv6への組み込み
     - GearsOSを既存のUNIXの置き換えとして実行したい
-- ノーマルレベルの記述の純粋関数化
+- ノーマルレベルの記述の純粋関数化、別の言語での定義
     - CbC/Cベースの記述ではノーマルレベルの記述に限界がある
+    - Perlトランスパイラの機能をさらに拡張すると、PerlでCbCコンパイラを実装することに近くなってしまう
 ---
 # まとめ
 - Perlトランスパイラのフレームワークの機能を充実させた