@goatlab/tasks-adapter-bullmq 0.1.0 → 0.2.1
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/BullMQConnector.d.ts +67 -1
- package/dist/BullMQConnector.js +87 -3
- package/dist/BullMQConnector.js.map +1 -1
- package/dist/benchmark.js +4 -4
- package/dist/benchmark.js.map +1 -1
- package/dist/bullmq.spec.js +73 -0
- package/dist/bullmq.spec.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { ShouldQueue, TaskConnector, TaskStatus } from "@goatlab/tasks-core";
|
|
1
|
+
import type { ShouldQueue, TaskConnector, TaskStatus, TenantCredentials } from "@goatlab/tasks-core";
|
|
2
2
|
import type { JobsOptions } from "bullmq";
|
|
3
3
|
import { type Job, Queue, Worker } from "bullmq";
|
|
4
4
|
export interface BullMQConnectionOptions {
|
|
5
5
|
host?: string;
|
|
6
6
|
port?: number;
|
|
7
|
+
username?: string;
|
|
7
8
|
password?: string;
|
|
8
9
|
db?: number;
|
|
9
10
|
family?: 4 | 6;
|
|
@@ -12,26 +13,91 @@ export interface BullMQConnectionOptions {
|
|
|
12
13
|
export interface BullMQConnectorConfig {
|
|
13
14
|
connection?: BullMQConnectionOptions;
|
|
14
15
|
defaultJobOptions?: JobsOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Tenant ID for multi-tenant isolation.
|
|
18
|
+
* When set, this tenant ID is used as a prefix for all Redis keys.
|
|
19
|
+
*
|
|
20
|
+
* Key pattern: {tenantId}:bull:{queueName}:{keyType}
|
|
21
|
+
* Example: "acme-corp:bull:email-queue:waiting"
|
|
22
|
+
*
|
|
23
|
+
* This enables Redis ACL rules like: ~acme-corp:* +@all
|
|
24
|
+
* to restrict tenant access to only their prefixed keys.
|
|
25
|
+
*/
|
|
26
|
+
tenantId?: string;
|
|
15
27
|
}
|
|
16
28
|
export declare class BullMQConnector implements TaskConnector<object> {
|
|
17
29
|
private readonly connectionOptions;
|
|
18
30
|
private readonly defaultJobOptions;
|
|
19
31
|
private readonly queues;
|
|
20
32
|
private readonly workers;
|
|
33
|
+
private readonly _tenantId?;
|
|
34
|
+
private readonly _prefix;
|
|
35
|
+
private readonly config;
|
|
36
|
+
/**
|
|
37
|
+
* The tenant ID this connector is scoped to.
|
|
38
|
+
* When set, all Redis keys are prefixed with this tenant ID.
|
|
39
|
+
*/
|
|
40
|
+
get tenantId(): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The Redis key prefix used by this connector.
|
|
43
|
+
* Format: "{tenantId}:bull" if tenant is set, otherwise "bull" (default)
|
|
44
|
+
*
|
|
45
|
+
* This prefix is applied to all queue names, resulting in keys like:
|
|
46
|
+
* - With tenant: "acme-corp:bull:email-queue:waiting"
|
|
47
|
+
* - Without tenant: "bull:email-queue:waiting"
|
|
48
|
+
*/
|
|
49
|
+
get prefix(): string;
|
|
21
50
|
constructor(config?: BullMQConnectorConfig);
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new BullMQConnector instance scoped to a specific tenant.
|
|
53
|
+
* The new connector uses the tenant ID as a Redis key prefix for isolation.
|
|
54
|
+
*
|
|
55
|
+
* @param tenantId - The tenant identifier for isolation
|
|
56
|
+
* @param credentials - Optional credentials for the tenant's Redis user
|
|
57
|
+
* @returns A new BullMQConnector instance scoped to the tenant
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const baseConnector = new BullMQConnector({ connection: { host: 'localhost' } })
|
|
62
|
+
*
|
|
63
|
+
* // Create tenant-scoped connector (uses prefix isolation)
|
|
64
|
+
* const tenantConnector = baseConnector.forTenant('acme-corp')
|
|
65
|
+
* // Keys: acme-corp:queue-name:*
|
|
66
|
+
*
|
|
67
|
+
* // With Redis ACL credentials for stronger isolation
|
|
68
|
+
* const secureConnector = baseConnector.forTenant('acme-corp', {
|
|
69
|
+
* username: 'tenant_acme',
|
|
70
|
+
* password: 'secret'
|
|
71
|
+
* })
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
forTenant(tenantId: string, credentials?: TenantCredentials): BullMQConnector;
|
|
22
75
|
/**
|
|
23
76
|
* Gets or creates a queue for a given queue name.
|
|
24
77
|
* Queues are memoized to avoid creating multiple instances.
|
|
78
|
+
*
|
|
79
|
+
* When a tenant ID is set, the queue uses the tenant ID as the Redis key prefix.
|
|
80
|
+
* This ensures all keys are namespaced under the tenant.
|
|
81
|
+
*
|
|
82
|
+
* Key patterns:
|
|
83
|
+
* - With tenant "acme-corp": acme-corp:bull:email-queue:waiting
|
|
84
|
+
* - Without tenant: bull:email-queue:waiting
|
|
25
85
|
*/
|
|
26
86
|
getQueue(queueName: string): Queue;
|
|
27
87
|
/**
|
|
28
88
|
* Creates a worker for processing jobs from a BullMQ task.
|
|
29
89
|
* Similar to Hatchet's getHatchetTask but creates a worker.
|
|
90
|
+
*
|
|
91
|
+
* IMPORTANT: The worker uses the same prefix as the queue to ensure
|
|
92
|
+
* it processes jobs from the correct tenant namespace.
|
|
30
93
|
*/
|
|
31
94
|
getBullMQWorker(task: ShouldQueue, concurrency?: number): Worker;
|
|
32
95
|
/**
|
|
33
96
|
* Starts a worker to process jobs for the given tasks.
|
|
34
97
|
* Similar pattern to HatchetConnector.startWorker().
|
|
98
|
+
*
|
|
99
|
+
* IMPORTANT: Workers use the same prefix as queues to ensure
|
|
100
|
+
* they only process jobs from the correct tenant namespace.
|
|
35
101
|
*/
|
|
36
102
|
startWorker({ workerName, tasks, concurrency, }: {
|
|
37
103
|
workerName?: string;
|
package/dist/BullMQConnector.js
CHANGED
|
@@ -9,6 +9,7 @@ const DEFAULT_HOST = "localhost";
|
|
|
9
9
|
const DEFAULT_PORT = 6379;
|
|
10
10
|
const DEFAULT_MAX_RETRIES = 3;
|
|
11
11
|
const DEFAULT_CONCURRENCY = 100;
|
|
12
|
+
const DEFAULT_PREFIX = "bull";
|
|
12
13
|
/**
|
|
13
14
|
* Maps BullMQ job states to TaskStatusName
|
|
14
15
|
*/
|
|
@@ -34,10 +35,40 @@ class BullMQConnector {
|
|
|
34
35
|
defaultJobOptions;
|
|
35
36
|
queues = new Map();
|
|
36
37
|
workers = new Map();
|
|
38
|
+
_tenantId;
|
|
39
|
+
_prefix;
|
|
40
|
+
config;
|
|
41
|
+
/**
|
|
42
|
+
* The tenant ID this connector is scoped to.
|
|
43
|
+
* When set, all Redis keys are prefixed with this tenant ID.
|
|
44
|
+
*/
|
|
45
|
+
get tenantId() {
|
|
46
|
+
return this._tenantId;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The Redis key prefix used by this connector.
|
|
50
|
+
* Format: "{tenantId}:bull" if tenant is set, otherwise "bull" (default)
|
|
51
|
+
*
|
|
52
|
+
* This prefix is applied to all queue names, resulting in keys like:
|
|
53
|
+
* - With tenant: "acme-corp:bull:email-queue:waiting"
|
|
54
|
+
* - Without tenant: "bull:email-queue:waiting"
|
|
55
|
+
*/
|
|
56
|
+
get prefix() {
|
|
57
|
+
return this._prefix;
|
|
58
|
+
}
|
|
37
59
|
constructor(config) {
|
|
60
|
+
this.config = config || {};
|
|
61
|
+
this._tenantId = config?.tenantId;
|
|
62
|
+
// Use tenant ID as prefix for multi-tenant isolation
|
|
63
|
+
// Keys will be: {tenantId}:bull:{queueName}:{keyType}
|
|
64
|
+
// This allows Redis ACL rules like: ~{tenantId}:* +@all
|
|
65
|
+
this._prefix = config?.tenantId
|
|
66
|
+
? `${config.tenantId}:${DEFAULT_PREFIX}`
|
|
67
|
+
: DEFAULT_PREFIX;
|
|
38
68
|
this.connectionOptions = {
|
|
39
69
|
host: config?.connection?.host || DEFAULT_HOST,
|
|
40
70
|
port: config?.connection?.port || DEFAULT_PORT,
|
|
71
|
+
username: config?.connection?.username,
|
|
41
72
|
password: config?.connection?.password,
|
|
42
73
|
db: config?.connection?.db || 0,
|
|
43
74
|
family: config?.connection?.family || 4,
|
|
@@ -53,25 +84,72 @@ class BullMQConnector {
|
|
|
53
84
|
removeOnFail: false,
|
|
54
85
|
};
|
|
55
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Creates a new BullMQConnector instance scoped to a specific tenant.
|
|
89
|
+
* The new connector uses the tenant ID as a Redis key prefix for isolation.
|
|
90
|
+
*
|
|
91
|
+
* @param tenantId - The tenant identifier for isolation
|
|
92
|
+
* @param credentials - Optional credentials for the tenant's Redis user
|
|
93
|
+
* @returns A new BullMQConnector instance scoped to the tenant
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const baseConnector = new BullMQConnector({ connection: { host: 'localhost' } })
|
|
98
|
+
*
|
|
99
|
+
* // Create tenant-scoped connector (uses prefix isolation)
|
|
100
|
+
* const tenantConnector = baseConnector.forTenant('acme-corp')
|
|
101
|
+
* // Keys: acme-corp:queue-name:*
|
|
102
|
+
*
|
|
103
|
+
* // With Redis ACL credentials for stronger isolation
|
|
104
|
+
* const secureConnector = baseConnector.forTenant('acme-corp', {
|
|
105
|
+
* username: 'tenant_acme',
|
|
106
|
+
* password: 'secret'
|
|
107
|
+
* })
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
forTenant(tenantId, credentials) {
|
|
111
|
+
return new BullMQConnector({
|
|
112
|
+
...this.config,
|
|
113
|
+
tenantId,
|
|
114
|
+
connection: {
|
|
115
|
+
...this.config.connection,
|
|
116
|
+
// Override credentials if provided for stronger isolation
|
|
117
|
+
...(credentials?.username && { username: credentials.username }),
|
|
118
|
+
...(credentials?.password && { password: credentials.password }),
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
56
122
|
/**
|
|
57
123
|
* Gets or creates a queue for a given queue name.
|
|
58
124
|
* Queues are memoized to avoid creating multiple instances.
|
|
125
|
+
*
|
|
126
|
+
* When a tenant ID is set, the queue uses the tenant ID as the Redis key prefix.
|
|
127
|
+
* This ensures all keys are namespaced under the tenant.
|
|
128
|
+
*
|
|
129
|
+
* Key patterns:
|
|
130
|
+
* - With tenant "acme-corp": acme-corp:bull:email-queue:waiting
|
|
131
|
+
* - Without tenant: bull:email-queue:waiting
|
|
59
132
|
*/
|
|
60
133
|
getQueue(queueName) {
|
|
61
|
-
const
|
|
134
|
+
const cacheKey = `${this._prefix}:${queueName}`;
|
|
135
|
+
const existing = this.queues.get(cacheKey);
|
|
62
136
|
if (existing) {
|
|
63
137
|
return existing;
|
|
64
138
|
}
|
|
65
139
|
const queue = new bullmq_1.Queue(queueName, {
|
|
66
140
|
connection: this.connectionOptions,
|
|
67
141
|
defaultJobOptions: this.defaultJobOptions,
|
|
142
|
+
prefix: this._prefix,
|
|
68
143
|
});
|
|
69
|
-
this.queues.set(
|
|
144
|
+
this.queues.set(cacheKey, queue);
|
|
70
145
|
return queue;
|
|
71
146
|
}
|
|
72
147
|
/**
|
|
73
148
|
* Creates a worker for processing jobs from a BullMQ task.
|
|
74
149
|
* Similar to Hatchet's getHatchetTask but creates a worker.
|
|
150
|
+
*
|
|
151
|
+
* IMPORTANT: The worker uses the same prefix as the queue to ensure
|
|
152
|
+
* it processes jobs from the correct tenant namespace.
|
|
75
153
|
*/
|
|
76
154
|
getBullMQWorker(task, concurrency = DEFAULT_CONCURRENCY) {
|
|
77
155
|
const worker = new bullmq_1.Worker(task.taskName, async (job) => {
|
|
@@ -79,24 +157,30 @@ class BullMQConnector {
|
|
|
79
157
|
}, {
|
|
80
158
|
connection: this.connectionOptions,
|
|
81
159
|
concurrency,
|
|
160
|
+
prefix: this._prefix,
|
|
82
161
|
});
|
|
83
162
|
return worker;
|
|
84
163
|
}
|
|
85
164
|
/**
|
|
86
165
|
* Starts a worker to process jobs for the given tasks.
|
|
87
166
|
* Similar pattern to HatchetConnector.startWorker().
|
|
167
|
+
*
|
|
168
|
+
* IMPORTANT: Workers use the same prefix as queues to ensure
|
|
169
|
+
* they only process jobs from the correct tenant namespace.
|
|
88
170
|
*/
|
|
89
171
|
async startWorker({ workerName, tasks, concurrency = DEFAULT_CONCURRENCY, }) {
|
|
90
172
|
const workers = [];
|
|
91
173
|
for (const task of tasks) {
|
|
174
|
+
const workerKey = `${this._prefix}:${task.taskName}`;
|
|
92
175
|
const worker = new bullmq_1.Worker(task.taskName, async (job) => {
|
|
93
176
|
return task.handle(job.data);
|
|
94
177
|
}, {
|
|
95
178
|
connection: this.connectionOptions,
|
|
96
179
|
concurrency,
|
|
97
180
|
name: `${workerName || task.taskName}-${js_utils_1.Ids.nanoId(5)}`,
|
|
181
|
+
prefix: this._prefix,
|
|
98
182
|
});
|
|
99
|
-
this.workers.set(
|
|
183
|
+
this.workers.set(workerKey, worker);
|
|
100
184
|
workers.push(worker);
|
|
101
185
|
}
|
|
102
186
|
// Give workers some time to start and connect to Redis
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BullMQConnector.js","sourceRoot":"","sources":["../src/BullMQConnector.ts"],"names":[],"mappings":";;;;AAAA,gDAA8C;
|
|
1
|
+
{"version":3,"file":"BullMQConnector.js","sourceRoot":"","sources":["../src/BullMQConnector.ts"],"names":[],"mappings":"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"}
|
package/dist/benchmark.js
CHANGED
|
@@ -32,7 +32,7 @@ class BenchmarkTask extends tasks_core_1.ShouldQueue {
|
|
|
32
32
|
return undefined;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
async function runQueueBenchmark(
|
|
35
|
+
async function runQueueBenchmark(_connector, task) {
|
|
36
36
|
console.log("\n📊 Queue Throughput (queue-only, no worker)");
|
|
37
37
|
console.log("=".repeat(50));
|
|
38
38
|
// Warmup
|
|
@@ -154,7 +154,7 @@ async function main() {
|
|
|
154
154
|
const latency = await runLatencyBenchmark(connector3, task3);
|
|
155
155
|
await connector3.close();
|
|
156
156
|
// Summary
|
|
157
|
-
console.log(
|
|
157
|
+
console.log(`\n${"=".repeat(50)}`);
|
|
158
158
|
console.log("📈 BULLMQ SUMMARY");
|
|
159
159
|
console.log("=".repeat(50));
|
|
160
160
|
console.log(`Queue throughput: ${queueThroughput.toFixed(0)} tasks/sec`);
|
|
@@ -270,7 +270,7 @@ async function runPersistenceComparison() {
|
|
|
270
270
|
await connector3.close();
|
|
271
271
|
await container3.stop();
|
|
272
272
|
// Summary
|
|
273
|
-
console.log(
|
|
273
|
+
console.log(`\n${"=".repeat(50)}`);
|
|
274
274
|
console.log("📈 PERSISTENCE COMPARISON");
|
|
275
275
|
console.log("=".repeat(50));
|
|
276
276
|
for (const r of results) {
|
|
@@ -327,7 +327,7 @@ async function runPayloadComparison() {
|
|
|
327
327
|
}
|
|
328
328
|
await container.stop();
|
|
329
329
|
// Summary
|
|
330
|
-
console.log(
|
|
330
|
+
console.log(`\n${"=".repeat(50)}`);
|
|
331
331
|
console.log("📈 PAYLOAD SIZE COMPARISON");
|
|
332
332
|
console.log("=".repeat(50));
|
|
333
333
|
const maxThroughput = results[0].throughput;
|
package/dist/benchmark.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"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"}
|
package/dist/bullmq.spec.js
CHANGED
|
@@ -85,5 +85,78 @@ const bullmqConnector = new BullMQConnector_js_1.BullMQConnector({
|
|
|
85
85
|
await connector.resumeQueue("pause_test_queue");
|
|
86
86
|
// Queue should be resumed
|
|
87
87
|
});
|
|
88
|
+
(0, vitest_1.it)("should expose tenantId when set", () => {
|
|
89
|
+
const tenantConnector = new BullMQConnector_js_1.BullMQConnector({
|
|
90
|
+
connection: {
|
|
91
|
+
host: globalData.host || "localhost",
|
|
92
|
+
port: globalData.port || 6379,
|
|
93
|
+
},
|
|
94
|
+
tenantId: "test-tenant",
|
|
95
|
+
});
|
|
96
|
+
(0, vitest_1.expect)(tenantConnector.tenantId).toBe("test-tenant");
|
|
97
|
+
(0, vitest_1.expect)(tenantConnector.prefix).toBe("test-tenant:bull");
|
|
98
|
+
});
|
|
99
|
+
(0, vitest_1.it)("should use default prefix when no tenantId", () => {
|
|
100
|
+
(0, vitest_1.expect)(connector.tenantId).toBeUndefined();
|
|
101
|
+
(0, vitest_1.expect)(connector.prefix).toBe("bull");
|
|
102
|
+
});
|
|
103
|
+
(0, vitest_1.it)("forTenant() should create a new connector with tenant prefix", () => {
|
|
104
|
+
const tenantConnector = connector.forTenant("acme-corp");
|
|
105
|
+
(0, vitest_1.expect)(tenantConnector.tenantId).toBe("acme-corp");
|
|
106
|
+
(0, vitest_1.expect)(tenantConnector.prefix).toBe("acme-corp:bull");
|
|
107
|
+
// Original connector should be unchanged
|
|
108
|
+
(0, vitest_1.expect)(connector.tenantId).toBeUndefined();
|
|
109
|
+
});
|
|
110
|
+
(0, vitest_1.it)("forTenant() should support credentials for Redis ACL", () => {
|
|
111
|
+
const tenantConnector = connector.forTenant("acme-corp", {
|
|
112
|
+
username: "tenant_acme",
|
|
113
|
+
password: "secret123",
|
|
114
|
+
});
|
|
115
|
+
(0, vitest_1.expect)(tenantConnector.tenantId).toBe("acme-corp");
|
|
116
|
+
// Credentials are stored internally in connectionOptions
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
// Multi-tenant isolation tests
|
|
120
|
+
// These verify that different tenants using the same Redis instance are properly isolated
|
|
121
|
+
const baseConnector = new BullMQConnector_js_1.BullMQConnector({
|
|
122
|
+
connection: {
|
|
123
|
+
host: globalData.host || "localhost",
|
|
124
|
+
port: globalData.port || 6379,
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
// Store tenant connectors for cleanup
|
|
128
|
+
const tenantConnectors = new Map();
|
|
129
|
+
(0, test_suite_1.multiTenantTestSuite)({ describe: vitest_1.describe, it: vitest_1.it, expect: vitest_1.expect, beforeAll: vitest_1.beforeAll, afterAll: vitest_1.afterAll, beforeEach: vitest_1.beforeEach, afterEach: vitest_1.afterEach }, {
|
|
130
|
+
createTenantConnector: (tenantId) => {
|
|
131
|
+
const tenantConnector = baseConnector.forTenant(tenantId);
|
|
132
|
+
tenantConnectors.set(tenantId, tenantConnector);
|
|
133
|
+
return tenantConnector;
|
|
134
|
+
},
|
|
135
|
+
startTenantWorker: async (tenantId, tasks) => {
|
|
136
|
+
const tenantConnector = tenantConnectors.get(tenantId);
|
|
137
|
+
if (!tenantConnector) {
|
|
138
|
+
throw new Error(`Tenant connector not found for ${tenantId}`);
|
|
139
|
+
}
|
|
140
|
+
await tenantConnector.startWorker({
|
|
141
|
+
workerName: `tenant-${tenantId}-worker`,
|
|
142
|
+
tasks,
|
|
143
|
+
concurrency: 10,
|
|
144
|
+
});
|
|
145
|
+
return async () => {
|
|
146
|
+
await tenantConnector.close();
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
taskCompletionTimeout: 10000,
|
|
150
|
+
statusCheckInterval: 500,
|
|
151
|
+
workerStartupDelay: 2000,
|
|
152
|
+
supportsForTenant: true,
|
|
153
|
+
runIsolationTests: true,
|
|
154
|
+
cleanup: async () => {
|
|
155
|
+
for (const connector of tenantConnectors.values()) {
|
|
156
|
+
await connector.close();
|
|
157
|
+
}
|
|
158
|
+
tenantConnectors.clear();
|
|
159
|
+
await baseConnector.close();
|
|
160
|
+
},
|
|
88
161
|
});
|
|
89
162
|
//# sourceMappingURL=bullmq.spec.js.map
|
package/dist/bullmq.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullmq.spec.js","sourceRoot":"","sources":["../src/bullmq.spec.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAGtC,+
|
|
1
|
+
{"version":3,"file":"bullmq.spec.js","sourceRoot":"","sources":["../src/bullmq.spec.ts"],"names":[],"mappings":"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"}
|