@memberjunction/ng-record-changes 6.2.0-edge.0 → 6.2.0-edge.2

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.
@@ -0,0 +1,32 @@
1
+ import { EntityFieldInfo } from '@memberjunction/core';
2
+ /**
3
+ * Formats a field value from a change record, a snapshot, or a live record for display.
4
+ *
5
+ * Shared by the change history and the restore preview so the two cannot disagree about the same
6
+ * value. A SQL `date` column is a calendar day that arrives as UTC midnight: it is formatted as that
7
+ * day, with no time. Run through the timestamp format, a stored 2026-10-01 read "Sep 30, 2026,
8
+ * 7:00 PM" for a reader in US Central — the wrong day, and a time the value never had.
9
+ *
10
+ * A live record's date field is a `Date` object, not a string, and is formatted the same way rather
11
+ * than falling into the generic object branch, which rendered it as an empty string.
12
+ *
13
+ * @param value The raw value: a string or Date for date fields, any JSON value otherwise
14
+ * @param field The field's metadata, when known; without it the value is treated as text
15
+ */
16
+ export declare function FormatChangeValue(value: unknown, field: EntityFieldInfo | undefined): string;
17
+ /**
18
+ * Whether two values of the same field hold the same data, for deciding whether a restore would
19
+ * change anything.
20
+ *
21
+ * Comparing the display strings is not enough for a date: the display drops seconds, so a timestamp
22
+ * that moved by 30 seconds formats identically and would read as unchanged. A timestamp is compared
23
+ * as the instant it names, and a SQL `date` column as the calendar day it stores, so a snapshot's
24
+ * `'2026-10-01'` matches a live `Date` at UTC midnight of that day. Anything else, and a date that
25
+ * does not parse, falls back to the display strings, as before.
26
+ *
27
+ * @param a One value: a string or Date for date fields, any JSON value otherwise
28
+ * @param b The other value
29
+ * @param field The field's metadata, when known
30
+ */
31
+ export declare function ChangeValuesMatch(a: unknown, b: unknown, field: EntityFieldInfo | undefined): boolean;
32
+ //# sourceMappingURL=format-change-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-change-value.d.ts","sourceRoot":"","sources":["../../src/lib/format-change-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAwD,MAAM,sBAAsB,CAAC;AAe7G;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAmB5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAWrG"}
@@ -0,0 +1,81 @@
1
+ import { EntityFieldTSType, FormatDateOnly, IsDateOnlySQLType } from '@memberjunction/core';
2
+ /** An instant: the moment it happened, in the reader's zone. */
3
+ const TIMESTAMP_FORMAT = {
4
+ month: 'short',
5
+ day: 'numeric',
6
+ year: 'numeric',
7
+ hour: 'numeric',
8
+ minute: '2-digit',
9
+ hour12: true,
10
+ };
11
+ /** A calendar day: no time, and no zone to shift it. */
12
+ const DATE_ONLY_FORMAT = { month: 'short', day: 'numeric', year: 'numeric' };
13
+ /**
14
+ * Formats a field value from a change record, a snapshot, or a live record for display.
15
+ *
16
+ * Shared by the change history and the restore preview so the two cannot disagree about the same
17
+ * value. A SQL `date` column is a calendar day that arrives as UTC midnight: it is formatted as that
18
+ * day, with no time. Run through the timestamp format, a stored 2026-10-01 read "Sep 30, 2026,
19
+ * 7:00 PM" for a reader in US Central — the wrong day, and a time the value never had.
20
+ *
21
+ * A live record's date field is a `Date` object, not a string, and is formatted the same way rather
22
+ * than falling into the generic object branch, which rendered it as an empty string.
23
+ *
24
+ * @param value The raw value: a string or Date for date fields, any JSON value otherwise
25
+ * @param field The field's metadata, when known; without it the value is treated as text
26
+ */
27
+ export function FormatChangeValue(value, field) {
28
+ if (value == null)
29
+ return '';
30
+ if (field?.TSType === EntityFieldTSType.Date && (value instanceof Date || typeof value === 'string')) {
31
+ const date = value instanceof Date ? value : new Date(value);
32
+ if (!isNaN(date.getTime())) {
33
+ return IsDateOnlySQLType(field.Type)
34
+ ? FormatDateOnly(date, DATE_ONLY_FORMAT, 'en-US')
35
+ : new Intl.DateTimeFormat('en-US', TIMESTAMP_FORMAT).format(date);
36
+ }
37
+ }
38
+ if (typeof value === 'object') {
39
+ const keys = Object.keys(value);
40
+ if (keys.length === 0)
41
+ return '';
42
+ return JSON.stringify(value);
43
+ }
44
+ return String(value);
45
+ }
46
+ /**
47
+ * Whether two values of the same field hold the same data, for deciding whether a restore would
48
+ * change anything.
49
+ *
50
+ * Comparing the display strings is not enough for a date: the display drops seconds, so a timestamp
51
+ * that moved by 30 seconds formats identically and would read as unchanged. A timestamp is compared
52
+ * as the instant it names, and a SQL `date` column as the calendar day it stores, so a snapshot's
53
+ * `'2026-10-01'` matches a live `Date` at UTC midnight of that day. Anything else, and a date that
54
+ * does not parse, falls back to the display strings, as before.
55
+ *
56
+ * @param a One value: a string or Date for date fields, any JSON value otherwise
57
+ * @param b The other value
58
+ * @param field The field's metadata, when known
59
+ */
60
+ export function ChangeValuesMatch(a, b, field) {
61
+ if (field?.TSType === EntityFieldTSType.Date) {
62
+ const left = asValidDate(a);
63
+ const right = asValidDate(b);
64
+ if (left && right) {
65
+ return IsDateOnlySQLType(field.Type)
66
+ ? left.toISOString().slice(0, 10) === right.toISOString().slice(0, 10)
67
+ : left.getTime() === right.getTime();
68
+ }
69
+ }
70
+ return FormatChangeValue(a, field) === FormatChangeValue(b, field);
71
+ }
72
+ /** A date or date string as a valid Date, or `null`. */
73
+ function asValidDate(value) {
74
+ if (!(value instanceof Date) && typeof value !== 'string')
75
+ return null;
76
+ if (typeof value === 'string' && value.trim() === '')
77
+ return null;
78
+ const date = value instanceof Date ? value : new Date(value);
79
+ return isNaN(date.getTime()) ? null : date;
80
+ }
81
+ //# sourceMappingURL=format-change-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-change-value.js","sourceRoot":"","sources":["../../src/lib/format-change-value.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityFieldInfo, EntityFieldTSType, FormatDateOnly, IsDateOnlySQLType } from '@memberjunction/core';\n\n/** An instant: the moment it happened, in the reader's zone. */\nconst TIMESTAMP_FORMAT: Intl.DateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n};\n\n/** A calendar day: no time, and no zone to shift it. */\nconst DATE_ONLY_FORMAT: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' };\n\n/**\n * Formats a field value from a change record, a snapshot, or a live record for display.\n *\n * Shared by the change history and the restore preview so the two cannot disagree about the same\n * value. A SQL `date` column is a calendar day that arrives as UTC midnight: it is formatted as that\n * day, with no time. Run through the timestamp format, a stored 2026-10-01 read \"Sep 30, 2026,\n * 7:00 PM\" for a reader in US Central — the wrong day, and a time the value never had.\n *\n * A live record's date field is a `Date` object, not a string, and is formatted the same way rather\n * than falling into the generic object branch, which rendered it as an empty string.\n *\n * @param value The raw value: a string or Date for date fields, any JSON value otherwise\n * @param field The field's metadata, when known; without it the value is treated as text\n */\nexport function FormatChangeValue(value: unknown, field: EntityFieldInfo | undefined): string {\n if (value == null) return '';\n\n if (field?.TSType === EntityFieldTSType.Date && (value instanceof Date || typeof value === 'string')) {\n const date = value instanceof Date ? value : new Date(value);\n if (!isNaN(date.getTime())) {\n return IsDateOnlySQLType(field.Type)\n ? FormatDateOnly(date, DATE_ONLY_FORMAT, 'en-US')\n : new Intl.DateTimeFormat('en-US', TIMESTAMP_FORMAT).format(date);\n }\n }\n\n if (typeof value === 'object') {\n const keys = Object.keys(value as Record<string, unknown>);\n if (keys.length === 0) return '';\n return JSON.stringify(value);\n }\n\n return String(value);\n}\n\n/**\n * Whether two values of the same field hold the same data, for deciding whether a restore would\n * change anything.\n *\n * Comparing the display strings is not enough for a date: the display drops seconds, so a timestamp\n * that moved by 30 seconds formats identically and would read as unchanged. A timestamp is compared\n * as the instant it names, and a SQL `date` column as the calendar day it stores, so a snapshot's\n * `'2026-10-01'` matches a live `Date` at UTC midnight of that day. Anything else, and a date that\n * does not parse, falls back to the display strings, as before.\n *\n * @param a One value: a string or Date for date fields, any JSON value otherwise\n * @param b The other value\n * @param field The field's metadata, when known\n */\nexport function ChangeValuesMatch(a: unknown, b: unknown, field: EntityFieldInfo | undefined): boolean {\n if (field?.TSType === EntityFieldTSType.Date) {\n const left = asValidDate(a);\n const right = asValidDate(b);\n if (left && right) {\n return IsDateOnlySQLType(field.Type)\n ? left.toISOString().slice(0, 10) === right.toISOString().slice(0, 10)\n : left.getTime() === right.getTime();\n }\n }\n return FormatChangeValue(a, field) === FormatChangeValue(b, field);\n}\n\n/** A date or date string as a valid Date, or `null`. */\nfunction asValidDate(value: unknown): Date | null {\n if (!(value instanceof Date) && typeof value !== 'string') return null;\n if (typeof value === 'string' && value.trim() === '') return null;\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n"]}
@@ -93,6 +93,14 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
93
93
  private sanitizer;
94
94
  IsLoading: boolean;
95
95
  IsVisible: boolean;
96
+ DialogClosed: EventEmitter<any>;
97
+ /**
98
+ * @deprecated Use {@link DialogClosed}.
99
+ *
100
+ * The same emitter under the old binding name, so a template still binding
101
+ * (dialogClosed) keeps working. Must stay AFTER DialogClosed: class fields
102
+ * initialise in order, and the other way round this captures undefined.
103
+ */
96
104
  dialogClosed: EventEmitter<any>;
97
105
  record: BaseEntity;
98
106
  /** Whether to show a "Restore" button on each historical version row. Default false. */
@@ -103,8 +111,16 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
103
111
  * saving with `record.SetRestoreContext()` set first.
104
112
  */
105
113
  RestoreRequested: EventEmitter<RestoreVersionEvent>;
106
- viewData: MJRecordChangeEntity[];
107
- filteredData: MJRecordChangeEntity[];
114
+ ViewData: MJRecordChangeEntity[];
115
+ /** @deprecated Use {@link ViewData}. */
116
+ get viewData(): MJRecordChangeEntity[];
117
+ /** @deprecated Use {@link ViewData}. */
118
+ set viewData(value: MJRecordChangeEntity[]);
119
+ FilteredData: MJRecordChangeEntity[];
120
+ /** @deprecated Use {@link FilteredData}. */
121
+ get filteredData(): MJRecordChangeEntity[];
122
+ /** @deprecated Use {@link FilteredData}. */
123
+ set filteredData(value: MJRecordChangeEntity[]);
108
124
  /**
109
125
  * Change lookup keyed by NormalizeUUID(ID), rebuilt whenever {@link viewData}
110
126
  * loads. Lets {@link getRestoredFromSourceChange} resolve a restore row's
@@ -113,8 +129,16 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
113
129
  * template `@if` and once inside `getChangeSummary`), giving O(rows^2)/CD.
114
130
  */
115
131
  private viewDataById;
116
- dateGroups: DateGroup[];
117
- expandedItems: Set<string>;
132
+ DateGroups: DateGroup[];
133
+ /** @deprecated Use {@link DateGroups}. */
134
+ get dateGroups(): DateGroup[];
135
+ /** @deprecated Use {@link DateGroups}. */
136
+ set dateGroups(value: DateGroup[]);
137
+ ExpandedItems: Set<string>;
138
+ /** @deprecated Use {@link ExpandedItems}. */
139
+ get expandedItems(): Set<string>;
140
+ /** @deprecated Use {@link ExpandedItems}. */
141
+ set expandedItems(value: Set<string>);
118
142
  /** The change record currently selected for restore preview, or null. */
119
143
  RestorePreviewChange: MJRecordChangeEntity | null;
120
144
  /** Visibility of the embedded restore preview slide-in. */
@@ -124,10 +148,22 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
124
148
  RecordLabels: RecordLabel[];
125
149
  IsLoadingLabels: boolean;
126
150
  ShowCreateWizard: boolean;
127
- searchTerm: string;
151
+ SearchTerm: string;
152
+ /** @deprecated Use {@link SearchTerm}. */
153
+ get searchTerm(): string;
154
+ /** @deprecated Use {@link SearchTerm}. */
155
+ set searchTerm(value: string);
128
156
  /** Single selected type filter (legacy, kept for backwards compat). */
129
- selectedType: string;
130
- selectedSource: string;
157
+ SelectedType: string;
158
+ /** @deprecated Use {@link SelectedType}. */
159
+ get selectedType(): string;
160
+ /** @deprecated Use {@link SelectedType}. */
161
+ set selectedType(value: string);
162
+ SelectedSource: string;
163
+ /** @deprecated Use {@link SelectedSource}. */
164
+ get selectedSource(): string;
165
+ /** @deprecated Use {@link SelectedSource}. */
166
+ set selectedSource(value: string);
131
167
  /** Map of Key → selected, used by the conditional chip system. */
132
168
  ChipSelections: Record<string, boolean>;
133
169
  /** Whether the overflow popover is open. */
@@ -167,6 +203,8 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
167
203
  Refresh(): void;
168
204
  OnClose(): void;
169
205
  LoadRecordChanges(pkey: CompositeKey, appName: string, entityName: string): Promise<void>;
206
+ OnSearchChange(): void;
207
+ /** @deprecated Use {@link OnSearchChange}. */
170
208
  onSearchChange(): void;
171
209
  onFilterChange(): void;
172
210
  /**
@@ -209,8 +247,14 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
209
247
  ItemCount: number;
210
248
  }): void;
211
249
  OnLabelCreateCancelled(): void;
250
+ GetLabelStatusClass(status: string): string;
251
+ /** @deprecated Use {@link GetLabelStatusClass}. */
212
252
  getLabelStatusClass(status: string): string;
253
+ ToggleExpansion(changeId: string): void;
254
+ /** @deprecated Use {@link ToggleExpansion}. */
213
255
  toggleExpansion(changeId: string): void;
256
+ OnTimelineItemKeydown(event: KeyboardEvent, changeId: string): void;
257
+ /** @deprecated Use {@link OnTimelineItemKeydown}. */
214
258
  onTimelineItemKeydown(event: KeyboardEvent, changeId: string): void;
215
259
  /**
216
260
  * Opens the embedded restore preview panel for a given change record.
@@ -235,6 +279,8 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
235
279
  * currently loaded changes. Returns null when the source isn't loaded
236
280
  * (e.g., it's been pruned from history) or when this row isn't a restore.
237
281
  */
282
+ GetRestoredFromSourceChange(change: MJRecordChangeEntity): MJRecordChangeEntity | null;
283
+ /** @deprecated Use {@link GetRestoredFromSourceChange}. */
238
284
  getRestoredFromSourceChange(change: MJRecordChangeEntity): MJRecordChangeEntity | null;
239
285
  /**
240
286
  * Rebuilds {@link viewDataById} from the current {@link viewData}. Called once
@@ -245,6 +291,8 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
245
291
  * True when the row was produced by a restore operation (either the
246
292
  * `Source` is `'Restore'` OR `RestoredFromID` is populated).
247
293
  */
294
+ IsRestoreRow(change: MJRecordChangeEntity): boolean;
295
+ /** @deprecated Use {@link IsRestoreRow}. */
248
296
  isRestoreRow(change: MJRecordChangeEntity): boolean;
249
297
  /**
250
298
  * True when this change is the most recent in the loaded history.
@@ -252,6 +300,8 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
252
300
  * Restoring to the most recent version is a no-op, so the timeline hides
253
301
  * the Restore button on this row.
254
302
  */
303
+ IsMostRecentChange(change: MJRecordChangeEntity): boolean;
304
+ /** @deprecated Use {@link IsMostRecentChange}. */
255
305
  isMostRecentChange(change: MJRecordChangeEntity): boolean;
256
306
  /**
257
307
  * Click handler for the lineage chip — scrolls/highlights the source
@@ -260,7 +310,11 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
260
310
  JumpToSourceChange(sourceChange: MJRecordChangeEntity, event: MouseEvent): void;
261
311
  private buildDateGroups;
262
312
  private formatDateGroupLabel;
313
+ GetChangeTypeCardClass(type: string): string;
314
+ /** @deprecated Use {@link GetChangeTypeCardClass}. */
263
315
  getChangeTypeCardClass(type: string): string;
316
+ GetChangeTypeBadgeText(type: string): string;
317
+ /** @deprecated Use {@link GetChangeTypeBadgeText}. */
264
318
  getChangeTypeBadgeText(type: string): string;
265
319
  /**
266
320
  * Badge text for the row's primary type tag. For restore rows we override
@@ -268,40 +322,73 @@ export declare class RecordChangesComponent extends BaseAngularComponent impleme
268
322
  * mockup's intent of treating restore as a first-class operation in the
269
323
  * timeline rather than a flavor of update.
270
324
  */
325
+ GetEffectiveBadgeText(change: MJRecordChangeEntity): string;
326
+ /** @deprecated Use {@link GetEffectiveBadgeText}. */
271
327
  getEffectiveBadgeText(change: MJRecordChangeEntity): string;
272
328
  /**
273
329
  * Optional restore reason — pulled from the dynamic `RestoreReason`
274
330
  * column added by the lineage migration. Returns null when not present
275
331
  * or not a restore row.
276
332
  */
333
+ GetRestoreReason(change: MJRecordChangeEntity): string | null;
334
+ /** @deprecated Use {@link GetRestoreReason}. */
277
335
  getRestoreReason(change: MJRecordChangeEntity): string | null;
336
+ GetSourceClass(source: string): string;
337
+ /** @deprecated Use {@link GetSourceClass}. */
278
338
  getSourceClass(source: string): string;
339
+ GetStatusClass(status: string): string;
340
+ /** @deprecated Use {@link GetStatusClass}. */
279
341
  getStatusClass(status: string): string;
342
+ GetTimelineItemLabel(change: MJRecordChangeEntity): string;
343
+ /** @deprecated Use {@link GetTimelineItemLabel}. */
280
344
  getTimelineItemLabel(change: MJRecordChangeEntity): string;
345
+ GetUserInitials(user: string | null): string;
346
+ /** @deprecated Use {@link GetUserInitials}. */
281
347
  getUserInitials(user: string | null): string;
348
+ GetUserDisplayName(user: string | null): string;
349
+ /** @deprecated Use {@link GetUserDisplayName}. */
282
350
  getUserDisplayName(user: string | null): string;
351
+ GetUniqueContributorCount(): number;
352
+ /** @deprecated Use {@link GetUniqueContributorCount}. */
283
353
  getUniqueContributorCount(): number;
354
+ FormatTime(date: Date): string;
355
+ /** @deprecated Use {@link FormatTime}. */
284
356
  formatTime(date: Date): string;
357
+ FormatRelativeTime(date: Date): string;
358
+ /** @deprecated Use {@link FormatRelativeTime}. */
285
359
  formatRelativeTime(date: Date): string;
360
+ FormatFullDateTime(date: Date): string;
361
+ /** @deprecated Use {@link FormatFullDateTime}. */
286
362
  formatFullDateTime(date: Date): string;
363
+ GetChangeSummary(change: MJRecordChangeEntity): string;
364
+ /** @deprecated Use {@link GetChangeSummary}. */
287
365
  getChangeSummary(change: MJRecordChangeEntity): string;
366
+ GetCreatedFieldCount(change: MJRecordChangeEntity): number;
367
+ /** @deprecated Use {@link GetCreatedFieldCount}. */
288
368
  getCreatedFieldCount(change: MJRecordChangeEntity): number;
289
369
  private extractFieldDisplayNames;
290
370
  private buildFieldListSummary;
371
+ GetFieldChanges(change: MJRecordChangeEntity): FieldChangeInfo[];
372
+ /** @deprecated Use {@link GetFieldChanges}. */
291
373
  getFieldChanges(change: MJRecordChangeEntity): FieldChangeInfo[];
292
374
  private buildFieldChangeInfo;
293
375
  private classifyFieldType;
376
+ GetCreatedFields(change: MJRecordChangeEntity): Array<{
377
+ name: string;
378
+ displayName: string;
379
+ value: string;
380
+ }>;
381
+ /** @deprecated Use {@link GetCreatedFields}. */
294
382
  getCreatedFields(change: MJRecordChangeEntity): Array<{
295
383
  name: string;
296
384
  displayName: string;
297
385
  value: string;
298
386
  }>;
299
- private formatChangeValue;
300
387
  private generateDiffHtml;
301
388
  private shouldUseWordDiff;
302
389
  private escapeHtml;
303
390
  static ɵfac: i0.ɵɵFactoryDeclaration<RecordChangesComponent, never>;
304
- static ɵcmp: i0.ɵɵComponentDeclaration<RecordChangesComponent, "mj-record-changes", never, { "record": { "alias": "record"; "required": false; }; "AllowRestore": { "alias": "AllowRestore"; "required": false; }; }, { "dialogClosed": "dialogClosed"; "RestoreRequested": "RestoreRequested"; }, never, never, false, never>;
391
+ static ɵcmp: i0.ɵɵComponentDeclaration<RecordChangesComponent, "mj-record-changes", never, { "record": { "alias": "record"; "required": false; }; "AllowRestore": { "alias": "AllowRestore"; "required": false; }; }, { "DialogClosed": "DialogClosed"; "dialogClosed": "dialogClosed"; "RestoreRequested": "RestoreRequested"; }, never, never, false, never>;
305
392
  }
306
393
  export {};
307
394
  //# sourceMappingURL=ng-record-changes.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-record-changes.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-record-changes.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-record-changes.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-record-changes.component.ts"],"names":[],"mappings":"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"}