@golemio/pid 2.2.2-dev.534300037 → 2.2.2-dev.535545930
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/README.md +4 -1
- package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.d.ts +0 -1
- package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js +6 -19
- package/dist/output-gateway/vehicle-positions/VehiclePositionsRouter.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.d.ts +13 -3
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js +77 -9
- package/dist/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<p>
|
|
3
|
-
<a href="https://operatorict.cz
|
|
3
|
+
<a href="https://operatorict.cz">
|
|
4
4
|
<img src="https://gitlab.com/operator-ict/golemio/code/modules/core/-/raw/development/.assets/oict_logo.png" alt="oict" width="100px" height="100px" />
|
|
5
5
|
</a>
|
|
6
|
+
<a href="https://golemio.cz">
|
|
7
|
+
<img src="https://gitlab.com/operator-ict/golemio/code/modules/core/-/raw/development/.assets/golemio_logo.png" alt="golemio" width="100px" height="100px" />
|
|
8
|
+
</a>
|
|
6
9
|
</p>
|
|
7
10
|
|
|
8
11
|
<h1>@golemio/pid</h1>
|
|
@@ -22,7 +22,6 @@ export declare class VehiclePositionsRouter {
|
|
|
22
22
|
* Debug endpoint
|
|
23
23
|
*/
|
|
24
24
|
GetGtfsRtVehiclePositionsJSON: (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
25
|
-
private mapPositionItemToISOString;
|
|
26
25
|
/**
|
|
27
26
|
* Initiates all routes. Should respond with correct data to a HTTP requests to all routes.
|
|
28
27
|
* @param {number|string} expire TTL for the caching middleware
|
|
@@ -49,13 +49,12 @@ class VehiclePositionsRouter {
|
|
|
49
49
|
routeId: req.query.routeId,
|
|
50
50
|
routeShortName: req.query.routeShortName,
|
|
51
51
|
updatedSince: req.query.updatedSince ? new Date(req.query.updatedSince) : null,
|
|
52
|
+
preferredTimezone,
|
|
52
53
|
});
|
|
53
|
-
|
|
54
|
-
return Object.assign(Object.assign({}, x), { properties: this.mapPositionItemToISOString(x.properties, preferredTimezone) });
|
|
55
|
-
}) });
|
|
56
|
-
res.set("X-Last-Modified", (0, moment_timezone_1.default)(result.metadata.max_updated_at).toISOString()).status(200).send(response);
|
|
54
|
+
res.set("X-Last-Modified", (0, moment_timezone_1.default)(result.metadata.max_updated_at).toISOString()).status(200).send(result.data);
|
|
57
55
|
}
|
|
58
56
|
catch (err) {
|
|
57
|
+
console.log(err);
|
|
59
58
|
next(err);
|
|
60
59
|
}
|
|
61
60
|
finally {
|
|
@@ -66,15 +65,15 @@ class VehiclePositionsRouter {
|
|
|
66
65
|
const id = req.params.id;
|
|
67
66
|
const preferredTimezone = shared_1.RopidRouterUtils.validateAndReturnTimezone(req.query.preferredTimezone, this.constructor.name);
|
|
68
67
|
try {
|
|
69
|
-
const data = yield this.model.
|
|
68
|
+
const data = yield this.model.GetOneByGTFSTripId(id, {
|
|
70
69
|
includeNotTracking: (0, Utils_1.parseBooleanQueryParam)(req.query.includeNotTracking),
|
|
71
70
|
includePositions: (0, Utils_1.parseBooleanQueryParam)(req.query.includePositions),
|
|
71
|
+
preferredTimezone,
|
|
72
72
|
});
|
|
73
73
|
if (!data) {
|
|
74
74
|
throw new golemio_errors_1.CustomError("not_found", true, "VehiclePositionsRouter", 404, null);
|
|
75
75
|
}
|
|
76
|
-
|
|
77
|
-
res.status(200).send(response);
|
|
76
|
+
res.status(200).send(data);
|
|
78
77
|
}
|
|
79
78
|
catch (err) {
|
|
80
79
|
next(err);
|
|
@@ -176,18 +175,6 @@ class VehiclePositionsRouter {
|
|
|
176
175
|
this.model = models_1.models.VehiclePositionsTripsModel;
|
|
177
176
|
this.initRoutes("5 seconds");
|
|
178
177
|
}
|
|
179
|
-
mapPositionItemToISOString(x, preferredTimezone) {
|
|
180
|
-
const defaultFeatureObject = {
|
|
181
|
-
features: [],
|
|
182
|
-
type: "FeatureCollection",
|
|
183
|
-
};
|
|
184
|
-
return Object.assign(Object.assign({}, x), { all_positions: x.all_positions != null
|
|
185
|
-
? Object.assign(Object.assign({}, x.all_positions), { features: x.all_positions.features.map((y) => {
|
|
186
|
-
return Object.assign(Object.assign({}, y), { properties: Object.assign(Object.assign({}, y.properties), { last_stop: Object.assign(Object.assign({}, y.properties.last_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.last_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.last_stop.departure_time, preferredTimezone, true) }), next_stop: Object.assign(Object.assign({}, y.properties.next_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.next_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(y.properties.next_stop.departure_time, preferredTimezone, true) }), origin_timestamp: shared_1.RopidRouterUtils.formatTimestamp(y.properties.origin_timestamp, preferredTimezone, true) }) });
|
|
187
|
-
}) }) : defaultFeatureObject, last_position: x.last_position != null
|
|
188
|
-
? Object.assign(Object.assign({}, x.last_position), { last_stop: Object.assign(Object.assign({}, x.last_position.last_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.last_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.last_stop.departure_time, preferredTimezone, true) }), next_stop: Object.assign(Object.assign({}, x.last_position.next_stop), { arrival_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.next_stop.arrival_time, preferredTimezone, true), departure_time: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.next_stop.departure_time, preferredTimezone, true) }), origin_timestamp: shared_1.RopidRouterUtils.formatTimestamp(x.last_position.origin_timestamp, preferredTimezone, true) }) : defaultFeatureObject, trip: x.trip != null
|
|
189
|
-
? Object.assign(Object.assign({}, x.trip), { start_timestamp: shared_1.RopidRouterUtils.formatTimestamp(x.trip.start_timestamp, preferredTimezone, true) }) : defaultFeatureObject });
|
|
190
|
-
}
|
|
191
178
|
}
|
|
192
179
|
exports.VehiclePositionsRouter = VehiclePositionsRouter;
|
|
193
180
|
const vehiclepositionsRouter = new VehiclePositionsRouter().router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/vehicle-positions/VehiclePositionsRouter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;AAEH,mCAAkC;AAClC,+BAAiC;AACjC,6EAAuE;AACvE,+DAA4F;AAC5F,mFAA2E;AAC3E,gGAA+D;
|
|
1
|
+
{"version":3,"file":"VehiclePositionsRouter.js","sourceRoot":"","sources":["../../../src/output-gateway/vehicle-positions/VehiclePositionsRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IVehiclePositionsModels } from ".";
|
|
2
2
|
import { SequelizeModel } from "@golemio/core/dist/output-gateway/models";
|
|
3
3
|
export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
4
|
+
GetOne(id: any): Promise<any>;
|
|
4
5
|
constructor();
|
|
5
6
|
Associate: (m: IVehiclePositionsModels) => void;
|
|
6
7
|
/** Retrieves all vehicle trips
|
|
@@ -14,7 +15,7 @@ export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
|
14
15
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
15
16
|
* @returns Array of the retrieved records
|
|
16
17
|
*/
|
|
17
|
-
GetAll: (options
|
|
18
|
+
GetAll: (options: {
|
|
18
19
|
cisTripNumber?: number;
|
|
19
20
|
routeId?: string;
|
|
20
21
|
routeShortName?: string;
|
|
@@ -25,6 +26,7 @@ export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
|
25
26
|
limit?: number;
|
|
26
27
|
offset?: number;
|
|
27
28
|
updatedSince?: Date | null;
|
|
29
|
+
preferredTimezone: string;
|
|
28
30
|
}) => Promise<any>;
|
|
29
31
|
/** Retrieves specific vehicle trip
|
|
30
32
|
* @param {string} id Id of the trip
|
|
@@ -33,10 +35,11 @@ export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
|
33
35
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
34
36
|
* @returns Object of the retrieved record or null
|
|
35
37
|
*/
|
|
36
|
-
|
|
38
|
+
GetOneByGTFSTripId: (id: string, options: {
|
|
37
39
|
includeNotTracking?: boolean;
|
|
38
40
|
includePositions?: boolean;
|
|
39
41
|
includeNotPublic?: boolean;
|
|
42
|
+
preferredTimezone: string;
|
|
40
43
|
}) => Promise<object | null>;
|
|
41
44
|
/**
|
|
42
45
|
* Convert db result to proper output format
|
|
@@ -48,8 +51,15 @@ export declare class VehiclePositionsTripsModel extends SequelizeModel {
|
|
|
48
51
|
* @param {object} options Options object with params
|
|
49
52
|
* @param {boolean} [options.includeNotTracking] Should include all vehicles, even not tracked
|
|
50
53
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
51
|
-
* @param {
|
|
54
|
+
* @param {Date | null} [options.updatedSince] Should include all newer positions than updatedSince
|
|
55
|
+
* @param {string} [options.preferredTimezone] Preferred timezone code
|
|
52
56
|
* @returns Array of inclusions
|
|
53
57
|
*/
|
|
54
58
|
private ComposeIncludes;
|
|
59
|
+
/** Creates Projection Alias for epoch in milliseconds column converted to ISO String in defined timezone
|
|
60
|
+
* @param {string} columnName Columnt name
|
|
61
|
+
* @param {string} preferredTimezone Preferred timezone code
|
|
62
|
+
* @returns Projection Alias
|
|
63
|
+
*/
|
|
64
|
+
private convertEpochMsColumnToISOString;
|
|
55
65
|
}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
22
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
23
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -25,7 +44,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
45
|
exports.VehiclePositionsTripsModel = void 0;
|
|
27
46
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
28
|
-
const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
|
|
47
|
+
const sequelize_1 = __importStar(require("@golemio/core/dist/shared/sequelize"));
|
|
29
48
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
30
49
|
const database_1 = require("@golemio/core/dist/output-gateway/database");
|
|
31
50
|
const Geo_1 = require("@golemio/core/dist/output-gateway/Geo");
|
|
@@ -62,16 +81,18 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
62
81
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
63
82
|
* @returns Array of the retrieved records
|
|
64
83
|
*/
|
|
65
|
-
this.GetAll = (options
|
|
84
|
+
this.GetAll = (options) => __awaiter(this, void 0, void 0, function* () {
|
|
66
85
|
try {
|
|
67
86
|
const { limit, offset, updatedSince } = options;
|
|
68
87
|
const defaultMaxUpdatedAt = (0, moment_timezone_1.default)().subtract(10, "minutes");
|
|
69
88
|
// updatedSince cannot be after NOW - 10 minutes
|
|
70
|
-
const maxUpdatedAt = updatedSince && (0, moment_timezone_1.default)(updatedSince).isSameOrAfter(defaultMaxUpdatedAt)
|
|
89
|
+
const maxUpdatedAt = updatedSince && (0, moment_timezone_1.default)(updatedSince).isSameOrAfter(defaultMaxUpdatedAt)
|
|
90
|
+
? updatedSince.toISOString()
|
|
91
|
+
: (0, moment_timezone_1.default)().toISOString();
|
|
71
92
|
const include = this.ComposeIncludes(options);
|
|
72
93
|
const rows = yield this.sequelizeModel.findAll({
|
|
73
94
|
attributes: {
|
|
74
|
-
include: ["updated_at"],
|
|
95
|
+
include: ["updated_at", this.convertEpochMsColumnToISOString("start_timestamp", options.preferredTimezone)],
|
|
75
96
|
},
|
|
76
97
|
include,
|
|
77
98
|
limit,
|
|
@@ -108,10 +129,18 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
108
129
|
},
|
|
109
130
|
};
|
|
110
131
|
}
|
|
132
|
+
let returnData = [];
|
|
133
|
+
let maxUpdatedAtData = maxUpdatedAt;
|
|
134
|
+
for (const row of rows) {
|
|
135
|
+
returnData.push(this.ConvertItem(row));
|
|
136
|
+
if (row.updated_at > maxUpdatedAtData) {
|
|
137
|
+
maxUpdatedAtData = row.updated_at;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
111
140
|
return {
|
|
112
|
-
data: (0, Geo_1.buildGeojsonFeatureCollection)(
|
|
141
|
+
data: (0, Geo_1.buildGeojsonFeatureCollection)(returnData),
|
|
113
142
|
metadata: {
|
|
114
|
-
max_updated_at:
|
|
143
|
+
max_updated_at: maxUpdatedAtData,
|
|
115
144
|
},
|
|
116
145
|
};
|
|
117
146
|
}
|
|
@@ -126,10 +155,13 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
126
155
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
127
156
|
* @returns Object of the retrieved record or null
|
|
128
157
|
*/
|
|
129
|
-
this.
|
|
158
|
+
this.GetOneByGTFSTripId = (id, options) => __awaiter(this, void 0, void 0, function* () {
|
|
130
159
|
try {
|
|
131
160
|
const include = this.ComposeIncludes(options);
|
|
132
161
|
const data = yield this.sequelizeModel.findOne({
|
|
162
|
+
attributes: {
|
|
163
|
+
include: [this.convertEpochMsColumnToISOString("start_timestamp", options.preferredTimezone)],
|
|
164
|
+
},
|
|
133
165
|
include,
|
|
134
166
|
order: [["start_timestamp", "DESC"]],
|
|
135
167
|
where: {
|
|
@@ -201,7 +233,6 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
201
233
|
origin_route_name: trip.origin_route_name,
|
|
202
234
|
sequence_id: trip.sequence_id,
|
|
203
235
|
start_timestamp: trip.start_timestamp,
|
|
204
|
-
updated_at: trip.updated_at,
|
|
205
236
|
vehicle_registration_number: trip.vehicle_registration_number,
|
|
206
237
|
vehicle_type,
|
|
207
238
|
wheelchair_accessible: trip.wheelchair_accessible,
|
|
@@ -243,7 +274,8 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
243
274
|
* @param {object} options Options object with params
|
|
244
275
|
* @param {boolean} [options.includeNotTracking] Should include all vehicles, even not tracked
|
|
245
276
|
* @param {boolean} [options.includePositions] Should include all vehicle positions
|
|
246
|
-
* @param {
|
|
277
|
+
* @param {Date | null} [options.updatedSince] Should include all newer positions than updatedSince
|
|
278
|
+
* @param {string} [options.preferredTimezone] Preferred timezone code
|
|
247
279
|
* @returns Array of inclusions
|
|
248
280
|
*/
|
|
249
281
|
this.ComposeIncludes = (options) => {
|
|
@@ -256,6 +288,15 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
256
288
|
}
|
|
257
289
|
const include = [
|
|
258
290
|
{
|
|
291
|
+
attributes: {
|
|
292
|
+
include: [
|
|
293
|
+
this.convertEpochMsColumnToISOString("last_stop_arrival_time", options.preferredTimezone),
|
|
294
|
+
this.convertEpochMsColumnToISOString("last_stop_departure_time", options.preferredTimezone),
|
|
295
|
+
this.convertEpochMsColumnToISOString("next_stop_arrival_time", options.preferredTimezone),
|
|
296
|
+
this.convertEpochMsColumnToISOString("next_stop_departure_time", options.preferredTimezone),
|
|
297
|
+
this.convertEpochMsColumnToISOString("origin_timestamp", options.preferredTimezone),
|
|
298
|
+
],
|
|
299
|
+
},
|
|
259
300
|
as: "last_position",
|
|
260
301
|
model: database_1.sequelizeConnection.models[vehicle_positions_1.VehiclePositions.positions.pgTableName],
|
|
261
302
|
where: {
|
|
@@ -274,6 +315,15 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
274
315
|
];
|
|
275
316
|
if (options.includePositions) {
|
|
276
317
|
include.push({
|
|
318
|
+
attributes: {
|
|
319
|
+
include: [
|
|
320
|
+
this.convertEpochMsColumnToISOString("last_stop_arrival_time", options.preferredTimezone),
|
|
321
|
+
this.convertEpochMsColumnToISOString("last_stop_departure_time", options.preferredTimezone),
|
|
322
|
+
this.convertEpochMsColumnToISOString("next_stop_arrival_time", options.preferredTimezone),
|
|
323
|
+
this.convertEpochMsColumnToISOString("next_stop_departure_time", options.preferredTimezone),
|
|
324
|
+
this.convertEpochMsColumnToISOString("origin_timestamp", options.preferredTimezone),
|
|
325
|
+
],
|
|
326
|
+
},
|
|
277
327
|
as: "all_positions",
|
|
278
328
|
model: database_1.sequelizeConnection.models[vehicle_positions_1.VehiclePositions.positions.pgTableName],
|
|
279
329
|
where: {
|
|
@@ -286,6 +336,24 @@ class VehiclePositionsTripsModel extends models_1.SequelizeModel {
|
|
|
286
336
|
return include;
|
|
287
337
|
};
|
|
288
338
|
}
|
|
339
|
+
GetOne(id) {
|
|
340
|
+
throw new Error("Method not implemented.");
|
|
341
|
+
}
|
|
342
|
+
/** Creates Projection Alias for epoch in milliseconds column converted to ISO String in defined timezone
|
|
343
|
+
* @param {string} columnName Columnt name
|
|
344
|
+
* @param {string} preferredTimezone Preferred timezone code
|
|
345
|
+
* @returns Projection Alias
|
|
346
|
+
*/
|
|
347
|
+
convertEpochMsColumnToISOString(columnName, preferredTimezone) {
|
|
348
|
+
return [
|
|
349
|
+
sequelize_1.default.literal(` TO_CHAR(DATE_TRUNC('second',TO_TIMESTAMP(${columnName}/1000)) AT TIME ZONE '${preferredTimezone}',` +
|
|
350
|
+
` 'YYYY-MM-DD"T"HH24:MI:SS') || replace('+'` +
|
|
351
|
+
` || to_char(DATE_TRUNC('second',TO_TIMESTAMP(${columnName}/1000))` +
|
|
352
|
+
` AT TIME ZONE '${preferredTimezone}' - DATE_TRUNC('second',TO_TIMESTAMP(${columnName}/1000))` +
|
|
353
|
+
` AT TIME ZONE 'UTC','HH24:MMFM'),'+-', '-')`),
|
|
354
|
+
columnName,
|
|
355
|
+
];
|
|
356
|
+
}
|
|
289
357
|
}
|
|
290
358
|
exports.VehiclePositionsTripsModel = VehiclePositionsTripsModel;
|
|
291
359
|
//# sourceMappingURL=VehiclePositionsTripsModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VehiclePositionsTripsModel.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/models/VehiclePositionsTripsModel.ts"],"names":[],"mappings":"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"}
|