@daugasauron/dolly-image-default 0.1.4 → 0.1.5-rc.0
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.
- package/Dollyfile +14 -17
- package/Dollyfile-amy +7 -7
- package/Dollyfile-core +5 -3
- package/Dollyfile-curl +4 -4
- package/Dollyfile-display +8 -8
- package/Dollyfile-dollyfile +11 -0
- package/Dollyfile-ghostty-build +52 -15
- package/Dollyfile-git +16 -32
- package/Dollyfile-gzip +3 -3
- package/Dollyfile-html +78 -0
- package/Dollyfile-mandoc +3 -3
- package/Dollyfile-nena +2 -2
- package/Dollyfile-posix +2 -5
- package/Dollyfile-system-build +90 -161
- package/Dollyfile-system-tools +29 -68
- package/Dollyfile-transfer +1 -1
- package/Dollyfile-zig-build +4 -6
- package/Dollyfile-zlib +2 -2
- package/README.md +12 -5
- package/amy-index.txt +10 -0
- package/dist/dolly-amy-system-snapshot.json +72 -0
- package/dist/{dolly-core-system-snapshot.mjs → dolly-core-system-snapshot.json} +23 -22
- package/dist/{dolly-curl-system-snapshot.mjs → dolly-curl-system-snapshot.json} +18 -19
- package/dist/{dolly-default-system-snapshot.mjs → dolly-default-system-snapshot.json} +123 -103
- package/dist/dolly-display-system-snapshot.json +93 -0
- package/dist/dolly-dollyfile-system-snapshot.json +57 -0
- package/dist/{dolly-ghostty-build-system-snapshot.mjs → dolly-ghostty-build-system-snapshot.json} +200 -264
- package/dist/{dolly-git-system-snapshot.mjs → dolly-git-system-snapshot.json} +35 -41
- package/dist/dolly-gzip-system-snapshot.json +69 -0
- package/dist/dolly-html-system-snapshot.json +60 -0
- package/dist/dolly-images.json +1396 -0
- package/dist/dolly-mandoc-system-snapshot.json +134 -0
- package/dist/dolly-nena-system-snapshot.json +57 -0
- package/dist/{dolly-posix-system-snapshot.mjs → dolly-posix-system-snapshot.json} +55 -59
- package/dist/{dolly-ps-system-snapshot.mjs → dolly-ps-system-snapshot.json} +8 -9
- package/dist/{dolly-system-build-system-snapshot.mjs → dolly-system-build-system-snapshot.json} +41 -40
- package/dist/{dolly-system-tools-system-snapshot.mjs → dolly-system-tools-system-snapshot.json} +89 -101
- package/dist/dolly-transfer-system-snapshot.json +60 -0
- package/dist/{dolly-zig-build-system-snapshot.mjs → dolly-zig-build-system-snapshot.json} +175 -246
- package/dist/dolly-zlib-system-snapshot.json +59 -0
- package/dist/packs/24c620e3c890a64427ccaf4ba0bb9e74098617af0dd2e965ea57377d3d8e6032.snapshot.gz +0 -0
- package/dist/packs/33eef9340488b922bc018c579c45faf5545487f85e97e35e4206cfde0fce0cf1.snapshot.gz +0 -0
- package/dist/packs/c5f82e9113c43a57819dd225b9e351fb72f9134120457f7bf28ee157ca1eb446.snapshot.gz +0 -0
- package/index.mjs +2 -2
- package/package.json +3 -3
- package/dist/dolly-amy-system-snapshot.mjs +0 -61
- package/dist/dolly-display-system-snapshot.mjs +0 -98
- package/dist/dolly-gzip-system-snapshot.mjs +0 -70
- package/dist/dolly-images.mjs +0 -1268
- package/dist/dolly-mandoc-system-snapshot.mjs +0 -135
- package/dist/dolly-nena-system-snapshot.mjs +0 -58
- package/dist/dolly-transfer-system-snapshot.mjs +0 -61
- package/dist/dolly-zlib-system-snapshot.mjs +0 -60
- package/dist/packs/0783767f26f8e79bac2e9a5337aa05b4c7cf0e5ec3d03f73ca393d3949a064fa.snapshot.gz +0 -0
- package/dist/packs/153becb9a727327866389d89eca64e9f0b60a33d545b9e0e8c561e10c9ab327f.snapshot.gz +0 -0
- package/dist/packs/3a6a5f2102877637bc6d81e66af9b5ab063c27a9ad0e9a01ad11df979f6b6acb.snapshot.gz +0 -0
- package/dist/packs/4d55e5ac579b6047065f9180df912fa2a21af4e1c764415a299cb89b3c0090c0.snapshot.gz +0 -0
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# @daugasauron/dolly-image-default
|
|
2
2
|
|
|
3
|
-
Dolly's `default` image
|
|
3
|
+
Dolly's `default` image, for @daugasauron/dolly's `boot()`. A shell, its text tools, curl, ps, html, amy, which installs the rest, and nena, which enables the host modules they need.
|
|
4
4
|
It depends on the runtime alone: install it with the runtime and the host modules it
|
|
5
|
-
declares, all at version 0.1.
|
|
5
|
+
declares, all at version 0.1.5-rc.0:
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npm install @daugasauron/dolly @daugasauron/dolly-image-default @daugasauron/dolly-host-
|
|
8
|
+
npm install @daugasauron/dolly @daugasauron/dolly-image-default @daugasauron/dolly-host-display @daugasauron/dolly-host-save @daugasauron/dolly-host-html @daugasauron/dolly-host-input @daugasauron/dolly-host-upload
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
```js
|
|
@@ -14,6 +14,13 @@ import { images, image, modules } from "./node_modules/@daugasauron/dolly-image-
|
|
|
14
14
|
await boot(document.querySelector("#dolly"), { images, image, modules });
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
`dolly-build` (@daugasauron/dolly's README, "Your own image") builds a recipe of your own on it, with this row:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
FROM /v0.1.5/Dollyfile 9f05bdf673608a2e7596e8a6b9f210bad96199627e6bb173b9220df15afe5e9c
|
|
21
|
+
```
|
|
22
|
+
|
|
17
23
|
The image holds programs built inside Dolly from their upstream sources, each under its own
|
|
18
|
-
licence: their licence texts are in the image under `/usr/share/licenses
|
|
19
|
-
`docs/licences.md` lists every upstream
|
|
24
|
+
licence: their licence texts are in the image under `/usr/share/licenses` (a Python library's in
|
|
25
|
+
its `.dist-info`), and Dolly's `docs/licences.md` lists every upstream
|
|
26
|
+
(https://github.com/daugasauron/dolly).
|
package/amy-index.txt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
amy /v0.1.5/Dollyfile-amy e028eb4c7768642948f7adb64ed5932d36bf85c8c0879b0203c5e59ccc1d2d39 amy, the package installer, and dollyfile, the recipe engine it runs.
|
|
2
|
+
core /v0.1.5/Dollyfile-core 7205c35aed897514d3094f14a194669f73c295b4dd0213619d90155da8467cde the shell slop and its core commands: ls, cat, cp, mv, rm, mkdir, tar, man, help and others.
|
|
3
|
+
curl /v0.1.5/Dollyfile-curl f31998555b9cca60e8ad5d7e6b5d8476aa119ecefbdc186f04461edad59f9e7d curl and libcurl, over the page's HTTP broker.
|
|
4
|
+
display /v0.1.5/Dollyfile-display 2032dbc473505507c7419267f43fdb2fe76b16b0907ca27f2b157a0ec54bda35 the terminal: the Ghostty display plugin, its fonts and the termcap entry.
|
|
5
|
+
dollyfile /v0.1.5/Dollyfile-dollyfile b13859f330bbd05bb358dcd128e4845f53a26c2776ab83db792f7f5fe0134bb2 dollyfile, the recipe engine alone: an image that installs it can be built FROM.
|
|
6
|
+
html /v0.1.5/Dollyfile-html f25853f4c8e54144dddb7337e78e174ea587a23c00ae9414fc2edb71244942c9 html, which shows the user an HTML page or form in a popup and prints what they submit, and the html@0 module's header and client library.
|
|
7
|
+
nena /v0.1.5/Dollyfile-nena c02109a066ce2bf5c791ae4805fae4a29130b029a23276738069bde61be08175 nena, which lists a session's host modules and enables or disables them, where the image declares nena@0.
|
|
8
|
+
posix /v0.1.5/Dollyfile-posix a98de8b50ce0a29e867194e9fe9c44a54c0ea48ccf25a0f1353431daf827cf9e grep, sed, sort, find, xargs, awk, sh and the other text and file tools.
|
|
9
|
+
ps /v0.1.5/Dollyfile-ps 39cdf2bfaa3fb52f3c161672634f9600381754e6f006971896d6f79b6b345b77 ps, which lists the processes: PID, parent, state and command line.
|
|
10
|
+
transfer /v0.1.5/Dollyfile-transfer 5ba6da77866030da273e49a2e8867ca6ef7441fa2024e90025da2239801dfe52 download and upload, the page's file exchange.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"image": "amy",
|
|
3
|
+
"buildId": "sha256:b9e16e76c04b07f3e0a20b6a399a1b736c1c8d9e103554634abb910a34d6c341",
|
|
4
|
+
"runtimeBuildId": "sha256:4dab85fcfe184d0632f281d1ff0a7839f9ac8176e6f1656819881e8ca38c3c27",
|
|
5
|
+
"formatVersion": 2,
|
|
6
|
+
"identityVersion": 2,
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"recipeSha256": "b13859f330bbd05bb358dcd128e4845f53a26c2776ab83db792f7f5fe0134bb2",
|
|
10
|
+
"sha256": "41e6893b221cc0e2366ca7cd8778c80c55f91a0de5c871681fb4b38932f258a4"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"recipeSha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
14
|
+
"sha256": "588196b2efd79983e93f0835876001ea89dd47b8d03110c3e8464d53c7bb2d57"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"recipes": [
|
|
18
|
+
{
|
|
19
|
+
"name": "system-build",
|
|
20
|
+
"locator": "/v0.1.5/Dollyfile-system-build",
|
|
21
|
+
"sourcePath": "/v0.1.5/Dollyfile-system-build",
|
|
22
|
+
"retainedPath": "/etc/dolly/recipes/Dollyfile-system-build",
|
|
23
|
+
"sha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
24
|
+
"byteLength": 19224
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "dollyfile",
|
|
28
|
+
"locator": "/v0.1.5/Dollyfile-dollyfile",
|
|
29
|
+
"sourcePath": "/v0.1.5/Dollyfile-dollyfile",
|
|
30
|
+
"retainedPath": "/etc/dolly/recipes/Dollyfile-dollyfile",
|
|
31
|
+
"sha256": "b13859f330bbd05bb358dcd128e4845f53a26c2776ab83db792f7f5fe0134bb2",
|
|
32
|
+
"byteLength": 374
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "amy",
|
|
36
|
+
"locator": "/v0.1.5/Dollyfile-amy",
|
|
37
|
+
"sourcePath": "/v0.1.5/Dollyfile-amy",
|
|
38
|
+
"retainedPath": "/etc/dolly/recipes/Dollyfile-amy",
|
|
39
|
+
"sha256": "e028eb4c7768642948f7adb64ed5932d36bf85c8c0879b0203c5e59ccc1d2d39",
|
|
40
|
+
"byteLength": 971
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"hostRequirements": [
|
|
44
|
+
"http@0",
|
|
45
|
+
"packages@0",
|
|
46
|
+
"runtime@0"
|
|
47
|
+
],
|
|
48
|
+
"entry": null,
|
|
49
|
+
"manifest": [
|
|
50
|
+
"/bin/amy",
|
|
51
|
+
"/etc/dolly/Dollyfile",
|
|
52
|
+
"/etc/dolly/artifact",
|
|
53
|
+
"/etc/dolly/environment",
|
|
54
|
+
"/etc/dolly/image",
|
|
55
|
+
"/etc/dolly/installed",
|
|
56
|
+
"/etc/dolly/recipes.lock",
|
|
57
|
+
"/etc/dolly/recipes/Dollyfile-amy",
|
|
58
|
+
"/etc/dolly/recipes/Dollyfile-dollyfile",
|
|
59
|
+
"/etc/dolly/recipes/Dollyfile-system-build",
|
|
60
|
+
"/usr/share/man/cat1/amy.1"
|
|
61
|
+
],
|
|
62
|
+
"byteLength": 114178,
|
|
63
|
+
"sha256": "f5bb7c12138aab631c9f2c5d826c3f9657b275e553a4a6531a1dc70b8ad2fddd",
|
|
64
|
+
"encoding": "packs",
|
|
65
|
+
"packs": [
|
|
66
|
+
{
|
|
67
|
+
"sha256": "f5bb7c12138aab631c9f2c5d826c3f9657b275e553a4a6531a1dc70b8ad2fddd",
|
|
68
|
+
"byteLength": 114178,
|
|
69
|
+
"encodedByteLength": 37525
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
1
|
+
{
|
|
3
2
|
"image": "core",
|
|
4
|
-
"buildId": "sha256:
|
|
5
|
-
"runtimeBuildId": "sha256:
|
|
3
|
+
"buildId": "sha256:b9e16e76c04b07f3e0a20b6a399a1b736c1c8d9e103554634abb910a34d6c341",
|
|
4
|
+
"runtimeBuildId": "sha256:4dab85fcfe184d0632f281d1ff0a7839f9ac8176e6f1656819881e8ca38c3c27",
|
|
6
5
|
"formatVersion": 2,
|
|
7
6
|
"identityVersion": 2,
|
|
8
7
|
"inputs": [
|
|
9
8
|
{
|
|
10
|
-
"recipeSha256": "
|
|
11
|
-
"sha256": "
|
|
9
|
+
"recipeSha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
10
|
+
"sha256": "588196b2efd79983e93f0835876001ea89dd47b8d03110c3e8464d53c7bb2d57"
|
|
12
11
|
}
|
|
13
12
|
],
|
|
14
13
|
"recipes": [
|
|
15
14
|
{
|
|
16
15
|
"name": "system-build",
|
|
17
|
-
"locator": "/v0.1.
|
|
18
|
-
"sourcePath": "/v0.1.
|
|
16
|
+
"locator": "/v0.1.5/Dollyfile-system-build",
|
|
17
|
+
"sourcePath": "/v0.1.5/Dollyfile-system-build",
|
|
19
18
|
"retainedPath": "/etc/dolly/recipes/Dollyfile-system-build",
|
|
20
|
-
"sha256": "
|
|
21
|
-
"byteLength":
|
|
19
|
+
"sha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
20
|
+
"byteLength": 19224
|
|
22
21
|
},
|
|
23
22
|
{
|
|
24
23
|
"name": "core",
|
|
25
|
-
"locator": "/v0.1.
|
|
26
|
-
"sourcePath": "/v0.1.
|
|
24
|
+
"locator": "/v0.1.5/Dollyfile-core",
|
|
25
|
+
"sourcePath": "/v0.1.5/Dollyfile-core",
|
|
27
26
|
"retainedPath": "/etc/dolly/recipes/Dollyfile-core",
|
|
28
|
-
"sha256": "
|
|
29
|
-
"byteLength":
|
|
27
|
+
"sha256": "7205c35aed897514d3094f14a194669f73c295b4dd0213619d90155da8467cde",
|
|
28
|
+
"byteLength": 1330
|
|
30
29
|
}
|
|
31
30
|
],
|
|
32
31
|
"hostRequirements": [
|
|
@@ -36,7 +35,6 @@ export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
|
36
35
|
"manifest": [
|
|
37
36
|
"/bin/[",
|
|
38
37
|
"/bin/cat",
|
|
39
|
-
"/bin/cd",
|
|
40
38
|
"/bin/clear",
|
|
41
39
|
"/bin/cp",
|
|
42
40
|
"/bin/echo",
|
|
@@ -47,8 +45,10 @@ export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
|
47
45
|
"/bin/man",
|
|
48
46
|
"/bin/mkdir",
|
|
49
47
|
"/bin/mv",
|
|
48
|
+
"/bin/printf",
|
|
50
49
|
"/bin/pwd",
|
|
51
50
|
"/bin/rm",
|
|
51
|
+
"/bin/sleep",
|
|
52
52
|
"/bin/slop",
|
|
53
53
|
"/bin/stat",
|
|
54
54
|
"/bin/tar",
|
|
@@ -63,7 +63,6 @@ export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
|
63
63
|
"/etc/dolly/recipes/Dollyfile-system-build",
|
|
64
64
|
"/usr/share/man/cat1/[.1",
|
|
65
65
|
"/usr/share/man/cat1/cat.1",
|
|
66
|
-
"/usr/share/man/cat1/cd.1",
|
|
67
66
|
"/usr/share/man/cat1/clear.1",
|
|
68
67
|
"/usr/share/man/cat1/cp.1",
|
|
69
68
|
"/usr/share/man/cat1/echo.1",
|
|
@@ -74,22 +73,24 @@ export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
|
74
73
|
"/usr/share/man/cat1/man.1",
|
|
75
74
|
"/usr/share/man/cat1/mkdir.1",
|
|
76
75
|
"/usr/share/man/cat1/mv.1",
|
|
76
|
+
"/usr/share/man/cat1/printf.1",
|
|
77
77
|
"/usr/share/man/cat1/pwd.1",
|
|
78
78
|
"/usr/share/man/cat1/rm.1",
|
|
79
|
+
"/usr/share/man/cat1/sleep.1",
|
|
79
80
|
"/usr/share/man/cat1/slop.1",
|
|
80
81
|
"/usr/share/man/cat1/stat.1",
|
|
81
82
|
"/usr/share/man/cat1/tar.1",
|
|
82
83
|
"/usr/share/man/cat1/test.1",
|
|
83
84
|
"/usr/share/man/cat1/touch.1"
|
|
84
85
|
],
|
|
85
|
-
"byteLength":
|
|
86
|
-
"sha256": "
|
|
86
|
+
"byteLength": 1153006,
|
|
87
|
+
"sha256": "cb7ddb484ca4f2b27f1180b8ae91d87e1423249b27934afc75f833566a91a74a",
|
|
87
88
|
"encoding": "packs",
|
|
88
89
|
"packs": [
|
|
89
90
|
{
|
|
90
|
-
"sha256": "
|
|
91
|
-
"byteLength":
|
|
92
|
-
"encodedByteLength":
|
|
91
|
+
"sha256": "cb7ddb484ca4f2b27f1180b8ae91d87e1423249b27934afc75f833566a91a74a",
|
|
92
|
+
"byteLength": 1153006,
|
|
93
|
+
"encodedByteLength": 442935
|
|
93
94
|
}
|
|
94
95
|
]
|
|
95
|
-
}
|
|
96
|
+
}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
1
|
+
{
|
|
3
2
|
"image": "curl",
|
|
4
|
-
"buildId": "sha256:
|
|
5
|
-
"runtimeBuildId": "sha256:
|
|
3
|
+
"buildId": "sha256:b9e16e76c04b07f3e0a20b6a399a1b736c1c8d9e103554634abb910a34d6c341",
|
|
4
|
+
"runtimeBuildId": "sha256:4dab85fcfe184d0632f281d1ff0a7839f9ac8176e6f1656819881e8ca38c3c27",
|
|
6
5
|
"formatVersion": 2,
|
|
7
6
|
"identityVersion": 2,
|
|
8
7
|
"inputs": [
|
|
9
8
|
{
|
|
10
|
-
"recipeSha256": "
|
|
11
|
-
"sha256": "
|
|
9
|
+
"recipeSha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
10
|
+
"sha256": "588196b2efd79983e93f0835876001ea89dd47b8d03110c3e8464d53c7bb2d57"
|
|
12
11
|
}
|
|
13
12
|
],
|
|
14
13
|
"recipes": [
|
|
15
14
|
{
|
|
16
15
|
"name": "system-build",
|
|
17
|
-
"locator": "/v0.1.
|
|
18
|
-
"sourcePath": "/v0.1.
|
|
16
|
+
"locator": "/v0.1.5/Dollyfile-system-build",
|
|
17
|
+
"sourcePath": "/v0.1.5/Dollyfile-system-build",
|
|
19
18
|
"retainedPath": "/etc/dolly/recipes/Dollyfile-system-build",
|
|
20
|
-
"sha256": "
|
|
21
|
-
"byteLength":
|
|
19
|
+
"sha256": "cf9cf053fb5debc080062e6e44c1b139175739f6158fa8a825b0255ba2063aee",
|
|
20
|
+
"byteLength": 19224
|
|
22
21
|
},
|
|
23
22
|
{
|
|
24
23
|
"name": "curl",
|
|
25
|
-
"locator": "/v0.1.
|
|
26
|
-
"sourcePath": "/v0.1.
|
|
24
|
+
"locator": "/v0.1.5/Dollyfile-curl",
|
|
25
|
+
"sourcePath": "/v0.1.5/Dollyfile-curl",
|
|
27
26
|
"retainedPath": "/etc/dolly/recipes/Dollyfile-curl",
|
|
28
|
-
"sha256": "
|
|
27
|
+
"sha256": "f31998555b9cca60e8ad5d7e6b5d8476aa119ecefbdc186f04461edad59f9e7d",
|
|
29
28
|
"byteLength": 1606
|
|
30
29
|
}
|
|
31
30
|
],
|
|
@@ -61,14 +60,14 @@ export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
|
61
60
|
"/usr/share/licenses/curl/COPYING",
|
|
62
61
|
"/usr/share/man/cat1/curl.1"
|
|
63
62
|
],
|
|
64
|
-
"byteLength":
|
|
65
|
-
"sha256": "
|
|
63
|
+
"byteLength": 428064,
|
|
64
|
+
"sha256": "d8837e46d4d264dd747fa2b67537e3446505766197858d5f046f95b4fbe18a22",
|
|
66
65
|
"encoding": "packs",
|
|
67
66
|
"packs": [
|
|
68
67
|
{
|
|
69
|
-
"sha256": "
|
|
70
|
-
"byteLength":
|
|
71
|
-
"encodedByteLength":
|
|
68
|
+
"sha256": "d8837e46d4d264dd747fa2b67537e3446505766197858d5f046f95b4fbe18a22",
|
|
69
|
+
"byteLength": 428064,
|
|
70
|
+
"encodedByteLength": 117212
|
|
72
71
|
}
|
|
73
72
|
]
|
|
74
|
-
}
|
|
73
|
+
}
|