easy-file-system 1.5.17 → 1.5.19
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/example.js +267 -306
- package/lib/button/name.js +3 -5
- package/lib/example/view.js +4 -4
- package/lib/explorer.js +13 -4
- package/lib/item/entry/drag/directoryName.js +14 -16
- package/lib/item/entry/drag/fileName.js +13 -32
- package/lib/item/entry/drag.js +18 -49
- package/lib/item/entry.js +3 -3
- package/lib/mixins/explorer.js +92 -0
- package/lib/mixins/rubbishBin.js +36 -0
- package/lib/rubbishBin.js +4 -29
- package/lib/styles.js +5 -5
- package/lib/utilities/pathMap.js +14 -14
- package/package.json +1 -1
- package/src/button/name.js +2 -6
- package/src/example/view.js +4 -3
- package/src/explorer.js +17 -7
- package/src/item/entry/drag/directoryName.js +17 -19
- package/src/item/entry/drag/fileName.js +11 -10
- package/src/item/entry/drag.js +27 -67
- package/src/item/entry.js +4 -3
- package/src/mixins/{event.js → explorer.js} +7 -17
- package/src/mixins/rubbishBin.js +42 -0
- package/src/rubbishBin.js +5 -35
- package/src/styles.js +1 -1
- package/src/utilities/pathMap.js +13 -11
- package/lib/mixins/event.js +0 -99
package/src/utilities/pathMap.js
CHANGED
|
@@ -4,18 +4,20 @@ import { pathUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
import { EMPTY_STRING } from "../constants";
|
|
6
6
|
|
|
7
|
-
const { pathWithoutBottommostNameFromPath } = pathUtilities;
|
|
7
|
+
const { concatenatePaths, pathWithoutBottommostNameFromPath } = pathUtilities;
|
|
8
8
|
|
|
9
|
-
export function
|
|
10
|
-
const
|
|
11
|
-
|
|
9
|
+
export function sourceEntryPathFromEntryItem(entryItem) {
|
|
10
|
+
const entryItemPath = entryItem.getPath(),
|
|
11
|
+
entryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(entryItemPath),
|
|
12
|
+
sourceEntryPath = nonNullPathFromName(entryItemPathWithoutBottommostName); ///
|
|
12
13
|
|
|
13
14
|
return sourceEntryPath;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
export function
|
|
17
|
-
const
|
|
18
|
-
|
|
17
|
+
export function targetEntryPathFromEntryItem(entryItem) {
|
|
18
|
+
const entryItemPath = entryItem.getPath(),
|
|
19
|
+
entryItemPathWithoutBottommostName = pathWithoutBottommostNameFromPath(entryItemPath),
|
|
20
|
+
targetEntryPath = nonNullPathFromName(entryItemPathWithoutBottommostName); ///
|
|
19
21
|
|
|
20
22
|
return targetEntryPath;
|
|
21
23
|
}
|
|
@@ -26,21 +28,21 @@ export function adjustSourceEntryPath(sourceEntryPath, name) {
|
|
|
26
28
|
} else if (sourceEntryPath === EMPTY_STRING) {
|
|
27
29
|
sourceEntryPath = name; ///
|
|
28
30
|
} else {
|
|
29
|
-
sourceEntryPath =
|
|
31
|
+
sourceEntryPath = concatenatePaths(sourceEntryPath, name);
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
return sourceEntryPath;
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
export function adjustTargetEntryPath(targetEntryPath,
|
|
37
|
+
export function adjustTargetEntryPath(targetEntryPath, nameInputName) {
|
|
36
38
|
if (false) {
|
|
37
39
|
///
|
|
38
40
|
} else if (targetEntryPath === null) {
|
|
39
41
|
targetEntryPath = null;
|
|
40
42
|
} else if (targetEntryPath === EMPTY_STRING) {
|
|
41
|
-
targetEntryPath =
|
|
43
|
+
targetEntryPath = nameInputName; ///
|
|
42
44
|
} else {
|
|
43
|
-
targetEntryPath =
|
|
45
|
+
targetEntryPath = concatenatePaths(targetEntryPath, nameInputName);
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
return targetEntryPath;
|
package/lib/mixins/event.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _necessary = require("necessary");
|
|
12
|
-
var _eventTypes = require("../eventTypes");
|
|
13
|
-
var forEach = _necessary.asynchronousUtilities.forEach;
|
|
14
|
-
function onMove(moveHandler, element) {
|
|
15
|
-
var eventType = _eventTypes.MOVE_EVENT_TYPE, handler = moveHandler; ///
|
|
16
|
-
this.addEventListener(eventType, handler, element);
|
|
17
|
-
}
|
|
18
|
-
function offMove(moveHandler, element) {
|
|
19
|
-
var eventType = _eventTypes.MOVE_EVENT_TYPE, handler = moveHandler; ///
|
|
20
|
-
this.removeEventListener(eventType, handler, element);
|
|
21
|
-
}
|
|
22
|
-
function onOpen(openHandler, element) {
|
|
23
|
-
var eventType = _eventTypes.OPEN_EVENT_TYPE, handler = openHandler; ///
|
|
24
|
-
this.addEventListener(eventType, handler, element);
|
|
25
|
-
}
|
|
26
|
-
function offOpen(openHandler, element) {
|
|
27
|
-
var eventType = _eventTypes.OPEN_EVENT_TYPE, handler = openHandler; ///
|
|
28
|
-
this.removeEventListener(eventType, handler, element);
|
|
29
|
-
}
|
|
30
|
-
function onSelect(selectHandler, element) {
|
|
31
|
-
var eventType = _eventTypes.SELECT_EVENT_TYPE, handler = selectHandler; ///
|
|
32
|
-
this.addEventListener(eventType, handler, element);
|
|
33
|
-
}
|
|
34
|
-
function offSelect(selectHandler, element) {
|
|
35
|
-
var eventType = _eventTypes.SELECT_EVENT_TYPE, handler = selectHandler; ///
|
|
36
|
-
this.removeEventListener(eventType, handler, element);
|
|
37
|
-
}
|
|
38
|
-
function onPathChange(pathChangeHandler, element) {
|
|
39
|
-
var eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, handler = pathChangeHandler; ///
|
|
40
|
-
this.addEventListener(eventType, handler, element);
|
|
41
|
-
}
|
|
42
|
-
function offPathChange(pathChangeHandler, element) {
|
|
43
|
-
var eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, handler = pathChangeHandler; ///
|
|
44
|
-
this.removeEventListener(eventType, handler, element);
|
|
45
|
-
}
|
|
46
|
-
function callOpenHandlers(filePath) {
|
|
47
|
-
var _this = this;
|
|
48
|
-
var eventType = _eventTypes.OPEN_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
|
|
49
|
-
eventListeners.forEach(function(eventListener) {
|
|
50
|
-
var handler = eventListener.handler, element = eventListener.element, openHandler = handler; ///
|
|
51
|
-
openHandler.call(element, filePath, _this); ///
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
function callSelectHandlers(path, selected) {
|
|
55
|
-
var _this = this;
|
|
56
|
-
var eventType = _eventTypes.SELECT_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
|
|
57
|
-
eventListeners.forEach(function(eventListener) {
|
|
58
|
-
var handler = eventListener.handler, element = eventListener.element, selectHandler = handler; ///
|
|
59
|
-
selectHandler.call(element, path, selected, _this); ///
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
function callMoveHandlersAsync(pathMaps, done) {
|
|
63
|
-
var eventType = _eventTypes.MOVE_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
|
|
64
|
-
forEach(eventListeners, function(eventListener, next) {
|
|
65
|
-
var handler = eventListener.handler, element = eventListener.element, moveHandler = handler, _$done = next; ///
|
|
66
|
-
moveHandler.call(element, pathMaps, _$done);
|
|
67
|
-
}, done);
|
|
68
|
-
}
|
|
69
|
-
function callPathChangeHandlersAsync(oldPath, newPath, callback) {
|
|
70
|
-
var notSuccess = false;
|
|
71
|
-
var done = function() {
|
|
72
|
-
var success = !notSuccess;
|
|
73
|
-
callback(success);
|
|
74
|
-
}, eventType = _eventTypes.PATH_CHANGE_EVENT_TYPE, eventListeners = this.findEventListeners(eventType);
|
|
75
|
-
forEach(eventListeners, function(eventListener, next) {
|
|
76
|
-
var handler = eventListener.handler, element = eventListener.element, pathChangeHandler = handler; ///
|
|
77
|
-
pathChangeHandler.call(element, oldPath, newPath, function(success) {
|
|
78
|
-
notSuccess = !success;
|
|
79
|
-
next();
|
|
80
|
-
});
|
|
81
|
-
}, done);
|
|
82
|
-
}
|
|
83
|
-
var eventMixins = {
|
|
84
|
-
onMove: onMove,
|
|
85
|
-
offMove: offMove,
|
|
86
|
-
onOpen: onOpen,
|
|
87
|
-
offOpen: offOpen,
|
|
88
|
-
onSelect: onSelect,
|
|
89
|
-
offSelect: offSelect,
|
|
90
|
-
onPathChange: onPathChange,
|
|
91
|
-
offPathChange: offPathChange,
|
|
92
|
-
callOpenHandlers: callOpenHandlers,
|
|
93
|
-
callSelectHandlers: callSelectHandlers,
|
|
94
|
-
callMoveHandlersAsync: callMoveHandlersAsync,
|
|
95
|
-
callPathChangeHandlersAsync: callPathChangeHandlersAsync
|
|
96
|
-
};
|
|
97
|
-
var _default = eventMixins;
|
|
98
|
-
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZXZlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFzeW5jaHJvbm91c1V0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgTU9WRV9FVkVOVF9UWVBFLCBPUEVOX0VWRU5UX1RZUEUsIFBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUsIFNFTEVDVF9FVkVOVF9UWVBFIH0gZnJvbSBcIi4uL2V2ZW50VHlwZXNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmZ1bmN0aW9uIG9uTW92ZShtb3ZlSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBldmVudFR5cGUgPSBNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBtb3ZlSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZNb3ZlKG1vdmVIYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IE1PVkVfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IG1vdmVIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uT3BlbihvcGVuSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBldmVudFR5cGUgPSBPUEVOX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBvcGVuSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZPcGVuKG9wZW5IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IE9QRU5fRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IG9wZW5IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uU2VsZWN0KHNlbGVjdEhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gU0VMRUNUX0VWRU5UX1RZUEUsXG4gICAgICAgIGhhbmRsZXIgPSBzZWxlY3RIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZlNlbGVjdChzZWxlY3RIYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IFNFTEVDVF9FVkVOVF9UWVBFLFxuICAgICAgICBoYW5kbGVyID0gc2VsZWN0SGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvblBhdGhDaGFuZ2UocGF0aENoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gUEFUSF9DSEFOR0VfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IHBhdGhDaGFuZ2VIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZlBhdGhDaGFuZ2UocGF0aENoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gUEFUSF9DSEFOR0VfRVZFTlRfVFlQRSxcbiAgICAgICAgaGFuZGxlciA9IHBhdGhDaGFuZ2VIYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIGNhbGxPcGVuSGFuZGxlcnMoZmlsZVBhdGgpIHtcbiAgY29uc3QgZXZlbnRUeXBlID0gT1BFTl9FVkVOVF9UWVBFLFxuICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgb3BlbkhhbmRsZXIgPSBoYW5kbGVyOyAgLy8vXG5cbiAgICBvcGVuSGFuZGxlci5jYWxsKGVsZW1lbnQsIGZpbGVQYXRoLCB0aGlzKTsgIC8vL1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY2FsbFNlbGVjdEhhbmRsZXJzKHBhdGgsIHNlbGVjdGVkKSB7XG4gIGNvbnN0IGV2ZW50VHlwZSA9IFNFTEVDVF9FVkVOVF9UWVBFLFxuICAgICAgICBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XG5cbiAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgc2VsZWN0SGFuZGxlciA9IGhhbmRsZXI7ICAvLy9cblxuICAgIHNlbGVjdEhhbmRsZXIuY2FsbChlbGVtZW50LCBwYXRoLCBzZWxlY3RlZCwgdGhpcyk7ICAvLy9cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNhbGxNb3ZlSGFuZGxlcnNBc3luYyhwYXRoTWFwcywgZG9uZSkge1xuICBjb25zdCBldmVudFR5cGUgPSBNT1ZFX0VWRU5UX1RZUEUsXG4gICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgbW92ZUhhbmRsZXIgPSBoYW5kbGVyLCAgLy8vXG4gICAgICAgIGRvbmUgPSBuZXh0OyAgLy8vXG5cbiAgICBtb3ZlSGFuZGxlci5jYWxsKGVsZW1lbnQsIHBhdGhNYXBzLCBkb25lKTtcbiAgfSwgZG9uZSk7XG59XG5cbmZ1bmN0aW9uIGNhbGxQYXRoQ2hhbmdlSGFuZGxlcnNBc3luYyhvbGRQYXRoLCBuZXdQYXRoLCBjYWxsYmFjaykge1xuICBsZXQgbm90U3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGRvbmUgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9ICFub3RTdWNjZXNzO1xuXG4gICAgICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50VHlwZSA9IFBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUsXG4gICAgICAgIGV2ZW50TGlzdGVuZXJzID0gdGhpcy5maW5kRXZlbnRMaXN0ZW5lcnMoZXZlbnRUeXBlKTtcblxuICBmb3JFYWNoKGV2ZW50TGlzdGVuZXJzLCAoZXZlbnRMaXN0ZW5lciwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlciwgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcbiAgICAgICAgICBwYXRoQ2hhbmdlSGFuZGxlciA9IGhhbmRsZXI7ICAvLy9cblxuICAgIHBhdGhDaGFuZ2VIYW5kbGVyLmNhbGwoZWxlbWVudCwgb2xkUGF0aCwgbmV3UGF0aCwgKHN1Y2Nlc3MpID0+IHtcbiAgICAgIG5vdFN1Y2Nlc3MgPSAhc3VjY2VzcztcblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBkb25lKTtcbn1cblxuY29uc3QgZXZlbnRNaXhpbnMgPSB7XG4gIG9uTW92ZSxcbiAgb2ZmTW92ZSxcbiAgb25PcGVuLFxuICBvZmZPcGVuLFxuICBvblNlbGVjdCxcbiAgb2ZmU2VsZWN0LFxuICBvblBhdGhDaGFuZ2UsXG4gIG9mZlBhdGhDaGFuZ2UsXG4gIGNhbGxPcGVuSGFuZGxlcnMsXG4gIGNhbGxTZWxlY3RIYW5kbGVycyxcbiAgY2FsbE1vdmVIYW5kbGVyc0FzeW5jLFxuICBjYWxsUGF0aENoYW5nZUhhbmRsZXJzQXN5bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV2ZW50TWl4aW5zO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJvbk1vdmUiLCJtb3ZlSGFuZGxlciIsImVsZW1lbnQiLCJldmVudFR5cGUiLCJNT1ZFX0VWRU5UX1RZUEUiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZk1vdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25PcGVuIiwib3BlbkhhbmRsZXIiLCJPUEVOX0VWRU5UX1RZUEUiLCJvZmZPcGVuIiwib25TZWxlY3QiLCJzZWxlY3RIYW5kbGVyIiwiU0VMRUNUX0VWRU5UX1RZUEUiLCJvZmZTZWxlY3QiLCJvblBhdGhDaGFuZ2UiLCJwYXRoQ2hhbmdlSGFuZGxlciIsIlBBVEhfQ0hBTkdFX0VWRU5UX1RZUEUiLCJvZmZQYXRoQ2hhbmdlIiwiY2FsbE9wZW5IYW5kbGVycyIsImZpbGVQYXRoIiwiZXZlbnRMaXN0ZW5lcnMiLCJmaW5kRXZlbnRMaXN0ZW5lcnMiLCJldmVudExpc3RlbmVyIiwiY2FsbCIsImNhbGxTZWxlY3RIYW5kbGVycyIsInBhdGgiLCJzZWxlY3RlZCIsImNhbGxNb3ZlSGFuZGxlcnNBc3luYyIsInBhdGhNYXBzIiwiZG9uZSIsIm5leHQiLCJjYWxsUGF0aENoYW5nZUhhbmRsZXJzQXN5bmMiLCJvbGRQYXRoIiwibmV3UGF0aCIsImNhbGxiYWNrIiwibm90U3VjY2VzcyIsInN1Y2Nlc3MiLCJldmVudE1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMklBOzs7ZUFBQTs7O3lCQXpJc0M7MEJBRXNEO0FBRTVGLElBQU0sQUFBRUEsVUFBWUMsZ0NBQXFCLENBQWpDRDtB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
|