rsyntaxtree 1.0.8 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +77 -0
  3. data/.solargraph.yml +22 -0
  4. data/.tags +238 -10
  5. data/Gemfile +10 -5
  6. data/README.md +3 -2
  7. data/Rakefile +5 -2
  8. data/bin/rsyntaxtree +42 -50
  9. data/docs/Gemfile +3 -1
  10. data/docs/_layouts/default.html +1 -1
  11. data/docs/assets/svg/001.svg +39 -0
  12. data/docs/assets/svg/002.svg +65 -0
  13. data/docs/assets/svg/003.svg +54 -0
  14. data/docs/assets/svg/004.svg +68 -0
  15. data/docs/assets/svg/005.svg +41 -0
  16. data/docs/assets/svg/006.svg +47 -0
  17. data/docs/assets/svg/007.svg +55 -0
  18. data/docs/assets/svg/008.svg +63 -0
  19. data/docs/assets/svg/009.svg +61 -0
  20. data/docs/assets/svg/010.svg +85 -0
  21. data/docs/assets/svg/011.svg +49 -0
  22. data/docs/assets/svg/012.svg +55 -0
  23. data/docs/assets/svg/013.svg +203 -0
  24. data/docs/assets/svg/014.svg +188 -0
  25. data/docs/assets/svg/015.svg +60 -0
  26. data/docs/assets/svg/016.svg +801 -0
  27. data/docs/assets/svg/017.svg +77 -0
  28. data/docs/assets/svg/018.svg +66 -0
  29. data/docs/assets/svg/019.svg +256 -0
  30. data/docs/assets/svg/020.svg +99 -0
  31. data/lib/rsyntaxtree/base_graph.rb +260 -264
  32. data/lib/rsyntaxtree/element.rb +167 -179
  33. data/lib/rsyntaxtree/elementlist.rb +105 -124
  34. data/lib/rsyntaxtree/markup_parser.rb +82 -93
  35. data/lib/rsyntaxtree/string_parser.rb +221 -237
  36. data/lib/rsyntaxtree/svg_graph.rb +158 -197
  37. data/lib/rsyntaxtree/utils.rb +59 -63
  38. data/lib/rsyntaxtree/version.rb +3 -2
  39. data/lib/rsyntaxtree.rb +173 -177
  40. data/rsyntaxtree.gemspec +12 -10
  41. data/test/example_verify_test.rb +96 -0
  42. data/test/markup_parser_test.rb +3 -2
  43. metadata +54 -17
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="1353.4" height="1069.6" viewBox="-20, -20, 1373.4, 1089.6" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="13.440000000000001" markerHeight="13.440000000000001" viewBox="0 0 13.440000000000001 13.440000000000001" refX="6.720000000000001" refY="0">
6
+ <polyline fill="none" stroke="purple" stroke-width="1" points="0,13.440000000000001,6.720000000000001,0,13.440000000000001,13.440000000000001" />
7
+ </marker>
8
+ <pattern id="hatchBlack" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
9
+ <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
10
+ </pattern>
11
+ <pattern id="hatchForNode" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
12
+ <line x1="0" y="0" x2="0" y2="10" stroke="blue" stroke-width="4"></line>
13
+ </pattern>
14
+ <pattern id="hatchForLeaf" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
15
+ <line x1="0" y="0" x2="0" y2="10" stroke="green" stroke-width="4"></line>
16
+ </pattern>
17
+ </defs>
18
+ <rect x="-20" y="-20" width="1373.4" height="1089.6" stroke="none" fill="white" />"
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='637.5625000000001' y='132.0'><tspan x='637.5625000000001' y='132.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">A</tspan>
20
+ </text>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='287.57500000000005' y='431.2'><tspan x='287.57500000000005' y='431.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">B</tspan>
22
+ </text>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='121.30000000000007' y='730.4'><tspan x='121.30000000000007' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">D</tspan>
24
+ </text>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='33.60000000000002' y='1029.6'><tspan x='33.60000000000002' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">H</tspan>
26
+ </text>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='219.0' y='1029.6'><tspan x='219.0' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">I</tspan>
28
+ </text>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='452.35' y='730.4'><tspan x='452.35' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">E</tspan>
30
+ </text>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='376.40000000000003' y='1029.6'><tspan x='376.40000000000003' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">J</tspan>
32
+ </text>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='533.8000000000001' y='1029.6'><tspan x='533.8000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">K</tspan>
34
+ </text>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='993.0500000000002' y='431.2'><tspan x='993.0500000000002' y='431.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">C</tspan>
36
+ </text>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='807.4000000000001' y='730.4'><tspan x='807.4000000000001' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">F</tspan>
38
+ </text>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='714.2' y='1029.6'><tspan x='714.2' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">L</tspan>
40
+ </text>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='888.6000000000001' y='1029.6'><tspan x='888.6000000000001' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">M</tspan>
42
+ </text>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='1175.7000000000003' y='730.4'><tspan x='1175.7000000000003' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">G</tspan>
44
+ </text>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='1083.0' y='1029.6'><tspan x='1083.0' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">N</tspan>
46
+ </text>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='1266.4' y='1029.6'><tspan x='1266.4' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">O</tspan>
48
+ </text>
49
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
50
+ points='308.57500000000005 321.2 308.57500000000005 254.1 660.5625000000001 254.1 660.5625000000001 187.0' />
51
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
52
+ points='1012.5500000000002 321.2 1012.5500000000002 254.1 660.5625000000001 254.1 660.5625000000001 187.0' />
53
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
54
+ points='144.80000000000007 620.4 144.80000000000007 553.3 308.57500000000005 553.3 308.57500000000005 486.2' />
55
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
56
+ points='472.35 620.4 472.35 553.3 308.57500000000005 553.3 308.57500000000005 486.2' />
57
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
58
+ points='59.10000000000002 919.6 59.10000000000002 852.5 144.80000000000007 852.5 144.80000000000007 785.4' />
59
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
60
+ points='230.5 919.6 230.5 852.5 144.80000000000007 852.5 144.80000000000007 785.4' />
61
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
62
+ points='387.90000000000003 919.6 387.90000000000003 852.5 472.35 852.5 472.35 785.4' />
63
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
64
+ points='556.8000000000001 919.6 556.8000000000001 852.5 472.35 852.5 472.35 785.4' />
65
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
66
+ points='826.4000000000001 620.4 826.4000000000001 553.3 1012.5500000000002 553.3 1012.5500000000002 486.2' />
67
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
68
+ points='1198.7000000000003 620.4 1198.7000000000003 553.3 1012.5500000000002 553.3 1012.5500000000002 486.2' />
69
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
70
+ points='734.2 919.6 734.2 852.5 826.4000000000001 852.5 826.4000000000001 785.4' />
71
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
72
+ points='918.6000000000001 919.6 918.6000000000001 852.5 826.4000000000001 852.5 826.4000000000001 785.4' />
73
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
74
+ points='1107.5 919.6 1107.5 852.5 1198.7000000000003 852.5 1198.7000000000003 785.4' />
75
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
76
+ points='1289.9 919.6 1289.9 852.5 1198.7000000000003 852.5 1198.7000000000003 785.4' />
77
+ </svg>
@@ -0,0 +1,66 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="2166.6" height="1668.0000000000002" viewBox="-20, -20, 2186.6, 1688.0000000000002" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="13.440000000000001" markerHeight="13.440000000000001" viewBox="0 0 13.440000000000001 13.440000000000001" refX="6.720000000000001" refY="0">
6
+ <polyline fill="none" stroke="purple" stroke-width="1" points="0,13.440000000000001,6.720000000000001,0,13.440000000000001,13.440000000000001" />
7
+ </marker>
8
+ <pattern id="hatchBlack" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
9
+ <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
10
+ </pattern>
11
+ <pattern id="hatchForNode" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
12
+ <line x1="0" y="0" x2="0" y2="10" stroke="blue" stroke-width="4"></line>
13
+ </pattern>
14
+ <pattern id="hatchForLeaf" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
15
+ <line x1="0" y="0" x2="0" y2="10" stroke="green" stroke-width="4"></line>
16
+ </pattern>
17
+ </defs>
18
+ <rect x="-20" y="-20" width="2186.6" height="1688.0000000000002" stroke="none" fill="white" />"
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='476.5937499999999' y='132.0'><tspan x='476.5937499999999' y='132.0' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
20
+ </text>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='33.60000000000002' y='431.2'><tspan x='33.60000000000002' y='431.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
22
+ </text>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='66.10000000000002' y='730.4'><tspan x='66.10000000000002' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">I</tspan>
24
+ </text>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='852.0874999999999' y='431.2'><tspan x='852.0874999999999' y='431.2' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">PdP</tspan>
26
+ </text>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='467.44999999999993' y='730.4'><tspan x='467.44999999999993' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">VP</tspan>
28
+ </text>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='317.9999999999999' y='1029.6'><tspan x='317.9999999999999' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">V</tspan>
30
+ </text>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='255.9999999999999' y='1328.8000000000002'><tspan x='255.9999999999999' y='1328.8000000000002' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">knew</tspan>
32
+ </text>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='632.8999999999999' y='1029.6'><tspan x='632.8999999999999' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
34
+ </text>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='558.3999999999999' y='1328.8000000000002'><tspan x='558.3999999999999' y='1328.8000000000002' style="font-weight: bold; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Harvey</tspan>
36
+ </text>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='1252.225' y='730.4'><tspan x='1252.225' y='730.4' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Adv</tspan>
38
+ </text>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='929.8' y='1029.6'><tspan x='929.8' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">when</tspan>
40
+ </text>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='1592.6499999999996' y='1029.6'><tspan x='1592.6499999999996' y='1029.6' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">S</tspan>
42
+ </text>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='1309.6999999999998' y='1328.8000000000002'><tspan x='1309.6999999999998' y='1328.8000000000002' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">NP</tspan>
44
+ </text>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='1235.1999999999998' y='1628.0000000000002'><tspan x='1235.1999999999998' y='1628.0000000000002' style="font-weight: bold; " text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">Harvey</tspan>
46
+ </text>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: blue; font-size: 64px;' x='1808.1' y='1328.8000000000002'><tspan x='1808.1' y='1328.8000000000002' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">PdP</tspan>
48
+ </text>
49
+ <text white-space='pre' alignment-baseline='text-top' style='fill: green; font-size: 64px;' x='1606.6' y='1628.0000000000002'><tspan x='1606.6' y='1628.0000000000002' style="" text-decoration="" font-family="'Noto Serif', 'Noto Serif JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', serif">was<tspan style='fill:none;'>■</tspan>a<tspan style='fill:none;'>■</tspan>little<tspan style='fill:none;'>■</tspan>boy</tspan>
50
+ </text>
51
+ <line style='stroke:black; stroke-width:2;' x1='77.60000000000002' y1='321.2' x2='494.0937499999999' y2='187.0' />
52
+ <line style='stroke:black; stroke-width:2;' x1='910.5874999999999' y1='321.2' x2='494.0937499999999' y2='187.0' />
53
+ <line style='stroke:black; stroke-width:2;' x1='77.60000000000002' y1='620.4' x2='77.60000000000002' y2='486.2' />
54
+ <line style='stroke:black; stroke-width:2;' x1='508.44999999999993' y1='620.4' x2='910.5874999999999' y2='486.2' />
55
+ <line style='stroke:black; stroke-width:2;' x1='1312.725' y1='620.4' x2='910.5874999999999' y2='486.2' />
56
+ <line style='stroke:black; stroke-width:2;' x1='339.9999999999999' y1='919.6' x2='508.44999999999993' y2='785.4' />
57
+ <line style='stroke:black; stroke-width:2;' x1='676.8999999999999' y1='919.6' x2='508.44999999999993' y2='785.4' />
58
+ <line style='stroke:black; stroke-width:2;' x1='339.9999999999999' y1='1218.8000000000002' x2='339.9999999999999' y2='1084.6' />
59
+ <line style='stroke:black; stroke-width:2;' x1='676.8999999999999' y1='1218.8000000000002' x2='676.8999999999999' y2='1084.6' />
60
+ <line style='stroke:black; stroke-width:2;' x1='1015.3' y1='919.6' x2='1312.725' y2='785.4' />
61
+ <line style='stroke:black; stroke-width:2;' x1='1610.1499999999996' y1='919.6' x2='1312.725' y2='785.4' />
62
+ <line style='stroke:black; stroke-width:2;' x1='1353.6999999999998' y1='1218.8000000000002' x2='1610.1499999999996' y2='1084.6' />
63
+ <line style='stroke:black; stroke-width:2;' x1='1866.6' y1='1218.8000000000002' x2='1610.1499999999996' y2='1084.6' />
64
+ <line style='stroke:black; stroke-width:2;' x1='1353.6999999999998' y1='1518.0000000000002' x2='1353.6999999999998' y2='1383.8000000000002' />
65
+ <polygon style='fill: none; stroke: black; stroke-width:2;' points='1606.6 1518.0000000000002 2126.6 1518.0000000000002 1866.6 1383.8000000000002' />
66
+ </svg>
@@ -0,0 +1,256 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="3728.6000000000004" height="3295.999999999999" viewBox="-20, -20, 3748.6000000000004, 3315.999999999999" version="1.1" xmlns="http://www.w3.org/2000/svg">
4
+ <defs>
5
+ <marker id="arrow" markerUnits="strokeWidth" markerWidth="12.160000000000002" markerHeight="12.160000000000002" viewBox="0 0 12.160000000000002 12.160000000000002" refX="6.080000000000001" refY="0">
6
+ <polyline fill="none" stroke="black" stroke-width="1" points="0,12.160000000000002,6.080000000000001,0,12.160000000000002,12.160000000000002" />
7
+ </marker>
8
+ <pattern id="hatchBlack" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
9
+ <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
10
+ </pattern>
11
+ <pattern id="hatchForNode" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
12
+ <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
13
+ </pattern>
14
+ <pattern id="hatchForLeaf" x="10" y="10" width="10" height="10" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
15
+ <line x1="0" y="0" x2="0" y2="10" stroke="black" stroke-width="4"></line>
16
+ </pattern>
17
+ </defs>
18
+ <rect x="-20" y="-20" width="3748.6000000000004" height="3315.999999999999" stroke="none" fill="white" />"
19
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1675.0000000000005' y='132.0'><tspan x='1675.0000000000005' y='132.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
20
+ </text>
21
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1749.0000000000005' y='475.20000000000005'><tspan x='1749.0000000000005' y='475.20000000000005' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;while&#62;</tspan>
22
+ </text>
23
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='30.40000000000009' y='818.4'><tspan x='30.40000000000009' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>w<tspan style='fill:none;'>■</tspan></tspan>
24
+ </text>
25
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='278.0000000000002' y='818.4'><tspan x='278.0000000000002' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>(<tspan style='fill:none;'>■</tspan></tspan>
26
+ </text>
27
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='798.4500000000003' y='818.4'><tspan x='798.4500000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
28
+ </text>
29
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='825.4500000000003' y='1161.6'><tspan x='825.4500000000003' y='1161.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
30
+ </text>
31
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='494.60000000000014' y='1504.8'><tspan x='494.60000000000014' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
32
+ </text>
33
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='545.1000000000001' y='1848.0'><tspan x='545.1000000000001' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
34
+ </text>
35
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='600.1000000000001' y='2191.2'><tspan x='600.1000000000001' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
36
+ </text>
37
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='936.2000000000003' y='1504.8'><tspan x='936.2000000000003' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>&#60;<tspan style='fill:none;'>■</tspan></tspan>
38
+ </text>
39
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1170.8000000000002' y='1504.8'><tspan x='1170.8000000000002' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
40
+ </text>
41
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1185.3000000000002' y='1848.0'><tspan x='1185.3000000000002' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
42
+ </text>
43
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1235.8000000000002' y='2191.2'><tspan x='1235.8000000000002' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
44
+ </text>
45
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1287.3000000000002' y='2534.3999999999996'><tspan x='1287.3000000000002' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
46
+ </text>
47
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1641.4000000000003' y='818.4'><tspan x='1641.4000000000003' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>)<tspan style='fill:none;'>■</tspan></tspan>
48
+ </text>
49
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='1858.0000000000005' y='818.4'><tspan x='1858.0000000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>{<tspan style='fill:none;'>■</tspan></tspan>
50
+ </text>
51
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2366.3750000000005' y='818.4'><tspan x='2366.3750000000005' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;statement&#62;</tspan>
52
+ </text>
53
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2423.3750000000005' y='1161.6'><tspan x='2423.3750000000005' y='1161.6' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;assign&#62;</tspan>
54
+ </text>
55
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2079.6000000000004' y='1504.8'><tspan x='2079.6000000000004' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
56
+ </text>
57
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2310.2000000000007' y='1504.8'><tspan x='2310.2000000000007' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>=<tspan style='fill:none;'>■</tspan></tspan>
58
+ </text>
59
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2779.1500000000005' y='1504.8'><tspan x='2779.1500000000005' y='1504.8' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;expression&#62;</tspan>
60
+ </text>
61
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2806.1500000000005' y='1848.0'><tspan x='2806.1500000000005' y='1848.0' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;less-than&#62;</tspan>
62
+ </text>
63
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2820.6500000000005' y='2191.2'><tspan x='2820.6500000000005' y='2191.2' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
64
+ </text>
65
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2544.8' y='2534.3999999999996'><tspan x='2544.8' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
66
+ </text>
67
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2599.8' y='2877.5999999999995'><tspan x='2599.8' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>v<tspan style='fill:none;'>■</tspan></tspan>
68
+ </text>
69
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='2885.4000000000005' y='2534.3999999999996'><tspan x='2885.4000000000005' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>*<tspan style='fill:none;'>■</tspan></tspan>
70
+ </text>
71
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3147.0' y='2534.3999999999996'><tspan x='3147.0' y='2534.3999999999996' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;multiply&#62;</tspan>
72
+ </text>
73
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3197.5' y='2877.5999999999995'><tspan x='3197.5' y='2877.5999999999995' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif">&#60;term&#62;</tspan>
74
+ </text>
75
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3249.0' y='3220.7999999999993'><tspan x='3249.0' y='3220.7999999999993' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>n<tspan style='fill:none;'>■</tspan></tspan>
76
+ </text>
77
+ <text white-space='pre' alignment-baseline='text-top' style='fill: black; font-size: 64px;' x='3588.6000000000004' y='818.4'><tspan x='3588.6000000000004' y='818.4' style="" text-decoration="" font-family="'Noto Sans', 'Noto Sans JP', OpenMoji, 'OpenMoji Color', 'OpenMoji Black', sans-serif"><tspan style='fill:none;'>■</tspan>}<tspan style='fill:none;'>■</tspan></tspan>
78
+ </text>
79
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
80
+ points='1866.0000000000005 365.2 1866.0000000000005 276.1 1866.0000000000005 276.1 1866.0000000000005 187.0' />
81
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
82
+ points='93.40000000000009 708.4 93.40000000000009 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
83
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
84
+ points='325.5000000000002 708.4 325.5000000000002 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
85
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
86
+ points='999.9500000000002 708.4 999.9500000000002 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
87
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
88
+ points='1688.9000000000003 708.4 1688.9000000000003 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
89
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
90
+ points='1908.0000000000005 708.4 1908.0000000000005 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
91
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
92
+ points='2557.3750000000005 708.4 2557.3750000000005 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
93
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
94
+ points='3638.6000000000004 708.4 3638.6000000000004 619.3 1866.0000000000005 619.3 1866.0000000000005 530.2' />
95
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
96
+ points='999.9500000000002 1051.6 999.9500000000002 962.5 999.9500000000002 962.5 999.9500000000002 873.4' />
97
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
98
+ points='654.6000000000001 1394.8 654.6000000000001 1305.6999999999998 999.9500000000002 1305.6999999999998 999.9500000000002 1216.6' />
99
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
100
+ points='992.7000000000003 1394.8 992.7000000000003 1305.6999999999998 999.9500000000002 1305.6999999999998 999.9500000000002 1216.6' />
101
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
102
+ points='1345.3000000000002 1394.8 1345.3000000000002 1305.6999999999998 999.9500000000002 1305.6999999999998 999.9500000000002 1216.6' />
103
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
104
+ points='654.6000000000001 1738.0 654.6000000000001 1648.9 654.6000000000001 1648.9 654.6000000000001 1559.8' />
105
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
106
+ points='654.6000000000001 2081.2 654.6000000000001 1992.1 654.6000000000001 1992.1 654.6000000000001 1903.0' />
107
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
108
+ points='1345.3000000000002 1738.0 1345.3000000000002 1648.9 1345.3000000000002 1648.9 1345.3000000000002 1559.8' />
109
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
110
+ points='1345.3000000000002 2081.2 1345.3000000000002 1992.1 1345.3000000000002 1992.1 1345.3000000000002 1903.0' />
111
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
112
+ points='1345.3000000000002 2424.3999999999996 1345.3000000000002 2335.2999999999997 1345.3000000000002 2335.2999999999997 1345.3000000000002 2246.2' />
113
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
114
+ points='2557.3750000000005 1051.6 2557.3750000000005 962.5 2557.3750000000005 962.5 2557.3750000000005 873.4' />
115
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
116
+ points='2134.1000000000004 1394.8 2134.1000000000004 1305.6999999999998 2557.3750000000005 1305.6999999999998 2557.3750000000005 1216.6' />
117
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
118
+ points='2366.7000000000007 1394.8 2366.7000000000007 1305.6999999999998 2557.3750000000005 1305.6999999999998 2557.3750000000005 1216.6' />
119
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
120
+ points='2980.6500000000005 1394.8 2980.6500000000005 1305.6999999999998 2557.3750000000005 1305.6999999999998 2557.3750000000005 1216.6' />
121
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
122
+ points='2980.6500000000005 1738.0 2980.6500000000005 1648.9 2980.6500000000005 1648.9 2980.6500000000005 1559.8' />
123
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
124
+ points='2980.6500000000005 2081.2 2980.6500000000005 1992.1 2980.6500000000005 1992.1 2980.6500000000005 1903.0' />
125
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
126
+ points='2654.3 2424.3999999999996 2654.3 2335.2999999999997 2980.6500000000005 2335.2999999999997 2980.6500000000005 2246.2' />
127
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
128
+ points='2955.4000000000005 2424.3999999999996 2955.4000000000005 2335.2999999999997 2980.6500000000005 2335.2999999999997 2980.6500000000005 2246.2' />
129
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
130
+ points='3307.0 2424.3999999999996 3307.0 2335.2999999999997 2980.6500000000005 2335.2999999999997 2980.6500000000005 2246.2' />
131
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
132
+ points='2654.3 2767.5999999999995 2654.3 2678.4999999999995 2654.3 2678.4999999999995 2654.3 2589.3999999999996' />
133
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
134
+ points='3307.0 2767.5999999999995 3307.0 2678.4999999999995 3307.0 2678.4999999999995 3307.0 2589.3999999999996' />
135
+ <polyline style='stroke:black; stroke-width:2; fill:none;'
136
+ points='3307.0 3110.7999999999993 3307.0 3021.6999999999994 3307.0 3021.6999999999994 3307.0 2932.5999999999995' />
137
+ <line x1='1659.8000000000004' y1='33.0' x2='2072.2000000000003' y2='33.0' style='fill: none; stroke: black; stroke-width:2' />
138
+ <line x1='1659.8000000000004' y1='33.0' x2='1659.8000000000004' y2='176.0' style='fill: none; stroke: black; stroke-width:2' />
139
+ <line x1='2072.2000000000003' y1='33.0' x2='2072.2000000000003' y2='176.0' style='fill: none; stroke: black; stroke-width:2' />
140
+ <line x1='1659.8000000000004' y1='176.0' x2='2072.2000000000003' y2='176.0' style='fill: none; stroke: black; stroke-width:2' />
141
+ <line x1='1733.8000000000004' y1='376.2' x2='1998.2000000000003' y2='376.2' style='fill: none; stroke: black; stroke-width:2' />
142
+ <line x1='1733.8000000000004' y1='376.2' x2='1733.8000000000004' y2='519.2' style='fill: none; stroke: black; stroke-width:2' />
143
+ <line x1='1998.2000000000003' y1='376.2' x2='1998.2000000000003' y2='519.2' style='fill: none; stroke: black; stroke-width:2' />
144
+ <line x1='1733.8000000000004' y1='519.2' x2='1998.2000000000003' y2='519.2' style='fill: none; stroke: black; stroke-width:2' />
145
+ <line x1='15.20000000000009' y1='719.4' x2='171.6000000000001' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
146
+ <line x1='15.20000000000009' y1='719.4' x2='15.20000000000009' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
147
+ <line x1='171.6000000000001' y1='719.4' x2='171.6000000000001' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
148
+ <line x1='15.20000000000009' y1='862.4' x2='171.6000000000001' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
149
+ <line x1='262.80000000000024' y1='719.4' x2='388.2000000000003' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
150
+ <line x1='262.80000000000024' y1='719.4' x2='262.80000000000024' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
151
+ <line x1='388.2000000000003' y1='719.4' x2='388.2000000000003' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
152
+ <line x1='262.80000000000024' y1='862.4' x2='388.2000000000003' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
153
+ <line x1='783.2500000000002' y1='719.4' x2='1216.65' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
154
+ <line x1='783.2500000000002' y1='719.4' x2='783.2500000000002' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
155
+ <line x1='1216.65' y1='719.4' x2='1216.65' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
156
+ <line x1='783.2500000000002' y1='862.4' x2='1216.65' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
157
+ <line x1='810.2500000000002' y1='1062.6' x2='1189.65' y2='1062.6' style='fill: none; stroke: black; stroke-width:2' />
158
+ <line x1='810.2500000000002' y1='1062.6' x2='810.2500000000002' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
159
+ <line x1='1189.65' y1='1062.6' x2='1189.65' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
160
+ <line x1='810.2500000000002' y1='1205.6' x2='1189.65' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
161
+ <line x1='479.40000000000015' y1='1405.8' x2='829.8000000000002' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
162
+ <line x1='479.40000000000015' y1='1405.8' x2='479.40000000000015' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
163
+ <line x1='829.8000000000002' y1='1405.8' x2='829.8000000000002' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
164
+ <line x1='479.40000000000015' y1='1548.8' x2='829.8000000000002' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
165
+ <line x1='529.9000000000001' y1='1749.0' x2='779.3000000000001' y2='1749.0' style='fill: none; stroke: black; stroke-width:2' />
166
+ <line x1='529.9000000000001' y1='1749.0' x2='529.9000000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
167
+ <line x1='779.3000000000001' y1='1749.0' x2='779.3000000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
168
+ <line x1='529.9000000000001' y1='1892.0' x2='779.3000000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
169
+ <line x1='584.9000000000001' y1='2092.2' x2='724.3000000000001' y2='2092.2' style='fill: none; stroke: black; stroke-width:2' />
170
+ <line x1='584.9000000000001' y1='2092.2' x2='584.9000000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
171
+ <line x1='724.3000000000001' y1='2092.2' x2='724.3000000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
172
+ <line x1='584.9000000000001' y1='2235.2' x2='724.3000000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
173
+ <line x1='921.0000000000002' y1='1405.8' x2='1064.4000000000003' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
174
+ <line x1='921.0000000000002' y1='1405.8' x2='921.0000000000002' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
175
+ <line x1='1064.4000000000003' y1='1405.8' x2='1064.4000000000003' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
176
+ <line x1='921.0000000000002' y1='1548.8' x2='1064.4000000000003' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
177
+ <line x1='1155.6000000000001' y1='1405.8' x2='1535.0' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
178
+ <line x1='1155.6000000000001' y1='1405.8' x2='1155.6000000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
179
+ <line x1='1535.0' y1='1405.8' x2='1535.0' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
180
+ <line x1='1155.6000000000001' y1='1548.8' x2='1535.0' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
181
+ <line x1='1170.1000000000001' y1='1749.0' x2='1520.5' y2='1749.0' style='fill: none; stroke: black; stroke-width:2' />
182
+ <line x1='1170.1000000000001' y1='1749.0' x2='1170.1000000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
183
+ <line x1='1520.5' y1='1749.0' x2='1520.5' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
184
+ <line x1='1170.1000000000001' y1='1892.0' x2='1520.5' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
185
+ <line x1='1220.6000000000001' y1='2092.2' x2='1470.0000000000002' y2='2092.2' style='fill: none; stroke: black; stroke-width:2' />
186
+ <line x1='1220.6000000000001' y1='2092.2' x2='1220.6000000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
187
+ <line x1='1470.0000000000002' y1='2092.2' x2='1470.0000000000002' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
188
+ <line x1='1220.6000000000001' y1='2235.2' x2='1470.0000000000002' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
189
+ <line x1='1272.1000000000001' y1='2435.3999999999996' x2='1418.5000000000002' y2='2435.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
190
+ <line x1='1272.1000000000001' y1='2435.3999999999996' x2='1272.1000000000001' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
191
+ <line x1='1418.5000000000002' y1='2435.3999999999996' x2='1418.5000000000002' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
192
+ <line x1='1272.1000000000001' y1='2578.3999999999996' x2='1418.5000000000002' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
193
+ <line x1='1626.2000000000003' y1='719.4' x2='1751.6000000000004' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
194
+ <line x1='1626.2000000000003' y1='719.4' x2='1626.2000000000003' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
195
+ <line x1='1751.6000000000004' y1='719.4' x2='1751.6000000000004' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
196
+ <line x1='1626.2000000000003' y1='862.4' x2='1751.6000000000004' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
197
+ <line x1='1842.8000000000004' y1='719.4' x2='1973.2000000000005' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
198
+ <line x1='1842.8000000000004' y1='719.4' x2='1842.8000000000004' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
199
+ <line x1='1973.2000000000005' y1='719.4' x2='1973.2000000000005' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
200
+ <line x1='1842.8000000000004' y1='862.4' x2='1973.2000000000005' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
201
+ <line x1='2351.1750000000006' y1='719.4' x2='2763.5750000000007' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
202
+ <line x1='2351.1750000000006' y1='719.4' x2='2351.1750000000006' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
203
+ <line x1='2763.5750000000007' y1='719.4' x2='2763.5750000000007' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
204
+ <line x1='2351.1750000000006' y1='862.4' x2='2763.5750000000007' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
205
+ <line x1='2408.1750000000006' y1='1062.6' x2='2706.5750000000007' y2='1062.6' style='fill: none; stroke: black; stroke-width:2' />
206
+ <line x1='2408.1750000000006' y1='1062.6' x2='2408.1750000000006' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
207
+ <line x1='2706.5750000000007' y1='1062.6' x2='2706.5750000000007' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
208
+ <line x1='2408.1750000000006' y1='1205.6' x2='2706.5750000000007' y2='1205.6' style='fill: none; stroke: black; stroke-width:2' />
209
+ <line x1='2064.4000000000005' y1='1405.8' x2='2203.8000000000006' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
210
+ <line x1='2064.4000000000005' y1='1405.8' x2='2064.4000000000005' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
211
+ <line x1='2203.8000000000006' y1='1405.8' x2='2203.8000000000006' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
212
+ <line x1='2064.4000000000005' y1='1548.8' x2='2203.8000000000006' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
213
+ <line x1='2295.000000000001' y1='1405.8' x2='2438.400000000001' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
214
+ <line x1='2295.000000000001' y1='1405.8' x2='2295.000000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
215
+ <line x1='2438.400000000001' y1='1405.8' x2='2438.400000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
216
+ <line x1='2295.000000000001' y1='1548.8' x2='2438.400000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
217
+ <line x1='2763.9500000000007' y1='1405.8' x2='3197.350000000001' y2='1405.8' style='fill: none; stroke: black; stroke-width:2' />
218
+ <line x1='2763.9500000000007' y1='1405.8' x2='2763.9500000000007' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
219
+ <line x1='3197.350000000001' y1='1405.8' x2='3197.350000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
220
+ <line x1='2763.9500000000007' y1='1548.8' x2='3197.350000000001' y2='1548.8' style='fill: none; stroke: black; stroke-width:2' />
221
+ <line x1='2790.9500000000007' y1='1749.0' x2='3170.350000000001' y2='1749.0' style='fill: none; stroke: black; stroke-width:2' />
222
+ <line x1='2790.9500000000007' y1='1749.0' x2='2790.9500000000007' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
223
+ <line x1='3170.350000000001' y1='1749.0' x2='3170.350000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
224
+ <line x1='2790.9500000000007' y1='1892.0' x2='3170.350000000001' y2='1892.0' style='fill: none; stroke: black; stroke-width:2' />
225
+ <line x1='2805.4500000000007' y1='2092.2' x2='3155.850000000001' y2='2092.2' style='fill: none; stroke: black; stroke-width:2' />
226
+ <line x1='2805.4500000000007' y1='2092.2' x2='2805.4500000000007' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
227
+ <line x1='3155.850000000001' y1='2092.2' x2='3155.850000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
228
+ <line x1='2805.4500000000007' y1='2235.2' x2='3155.850000000001' y2='2235.2' style='fill: none; stroke: black; stroke-width:2' />
229
+ <line x1='2529.6000000000004' y1='2435.3999999999996' x2='2779.0000000000005' y2='2435.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
230
+ <line x1='2529.6000000000004' y1='2435.3999999999996' x2='2529.6000000000004' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
231
+ <line x1='2779.0000000000005' y1='2435.3999999999996' x2='2779.0000000000005' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
232
+ <line x1='2529.6000000000004' y1='2578.3999999999996' x2='2779.0000000000005' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
233
+ <line x1='2584.6000000000004' y1='2778.5999999999995' x2='2724.0000000000005' y2='2778.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
234
+ <line x1='2584.6000000000004' y1='2778.5999999999995' x2='2584.6000000000004' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
235
+ <line x1='2724.0000000000005' y1='2778.5999999999995' x2='2724.0000000000005' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
236
+ <line x1='2584.6000000000004' y1='2921.5999999999995' x2='2724.0000000000005' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
237
+ <line x1='2870.2000000000007' y1='2435.3999999999996' x2='3040.600000000001' y2='2435.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
238
+ <line x1='2870.2000000000007' y1='2435.3999999999996' x2='2870.2000000000007' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
239
+ <line x1='3040.600000000001' y1='2435.3999999999996' x2='3040.600000000001' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
240
+ <line x1='2870.2000000000007' y1='2578.3999999999996' x2='3040.600000000001' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
241
+ <line x1='3131.8' y1='2435.3999999999996' x2='3482.2000000000003' y2='2435.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
242
+ <line x1='3131.8' y1='2435.3999999999996' x2='3131.8' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
243
+ <line x1='3482.2000000000003' y1='2435.3999999999996' x2='3482.2000000000003' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
244
+ <line x1='3131.8' y1='2578.3999999999996' x2='3482.2000000000003' y2='2578.3999999999996' style='fill: none; stroke: black; stroke-width:2' />
245
+ <line x1='3182.3' y1='2778.5999999999995' x2='3431.7000000000003' y2='2778.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
246
+ <line x1='3182.3' y1='2778.5999999999995' x2='3182.3' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
247
+ <line x1='3431.7000000000003' y1='2778.5999999999995' x2='3431.7000000000003' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
248
+ <line x1='3182.3' y1='2921.5999999999995' x2='3431.7000000000003' y2='2921.5999999999995' style='fill: none; stroke: black; stroke-width:2' />
249
+ <line x1='3233.8' y1='3121.7999999999993' x2='3380.2000000000003' y2='3121.7999999999993' style='fill: none; stroke: black; stroke-width:2' />
250
+ <line x1='3233.8' y1='3121.7999999999993' x2='3233.8' y2='3264.7999999999993' style='fill: none; stroke: black; stroke-width:2' />
251
+ <line x1='3380.2000000000003' y1='3121.7999999999993' x2='3380.2000000000003' y2='3264.7999999999993' style='fill: none; stroke: black; stroke-width:2' />
252
+ <line x1='3233.8' y1='3264.7999999999993' x2='3380.2000000000003' y2='3264.7999999999993' style='fill: none; stroke: black; stroke-width:2' />
253
+ <line x1='3573.4000000000005' y1='719.4' x2='3703.8000000000006' y2='719.4' style='fill: none; stroke: black; stroke-width:2' />
254
+ <line x1='3573.4000000000005' y1='719.4' x2='3573.4000000000005' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
255
+ <line x1='3703.8000000000006' y1='719.4' x2='3703.8000000000006' y2='862.4' style='fill: none; stroke: black; stroke-width:2' />
256
+ <line x1='3573.4000000000005' y1='862.4' x2='3703.8000000000006' y2='862.4' style='fill: none; stroke: black; stroke-width:2' /></svg>