pipework 0.119.0 → 0.120.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/CHANGELOG.md +4 -0
- package/REFERENCE.md +3 -1
- package/dist/REFERENCE.md +1477 -0
- package/dist/core/surface/http.js +2 -0
- package/dist/core/surface/http.js.map +1 -1
- package/dist/core/surface/types.d.ts +2 -0
- package/dist/core/surface/types.d.ts.map +1 -1
- package/dist/infra/access-links/rate-limit.d.ts +10 -0
- package/dist/infra/access-links/rate-limit.d.ts.map +1 -0
- package/dist/infra/access-links/rate-limit.js +28 -0
- package/dist/infra/access-links/rate-limit.js.map +1 -0
- package/dist/infra/email/sigv4.d.ts +24 -0
- package/dist/infra/email/sigv4.d.ts.map +1 -0
- package/dist/infra/email/sigv4.js +55 -0
- package/dist/infra/email/sigv4.js.map +1 -0
- package/package.json +1 -1
|
@@ -91,6 +91,8 @@ function buildServerConfig(config) {
|
|
|
91
91
|
sc.trustProxy = config.trustProxy;
|
|
92
92
|
if (config.bodyLimit !== undefined)
|
|
93
93
|
sc.bodyLimit = config.bodyLimit;
|
|
94
|
+
if (config.onInternalError !== undefined)
|
|
95
|
+
sc.onInternalError = config.onInternalError;
|
|
94
96
|
return sc;
|
|
95
97
|
}
|
|
96
98
|
function collectHttpDatabases(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/surface/http.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACzD,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAA2B,EAAE,CAAA;IAEvC,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;QAEzD,YAAY,CAAC,CAAyB;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAuB,EAAE,OAA6B;YAChE,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS;gBAAG,YAAiC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACpH,MAAM,MAAM,GAAG,YAAY,CAAC,OAA8B,EAAE,YAAY,CAAC,CAAA;YAEzE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAEvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;YAErC,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO;gBACP,KAAK,CAAC,IAAI;oBACR,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;aACF,CAAA;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAuB;YAChC,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YAC9C,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAA;YAC7B,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAA8B,EAAE,YAAY,CAAC,CAAA;YAEzE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAEvC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;YAEpB,OAAO;gBACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;aAC5B,CAAA;QACH,CAAC;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAuC,EAAE,MAAyB;IACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAA;IACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAA;IACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB;IAClD,MAAM,EAAE,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAE1C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAG,EAAuB,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAG,EAAuB,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IAC1E,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS;QAAG,EAAqC,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAA;IAClI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAG,EAAqC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAG,EAAyC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAClG,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAG,EAAqC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAG,EAA6C,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC5G,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAG,EAA+C,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IACjH,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAG,EAAiD,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACtH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAG,EAA2C,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IACvG,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAG,EAAqC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxF,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS;QAAG,EAAuE,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;IAC7K,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;QAAG,EAAqE,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAA;IACxK,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAG,EAAqD,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IAChI,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAG,EAA2C,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IACvG,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAG,EAAyC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAClG,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAG,EAAiD,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;IACtH,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAG,EAA+C,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/surface/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,8 @@ export interface HttpSurfaceConfig {
|
|
|
106
106
|
readonly trustProxy?: ServerConfig['trustProxy'];
|
|
107
107
|
readonly gracefulShutdownMs?: number;
|
|
108
108
|
readonly bodyLimit?: ServerConfig['bodyLimit'];
|
|
109
|
+
/** Called before each internal 5xx is sent, as `ServerConfig.onInternalError`; `alerts.requestFaults(handle)` is such a hook. */
|
|
110
|
+
readonly onInternalError?: ServerConfig['onInternalError'];
|
|
109
111
|
}
|
|
110
112
|
export interface RetryConfig {
|
|
111
113
|
readonly attempts: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/surface/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/surface/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface RateLimitConfig {
|
|
2
|
+
readonly max: number;
|
|
3
|
+
readonly windowMs: number;
|
|
4
|
+
}
|
|
5
|
+
export interface RateLimiter {
|
|
6
|
+
/** Records a hit for `client`; false when the client is over the limit. */
|
|
7
|
+
hit(client: string, now?: number): boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function createRateLimiter(config: RateLimitConfig): RateLimiter;
|
|
10
|
+
//# sourceMappingURL=rate-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../src/infra/access-links/rate-limit.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,CAuBtE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// In-process sliding-window limiter. State lives in this process's memory:
|
|
2
|
+
// with N server processes the effective limit per client is up to N times
|
|
3
|
+
// `max`, and it resets on restart.
|
|
4
|
+
export function createRateLimiter(config) {
|
|
5
|
+
const hits = new Map();
|
|
6
|
+
let lastSweep = 0;
|
|
7
|
+
return {
|
|
8
|
+
hit(client, now = Date.now()) {
|
|
9
|
+
if (now - lastSweep > config.windowMs) {
|
|
10
|
+
lastSweep = now;
|
|
11
|
+
for (const [key, times] of hits) {
|
|
12
|
+
if (times.length === 0 || times[times.length - 1] <= now - config.windowMs)
|
|
13
|
+
hits.delete(key);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const cutoff = now - config.windowMs;
|
|
17
|
+
const times = (hits.get(client) ?? []).filter(t => t > cutoff);
|
|
18
|
+
if (times.length >= config.max) {
|
|
19
|
+
hits.set(client, times);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
times.push(now);
|
|
23
|
+
hits.set(client, times);
|
|
24
|
+
return true;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/infra/access-links/rate-limit.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,mCAAmC;AAYnC,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAA;IACxC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,OAAO;QACL,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YAC1B,IAAI,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,SAAS,GAAG,GAAG,CAAA;gBACf,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ;wBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC/F,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAA;YACpC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBACvB,OAAO,KAAK,CAAA;YACd,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface AwsCredentials {
|
|
2
|
+
readonly accessKeyId: string;
|
|
3
|
+
readonly secretAccessKey: string;
|
|
4
|
+
readonly sessionToken?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SigV4Request {
|
|
7
|
+
readonly method: string;
|
|
8
|
+
readonly url: string;
|
|
9
|
+
/** Headers to sign and send, other than host and x-amz-date, which are added. */
|
|
10
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
11
|
+
readonly body: string | Buffer;
|
|
12
|
+
readonly region: string;
|
|
13
|
+
readonly service: string;
|
|
14
|
+
readonly credentials: AwsCredentials;
|
|
15
|
+
readonly now?: Date;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Signs a request with AWS Signature Version 4 and returns the headers to send:
|
|
19
|
+
* the given ones, `x-amz-date`, `x-amz-security-token` when the credentials carry
|
|
20
|
+
* a session token, and `authorization`. `host` is signed but not returned; the
|
|
21
|
+
* HTTP client sets it from the URL.
|
|
22
|
+
*/
|
|
23
|
+
export declare function signV4(req: SigV4Request): Record<string, string>;
|
|
24
|
+
//# sourceMappingURL=sigv4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sigv4.d.ts","sourceRoot":"","sources":["../../../src/infra/email/sigv4.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CACpB;AAkBD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwChE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createHash, createHmac } from 'node:crypto';
|
|
2
|
+
function sha256Hex(data) {
|
|
3
|
+
return createHash('sha256').update(data).digest('hex');
|
|
4
|
+
}
|
|
5
|
+
function hmac(key, data) {
|
|
6
|
+
return createHmac('sha256', key).update(data).digest();
|
|
7
|
+
}
|
|
8
|
+
function uriEncode(s) {
|
|
9
|
+
return encodeURIComponent(s).replace(/[!'()*]/g, c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
|
|
10
|
+
}
|
|
11
|
+
function amzDate(d) {
|
|
12
|
+
return d.toISOString().replace(/[-:]/g, '').replace(/\.\d{3}/, '');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Signs a request with AWS Signature Version 4 and returns the headers to send:
|
|
16
|
+
* the given ones, `x-amz-date`, `x-amz-security-token` when the credentials carry
|
|
17
|
+
* a session token, and `authorization`. `host` is signed but not returned; the
|
|
18
|
+
* HTTP client sets it from the URL.
|
|
19
|
+
*/
|
|
20
|
+
export function signV4(req) {
|
|
21
|
+
const url = new URL(req.url);
|
|
22
|
+
const stamp = amzDate(req.now ?? new Date());
|
|
23
|
+
const day = stamp.slice(0, 8);
|
|
24
|
+
const headers = {};
|
|
25
|
+
for (const [name, value] of Object.entries(req.headers))
|
|
26
|
+
headers[name.toLowerCase()] = value.trim().replace(/\s+/g, ' ');
|
|
27
|
+
headers['x-amz-date'] = stamp;
|
|
28
|
+
if (req.credentials.sessionToken !== undefined)
|
|
29
|
+
headers['x-amz-security-token'] = req.credentials.sessionToken;
|
|
30
|
+
const signed = { ...headers, host: url.host };
|
|
31
|
+
const names = Object.keys(signed).sort();
|
|
32
|
+
const canonicalHeaders = names.map(n => `${n}:${signed[n]}\n`).join('');
|
|
33
|
+
const signedHeaders = names.join(';');
|
|
34
|
+
const canonicalPath = url.pathname.split('/').map(uriEncode).join('/');
|
|
35
|
+
const canonicalQuery = [...url.searchParams.entries()]
|
|
36
|
+
.map(([k, v]) => [uriEncode(k), uriEncode(v)])
|
|
37
|
+
.sort((a, b) => (a[0] === b[0] ? (a[1] < b[1] ? -1 : a[1] > b[1] ? 1 : 0) : (a[0] < b[0] ? -1 : 1)))
|
|
38
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
39
|
+
.join('&');
|
|
40
|
+
const canonicalRequest = [
|
|
41
|
+
req.method.toUpperCase(), canonicalPath, canonicalQuery, canonicalHeaders, signedHeaders, sha256Hex(req.body),
|
|
42
|
+
].join('\n');
|
|
43
|
+
const scope = `${day}/${req.region}/${req.service}/aws4_request`;
|
|
44
|
+
const stringToSign = ['AWS4-HMAC-SHA256', stamp, scope, sha256Hex(canonicalRequest)].join('\n');
|
|
45
|
+
const kDate = hmac(`AWS4${req.credentials.secretAccessKey}`, day);
|
|
46
|
+
const kRegion = hmac(kDate, req.region);
|
|
47
|
+
const kService = hmac(kRegion, req.service);
|
|
48
|
+
const kSigning = hmac(kService, 'aws4_request');
|
|
49
|
+
const signature = createHmac('sha256', kSigning).update(stringToSign).digest('hex');
|
|
50
|
+
return {
|
|
51
|
+
...headers,
|
|
52
|
+
authorization: `AWS4-HMAC-SHA256 Credential=${req.credentials.accessKeyId}/${scope}, SignedHeaders=${signedHeaders}, Signature=${signature}`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=sigv4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sigv4.js","sourceRoot":"","sources":["../../../src/infra/email/sigv4.ts"],"names":[],"mappings":"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"}
|