rsyntaxtree 1.0.8 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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>