@layerzerolabs/vm-tooling 0.0.58 → 0.0.59
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/dist/{VRMJKL3K.js → 2I5OW7DK.js} +4 -4
- package/dist/{VRMJKL3K.js.map → 2I5OW7DK.js.map} +1 -1
- package/dist/{XNBCDROQ.js → 435HEEZL.js} +13 -25
- package/dist/435HEEZL.js.map +1 -0
- package/dist/{4SK6SDII.cjs → 7LPKGDJK.cjs} +13 -25
- package/dist/7LPKGDJK.cjs.map +1 -0
- package/dist/{P6RMIIVK.cjs → H5GMZAIP.cjs} +12 -12
- package/dist/{P6RMIIVK.cjs.map → H5GMZAIP.cjs.map} +1 -1
- package/dist/{Q3QTBCVZ.cjs → HNMWFWE6.cjs} +20 -24
- package/dist/HNMWFWE6.cjs.map +1 -0
- package/dist/{R6FPU7JX.cjs → K7XFIMAS.cjs} +21 -17
- package/dist/K7XFIMAS.cjs.map +1 -0
- package/dist/{OXHJXMDD.js → L7FV6P64.js} +15 -11
- package/dist/L7FV6P64.js.map +1 -0
- package/dist/{DYZKD7UQ.cjs → PRVB7VA2.cjs} +48 -34
- package/dist/PRVB7VA2.cjs.map +1 -0
- package/dist/{A34JELOF.js → TYZZ6CWY.js} +45 -34
- package/dist/TYZZ6CWY.js.map +1 -0
- package/dist/{QZ7GXWCY.js → VVYYMOE5.js} +14 -18
- package/dist/VVYYMOE5.js.map +1 -0
- package/dist/config/index.cjs +6 -6
- package/dist/config/index.js +2 -2
- package/dist/config/tools.cjs +3 -3
- package/dist/config/tools.d.ts.map +1 -1
- package/dist/config/tools.js +2 -2
- package/dist/config/version-matrices.cjs +2 -2
- package/dist/config/version-matrices.d.ts.map +1 -1
- package/dist/config/version-matrices.js +1 -1
- package/dist/core/index.cjs +9 -9
- package/dist/core/index.js +5 -5
- package/dist/core/tool-executor.cjs +7 -7
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +5 -5
- package/dist/core/version-resolver.cjs +6 -6
- package/dist/core/version-resolver.d.ts +3 -2
- package/dist/core/version-resolver.d.ts.map +1 -1
- package/dist/core/version-resolver.js +3 -3
- package/dist/display/index.cjs +5 -5
- package/dist/display/index.js +3 -3
- package/dist/display/version-display.cjs +5 -5
- package/dist/display/version-display.d.ts.map +1 -1
- package/dist/display/version-display.js +3 -3
- package/dist/index.cjs +13 -13
- package/dist/index.js +6 -6
- package/dist/scripts/generate-github-matrix.cjs +14 -12
- package/dist/scripts/generate-github-matrix.cjs.map +1 -1
- package/dist/scripts/generate-github-matrix.js +12 -10
- package/dist/scripts/generate-github-matrix.js.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool.cjs.map +1 -1
- package/dist/types/tool.d.ts +2 -4
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js.map +1 -1
- package/dist/types/version.cjs.map +1 -1
- package/dist/types/version.d.ts +5 -5
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/version.js.map +1 -1
- package/dist/utils/finder-utils.cjs +24 -12
- package/dist/utils/finder-utils.d.ts +21 -6
- package/dist/utils/finder-utils.d.ts.map +1 -1
- package/dist/utils/finder-utils.js +2 -2
- package/dist/utils/index.cjs +16 -16
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/version-utils.cjs +6 -6
- package/dist/utils/version-utils.js +2 -2
- package/package.json +7 -4
- package/dist/4SK6SDII.cjs.map +0 -1
- package/dist/A34JELOF.js.map +0 -1
- package/dist/DYZKD7UQ.cjs.map +0 -1
- package/dist/OXHJXMDD.js.map +0 -1
- package/dist/Q3QTBCVZ.cjs.map +0 -1
- package/dist/QZ7GXWCY.js.map +0 -1
- package/dist/R6FPU7JX.cjs.map +0 -1
- package/dist/XNBCDROQ.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ChainType } from '@layerzerolabs/layerzero-definitions';
|
|
2
|
+
import type { VersionResolutionResult } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* Extract user-specified versions from command line options
|
|
4
5
|
*/
|
|
@@ -22,7 +23,7 @@ export declare function resolveToolVersion(toolName: string, userSpecifiedVersio
|
|
|
22
23
|
/**
|
|
23
24
|
* Resolve versions for all tools in a type with compatibility checking
|
|
24
25
|
*/
|
|
25
|
-
export declare function resolveTypeVersions(type:
|
|
26
|
+
export declare function resolveTypeVersions(type: ChainType, userSpecifiedVersions: {
|
|
26
27
|
[key: string]: string;
|
|
27
28
|
}, options: {
|
|
28
29
|
[key: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-resolver.d.ts","sourceRoot":"","sources":["../../src/core/version-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version-resolver.d.ts","sourceRoot":"","sources":["../../src/core/version-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGtE,OAAO,KAAK,EAAsB,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAW5E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAa9F;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,qBAAqB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAChD,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC/B,GAAG,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAmCf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,SAAS,EACf,qBAAqB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAChD,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC/B,GAAG,EAAE,MAAM,GACZ,uBAAuB,CAwGzB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../
|
|
2
|
-
import '../
|
|
3
|
-
import '../XNBCDROQ.js';
|
|
1
|
+
export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../2I5OW7DK.js';
|
|
2
|
+
import '../TYZZ6CWY.js';
|
|
4
3
|
import '../3CLGGUZ6.js';
|
|
4
|
+
import '../435HEEZL.js';
|
|
5
5
|
import '../HR64SZQX.js';
|
|
6
6
|
import '../4RNWLMHM.js';
|
|
7
7
|
//# sourceMappingURL=version-resolver.js.map
|
package/dist/display/index.cjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('../7PP2QA5H.cjs');
|
|
4
|
-
var
|
|
4
|
+
var K7XFIMAS_cjs = require('../K7XFIMAS.cjs');
|
|
5
5
|
var FLI6L2YX_cjs = require('../FLI6L2YX.cjs');
|
|
6
|
-
require('../
|
|
7
|
-
require('../4SK6SDII.cjs');
|
|
6
|
+
require('../PRVB7VA2.cjs');
|
|
8
7
|
require('../5RAWDGJY.cjs');
|
|
8
|
+
require('../7LPKGDJK.cjs');
|
|
9
9
|
require('../VO65XOWD.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, "displayToolVersionInfo", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return K7XFIMAS_cjs.displayToolVersionInfo; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "displayVersionCombinations", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return K7XFIMAS_cjs.displayVersionCombinations; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "createUserFriendlyError", {
|
|
22
22
|
enumerable: true,
|
package/dist/display/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../7DH3URRX.js';
|
|
2
|
-
export { displayToolVersionInfo, displayVersionCombinations } from '../
|
|
2
|
+
export { displayToolVersionInfo, displayVersionCombinations } from '../L7FV6P64.js';
|
|
3
3
|
export { createUserFriendlyError, formatVersionCombination } from '../5OKX3IYN.js';
|
|
4
|
-
import '../
|
|
5
|
-
import '../XNBCDROQ.js';
|
|
4
|
+
import '../TYZZ6CWY.js';
|
|
6
5
|
import '../3CLGGUZ6.js';
|
|
6
|
+
import '../435HEEZL.js';
|
|
7
7
|
import '../4RNWLMHM.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var K7XFIMAS_cjs = require('../K7XFIMAS.cjs');
|
|
4
4
|
require('../FLI6L2YX.cjs');
|
|
5
|
-
require('../
|
|
6
|
-
require('../4SK6SDII.cjs');
|
|
5
|
+
require('../PRVB7VA2.cjs');
|
|
7
6
|
require('../5RAWDGJY.cjs');
|
|
7
|
+
require('../7LPKGDJK.cjs');
|
|
8
8
|
require('../VO65XOWD.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, "displayToolVersionInfo", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return K7XFIMAS_cjs.displayToolVersionInfo; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "displayVersionCombinations", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return K7XFIMAS_cjs.displayVersionCombinations; }
|
|
19
19
|
});
|
|
20
20
|
//# sourceMappingURL=version-display.cjs.map
|
|
21
21
|
//# sourceMappingURL=version-display.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-display.d.ts","sourceRoot":"","sources":["../../src/display/version-display.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"version-display.d.ts","sourceRoot":"","sources":["../../src/display/version-display.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAqCjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoD7D"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { displayToolVersionInfo, displayVersionCombinations } from '../
|
|
1
|
+
export { displayToolVersionInfo, displayVersionCombinations } from '../L7FV6P64.js';
|
|
2
2
|
import '../5OKX3IYN.js';
|
|
3
|
-
import '../
|
|
4
|
-
import '../XNBCDROQ.js';
|
|
3
|
+
import '../TYZZ6CWY.js';
|
|
5
4
|
import '../3CLGGUZ6.js';
|
|
5
|
+
import '../435HEEZL.js';
|
|
6
6
|
import '../4RNWLMHM.js';
|
|
7
7
|
//# sourceMappingURL=version-display.js.map
|
|
8
8
|
//# sourceMappingURL=version-display.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('./7PP2QA5H.cjs');
|
|
4
|
-
var
|
|
4
|
+
var K7XFIMAS_cjs = require('./K7XFIMAS.cjs');
|
|
5
5
|
require('./FLI6L2YX.cjs');
|
|
6
6
|
require('./OOTZHKMN.cjs');
|
|
7
|
-
var
|
|
8
|
-
require('./
|
|
9
|
-
require('./
|
|
10
|
-
var DYZKD7UQ_cjs = require('./DYZKD7UQ.cjs');
|
|
11
|
-
require('./4SK6SDII.cjs');
|
|
7
|
+
var HNMWFWE6_cjs = require('./HNMWFWE6.cjs');
|
|
8
|
+
require('./H5GMZAIP.cjs');
|
|
9
|
+
var PRVB7VA2_cjs = require('./PRVB7VA2.cjs');
|
|
12
10
|
require('./5RAWDGJY.cjs');
|
|
11
|
+
require('./7LPKGDJK.cjs');
|
|
13
12
|
require('./JJXZWB7K.cjs');
|
|
13
|
+
require('./NSZHKDNY.cjs');
|
|
14
14
|
var VO65XOWD_cjs = require('./VO65XOWD.cjs');
|
|
15
15
|
var commander = require('commander');
|
|
16
16
|
var fs = require('fs');
|
|
@@ -29,7 +29,7 @@ async function main() {
|
|
|
29
29
|
const program = new commander.Command();
|
|
30
30
|
program.name("lz-tool").description("\u{1F680} LayerZero VM tooling with intelligent version management\n\nUsage pattern:\n lz-tool [global-options] <tool> [tool-args...]\n\nExamples:\n lz-tool -e bash sui --help\n lz-tool --sui-version 1.38.0 sui client\n\nNote: All lz-tool options must appear BEFORE the tool name.").version("1.0.0").enablePositionalOptions();
|
|
31
31
|
if (process__default.default.argv.includes("--list-versions")) {
|
|
32
|
-
|
|
32
|
+
K7XFIMAS_cjs.displayVersionCombinations();
|
|
33
33
|
process__default.default.exit(0);
|
|
34
34
|
}
|
|
35
35
|
program.option("-c, --cwd <path>", "Current working directory", (input) => {
|
|
@@ -76,18 +76,18 @@ async function main() {
|
|
|
76
76
|
});
|
|
77
77
|
return previous;
|
|
78
78
|
}, []);
|
|
79
|
-
|
|
79
|
+
PRVB7VA2_cjs.tools.forEach((tool) => {
|
|
80
80
|
const optionFlag = `--${tool.name}-version <version>`;
|
|
81
|
-
const defaultVersion =
|
|
82
|
-
const supportedVersions =
|
|
81
|
+
const defaultVersion = PRVB7VA2_cjs.getToolDefaultVersion(tool.name);
|
|
82
|
+
const supportedVersions = PRVB7VA2_cjs.getToolSupportedVersions(tool.name);
|
|
83
83
|
const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(", ")})`;
|
|
84
84
|
program.option(optionFlag, description);
|
|
85
85
|
});
|
|
86
86
|
program.option("--list-versions", "Display all supported version combinations and exit");
|
|
87
87
|
program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => {
|
|
88
|
-
|
|
88
|
+
K7XFIMAS_cjs.displayToolVersionInfo(toolName);
|
|
89
89
|
});
|
|
90
|
-
|
|
90
|
+
PRVB7VA2_cjs.tools.forEach((tool) => {
|
|
91
91
|
const toolCmd = program.command(tool.name, {
|
|
92
92
|
isDefault: false
|
|
93
93
|
}).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool");
|
|
@@ -95,7 +95,7 @@ async function main() {
|
|
|
95
95
|
const globalOptions = program.opts();
|
|
96
96
|
const cwd = globalOptions.cwd ?? process__default.default.cwd();
|
|
97
97
|
try {
|
|
98
|
-
await
|
|
98
|
+
await HNMWFWE6_cjs.executeToolCommand(tool.name, args, {
|
|
99
99
|
cwd,
|
|
100
100
|
volumes: globalOptions.volume,
|
|
101
101
|
...globalOptions
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import './7DH3URRX.js';
|
|
2
|
-
import { displayVersionCombinations, displayToolVersionInfo } from './
|
|
2
|
+
import { displayVersionCombinations, displayToolVersionInfo } from './L7FV6P64.js';
|
|
3
3
|
import './5OKX3IYN.js';
|
|
4
4
|
import './OAO7CCJW.js';
|
|
5
|
-
import { executeToolCommand } from './
|
|
6
|
-
import './
|
|
7
|
-
import './
|
|
8
|
-
import { tools, getToolDefaultVersion, getToolSupportedVersions } from './A34JELOF.js';
|
|
9
|
-
import './XNBCDROQ.js';
|
|
5
|
+
import { executeToolCommand } from './VVYYMOE5.js';
|
|
6
|
+
import './2I5OW7DK.js';
|
|
7
|
+
import { tools, getToolDefaultVersion, getToolSupportedVersions } from './TYZZ6CWY.js';
|
|
10
8
|
import './3CLGGUZ6.js';
|
|
9
|
+
import './435HEEZL.js';
|
|
11
10
|
import './HR64SZQX.js';
|
|
11
|
+
import './PDSRUQEX.js';
|
|
12
12
|
import { init_esm_shims, __name } from './4RNWLMHM.js';
|
|
13
13
|
import { Command } from 'commander';
|
|
14
14
|
import fs from 'fs';
|
|
@@ -10,13 +10,13 @@ require('../VVTDADG7.cjs');
|
|
|
10
10
|
require('../DPDVRYLI.cjs');
|
|
11
11
|
var BXO3RC75_cjs = require('../BXO3RC75.cjs');
|
|
12
12
|
var NEQ3DTUV_cjs = require('../NEQ3DTUV.cjs');
|
|
13
|
-
var
|
|
14
|
-
require('../
|
|
15
|
-
require('../
|
|
16
|
-
require('../DYZKD7UQ.cjs');
|
|
17
|
-
var _4SK6SDII_cjs = require('../4SK6SDII.cjs');
|
|
13
|
+
var HNMWFWE6_cjs = require('../HNMWFWE6.cjs');
|
|
14
|
+
require('../H5GMZAIP.cjs');
|
|
15
|
+
var PRVB7VA2_cjs = require('../PRVB7VA2.cjs');
|
|
18
16
|
require('../5RAWDGJY.cjs');
|
|
17
|
+
var _7LPKGDJK_cjs = require('../7LPKGDJK.cjs');
|
|
19
18
|
require('../JJXZWB7K.cjs');
|
|
19
|
+
require('../NSZHKDNY.cjs');
|
|
20
20
|
var VO65XOWD_cjs = require('../VO65XOWD.cjs');
|
|
21
21
|
var commander = require('commander');
|
|
22
22
|
var process$1 = require('process');
|
|
@@ -1931,8 +1931,10 @@ var tagSeparators = [
|
|
|
1931
1931
|
var ecrClient = new ECRClient();
|
|
1932
1932
|
var command = new commander.Command().name("generate-github-matrix").requiredOption("--registry <registry>").parse();
|
|
1933
1933
|
var { registry } = command.opts();
|
|
1934
|
-
var compileVersionMatrix = /* @__PURE__ */ VO65XOWD_cjs.__name(async (
|
|
1935
|
-
const
|
|
1934
|
+
var compileVersionMatrix = /* @__PURE__ */ VO65XOWD_cjs.__name(async (matrix) => {
|
|
1935
|
+
const { combinations } = matrix;
|
|
1936
|
+
const repoBaseName = PRVB7VA2_cjs.chainTypeToDockerRepoBaseName(matrix.chainType);
|
|
1937
|
+
const repository = `layerzerolabs/${repoBaseName}-tooling`;
|
|
1936
1938
|
let existingTags = /* @__PURE__ */ new Set();
|
|
1937
1939
|
try {
|
|
1938
1940
|
const imageIds = [];
|
|
@@ -1955,21 +1957,21 @@ var compileVersionMatrix = /* @__PURE__ */ VO65XOWD_cjs.__name(async ({ toolType
|
|
|
1955
1957
|
}
|
|
1956
1958
|
console.error(error.message);
|
|
1957
1959
|
}
|
|
1958
|
-
console.error(`Existing tags for ${
|
|
1960
|
+
console.error(`Existing tags for ${repository}:`, [
|
|
1959
1961
|
...existingTags
|
|
1960
1962
|
]);
|
|
1961
1963
|
return combinations.map(({ versions, patch }) => ({
|
|
1962
|
-
|
|
1964
|
+
chain: matrix.chainType,
|
|
1963
1965
|
build_args: Object.entries(versions).sort().map(([key, value]) => `${key.toUpperCase()}_VERSION=${value}`),
|
|
1964
|
-
directory: `tools/vm-tooling/docker/${
|
|
1966
|
+
directory: `tools/vm-tooling/docker/${repoBaseName}`,
|
|
1965
1967
|
repository,
|
|
1966
1968
|
tags: tagSeparators.map((separator) => {
|
|
1967
|
-
return `${registry}/${repository}:${
|
|
1969
|
+
return `${registry}/${repository}:${HNMWFWE6_cjs.getCombinationTag(versions, patch, separator)}`;
|
|
1968
1970
|
})
|
|
1969
1971
|
})).filter(({ tags }) => !tags.some((tag) => existingTags.has(tag.split(":").at(-1))));
|
|
1970
1972
|
}, "compileVersionMatrix");
|
|
1971
1973
|
var main = /* @__PURE__ */ VO65XOWD_cjs.__name(async () => {
|
|
1972
|
-
const entries = (await Promise.all(
|
|
1974
|
+
const entries = (await Promise.all(_7LPKGDJK_cjs.versionMatrices.map(compileVersionMatrix))).flat();
|
|
1973
1975
|
console.error("GitHub Action matrix generated:", entries);
|
|
1974
1976
|
process$1.stdout.write(JSON.stringify(entries));
|
|
1975
1977
|
}, "main");
|