@kepler.gl/reducers 3.3.0-alpha.15 → 3.3.0-alpha.17
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/cjs/column-edit-reconcile.js +100 -0
- package/dist/cjs/column-edit-updaters.spec.js +840 -0
- package/dist/cjs/combined-updaters.js +166 -8
- package/dist/cjs/composers.js +4 -5
- package/dist/cjs/dataset-ops-updaters.js +375 -0
- package/dist/cjs/dataset-ops-updaters.spec.js +382 -0
- package/dist/cjs/export-utils.js +118 -46
- package/dist/cjs/interaction-utils.js +166 -6
- package/dist/cjs/layer-utils.js +135 -9
- package/dist/cjs/ui-state-updaters.js +134 -51
- package/dist/cjs/ui-state.js +2 -2
- package/dist/cjs/vis-state-merger-text-label.spec.js +75 -0
- package/dist/cjs/vis-state-merger.js +99 -25
- package/dist/cjs/vis-state-selectors.js +5 -4
- package/dist/cjs/vis-state-updaters.js +1077 -256
- package/dist/cjs/vis-state.js +2 -2
- package/dist/column-edit-reconcile.d.ts +4 -0
- package/dist/column-edit-updaters.spec.d.ts +1 -0
- package/dist/combined-updaters.d.ts +21 -1
- package/dist/composers.d.ts +3 -0
- package/dist/dataset-ops-updaters.d.ts +21 -0
- package/dist/dataset-ops-updaters.spec.d.ts +1 -0
- package/dist/esm/column-edit-reconcile.js +95 -0
- package/dist/esm/column-edit-updaters.spec.js +839 -0
- package/dist/esm/combined-updaters.js +166 -8
- package/dist/esm/composers.js +3 -2
- package/dist/esm/dataset-ops-updaters.js +357 -0
- package/dist/esm/dataset-ops-updaters.spec.js +381 -0
- package/dist/esm/export-utils.js +117 -45
- package/dist/esm/interaction-utils.js +159 -3
- package/dist/esm/layer-utils.js +133 -9
- package/dist/esm/ui-state-updaters.js +133 -50
- package/dist/esm/ui-state.js +2 -2
- package/dist/esm/vis-state-merger-text-label.spec.js +74 -0
- package/dist/esm/vis-state-merger.js +99 -26
- package/dist/esm/vis-state-selectors.js +5 -4
- package/dist/esm/vis-state-updaters.js +1020 -263
- package/dist/esm/vis-state.js +2 -2
- package/dist/export-utils.d.ts +2 -2
- package/dist/interaction-utils.d.ts +25 -2
- package/dist/layer-utils.d.ts +17 -0
- package/dist/ui-state-updaters.d.ts +30 -0
- package/dist/vis-state-merger-text-label.spec.d.ts +1 -0
- package/dist/vis-state-merger.d.ts +10 -2
- package/dist/vis-state-updaters.d.ts +61 -15
- package/dist/vis-state.d.ts +20 -0
- package/package.json +17 -17
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.remapChartsForDataset = remapChartsForDataset;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _constants = require("@kepler.gl/constants");
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
13
|
+
// Copyright contributors to the kepler.gl project
|
|
14
|
+
var BIN_AGGREGATIONS = new Set(['uniqueBin', 'numericBin', 'timeBin']);
|
|
15
|
+
var TIME_FIELD_TYPES = new Set([_constants.ALL_FIELD_TYPES.timestamp, _constants.ALL_FIELD_TYPES.date]);
|
|
16
|
+
function binAggregationForType(type) {
|
|
17
|
+
if (TIME_FIELD_TYPES.has(type)) {
|
|
18
|
+
return 'timeBin';
|
|
19
|
+
}
|
|
20
|
+
return type === _constants.ALL_FIELD_TYPES.real ? 'numericBin' : 'uniqueBin';
|
|
21
|
+
}
|
|
22
|
+
function followFieldName(name, renames, alive) {
|
|
23
|
+
var _renames$name;
|
|
24
|
+
if (!name) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
var next = (_renames$name = renames[name]) !== null && _renames$name !== void 0 ? _renames$name : name;
|
|
28
|
+
return alive.has(next) ? next : null;
|
|
29
|
+
}
|
|
30
|
+
function followAxis(axis, renames, alive) {
|
|
31
|
+
var _axis$field;
|
|
32
|
+
if (!(axis !== null && axis !== void 0 && (_axis$field = axis.field) !== null && _axis$field !== void 0 && _axis$field.name)) {
|
|
33
|
+
return axis;
|
|
34
|
+
}
|
|
35
|
+
var name = followFieldName(axis.field.name, renames, alive);
|
|
36
|
+
if (!name) {
|
|
37
|
+
return _objectSpread(_objectSpread({}, axis), {}, {
|
|
38
|
+
field: null,
|
|
39
|
+
title: null
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
var field = alive.get(name);
|
|
43
|
+
var typeChanged = (field === null || field === void 0 ? void 0 : field.type) !== axis.field.type;
|
|
44
|
+
if (name === axis.field.name && !typeChanged) {
|
|
45
|
+
return axis;
|
|
46
|
+
}
|
|
47
|
+
var aggregation = typeChanged && axis.aggregation && BIN_AGGREGATIONS.has(axis.aggregation) ? binAggregationForType((field === null || field === void 0 ? void 0 : field.type) || '') : axis.aggregation;
|
|
48
|
+
var clearInterval = typeChanged && aggregation !== 'timeBin' && axis.interval !== undefined;
|
|
49
|
+
return _objectSpread(_objectSpread({}, axis), {}, {
|
|
50
|
+
field: _objectSpread(_objectSpread({}, axis.field), {}, {
|
|
51
|
+
name: name,
|
|
52
|
+
type: field === null || field === void 0 ? void 0 : field.type
|
|
53
|
+
}),
|
|
54
|
+
title: axis.title === axis.field.name ? name : axis.title,
|
|
55
|
+
aggregation: aggregation
|
|
56
|
+
}, clearInterval ? {
|
|
57
|
+
interval: undefined
|
|
58
|
+
} : {});
|
|
59
|
+
}
|
|
60
|
+
function isLayerChart(chart) {
|
|
61
|
+
return chart.type === 'layerChart';
|
|
62
|
+
}
|
|
63
|
+
function remapChartsForDataset(charts, dataId, renames, alive) {
|
|
64
|
+
return (charts || []).map(function (chart) {
|
|
65
|
+
var _chart$crossFilter, _chart$chartDisplay;
|
|
66
|
+
if (chart.dataId !== dataId) {
|
|
67
|
+
return chart;
|
|
68
|
+
}
|
|
69
|
+
var source = chart;
|
|
70
|
+
var next = _objectSpread(_objectSpread({}, chart), {}, {
|
|
71
|
+
xAxis: followAxis(source.xAxis, renames, alive),
|
|
72
|
+
yAxis: followAxis(source.yAxis, renames, alive),
|
|
73
|
+
axis: followAxis(source.axis, renames, alive),
|
|
74
|
+
groupBy: followAxis(source.groupBy, renames, alive),
|
|
75
|
+
value: followAxis(source.value, renames, alive)
|
|
76
|
+
});
|
|
77
|
+
if ((_chart$crossFilter = chart.crossFilter) !== null && _chart$crossFilter !== void 0 && _chart$crossFilter.fieldNames) {
|
|
78
|
+
var fieldNames = {};
|
|
79
|
+
Object.entries(chart.crossFilter.fieldNames).forEach(function (_ref) {
|
|
80
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
81
|
+
key = _ref2[0],
|
|
82
|
+
value = _ref2[1];
|
|
83
|
+
var name = followFieldName(value, renames, alive);
|
|
84
|
+
if (name) {
|
|
85
|
+
fieldNames[key] = name;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
next.crossFilter = _objectSpread(_objectSpread({}, chart.crossFilter), {}, {
|
|
89
|
+
fieldNames: fieldNames
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (isLayerChart(chart) && (_chart$chartDisplay = chart.chartDisplay) !== null && _chart$chartDisplay !== void 0 && _chart$chartDisplay.idField) {
|
|
93
|
+
next.chartDisplay = _objectSpread(_objectSpread({}, chart.chartDisplay), {}, {
|
|
94
|
+
idField: followFieldName(chart.chartDisplay.idField, renames, alive)
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return next;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiQklOX0FHR1JFR0FUSU9OUyIsIlNldCIsIlRJTUVfRklFTERfVFlQRVMiLCJBTExfRklFTERfVFlQRVMiLCJ0aW1lc3RhbXAiLCJkYXRlIiwiYmluQWdncmVnYXRpb25Gb3JUeXBlIiwidHlwZSIsImhhcyIsInJlYWwiLCJmb2xsb3dGaWVsZE5hbWUiLCJuYW1lIiwicmVuYW1lcyIsImFsaXZlIiwiX3JlbmFtZXMkbmFtZSIsIm5leHQiLCJmb2xsb3dBeGlzIiwiYXhpcyIsIl9heGlzJGZpZWxkIiwiZmllbGQiLCJ0aXRsZSIsImdldCIsInR5cGVDaGFuZ2VkIiwiYWdncmVnYXRpb24iLCJjbGVhckludGVydmFsIiwiaW50ZXJ2YWwiLCJ1bmRlZmluZWQiLCJpc0xheWVyQ2hhcnQiLCJjaGFydCIsInJlbWFwQ2hhcnRzRm9yRGF0YXNldCIsImNoYXJ0cyIsImRhdGFJZCIsIm1hcCIsIl9jaGFydCRjcm9zc0ZpbHRlciIsIl9jaGFydCRjaGFydERpc3BsYXkiLCJzb3VyY2UiLCJ4QXhpcyIsInlBeGlzIiwiZ3JvdXBCeSIsInZhbHVlIiwiY3Jvc3NGaWx0ZXIiLCJmaWVsZE5hbWVzIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsImtleSIsImNoYXJ0RGlzcGxheSIsImlkRmllbGQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29sdW1uLWVkaXQtcmVjb25jaWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q2hhcnRDb25maWcsIExheWVyQ2hhcnRDb25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBTExfRklFTERfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxudHlwZSBOYW1lZEF4aXMgPSB7XG4gIGZpZWxkPzoge25hbWU6IHN0cmluZzsgdHlwZT86IHN0cmluZ30gfCBudWxsO1xuICB0aXRsZT86IHN0cmluZyB8IG51bGw7XG4gIGFnZ3JlZ2F0aW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgaW50ZXJ2YWw/OiBzdHJpbmcgfCBudWxsO1xufTtcblxuY29uc3QgQklOX0FHR1JFR0FUSU9OUyA9IG5ldyBTZXQoWyd1bmlxdWVCaW4nLCAnbnVtZXJpY0JpbicsICd0aW1lQmluJ10pO1xuY29uc3QgVElNRV9GSUVMRF9UWVBFUyA9IG5ldyBTZXQ8c3RyaW5nPihbQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcCwgQUxMX0ZJRUxEX1RZUEVTLmRhdGVdKTtcblxuZnVuY3Rpb24gYmluQWdncmVnYXRpb25Gb3JUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChUSU1FX0ZJRUxEX1RZUEVTLmhhcyh0eXBlKSkge1xuICAgIHJldHVybiAndGltZUJpbic7XG4gIH1cbiAgcmV0dXJuIHR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsID8gJ251bWVyaWNCaW4nIDogJ3VuaXF1ZUJpbic7XG59XG5cbmZ1bmN0aW9uIGZvbGxvd0ZpZWxkTmFtZShcbiAgbmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgcmVuYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgYWxpdmU6IFJlYWRvbmx5TWFwPHN0cmluZywge3R5cGU6IHN0cmluZ30+XG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgbmV4dCA9IHJlbmFtZXNbbmFtZV0gPz8gbmFtZTtcbiAgcmV0dXJuIGFsaXZlLmhhcyhuZXh0KSA/IG5leHQgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBmb2xsb3dBeGlzPFQgZXh0ZW5kcyBOYW1lZEF4aXM+KFxuICBheGlzOiBUIHwgdW5kZWZpbmVkLFxuICByZW5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBhbGl2ZTogUmVhZG9ubHlNYXA8c3RyaW5nLCB7dHlwZTogc3RyaW5nfT5cbik6IFQgfCB1bmRlZmluZWQge1xuICBpZiAoIWF4aXM/LmZpZWxkPy5uYW1lKSB7XG4gICAgcmV0dXJuIGF4aXM7XG4gIH1cbiAgY29uc3QgbmFtZSA9IGZvbGxvd0ZpZWxkTmFtZShheGlzLmZpZWxkLm5hbWUsIHJlbmFtZXMsIGFsaXZlKTtcbiAgaWYgKCFuYW1lKSB7XG4gICAgcmV0dXJuIHsuLi5heGlzLCBmaWVsZDogbnVsbCwgdGl0bGU6IG51bGx9O1xuICB9XG4gIGNvbnN0IGZpZWxkID0gYWxpdmUuZ2V0KG5hbWUpO1xuICBjb25zdCB0eXBlQ2hhbmdlZCA9IGZpZWxkPy50eXBlICE9PSBheGlzLmZpZWxkLnR5cGU7XG4gIGlmIChuYW1lID09PSBheGlzLmZpZWxkLm5hbWUgJiYgIXR5cGVDaGFuZ2VkKSB7XG4gICAgcmV0dXJuIGF4aXM7XG4gIH1cbiAgY29uc3QgYWdncmVnYXRpb24gPVxuICAgIHR5cGVDaGFuZ2VkICYmIGF4aXMuYWdncmVnYXRpb24gJiYgQklOX0FHR1JFR0FUSU9OUy5oYXMoYXhpcy5hZ2dyZWdhdGlvbilcbiAgICAgID8gYmluQWdncmVnYXRpb25Gb3JUeXBlKGZpZWxkPy50eXBlIHx8ICcnKVxuICAgICAgOiBheGlzLmFnZ3JlZ2F0aW9uO1xuICBjb25zdCBjbGVhckludGVydmFsID0gdHlwZUNoYW5nZWQgJiYgYWdncmVnYXRpb24gIT09ICd0aW1lQmluJyAmJiBheGlzLmludGVydmFsICE9PSB1bmRlZmluZWQ7XG4gIHJldHVybiB7XG4gICAgLi4uYXhpcyxcbiAgICBmaWVsZDogey4uLmF4aXMuZmllbGQsIG5hbWUsIHR5cGU6IGZpZWxkPy50eXBlfSxcbiAgICB0aXRsZTogYXhpcy50aXRsZSA9PT0gYXhpcy5maWVsZC5uYW1lID8gbmFtZSA6IGF4aXMudGl0bGUsXG4gICAgYWdncmVnYXRpb24sXG4gICAgLi4uKGNsZWFySW50ZXJ2YWwgPyB7aW50ZXJ2YWw6IHVuZGVmaW5lZH0gOiB7fSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNMYXllckNoYXJ0KGNoYXJ0OiBDaGFydENvbmZpZyk6IGNoYXJ0IGlzIExheWVyQ2hhcnRDb25maWcge1xuICByZXR1cm4gY2hhcnQudHlwZSA9PT0gJ2xheWVyQ2hhcnQnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtYXBDaGFydHNGb3JEYXRhc2V0KFxuICBjaGFydHM6IENoYXJ0Q29uZmlnW10gfCB1bmRlZmluZWQsXG4gIGRhdGFJZDogc3RyaW5nLFxuICByZW5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBhbGl2ZTogUmVhZG9ubHlNYXA8c3RyaW5nLCB7dHlwZTogc3RyaW5nfT5cbik6IENoYXJ0Q29uZmlnW10ge1xuICByZXR1cm4gKGNoYXJ0cyB8fCBbXSkubWFwKGNoYXJ0ID0+IHtcbiAgICBpZiAoY2hhcnQuZGF0YUlkICE9PSBkYXRhSWQpIHtcbiAgICAgIHJldHVybiBjaGFydDtcbiAgICB9XG4gICAgY29uc3Qgc291cmNlID0gY2hhcnQgYXMgQ2hhcnRDb25maWcgJiB7XG4gICAgICB4QXhpcz86IE5hbWVkQXhpcztcbiAgICAgIHlBeGlzPzogTmFtZWRBeGlzO1xuICAgICAgYXhpcz86IE5hbWVkQXhpcztcbiAgICAgIGdyb3VwQnk/OiBOYW1lZEF4aXM7XG4gICAgICB2YWx1ZT86IE5hbWVkQXhpcztcbiAgICB9O1xuICAgIGNvbnN0IG5leHQ6IENoYXJ0Q29uZmlnID0ge1xuICAgICAgLi4uY2hhcnQsXG4gICAgICB4QXhpczogZm9sbG93QXhpcyhzb3VyY2UueEF4aXMsIHJlbmFtZXMsIGFsaXZlKSxcbiAgICAgIHlBeGlzOiBmb2xsb3dBeGlzKHNvdXJjZS55QXhpcywgcmVuYW1lcywgYWxpdmUpLFxuICAgICAgYXhpczogZm9sbG93QXhpcyhzb3VyY2UuYXhpcywgcmVuYW1lcywgYWxpdmUpLFxuICAgICAgZ3JvdXBCeTogZm9sbG93QXhpcyhzb3VyY2UuZ3JvdXBCeSwgcmVuYW1lcywgYWxpdmUpLFxuICAgICAgdmFsdWU6IGZvbGxvd0F4aXMoc291cmNlLnZhbHVlLCByZW5hbWVzLCBhbGl2ZSlcbiAgICB9IGFzIENoYXJ0Q29uZmlnO1xuXG4gICAgaWYgKGNoYXJ0LmNyb3NzRmlsdGVyPy5maWVsZE5hbWVzKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICBPYmplY3QuZW50cmllcyhjaGFydC5jcm9zc0ZpbHRlci5maWVsZE5hbWVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGZvbGxvd0ZpZWxkTmFtZSh2YWx1ZSwgcmVuYW1lcywgYWxpdmUpO1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgIGZpZWxkTmFtZXNba2V5XSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbmV4dC5jcm9zc0ZpbHRlciA9IHsuLi5jaGFydC5jcm9zc0ZpbHRlciwgZmllbGROYW1lc307XG4gICAgfVxuXG4gICAgaWYgKGlzTGF5ZXJDaGFydChjaGFydCkgJiYgY2hhcnQuY2hhcnREaXNwbGF5Py5pZEZpZWxkKSB7XG4gICAgICBuZXh0LmNoYXJ0RGlzcGxheSA9IHtcbiAgICAgICAgLi4uY2hhcnQuY2hhcnREaXNwbGF5LFxuICAgICAgICBpZEZpZWxkOiBmb2xsb3dGaWVsZE5hbWUoY2hhcnQuY2hhcnREaXNwbGF5LmlkRmllbGQsIHJlbmFtZXMsIGFsaXZlKVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQ7XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFBcUQsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFB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
|