@xcompiler/cli 0.2.2 → 0.2.4

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.
@@ -0,0 +1,169 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1360" height="900" viewBox="0 0 1360 900" role="img" aria-labelledby="title desc">
2
+ <title id="title">XCompiler iterative V-model pipeline</title>
3
+ <desc id="desc">A phase iteration plan expands one active phase into a V-model workflow. Failed verification stages feed back to paired upstream stages, while issue recording and debug patching are shown as generic recovery steps.</desc>
4
+ <defs>
5
+ <filter id="soft-shadow" x="-20%" y="-20%" width="140%" height="160%">
6
+ <feDropShadow dx="0" dy="8" stdDeviation="10" flood-color="#0f172a" flood-opacity="0.10"/>
7
+ </filter>
8
+ <linearGradient id="panel-fill" x1="0" y1="0" x2="1" y2="1">
9
+ <stop offset="0%" stop-color="#ffffff"/>
10
+ <stop offset="100%" stop-color="#f8fafc"/>
11
+ </linearGradient>
12
+ <linearGradient id="v-spine" x1="0" y1="0" x2="1" y2="1">
13
+ <stop offset="0%" stop-color="#a5f3fc" stop-opacity="0.55"/>
14
+ <stop offset="50%" stop-color="#ddd6fe" stop-opacity="0.62"/>
15
+ <stop offset="100%" stop-color="#bbf7d0" stop-opacity="0.55"/>
16
+ </linearGradient>
17
+ <marker id="arrow-blue" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
18
+ <path d="M0,0 L0,6 L9,3 z" fill="#2563eb"/>
19
+ </marker>
20
+ <marker id="arrow-dark" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
21
+ <path d="M0,0 L0,6 L9,3 z" fill="#334155"/>
22
+ </marker>
23
+ <marker id="arrow-red" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
24
+ <path d="M0,0 L0,6 L9,3 z" fill="#dc2626"/>
25
+ </marker>
26
+ <style>
27
+ .bg { fill: #f6f8fb; }
28
+ .title { font: 700 34px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #0f172a; }
29
+ .subtitle { font: 500 16px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475569; }
30
+ .section { font: 800 15px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #334155; letter-spacing: 0; }
31
+ .label { font: 700 15px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #0f172a; }
32
+ .small { font: 500 12px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475569; }
33
+ .tiny { font: 600 11px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #64748b; }
34
+ .tag-text { font: 700 11px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #b91c1c; }
35
+ .panel { fill: url(#panel-fill); stroke: #cbd5e1; stroke-width: 1.4; rx: 18; filter: url(#soft-shadow); }
36
+ .phase { fill: #eff6ff; stroke: #2563eb; stroke-width: 1.5; rx: 12; }
37
+ .future { fill: #f1f5f9; stroke: #94a3b8; stroke-width: 1.5; rx: 12; }
38
+ .design { fill: #ecfeff; stroke: #0891b2; stroke-width: 1.5; rx: 12; }
39
+ .coding { fill: #f5f3ff; stroke: #7c3aed; stroke-width: 1.5; rx: 12; }
40
+ .test { fill: #f0fdf4; stroke: #16a34a; stroke-width: 1.5; rx: 12; }
41
+ .gate { fill: #fffbeb; stroke: #d97706; stroke-width: 1.5; rx: 12; }
42
+ .issue { fill: #fef2f2; stroke: #dc2626; stroke-width: 1.5; rx: 12; }
43
+ .debug { fill: #fff7ed; stroke: #ea580c; stroke-width: 1.5; rx: 12; }
44
+ .tag { fill: #fff; stroke: #fecaca; stroke-width: 1; rx: 8; }
45
+ .flow { fill: none; stroke: #2563eb; stroke-width: 2.5; marker-end: url(#arrow-blue); }
46
+ .line { fill: none; stroke: #334155; stroke-width: 2.2; marker-end: url(#arrow-dark); }
47
+ .fail { fill: none; stroke: #dc2626; stroke-width: 2.3; marker-end: url(#arrow-red); }
48
+ .fail-soft { fill: none; stroke: #dc2626; stroke-width: 2.1; stroke-dasharray: 7 8; marker-end: url(#arrow-red); }
49
+ .expectation { fill: none; stroke: #94a3b8; stroke-width: 1.5; stroke-dasharray: 7 8; opacity: 0.65; }
50
+ .spine { fill: none; stroke: url(#v-spine); stroke-width: 18; stroke-linecap: round; stroke-linejoin: round; }
51
+ </style>
52
+ </defs>
53
+
54
+ <rect class="bg" width="1360" height="900"/>
55
+ <text class="title" x="680" y="48" text-anchor="middle">Iterative V-Model Pipeline</text>
56
+ <text class="subtitle" x="680" y="76" text-anchor="middle">Phase planning stays lightweight; each active phase runs a complete V-model cycle with paired recovery.</text>
57
+
58
+ <rect class="panel" x="48" y="106" width="1264" height="126"/>
59
+ <text class="section" x="78" y="138">Phase iteration planning</text>
60
+
61
+ <rect class="future" x="86" y="158" width="166" height="50"/>
62
+ <text class="label" x="169" y="178" text-anchor="middle">Requirement</text>
63
+ <text class="small" x="169" y="197" text-anchor="middle">natural language</text>
64
+
65
+ <rect class="future" x="302" y="158" width="166" height="50"/>
66
+ <text class="label" x="385" y="178" text-anchor="middle">Clarify</text>
67
+ <text class="small" x="385" y="197" text-anchor="middle">ranked QA choices</text>
68
+
69
+ <rect class="phase" x="518" y="150" width="198" height="66"/>
70
+ <text class="label" x="617" y="176" text-anchor="middle">phasePlan.json</text>
71
+ <text class="small" x="617" y="195" text-anchor="middle">P1 active + P2..Pn goals</text>
72
+
73
+ <rect class="phase" x="782" y="150" width="182" height="66"/>
74
+ <text class="label" x="873" y="176" text-anchor="middle">plan.P&lt;N&gt;.json</text>
75
+ <text class="small" x="873" y="195" text-anchor="middle">active phase detail</text>
76
+
77
+ <rect class="future" x="1042" y="150" width="190" height="66"/>
78
+ <text class="label" x="1137" y="176" text-anchor="middle">Planned phases</text>
79
+ <text class="small" x="1137" y="195" text-anchor="middle">expanded later</text>
80
+
81
+ <path class="line" d="M252 183 L302 183"/>
82
+ <path class="line" d="M468 183 L518 183"/>
83
+ <path class="line" d="M716 183 L782 183"/>
84
+ <path class="line" d="M964 183 L1042 183"/>
85
+ <path class="line" d="M873 216 C873 236 873 246 873 268"/>
86
+
87
+ <rect class="panel" x="48" y="268" width="1264" height="588"/>
88
+ <text class="section" x="78" y="304">Active phase V-model</text>
89
+
90
+ <path class="spine" d="M222 360 C246 410 272 444 282 484 C302 538 325 578 337 608 C346 650 354 682 358 704 C438 742 642 742 722 704 C728 682 736 650 743 608 C755 556 780 520 798 484 C828 434 848 400 858 360"/>
91
+
92
+ <path class="expectation" d="M352 344 L738 344"/>
93
+ <path class="expectation" d="M407 468 L673 468"/>
94
+ <path class="expectation" d="M447 592 L633 592"/>
95
+
96
+ <rect class="design" x="92" y="326" width="260" height="68"/>
97
+ <text class="label" x="222" y="351" text-anchor="middle">1. Requirement analysis</text>
98
+ <text class="small" x="222" y="371" text-anchor="middle">goals, constraints, acceptance</text>
99
+
100
+ <rect class="design" x="157" y="450" width="250" height="68"/>
101
+ <text class="label" x="282" y="475" text-anchor="middle">2. High-level design</text>
102
+ <text class="small" x="282" y="495" text-anchor="middle">interfaces, APIs, dependencies</text>
103
+
104
+ <rect class="design" x="227" y="574" width="220" height="68"/>
105
+ <text class="label" x="337" y="599" text-anchor="middle">3. Detailed design</text>
106
+ <text class="small" x="337" y="619" text-anchor="middle">module internals</text>
107
+
108
+ <rect class="coding" x="268" y="674" width="180" height="60"/>
109
+ <text class="label" x="358" y="697" text-anchor="middle">4. Coding</text>
110
+ <text class="small" x="358" y="716" text-anchor="middle">patch / rewrite</text>
111
+
112
+ <rect class="test" x="632" y="674" width="180" height="60"/>
113
+ <text class="label" x="722" y="697" text-anchor="middle">5. Unit test</text>
114
+ <text class="small" x="722" y="716" text-anchor="middle">implementation checks</text>
115
+
116
+ <rect class="test" x="633" y="574" width="220" height="68"/>
117
+ <text class="label" x="743" y="599" text-anchor="middle">6. Integration test</text>
118
+ <text class="small" x="743" y="619" text-anchor="middle">APIs and dependencies</text>
119
+
120
+ <rect class="test" x="673" y="450" width="250" height="68"/>
121
+ <text class="label" x="798" y="475" text-anchor="middle">7. Module test</text>
122
+ <text class="small" x="798" y="495" text-anchor="middle">module-level behavior</text>
123
+
124
+ <rect class="test" x="738" y="326" width="240" height="68"/>
125
+ <text class="label" x="858" y="351" text-anchor="middle">8. Functional test</text>
126
+ <text class="small" x="858" y="371" text-anchor="middle">user-visible result</text>
127
+
128
+ <rect class="gate" x="1098" y="326" width="180" height="68"/>
129
+ <text class="label" x="1188" y="351" text-anchor="middle">Iteration gate</text>
130
+ <text class="small" x="1188" y="371" text-anchor="middle">pass to phase plan</text>
131
+
132
+ <path class="flow" d="M250 394 C268 416 278 432 282 450"/>
133
+ <path class="flow" d="M326 518 C336 540 338 556 337 574"/>
134
+ <path class="flow" d="M378 642 C368 657 362 666 358 674"/>
135
+ <path class="flow" d="M448 704 L632 704"/>
136
+ <path class="flow" d="M722 674 C728 656 736 646 743 642"/>
137
+ <path class="flow" d="M790 574 C802 548 802 532 798 518"/>
138
+ <path class="flow" d="M840 450 C856 428 858 410 858 394"/>
139
+ <path class="line" d="M978 360 L1098 360"/>
140
+ <path class="line" d="M1188 326 L1188 268"/>
141
+
142
+ <path class="fail-soft" d="M738 380 L352 380"/>
143
+ <path class="fail-soft" d="M673 504 L407 504"/>
144
+ <path class="fail-soft" d="M633 628 L447 628"/>
145
+ <path class="fail-soft" d="M632 726 C580 760 500 760 448 726"/>
146
+ <rect class="tag" x="468" y="364" width="154" height="22"/>
147
+ <text class="tag-text" x="545" y="379" text-anchor="middle">Acceptance failed</text>
148
+ <rect class="tag" x="456" y="488" width="160" height="22"/>
149
+ <text class="tag-text" x="536" y="503" text-anchor="middle">Module test failed</text>
150
+ <rect class="tag" x="465" y="612" width="150" height="22"/>
151
+ <text class="tag-text" x="540" y="627" text-anchor="middle">Integration failed</text>
152
+ <rect class="tag" x="471" y="748" width="138" height="22"/>
153
+ <text class="tag-text" x="540" y="763" text-anchor="middle">TestCase failed</text>
154
+
155
+ <rect class="future" x="1098" y="472" width="180" height="284"/>
156
+ <text class="section" x="1188" y="498" text-anchor="middle">Generic error</text>
157
+ <text class="section" x="1188" y="517" text-anchor="middle">handling</text>
158
+ <rect class="issue" x="1113" y="540" width="150" height="36"/>
159
+ <text class="label" x="1188" y="563" text-anchor="middle">Record issue</text>
160
+ <rect class="issue" x="1113" y="596" width="150" height="36"/>
161
+ <text class="label" x="1188" y="619" text-anchor="middle">Classify stage</text>
162
+ <rect class="debug" x="1113" y="652" width="150" height="36"/>
163
+ <text class="label" x="1188" y="675" text-anchor="middle">Patch / rewrite</text>
164
+ <rect class="debug" x="1113" y="708" width="150" height="36"/>
165
+ <text class="label" x="1188" y="731" text-anchor="middle">Re-run checks</text>
166
+ <path class="fail" d="M1188 576 L1188 596"/>
167
+ <path class="fail" d="M1188 632 L1188 652"/>
168
+ <path class="fail" d="M1188 688 L1188 708"/>
169
+ </svg>
@@ -0,0 +1,134 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1360" height="940" viewBox="0 0 1360 940" role="img" aria-labelledby="title desc">
2
+ <title id="title">XCompiler system architecture</title>
3
+ <desc id="desc">XCompiler architecture with thin adapters above the Runtime, workflow and execution capabilities below it, and infrastructure at the bottom. Curved and bus-like paths avoid crossing between layers.</desc>
4
+ <defs>
5
+ <filter id="soft-shadow" x="-20%" y="-20%" width="140%" height="160%">
6
+ <feDropShadow dx="0" dy="8" stdDeviation="10" flood-color="#0f172a" flood-opacity="0.10"/>
7
+ </filter>
8
+ <linearGradient id="panel-fill" x1="0" y1="0" x2="1" y2="1">
9
+ <stop offset="0%" stop-color="#ffffff"/>
10
+ <stop offset="100%" stop-color="#f8fafc"/>
11
+ </linearGradient>
12
+ <marker id="arrow-dark" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
13
+ <path d="M0,0 L0,6 L9,3 z" fill="#334155"/>
14
+ </marker>
15
+ <marker id="arrow-purple" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto" markerUnits="strokeWidth">
16
+ <path d="M0,0 L0,6 L9,3 z" fill="#7c3aed"/>
17
+ </marker>
18
+ <style>
19
+ .bg { fill: #f6f8fb; }
20
+ .title { font: 700 34px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #0f172a; }
21
+ .subtitle { font: 500 16px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475569; }
22
+ .layer { fill: url(#panel-fill); stroke: #cbd5e1; stroke-width: 1.4; rx: 18; filter: url(#soft-shadow); }
23
+ .layer-name { font: 800 15px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #334155; letter-spacing: 0; }
24
+ .label { font: 700 15px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #0f172a; }
25
+ .small { font: 500 12px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #475569; }
26
+ .box { fill: #f8fafc; stroke: #94a3b8; stroke-width: 1.4; rx: 12; }
27
+ .adapter { fill: #eff6ff; stroke: #2563eb; }
28
+ .runtime { fill: #f5f3ff; stroke: #7c3aed; }
29
+ .workflow { fill: #ecfeff; stroke: #0891b2; }
30
+ .execution { fill: #f0fdf4; stroke: #16a34a; }
31
+ .infra { fill: #fffbeb; stroke: #d97706; }
32
+ .store { fill: #fef2f2; stroke: #dc2626; }
33
+ .big-arrow { fill: #dbeafe; stroke: #2563eb; stroke-width: 1.5; }
34
+ .big-arrow-text { font: 800 13px Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; fill: #1e40af; }
35
+ .bus { fill: none; stroke: #334155; stroke-width: 2.2; stroke-linecap: round; }
36
+ .line { fill: none; stroke: #334155; stroke-width: 2.2; stroke-linecap: round; marker-end: url(#arrow-dark); }
37
+ .event { fill: none; stroke: #7c3aed; stroke-width: 2.2; stroke-dasharray: 7 8; stroke-linecap: round; marker-end: url(#arrow-purple); }
38
+ </style>
39
+ </defs>
40
+
41
+ <rect class="bg" width="1360" height="940"/>
42
+ <text class="title" x="680" y="48" text-anchor="middle">System Architecture</text>
43
+ <text class="subtitle" x="680" y="76" text-anchor="middle">Adapters translate surfaces into Runtime calls; Runtime owns workflow, capabilities, permissions, and events.</text>
44
+
45
+ <rect class="layer" x="52" y="108" width="1256" height="122"/>
46
+ <text class="layer-name" x="82" y="140">Adapter layer</text>
47
+ <rect class="box adapter" x="116" y="154" width="242" height="50"/>
48
+ <text class="label" x="237" y="174" text-anchor="middle">CLI Adapter</text>
49
+ <text class="small" x="237" y="193" text-anchor="middle">args, config, prompts, exit codes</text>
50
+ <rect class="box adapter" x="559" y="154" width="242" height="50"/>
51
+ <text class="label" x="680" y="174" text-anchor="middle">ACP Code Agent</text>
52
+ <text class="small" x="680" y="193" text-anchor="middle">stdio JSON-RPC for IDEs</text>
53
+ <rect class="box adapter" x="1002" y="154" width="242" height="50"/>
54
+ <text class="label" x="1123" y="174" text-anchor="middle">Future Adapters</text>
55
+ <text class="small" x="1123" y="193" text-anchor="middle">REST, GUI, SDK</text>
56
+
57
+ <path class="big-arrow" d="M612 240 H748 V262 H790 L680 294 L570 262 H612 Z"/>
58
+ <text class="big-arrow-text" x="680" y="259" text-anchor="middle">Runtime calls</text>
59
+
60
+ <rect class="layer" x="52" y="300" width="1256" height="166"/>
61
+ <text class="layer-name" x="82" y="332">Runtime layer</text>
62
+ <rect class="box runtime" x="112" y="368" width="200" height="64"/>
63
+ <text class="label" x="212" y="392" text-anchor="middle">Runtime API</text>
64
+ <text class="small" x="212" y="413" text-anchor="middle">public business entry</text>
65
+ <rect class="box runtime" x="342" y="368" width="200" height="64"/>
66
+ <text class="label" x="442" y="392" text-anchor="middle">Build Service</text>
67
+ <text class="small" x="442" y="413" text-anchor="middle">clarify, design, plan</text>
68
+ <rect class="box runtime" x="572" y="368" width="200" height="64"/>
69
+ <text class="label" x="672" y="392" text-anchor="middle">Run Service</text>
70
+ <text class="small" x="672" y="413" text-anchor="middle">execute phase plans</text>
71
+ <rect class="box runtime" x="802" y="368" width="200" height="64"/>
72
+ <text class="label" x="902" y="392" text-anchor="middle">Event Stream</text>
73
+ <text class="small" x="902" y="413" text-anchor="middle">progress and results</text>
74
+ <rect class="box runtime" x="1032" y="368" width="216" height="64"/>
75
+ <text class="label" x="1140" y="392" text-anchor="middle">Permission Broker</text>
76
+ <text class="small" x="1140" y="413" text-anchor="middle">authorization gates</text>
77
+
78
+ <path class="line" d="M312 400 L342 400"/>
79
+ <path class="line" d="M542 400 L572 400"/>
80
+ <path class="line" d="M772 400 L802 400"/>
81
+ <path class="line" d="M1002 400 L1032 400"/>
82
+
83
+ <rect class="layer" x="52" y="512" width="1256" height="122"/>
84
+ <text class="layer-name" x="82" y="544">Workflow and planning layer</text>
85
+ <rect class="box workflow" x="164" y="564" width="240" height="46"/>
86
+ <text class="label" x="284" y="583" text-anchor="middle">Phase Planner</text>
87
+ <text class="small" x="284" y="600" text-anchor="middle">complexity, priorities, gates</text>
88
+ <rect class="box workflow" x="560" y="564" width="240" height="46"/>
89
+ <text class="label" x="680" y="583" text-anchor="middle">V-Model Engine</text>
90
+ <text class="small" x="680" y="600" text-anchor="middle">stage order, rollback, resume</text>
91
+ <rect class="box workflow" x="956" y="564" width="240" height="46"/>
92
+ <text class="label" x="1076" y="583" text-anchor="middle">Issue Router</text>
93
+ <text class="small" x="1076" y="600" text-anchor="middle">stage-aware debug routing</text>
94
+
95
+ <path class="line" d="M442 432 C426 474 360 520 284 564"/>
96
+ <path class="line" d="M672 432 L680 564"/>
97
+ <path class="line" d="M1140 432 C1122 474 1094 520 1076 564"/>
98
+
99
+ <rect class="layer" x="52" y="680" width="1256" height="128"/>
100
+ <text class="layer-name" x="82" y="712">Execution capability layer</text>
101
+ <rect class="box execution" x="104" y="734" width="260" height="48"/>
102
+ <text class="label" x="234" y="754" text-anchor="middle">Agents / Skills</text>
103
+ <text class="small" x="234" y="772" text-anchor="middle">Planner, Architect, Coder, Tester</text>
104
+ <rect class="box execution" x="412" y="734" width="202" height="48"/>
105
+ <text class="label" x="513" y="754" text-anchor="middle">Tool Guard</text>
106
+ <text class="small" x="513" y="772" text-anchor="middle">read, write, shell, http, git</text>
107
+ <rect class="box execution" x="666" y="734" width="202" height="48"/>
108
+ <text class="label" x="767" y="754" text-anchor="middle">PluginHost</text>
109
+ <text class="small" x="767" y="772" text-anchor="middle">hooks, tools, skills</text>
110
+ <rect class="box execution" x="920" y="734" width="324" height="48"/>
111
+ <text class="label" x="1082" y="754" text-anchor="middle">Project Memory</text>
112
+ <text class="small" x="1082" y="772" text-anchor="middle">.xc progress and .xcompiler state</text>
113
+
114
+ <path class="line" d="M284 610 C276 646 258 690 234 734"/>
115
+ <path class="line" d="M680 610 C648 654 580 700 513 734"/>
116
+ <path class="line" d="M680 610 C708 654 734 700 767 734"/>
117
+ <path class="line" d="M1076 610 C1078 648 1080 694 1082 734"/>
118
+
119
+ <rect class="layer" x="52" y="850" width="1256" height="64"/>
120
+ <text class="layer-name" x="82" y="884">Infrastructure layer</text>
121
+ <rect class="box infra" x="126" y="874" width="222" height="30"/>
122
+ <text class="label" x="237" y="894" text-anchor="middle">LLM Router + Providers</text>
123
+ <rect class="box infra" x="418" y="874" width="190" height="30"/>
124
+ <text class="label" x="513" y="894" text-anchor="middle">Sandbox</text>
125
+ <rect class="box store" x="674" y="874" width="214" height="30"/>
126
+ <text class="label" x="781" y="894" text-anchor="middle">Workspace Files</text>
127
+ <rect class="box store" x="964" y="874" width="236" height="30"/>
128
+ <text class="label" x="1082" y="894" text-anchor="middle">Audit Logs</text>
129
+
130
+ <path class="line" d="M234 782 C234 812 236 842 237 874"/>
131
+ <path class="line" d="M513 782 L513 874"/>
132
+ <path class="line" d="M767 782 C770 812 779 842 781 874"/>
133
+ <path class="line" d="M1082 782 L1082 874"/>
134
+ </svg>
Binary file