pyegeria 5.3.5.3__py3-none-any.whl → 5.3.6.2__py3-none-any.whl

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,341 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "f211c1736f87555",
6
+ "metadata": {},
7
+ "source": [
8
+ "# This notebook contains experimental Freddie commands\n",
9
+ "## Lets see if this is parsed\n",
10
+ "meow"
11
+ ]
12
+ },
13
+ {
14
+ "metadata": {
15
+ "ExecuteTime": {
16
+ "end_time": "2025-03-06T01:43:38.278089Z",
17
+ "start_time": "2025-03-06T01:43:38.276538Z"
18
+ }
19
+ },
20
+ "cell_type": "code",
21
+ "source": "",
22
+ "id": "2716f0b6c001136a",
23
+ "outputs": [],
24
+ "execution_count": null
25
+ },
26
+ {
27
+ "cell_type": "markdown",
28
+ "id": "3b321563-4977-496a-963b-9b9dd75de968",
29
+ "metadata": {},
30
+ "source": [
31
+ "# Create Glossary\n",
32
+ "## Glossary Name\n",
33
+ "\n",
34
+ "Egeria-Markdown\n",
35
+ "\n",
36
+ "## Language\n",
37
+ "English\n",
38
+ "\n",
39
+ "## Description\n",
40
+ "\n",
41
+ "Glossary to describe the vocabulary of Freddie - an Egeria Markdown language to support the exchange of metadata in a Markdown form.\n",
42
+ "Freddie allows users to input metadata using any text entry system that supports the entry of standard Markdown characters and through post-processing\n",
43
+ "commands, validates the Egeria content and allows the requests to be sent to Egeria. This is an update\n",
44
+ "\n",
45
+ "\n",
46
+ "## Usage\n",
47
+ "1) (optional) load an example or template for the type of object from Egeria.\n",
48
+ "2) Create a new document (perhaps from the template) and edit it, adding in the content with the Freddie controlled Markdown language.\n",
49
+ "3) Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.\n",
50
+ "4) Submit the document to Egeria using the Freddie_sings command.\n",
51
+ "5) anything?\n",
52
+ "\n",
53
+ "## <Qualified Name>\n",
54
+ "\n",
55
+ "\n",
56
+ "## <GUID>\n",
57
+ "\n"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "id": "a7295df2-5afb-46ba-889a-94881d883678",
63
+ "metadata": {
64
+ "execution": {
65
+ "iopub.execute_input": "2025-02-27T15:23:58.820592Z",
66
+ "iopub.status.busy": "2025-02-27T15:23:58.820416Z",
67
+ "iopub.status.idle": "2025-02-27T15:24:00.802861Z",
68
+ "shell.execute_reply": "2025-02-27T15:24:00.802425Z",
69
+ "shell.execute_reply.started": "2025-02-27T15:23:58.820583Z"
70
+ },
71
+ "ExecuteTime": {
72
+ "end_time": "2025-03-06T01:43:44.148760Z",
73
+ "start_time": "2025-03-06T01:43:42.291143Z"
74
+ }
75
+ },
76
+ "source": [
77
+ "%pip install jupyter-notebook-parser\n",
78
+ "%pip install marko"
79
+ ],
80
+ "outputs": [
81
+ {
82
+ "name": "stdout",
83
+ "output_type": "stream",
84
+ "text": [
85
+ "Requirement already satisfied: jupyter-notebook-parser in /Users/dwolfson/Library/Caches/pypoetry/virtualenvs/pyegeria-EE3A6T0J-py3.12/lib/python3.12/site-packages (0.1.4)\r\n",
86
+ "Note: you may need to restart the kernel to use updated packages.\n",
87
+ "Collecting marko\r\n",
88
+ " Downloading marko-2.1.2-py3-none-any.whl.metadata (4.5 kB)\r\n",
89
+ "Downloading marko-2.1.2-py3-none-any.whl (42 kB)\r\n",
90
+ "Installing collected packages: marko\r\n",
91
+ "Successfully installed marko-2.1.2\r\n",
92
+ "Note: you may need to restart the kernel to use updated packages.\n"
93
+ ]
94
+ }
95
+ ],
96
+ "execution_count": 1
97
+ },
98
+ {
99
+ "cell_type": "code",
100
+ "id": "d02383df-f617-48f7-be54-e930b6275a7e",
101
+ "metadata": {
102
+ "execution": {
103
+ "iopub.execute_input": "2025-02-27T15:25:33.155175Z",
104
+ "iopub.status.busy": "2025-02-27T15:25:33.154695Z",
105
+ "iopub.status.idle": "2025-02-27T15:25:33.162801Z",
106
+ "shell.execute_reply": "2025-02-27T15:25:33.162362Z",
107
+ "shell.execute_reply.started": "2025-02-27T15:25:33.155158Z"
108
+ },
109
+ "ExecuteTime": {
110
+ "end_time": "2025-03-06T01:44:09.244223Z",
111
+ "start_time": "2025-03-06T01:44:09.242117Z"
112
+ }
113
+ },
114
+ "source": [
115
+ "import json\n",
116
+ "import marko\n",
117
+ "from jupyter_notebook_parser import JupyterNotebookParser"
118
+ ],
119
+ "outputs": [],
120
+ "execution_count": 3
121
+ },
122
+ {
123
+ "cell_type": "code",
124
+ "id": "b5560fcd-afe4-4133-8204-8f2535feb9b6",
125
+ "metadata": {
126
+ "execution": {
127
+ "iopub.execute_input": "2025-02-27T15:25:34.354443Z",
128
+ "iopub.status.busy": "2025-02-27T15:25:34.354300Z",
129
+ "iopub.status.idle": "2025-02-27T15:25:34.358702Z",
130
+ "shell.execute_reply": "2025-02-27T15:25:34.358236Z",
131
+ "shell.execute_reply.started": "2025-02-27T15:25:34.354435Z"
132
+ },
133
+ "ExecuteTime": {
134
+ "end_time": "2025-03-06T01:44:10.183573Z",
135
+ "start_time": "2025-03-06T01:44:10.180327Z"
136
+ }
137
+ },
138
+ "source": [
139
+ "parsed = JupyterNotebookParser('glossary_creation_experiment.ipynb')\n",
140
+ "\n",
141
+ "parsed.get_all_cells() # returns List[Dict], each Dict is a notebook cell\n",
142
+ "\n",
143
+ "cells = parsed.get_markdown_cells() # returns List[Dict], each Dict is a markdown cel\n",
144
+ "indices = parsed.get_markdown_cell_indices() # returns List[int], each is a markdown cell's index\n",
145
+ "cell_sources = parsed.get_markdown_cell_sources() # returns List[str], each is a markdown cell's text\n",
146
+ "print(json.dumps(cell_sources, indent = 4))"
147
+ ],
148
+ "outputs": [
149
+ {
150
+ "name": "stdout",
151
+ "output_type": "stream",
152
+ "text": [
153
+ "[\n",
154
+ " \"# This notebook contains experimental Freddie commands\\n## Lets see if this is parsed\\nmeow\",\n",
155
+ " \"# Update Glossary\\n## Glossary Name\\n\\nEgeria-Markdown\\n\\n## Language\\nEnglish\\n\\n## Description\\n\\nGlossary to describe the vocabulary of Freddie - an Egeria Markdown language to support the exchange of metadata in a Markdown form.\\nFreddie allows users to input metadata using any text entry system that supports the entry of standard Markdown characters and through post-processing\\ncommands, validates the Egeria content and allows the requests to be sent to Egeria. This is an update\\n\\n\\n## Usage\\n1) (optional) load an example or template for the type of object from Egeria.\\n2) Create a new document (perhaps from the template) and edit it, adding in the content with the Freddie controlled Markdown language.\\n3) Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.\\n4) Submit the document to Egeria using the Freddie_sings command.\\n5) anything?\\n\\n## <Qualified Name>\\n\\n## <GUID>\\n\\n\",\n",
156
+ " \"# Create Term\\n\\n## Glossary Name\\n\\nEgeria-Markdown\\n\\n## Term Name\\n\\nCommand\\n\\n## Summary\\n\\nCommands are how a user of the Freddie markdown language requests an action.\\n## Description\\n\\nCommands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie provides\\na limited (but growing) set of commands. Freddie commands align with the pyegeria 'hey-egeria' command line interface.\\n\\n## Abbreviation\\n\\n## Examples\\nCreate Glossary or\\nUpdate Glossary or\\nCreate Term or\\nUpdate Term\\n## Usage\\n\\nCommands are used in the Freddie Egeria markdown language.\\n## Version\\n0.2\\n## Status\\nDRAFT\\n\\n## Qualified Name\\n\\nGlossaryTerm:Command:20250301101716\\n\\n\",\n",
157
+ " \"# Create Term\\n\\n## Glossary Name\\n\\nEgeria-Markdown\\n\\n## Term Name\\n\\nSource\\n\\n## Summary\\n\\nSource of the markdown content.\\n## Description\\n\\nSource of the markdown content - could be jupter or plain markdown file.\\n\\n## Abbreviation\\n\\n## Examples\\n\\n## Usage\\n\\n\\n## Version\\n0.1\\n## Status\\nDRAFT\\n\\n## Update Description\\n\\n\",\n",
158
+ " \"# Create Glossary\\n## Glossary Name\\n\\nAnother Test\\n\\n## Language\\nEnglish\\n\\n## Description\\n\\nAnother quick test\\n\\n## Usage\\nAlternate sundays\\n\\n## <Qualified Name>\\n\\n## <GUID>\"\n",
159
+ "]\n"
160
+ ]
161
+ }
162
+ ],
163
+ "execution_count": 4
164
+ },
165
+ {
166
+ "cell_type": "code",
167
+ "id": "79dffa96-7e2a-40e3-a0d7-ba363d87b70c",
168
+ "metadata": {
169
+ "execution": {
170
+ "iopub.execute_input": "2025-02-27T15:42:47.354237Z",
171
+ "iopub.status.busy": "2025-02-27T15:42:47.353238Z",
172
+ "iopub.status.idle": "2025-02-27T15:42:47.360634Z",
173
+ "shell.execute_reply": "2025-02-27T15:42:47.360090Z",
174
+ "shell.execute_reply.started": "2025-02-27T15:42:47.354193Z"
175
+ },
176
+ "ExecuteTime": {
177
+ "end_time": "2025-03-06T01:44:13.510939Z",
178
+ "start_time": "2025-03-06T01:44:13.507934Z"
179
+ }
180
+ },
181
+ "source": [
182
+ "parsed_markdown = marko.parse(cell_sources[0])\n",
183
+ "print(type(parsed_markdown))"
184
+ ],
185
+ "outputs": [
186
+ {
187
+ "name": "stdout",
188
+ "output_type": "stream",
189
+ "text": [
190
+ "<class 'marko.block.Document'>\n"
191
+ ]
192
+ }
193
+ ],
194
+ "execution_count": 5
195
+ },
196
+ {
197
+ "cell_type": "code",
198
+ "execution_count": null,
199
+ "id": "e967897d83588f86",
200
+ "metadata": {},
201
+ "outputs": [],
202
+ "source": []
203
+ },
204
+ {
205
+ "metadata": {},
206
+ "cell_type": "markdown",
207
+ "source": [
208
+ "# Create Term\n",
209
+ "\n",
210
+ "## Glossary Name\n",
211
+ "\n",
212
+ "Egeria-Markdown\n",
213
+ "\n",
214
+ "## Term Name\n",
215
+ "\n",
216
+ "Command\n",
217
+ "\n",
218
+ "## Summary\n",
219
+ "\n",
220
+ "Commands are how a user of the Freddie markdown language requests an action.\n",
221
+ "## Description\n",
222
+ "\n",
223
+ "Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie provides\n",
224
+ "a limited (but growing) set of commands. Freddie commands align with the pyegeria 'hey-egeria' command line interface.\n",
225
+ "\n",
226
+ "## Abbreviation\n",
227
+ "\n",
228
+ "## Examples\n",
229
+ "Create Glossary or\n",
230
+ "Update Glossary or\n",
231
+ "Create Term or\n",
232
+ "Update Term\n",
233
+ "## Usage\n",
234
+ "\n",
235
+ "Commands are used in the Freddie Egeria markdown language.\n",
236
+ "## Version\n",
237
+ "0.2\n",
238
+ "## Status\n",
239
+ "DRAFT\n",
240
+ "\n",
241
+ "## Qualified Name\n",
242
+ "\n",
243
+ "GlossaryTerm:Command:20250301101716\n",
244
+ "\n"
245
+ ],
246
+ "id": "12bee9ed12b3762a"
247
+ },
248
+ {
249
+ "metadata": {},
250
+ "cell_type": "markdown",
251
+ "source": [
252
+ "# Create Term\n",
253
+ "\n",
254
+ "## Glossary Name\n",
255
+ "\n",
256
+ "Egeria-Markdown\n",
257
+ "\n",
258
+ "## Term Name\n",
259
+ "\n",
260
+ "Source\n",
261
+ "\n",
262
+ "## Summary\n",
263
+ "\n",
264
+ "Source of the markdown content.\n",
265
+ "## Description\n",
266
+ "\n",
267
+ "Source of the markdown content - could be jupter or plain markdown file.\n",
268
+ "\n",
269
+ "## Abbreviation\n",
270
+ "\n",
271
+ "## Examples\n",
272
+ "\n",
273
+ "## Usage\n",
274
+ "\n",
275
+ "\n",
276
+ "## Version\n",
277
+ "0.1\n",
278
+ "## Status\n",
279
+ "DRAFT\n",
280
+ "\n",
281
+ "## Update Description\n",
282
+ "\n"
283
+ ],
284
+ "id": "d2eafeb21facfe57"
285
+ },
286
+ {
287
+ "cell_type": "markdown",
288
+ "id": "ed29f0e5d46a7c20",
289
+ "metadata": {},
290
+ "source": [
291
+ "# Update Glossary\n",
292
+ "## Glossary Name\n",
293
+ "\n",
294
+ "Another Test\n",
295
+ "\n",
296
+ "## Language\n",
297
+ "English\n",
298
+ "\n",
299
+ "## Description\n",
300
+ "\n",
301
+ "Another quick test - more description\n",
302
+ "\n",
303
+ "## Usage\n",
304
+ "Alternate sundays\n",
305
+ "\n",
306
+ "## <Qualified Name>\n",
307
+ "\n",
308
+ "## <GUID>"
309
+ ]
310
+ },
311
+ {
312
+ "cell_type": "code",
313
+ "execution_count": null,
314
+ "id": "e36a5074b9a94c1a",
315
+ "metadata": {},
316
+ "outputs": [],
317
+ "source": []
318
+ }
319
+ ],
320
+ "metadata": {
321
+ "kernelspec": {
322
+ "display_name": "Python 3 (ipykernel)",
323
+ "language": "python",
324
+ "name": "python3"
325
+ },
326
+ "language_info": {
327
+ "codemirror_mode": {
328
+ "name": "ipython",
329
+ "version": 3
330
+ },
331
+ "file_extension": ".py",
332
+ "mimetype": "text/x-python",
333
+ "name": "python",
334
+ "nbconvert_exporter": "python",
335
+ "pygments_lexer": "ipython3",
336
+ "version": "3.12.9"
337
+ }
338
+ },
339
+ "nbformat": 4,
340
+ "nbformat_minor": 5
341
+ }
@@ -0,0 +1,158 @@
1
+
2
+
3
+
4
+
5
+ # Create Glossary
6
+ ## Glossary Name
7
+
8
+ Egeria-Markdown
9
+
10
+ ## Language
11
+ English
12
+
13
+ ## Description
14
+
15
+ Glossary to describe the vocabulary of Freddie - an Egeria Markdown language to support the exchange of metadata in a Markdown form.
16
+ Freddie allows users to input metadata using any text entry system that supports the entry of standard Markdown characters and through post-processing
17
+ commands, validates the Egeria content and allows the requests to be sent to Egeria. This is an update
18
+
19
+
20
+ ## Usage
21
+ 1) (optional) load an example or template for the type of object from Egeria.
22
+ 2) Create a new document (perhaps from the template) and edit it, adding in the content with the Freddie controlled Markdown language.
23
+ 3) Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
24
+ 4) Submit the document to Egeria using the Freddie_sings command.
25
+
26
+
27
+ ## <Qualified Name>
28
+
29
+ ## <GUID>
30
+
31
+ ---
32
+
33
+ This is some random text
34
+
35
+
36
+ # Create Term
37
+
38
+ ## Glossary Name
39
+
40
+ Egeria-Markdown
41
+
42
+ ## Term Name
43
+
44
+ Command
45
+
46
+ ## Summary
47
+
48
+ Commands are how a user of the Freddie markdown language requests an action.
49
+ ## Description
50
+
51
+ Commands are how a user can request Egeria to take an action such as Create or Update an Egeria element. Freddie provides
52
+ a limited (but growing) set of commands. Freddie commands align with the pyegeria 'hey-egeria' command line interface.
53
+
54
+ ## Abbreviation
55
+
56
+ ## Examples
57
+ Create Glossary or
58
+ Update Glossary or
59
+ Create Term or
60
+ Update Term
61
+ ## Usage
62
+
63
+ Commands are used in the Freddie Egeria markdown language.
64
+ ## Version
65
+ 0.2
66
+ ## Status
67
+ DRAFT
68
+
69
+ ## Qualified Name
70
+
71
+ ---
72
+
73
+ # Create Term
74
+
75
+ ## Glossary Name
76
+
77
+ Egeria-Markdown
78
+
79
+ ## Term Name
80
+
81
+ Source
82
+
83
+ ## Summary
84
+
85
+ Source of the markdown content.
86
+ ## Description
87
+
88
+ Source of the markdown content - could be jupter or plain markdown file.
89
+
90
+ ## Abbreviation
91
+
92
+ ## Examples
93
+
94
+ ## Usage
95
+
96
+
97
+ ## Version
98
+ 0.1
99
+ ## Status
100
+ DRAFT
101
+
102
+ ## Update Description
103
+
104
+ ---
105
+
106
+ # Create Term
107
+
108
+ ## Glossary Name
109
+
110
+ Egeria-Markdown
111
+
112
+ ## Term Name
113
+
114
+ Directive
115
+
116
+ ## Summary
117
+
118
+ A directive defines how the command is to be processed.
119
+
120
+ ## Description
121
+
122
+ Directives are one of:
123
+ * display - just display what we've found
124
+ * validate - check the validity of the requested action
125
+ * process - process the requested action
126
+
127
+ ## Abbreviation
128
+
129
+ ## Examples
130
+
131
+ ## Usage
132
+
133
+
134
+ ## Version
135
+ 0.1
136
+ ## Status
137
+ DRAFT
138
+
139
+ ---
140
+
141
+
142
+ # Create Personal Project
143
+
144
+ ## Project Name
145
+
146
+ My first science experiment
147
+
148
+ ## Description
149
+
150
+ This is a brief description of the experiment
151
+
152
+ ## Start Date
153
+
154
+ 03/01/2025
155
+
156
+ ## Planned End Date
157
+
158
+ 04-01-2025
@@ -0,0 +1,69 @@
1
+ # Glossaries Report - created at 2025-03-06 13:19
2
+ Glossaries found from the search string: `All Glossaries`
3
+
4
+ # Glossary Name: Egeria-Markdown
5
+
6
+ ## Description
7
+ Glossary to describe the vocabulary of Freddie - an Egeria Markdown language to support the exchange of metadata in a Markdown form.
8
+ Freddie allows users to input metadata using any text entry system that supports the entry of standard Markdown characters and through post-processing
9
+ commands, validates the Egeria content and allows the requests to be sent to Egeria. This is an update
10
+
11
+ ## Language
12
+ English
13
+
14
+ ## Usage
15
+ 1) (optional) load an example or template for the type of object from Egeria.
16
+ 2) Create a new document (perhaps from the template) and edit it, adding in the content with the Freddie controlled Markdown language.
17
+ 3) Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
18
+ 4) Submit the document to Egeria using the Freddie_sings command.
19
+ 5) anything?
20
+
21
+ ## Qualified Name
22
+ Glossary:Egeria-Markdown
23
+
24
+ ## GUID
25
+ 5d45b499-d0d5-4fad-bc23-763bc4073296
26
+
27
+
28
+ ---
29
+
30
+ # Glossary Name: Teddy Bear Drop Foot Terminology
31
+
32
+ ## Description
33
+ This glossary describes terminology invented for the fictitious study into Teddy Bear Drop Foot that is being used to demonstrate aspects of open governance without risk to real patient data.
34
+
35
+ ## Language
36
+ English
37
+
38
+ ## Usage
39
+ Used with the Teddy Bear Drop Foot Demonstration Study.
40
+
41
+ ## Qualified Name
42
+ Glossary:TeddyBearDropFootTerminology
43
+
44
+ ## GUID
45
+ c103d0c9-7581-47e1-a684-6bbe0ecd596f
46
+
47
+
48
+ ---
49
+
50
+ # Glossary Name: Sustainability Glossary
51
+
52
+ ## Description
53
+ Terminology associated with Coco Pharmaceutical's sustainability initiative.
54
+
55
+ ## Language
56
+ English
57
+
58
+ ## Usage
59
+ For all Coco Pharmaceutical employees wishing to understand more about sustainability and the organization's efforts to improve its operations.
60
+
61
+ ## Qualified Name
62
+ Glossary:Sustainability
63
+
64
+ ## GUID
65
+ 30bfe79e-adf2-4fda-b9c5-9c86ad6b0d6c
66
+
67
+
68
+ ---
69
+
@@ -0,0 +1,78 @@
1
+ # Update Glossaries Form - created at 2025-03-06 13:20
2
+ Glossaries found from the search string: `All Glossaries`
3
+
4
+ # Update Glossary
5
+
6
+ ## Glossary Name
7
+ Egeria-Markdown
8
+
9
+ ## Description
10
+ Glossary to describe the vocabulary of Freddie - an Egeria Markdown language to support the exchange of metadata in a Markdown form.
11
+ Freddie allows users to input metadata using any text entry system that supports the entry of standard Markdown characters and through post-processing
12
+ commands, validates the Egeria content and allows the requests to be sent to Egeria. This is an update
13
+
14
+ ## Language
15
+ English
16
+
17
+ ## Usage
18
+ 1) (optional) load an example or template for the type of object from Egeria.
19
+ 2) Create a new document (perhaps from the template) and edit it, adding in the content with the Freddie controlled Markdown language.
20
+ 3) Process the document to validate and display it before you submit it, Validation may annotate your document with recommendations and potential issues.
21
+ 4) Submit the document to Egeria using the Freddie_sings command.
22
+ 5) anything?
23
+
24
+ ## Qualified Name
25
+ Glossary:Egeria-Markdown
26
+
27
+ ## GUID
28
+ 5d45b499-d0d5-4fad-bc23-763bc4073296
29
+
30
+
31
+ ---
32
+
33
+ # Update Glossary
34
+
35
+ ## Glossary Name
36
+ Teddy Bear Drop Foot Terminology
37
+
38
+ ## Description
39
+ This glossary describes terminology invented for the fictitious study into Teddy Bear Drop Foot that is being used to demonstrate aspects of open governance without risk to real patient data.
40
+
41
+ ## Language
42
+ English
43
+
44
+ ## Usage
45
+ Used with the Teddy Bear Drop Foot Demonstration Study.
46
+
47
+ ## Qualified Name
48
+ Glossary:TeddyBearDropFootTerminology
49
+
50
+ ## GUID
51
+ c103d0c9-7581-47e1-a684-6bbe0ecd596f
52
+
53
+
54
+ ---
55
+
56
+ # Update Glossary
57
+
58
+ ## Glossary Name
59
+ Sustainability Glossary
60
+
61
+ ## Description
62
+ Terminology associated with Coco Pharmaceutical's sustainability initiative.
63
+
64
+ ## Language
65
+ English
66
+
67
+ ## Usage
68
+ For all Coco Pharmaceutical employees wishing to understand more about sustainability and the organization's efforts to improve its operations.
69
+
70
+ ## Qualified Name
71
+ Glossary:Sustainability
72
+
73
+ ## GUID
74
+ 30bfe79e-adf2-4fda-b9c5-9c86ad6b0d6c
75
+
76
+
77
+ ---
78
+