@pie-element/hotspot 4.10.15 → 4.10.16-next.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/CHANGELOG.md +0 -51
- package/configure/CHANGELOG.md +0 -48
- package/configure/lib/__tests__/hotspot-container.test.js +281 -0
- package/configure/lib/__tests__/hotspot-drawable.test.js +241 -0
- package/configure/lib/__tests__/index.test.js +224 -0
- package/configure/lib/__tests__/root.test.js +443 -0
- package/configure/lib/__tests__/utils.test.js +335 -0
- package/configure/lib/button.js +1 -1
- package/configure/lib/defaults.js +3 -3
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/hotspot-container.js +3 -3
- package/configure/lib/hotspot-drawable.js +3 -3
- package/configure/lib/hotspot-drawable.js.map +1 -1
- package/configure/lib/hotspot-palette.js +1 -1
- package/configure/lib/hotspot-polygon.js +1 -1
- package/configure/lib/hotspot-rectangle.js +1 -1
- package/configure/lib/index.js +3 -3
- package/configure/lib/root.js +50 -6
- package/configure/lib/upload-control.js +1 -1
- package/configure/lib/utils.js +4 -4
- package/configure/package.json +1 -1
- package/configure/src/__tests__/__snapshots__/root.test.js.snap +2 -2
- package/configure/src/defaults.js +2 -2
- package/configure/src/root.jsx +36 -2
- package/controller/lib/__tests__/index.test.js +921 -0
- package/controller/lib/__tests__/utils.test.js +8 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +40 -4
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -1
- package/controller/src/index.js +26 -0
- package/docs/demo/pie.manifest.json +11 -0
- package/docs/pie-schema.json +6 -0
- package/docs/pie-schema.json.md +4 -0
- package/lib/__tests__/container-test.js +185 -0
- package/lib/__tests__/image-test.js +63 -0
- package/lib/__tests__/polygon-test.js +99 -0
- package/lib/__tests__/rectangle-test.js +92 -0
- package/lib/__tests__/session-updater-test.js +78 -0
- package/lib/hotspot/container.js +1 -1
- package/lib/hotspot/icons.js +1 -1
- package/lib/hotspot/image.js +1 -1
- package/lib/hotspot/index.js +1 -1
- package/lib/hotspot/polygon.js +1 -1
- package/lib/hotspot/rectangle.js +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/session-updater.js +1 -1
- package/package.json +2 -2
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _utils = require("../utils");
|
|
14
|
+
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
16
|
+
|
|
17
|
+
var width = 200;
|
|
18
|
+
var height = 100;
|
|
19
|
+
var imageDimensions = {
|
|
20
|
+
width: width,
|
|
21
|
+
height: height
|
|
22
|
+
};
|
|
23
|
+
describe('updateImageDimensions', function () {
|
|
24
|
+
it.each(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n initialDimensions | nextDimensions | keepAspectRatio | resizeType | expectedWidth | expectedHeight\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", " | ", " | ", " | ", " | ", "\n ", " | ", "| ", " | ", " | ", " | ", "\n "])), imageDimensions, {
|
|
25
|
+
width: width,
|
|
26
|
+
height: 300
|
|
27
|
+
}, true, 'height', 600, 300, imageDimensions, {
|
|
28
|
+
width: 400,
|
|
29
|
+
height: height
|
|
30
|
+
}, true, 'width', 400, 200, imageDimensions, {
|
|
31
|
+
width: width,
|
|
32
|
+
height: 300
|
|
33
|
+
}, true, undefined, 200, 100, imageDimensions, {
|
|
34
|
+
width: 600,
|
|
35
|
+
height: height
|
|
36
|
+
}, true, undefined, 600, 300, imageDimensions, {
|
|
37
|
+
width: width,
|
|
38
|
+
height: 300
|
|
39
|
+
}, false, 'height', 200, 300, imageDimensions, {
|
|
40
|
+
width: 600,
|
|
41
|
+
height: height
|
|
42
|
+
}, false, 'width', 600, 100, imageDimensions, {
|
|
43
|
+
width: 10,
|
|
44
|
+
height: 10
|
|
45
|
+
}, false, undefined, 10, 10)('initialDimensions = $initialDimensions, nextDimensions = $nextDimensions, keepAspectRatio = $keepAspectRatio, resizeType = $resizeType => width = $expectedWidth & height = $expectedHeight', /*#__PURE__*/function () {
|
|
46
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
47
|
+
var initialDimensions, nextDimensions, keepAspectRatio, resizeType, expectedWidth, expectedHeight, result;
|
|
48
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
49
|
+
while (1) {
|
|
50
|
+
switch (_context.prev = _context.next) {
|
|
51
|
+
case 0:
|
|
52
|
+
initialDimensions = _ref.initialDimensions, nextDimensions = _ref.nextDimensions, keepAspectRatio = _ref.keepAspectRatio, resizeType = _ref.resizeType, expectedWidth = _ref.expectedWidth, expectedHeight = _ref.expectedHeight;
|
|
53
|
+
result = (0, _utils.updateImageDimensions)(initialDimensions, nextDimensions, keepAspectRatio, resizeType);
|
|
54
|
+
expect(result).toEqual({
|
|
55
|
+
width: expectedWidth,
|
|
56
|
+
height: expectedHeight
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
case 3:
|
|
60
|
+
case "end":
|
|
61
|
+
return _context.stop();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}, _callee);
|
|
65
|
+
}));
|
|
66
|
+
|
|
67
|
+
return function (_x) {
|
|
68
|
+
return _ref2.apply(this, arguments);
|
|
69
|
+
};
|
|
70
|
+
}());
|
|
71
|
+
});
|
|
72
|
+
describe('getUpdatedRectangle', function () {
|
|
73
|
+
var rectangle = function rectangle(x, y, w, h) {
|
|
74
|
+
return {
|
|
75
|
+
x: x,
|
|
76
|
+
y: y,
|
|
77
|
+
width: w,
|
|
78
|
+
height: h
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
var heightUpdateLarge = {
|
|
83
|
+
width: width,
|
|
84
|
+
height: 300
|
|
85
|
+
};
|
|
86
|
+
var heightUpdateSmall = {
|
|
87
|
+
width: width,
|
|
88
|
+
height: 50
|
|
89
|
+
};
|
|
90
|
+
var widthUpdateLarge = {
|
|
91
|
+
width: 300,
|
|
92
|
+
height: height
|
|
93
|
+
};
|
|
94
|
+
var widthUpdateSmall = {
|
|
95
|
+
width: 100,
|
|
96
|
+
height: height
|
|
97
|
+
};
|
|
98
|
+
var bothUpdate = {
|
|
99
|
+
width: 20,
|
|
100
|
+
height: 50
|
|
101
|
+
};
|
|
102
|
+
it.each(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n initialDimensions | nextDimensions | shape | expected\n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n "])), imageDimensions, heightUpdateLarge, rectangle(10, 10, 100, 50), rectangle(10, 30, 100, 150), imageDimensions, heightUpdateSmall, rectangle(10, 10, 100, 50), rectangle(10, 5, 100, 25), imageDimensions, bothUpdate, rectangle(10, 10, 100, 50), rectangle(1, 5, 10, 25), imageDimensions, widthUpdateLarge, rectangle(10, 10, 100, 50), rectangle(15, 10, 150, 50), imageDimensions, widthUpdateSmall, rectangle(10, 10, 100, 50), rectangle(5, 10, 50, 50))('initialDimensions = $initialDimensions, nextDimensions = $nextDimensions, shape = $shape => $expected', /*#__PURE__*/function () {
|
|
103
|
+
var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref3) {
|
|
104
|
+
var initialDimensions, nextDimensions, shape, expected, result;
|
|
105
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
106
|
+
while (1) {
|
|
107
|
+
switch (_context2.prev = _context2.next) {
|
|
108
|
+
case 0:
|
|
109
|
+
initialDimensions = _ref3.initialDimensions, nextDimensions = _ref3.nextDimensions, shape = _ref3.shape, expected = _ref3.expected;
|
|
110
|
+
result = (0, _utils.getUpdatedRectangle)(initialDimensions, nextDimensions, shape);
|
|
111
|
+
expect(result).toEqual(expected);
|
|
112
|
+
|
|
113
|
+
case 3:
|
|
114
|
+
case "end":
|
|
115
|
+
return _context2.stop();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}, _callee2);
|
|
119
|
+
}));
|
|
120
|
+
|
|
121
|
+
return function (_x2) {
|
|
122
|
+
return _ref4.apply(this, arguments);
|
|
123
|
+
};
|
|
124
|
+
}());
|
|
125
|
+
});
|
|
126
|
+
describe('getUpdatedPolygon', function () {
|
|
127
|
+
var updatedDimensions = {
|
|
128
|
+
width: width / 2,
|
|
129
|
+
height: height * 2
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
var point = function point(x, y) {
|
|
133
|
+
return {
|
|
134
|
+
x: x,
|
|
135
|
+
y: y
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var updatedPoint = function updatedPoint(x, y) {
|
|
140
|
+
return {
|
|
141
|
+
x: x / 2,
|
|
142
|
+
y: y * 2
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
var triangle = [point(10, 10), point(100, 10), point(100, 100)];
|
|
147
|
+
var triangleUpdated = [updatedPoint(10, 10), updatedPoint(100, 10), updatedPoint(100, 100)];
|
|
148
|
+
var square = [point(10, 10), point(100, 10), point(100, 100), point(10, 100)];
|
|
149
|
+
var squareUpdated = [updatedPoint(10, 10), updatedPoint(100, 10), updatedPoint(100, 100), updatedPoint(10, 100)];
|
|
150
|
+
var pentagon = [point(10, 10), point(20, 0), point(30, 0), point(40, 10), point(25, 20)];
|
|
151
|
+
var pentagonUpdated = [updatedPoint(10, 10), updatedPoint(20, 0), updatedPoint(30, 0), updatedPoint(40, 10), updatedPoint(25, 20)];
|
|
152
|
+
var hexagon = [point(10, 10), point(20, 0), point(30, 0), point(40, 10), point(30, 20), point(20, 20)];
|
|
153
|
+
var hexagonUpdated = [updatedPoint(10, 10), updatedPoint(20, 0), updatedPoint(30, 0), updatedPoint(40, 10), updatedPoint(30, 20), updatedPoint(20, 20)];
|
|
154
|
+
|
|
155
|
+
var polygon = function polygon(points) {
|
|
156
|
+
return {
|
|
157
|
+
points: points
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
it.each(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n initialDimensions | nextDimensions | shape | expected\n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n ", " | ", " | ", " | ", " \n "])), imageDimensions, updatedDimensions, polygon(triangle), polygon(triangleUpdated), imageDimensions, updatedDimensions, polygon(square), polygon(squareUpdated), imageDimensions, updatedDimensions, polygon(pentagon), polygon(pentagonUpdated), imageDimensions, updatedDimensions, polygon(hexagon), polygon(hexagonUpdated))('initialDimensions = $initialDimensions, nextDimensions = $nextDimensions, shape = $shape => $expected', /*#__PURE__*/function () {
|
|
162
|
+
var _ref6 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref5) {
|
|
163
|
+
var initialDimensions, nextDimensions, shape, expected, result;
|
|
164
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
165
|
+
while (1) {
|
|
166
|
+
switch (_context3.prev = _context3.next) {
|
|
167
|
+
case 0:
|
|
168
|
+
initialDimensions = _ref5.initialDimensions, nextDimensions = _ref5.nextDimensions, shape = _ref5.shape, expected = _ref5.expected;
|
|
169
|
+
result = (0, _utils.getUpdatedPlygon)(initialDimensions, nextDimensions, shape);
|
|
170
|
+
expect(result).toEqual(expected);
|
|
171
|
+
|
|
172
|
+
case 3:
|
|
173
|
+
case "end":
|
|
174
|
+
return _context3.stop();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}, _callee3);
|
|
178
|
+
}));
|
|
179
|
+
|
|
180
|
+
return function (_x3) {
|
|
181
|
+
return _ref6.apply(this, arguments);
|
|
182
|
+
};
|
|
183
|
+
}());
|
|
184
|
+
});
|
|
185
|
+
var shapesArray = [{
|
|
186
|
+
height: 100,
|
|
187
|
+
width: 100,
|
|
188
|
+
x: 1,
|
|
189
|
+
y: 1,
|
|
190
|
+
group: 'rectangles',
|
|
191
|
+
index: 0
|
|
192
|
+
}, {
|
|
193
|
+
height: 200,
|
|
194
|
+
width: 200,
|
|
195
|
+
x: 200,
|
|
196
|
+
y: 1,
|
|
197
|
+
group: 'rectangles',
|
|
198
|
+
index: 1
|
|
199
|
+
}, {
|
|
200
|
+
points: [{
|
|
201
|
+
x: 1,
|
|
202
|
+
y: 200
|
|
203
|
+
}, {
|
|
204
|
+
x: 1,
|
|
205
|
+
y: 200
|
|
206
|
+
}, {
|
|
207
|
+
y: 200,
|
|
208
|
+
x: 200
|
|
209
|
+
}, {
|
|
210
|
+
y: 200,
|
|
211
|
+
x: 200
|
|
212
|
+
}],
|
|
213
|
+
group: 'polygons',
|
|
214
|
+
index: 2
|
|
215
|
+
}, {
|
|
216
|
+
points: [{
|
|
217
|
+
x: 200,
|
|
218
|
+
y: 100
|
|
219
|
+
}, {
|
|
220
|
+
x: 200,
|
|
221
|
+
y: 200
|
|
222
|
+
}, {
|
|
223
|
+
x: 400,
|
|
224
|
+
y: 200
|
|
225
|
+
}, {
|
|
226
|
+
x: 400,
|
|
227
|
+
y: 200
|
|
228
|
+
}],
|
|
229
|
+
group: 'polygons',
|
|
230
|
+
index: 3
|
|
231
|
+
}];
|
|
232
|
+
var shapesMap = {
|
|
233
|
+
rectangles: [{
|
|
234
|
+
height: 100,
|
|
235
|
+
width: 100,
|
|
236
|
+
x: 1,
|
|
237
|
+
y: 1,
|
|
238
|
+
index: 0
|
|
239
|
+
}, {
|
|
240
|
+
height: 200,
|
|
241
|
+
width: 200,
|
|
242
|
+
x: 200,
|
|
243
|
+
y: 1,
|
|
244
|
+
index: 1
|
|
245
|
+
}],
|
|
246
|
+
polygons: [{
|
|
247
|
+
points: [{
|
|
248
|
+
x: 1,
|
|
249
|
+
y: 200
|
|
250
|
+
}, {
|
|
251
|
+
x: 1,
|
|
252
|
+
y: 200
|
|
253
|
+
}, {
|
|
254
|
+
y: 200,
|
|
255
|
+
x: 200
|
|
256
|
+
}, {
|
|
257
|
+
y: 200,
|
|
258
|
+
x: 200
|
|
259
|
+
}],
|
|
260
|
+
index: 2
|
|
261
|
+
}, {
|
|
262
|
+
points: [{
|
|
263
|
+
x: 200,
|
|
264
|
+
y: 100
|
|
265
|
+
}, {
|
|
266
|
+
x: 200,
|
|
267
|
+
y: 200
|
|
268
|
+
}, {
|
|
269
|
+
x: 400,
|
|
270
|
+
y: 200
|
|
271
|
+
}, {
|
|
272
|
+
x: 400,
|
|
273
|
+
y: 200
|
|
274
|
+
}],
|
|
275
|
+
index: 3
|
|
276
|
+
}]
|
|
277
|
+
};
|
|
278
|
+
describe('getAllShapes', function () {
|
|
279
|
+
it.each(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n shapesMap | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), shapesMap, shapesArray, null, [], undefined, [], {}, [])('TURNS shapes = $shapesMap INTO $expected', /*#__PURE__*/function () {
|
|
280
|
+
var _ref8 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(_ref7) {
|
|
281
|
+
var shapesMap, expected;
|
|
282
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
283
|
+
while (1) {
|
|
284
|
+
switch (_context4.prev = _context4.next) {
|
|
285
|
+
case 0:
|
|
286
|
+
shapesMap = _ref7.shapesMap, expected = _ref7.expected;
|
|
287
|
+
expect((0, _utils.getAllShapes)(shapesMap)).toEqual(expected);
|
|
288
|
+
|
|
289
|
+
case 2:
|
|
290
|
+
case "end":
|
|
291
|
+
return _context4.stop();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}, _callee4);
|
|
295
|
+
}));
|
|
296
|
+
|
|
297
|
+
return function (_x4) {
|
|
298
|
+
return _ref8.apply(this, arguments);
|
|
299
|
+
};
|
|
300
|
+
}());
|
|
301
|
+
});
|
|
302
|
+
describe('groupShapes', function () {
|
|
303
|
+
it.each(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n shapesArray | expected\n ", " | ", "\n ", " | ", "\n ", " | ", "\n ", " | ", "\n "])), shapesArray, shapesMap, null, {
|
|
304
|
+
rectangles: [],
|
|
305
|
+
polygons: []
|
|
306
|
+
}, undefined, {
|
|
307
|
+
rectangles: [],
|
|
308
|
+
polygons: []
|
|
309
|
+
}, [], {
|
|
310
|
+
rectangles: [],
|
|
311
|
+
polygons: []
|
|
312
|
+
})('TURNS shapes = $shapesArray INTO $expected', /*#__PURE__*/function () {
|
|
313
|
+
var _ref10 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(_ref9) {
|
|
314
|
+
var shapesArray, expected;
|
|
315
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
316
|
+
while (1) {
|
|
317
|
+
switch (_context5.prev = _context5.next) {
|
|
318
|
+
case 0:
|
|
319
|
+
shapesArray = _ref9.shapesArray, expected = _ref9.expected;
|
|
320
|
+
expect((0, _utils.groupShapes)(shapesArray)).toEqual(expected);
|
|
321
|
+
|
|
322
|
+
case 2:
|
|
323
|
+
case "end":
|
|
324
|
+
return _context5.stop();
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}, _callee5);
|
|
328
|
+
}));
|
|
329
|
+
|
|
330
|
+
return function (_x5) {
|
|
331
|
+
return _ref10.apply(this, arguments);
|
|
332
|
+
};
|
|
333
|
+
}());
|
|
334
|
+
});
|
|
335
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJuYW1lcyI6WyJ3aWR0aCIsImhlaWdodCIsImltYWdlRGltZW5zaW9ucyIsImRlc2NyaWJlIiwiaXQiLCJlYWNoIiwidW5kZWZpbmVkIiwiaW5pdGlhbERpbWVuc2lvbnMiLCJuZXh0RGltZW5zaW9ucyIsImtlZXBBc3BlY3RSYXRpbyIsInJlc2l6ZVR5cGUiLCJleHBlY3RlZFdpZHRoIiwiZXhwZWN0ZWRIZWlnaHQiLCJyZXN1bHQiLCJleHBlY3QiLCJ0b0VxdWFsIiwicmVjdGFuZ2xlIiwieCIsInkiLCJ3IiwiaCIsImhlaWdodFVwZGF0ZUxhcmdlIiwiaGVpZ2h0VXBkYXRlU21hbGwiLCJ3aWR0aFVwZGF0ZUxhcmdlIiwid2lkdGhVcGRhdGVTbWFsbCIsImJvdGhVcGRhdGUiLCJzaGFwZSIsImV4cGVjdGVkIiwidXBkYXRlZERpbWVuc2lvbnMiLCJwb2ludCIsInVwZGF0ZWRQb2ludCIsInRyaWFuZ2xlIiwidHJpYW5nbGVVcGRhdGVkIiwic3F1YXJlIiwic3F1YXJlVXBkYXRlZCIsInBlbnRhZ29uIiwicGVudGFnb25VcGRhdGVkIiwiaGV4YWdvbiIsImhleGFnb25VcGRhdGVkIiwicG9seWdvbiIsInBvaW50cyIsInNoYXBlc0FycmF5IiwiZ3JvdXAiLCJpbmRleCIsInNoYXBlc01hcCIsInJlY3RhbmdsZXMiLCJwb2x5Z29ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBRUEsSUFBTUEsS0FBSyxHQUFHLEdBQWQ7QUFDQSxJQUFNQyxNQUFNLEdBQUcsR0FBZjtBQUNBLElBQU1DLGVBQWUsR0FBRztBQUFFRixFQUFBQSxLQUFLLEVBQUxBLEtBQUY7QUFBU0MsRUFBQUEsTUFBTSxFQUFOQTtBQUFULENBQXhCO0FBRUFFLFFBQVEsQ0FBQyx1QkFBRCxFQUEwQixZQUFNO0FBQ3RDQyxFQUFBQSxFQUFFLENBQUNDLElBQUgsZ3ZCQUVNSCxlQUZOLEVBRTRCO0FB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QUMsd0JBQVkyQixXQUFaLENBQUQsQ0FBTixDQUFpQzFCLE9BQWpDLENBQXlDWSxRQUF6Qzs7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxLQVBGOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUQsQ0FYTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVwZGF0ZUltYWdlRGltZW5zaW9ucywgZ2V0VXBkYXRlZFJlY3RhbmdsZSwgZ2V0VXBkYXRlZFBseWdvbiwgZ2V0QWxsU2hhcGVzLCBncm91cFNoYXBlcyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3Qgd2lkdGggPSAyMDA7XG5jb25zdCBoZWlnaHQgPSAxMDA7XG5jb25zdCBpbWFnZURpbWVuc2lvbnMgPSB7IHdpZHRoLCBoZWlnaHQgfTtcblxuZGVzY3JpYmUoJ3VwZGF0ZUltYWdlRGltZW5zaW9ucycsICgpID0+IHtcbiAgaXQuZWFjaGBcbiAgICAgIGluaXRpYWxEaW1lbnNpb25zICB8ICBuZXh0RGltZW5zaW9ucyAgICAgICAgICAgICAgfCAgIGtlZXBBc3BlY3RSYXRpbyAgfCAgcmVzaXplVHlwZSAgICAgfCAgICBleHBlY3RlZFdpZHRoICB8IGV4cGVjdGVkSGVpZ2h0XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0OiAzMDBcbiAgfX0gICB8ICAgICAke3RydWV9ICAgICAgICB8ICAkeydoZWlnaHQnfSAgICB8ICAgICR7NjAwfSAgICAgICAgIHwgJHszMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGg6IDQwMCxcbiAgICBoZWlnaHRcbiAgfX0gICB8ICAgICAke3RydWV9ICAgICAgICB8ICAkeyd3aWR0aCd9ICAgICB8ICAgICR7NDAwfSAgICAgICAgIHwgJHsyMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0OiAzMDBcbiAgfX0gICB8ICAgICAke3RydWV9ICAgICAgICB8ICAke3VuZGVmaW5lZH0gICB8ICAgICR7MjAwfSAgICAgICAgIHwgJHsxMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGg6IDYwMCxcbiAgICBoZWlnaHRcbiAgfX0gICB8ICAgICAke3RydWV9ICAgICAgICB8ICAke3VuZGVmaW5lZH0gICB8ICAgICR7NjAwfSAgICAgICAgIHwgJHszMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0OiAzMDBcbiAgfX0gICB8ICAgICAke2ZhbHNlfSAgICAgICB8ICAkeydoZWlnaHQnfSAgICB8ICAgICR7MjAwfSAgICAgICAgIHwgJHszMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGg6IDYwMCxcbiAgICBoZWlnaHRcbiAgfX0gICB8ICAgICAke2ZhbHNlfSAgICAgICB8ICAkeyd3aWR0aCd9ICAgICB8ICAgICR7NjAwfSAgICAgICAgIHwgJHsxMDB9XG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt7XG4gICAgd2lkdGg6IDEwLFxuICAgIGhlaWdodDogMTBcbiAgfX18ICAgICAke2ZhbHNlfSAgICAgICB8ICAke3VuZGVmaW5lZH0gICB8ICAgICR7MTB9ICAgICAgICAgIHwgJHsxMH1cbiAgICBgKCdpbml0aWFsRGltZW5zaW9ucyA9ICRpbml0aWFsRGltZW5zaW9ucywgbmV4dERpbWVuc2lvbnMgPSAkbmV4dERpbWVuc2lvbnMsIGtlZXBBc3BlY3RSYXRpbyA9ICRrZWVwQXNwZWN0UmF0aW8sIHJlc2l6ZVR5cGUgPSAkcmVzaXplVHlwZSA9PiB3aWR0aCA9ICRleHBlY3RlZFdpZHRoICYgaGVpZ2h0ID0gJGV4cGVjdGVkSGVpZ2h0JyxcbiAgICBhc3luYyAoeyBpbml0aWFsRGltZW5zaW9ucywgbmV4dERpbWVuc2lvbnMsIGtlZXBBc3BlY3RSYXRpbywgcmVzaXplVHlwZSwgZXhwZWN0ZWRXaWR0aCwgZXhwZWN0ZWRIZWlnaHQgfSkgPT4ge1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB1cGRhdGVJbWFnZURpbWVuc2lvbnMoaW5pdGlhbERpbWVuc2lvbnMsIG5leHREaW1lbnNpb25zLCBrZWVwQXNwZWN0UmF0aW8sIHJlc2l6ZVR5cGUpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6IGV4cGVjdGVkV2lkdGgsXG4gICAgICAgIGhlaWdodDogZXhwZWN0ZWRIZWlnaHRcbiAgICAgIH0pO1xuICAgIH0pO1xufSk7XG5cblxuZGVzY3JpYmUoJ2dldFVwZGF0ZWRSZWN0YW5nbGUnLCAoKSA9PiB7XG4gIGNvbnN0IHJlY3RhbmdsZSA9ICh4LCB5LCB3LCBoKSA9PiAoeyB4LCB5LCB3aWR0aDogdywgaGVpZ2h0OiBoIH0pO1xuICBjb25zdCBoZWlnaHRVcGRhdGVMYXJnZSA9IHsgd2lkdGgsIGhlaWdodDogMzAwIH07XG4gIGNvbnN0IGhlaWdodFVwZGF0ZVNtYWxsID0geyB3aWR0aCwgaGVpZ2h0OiA1MCB9O1xuICBjb25zdCB3aWR0aFVwZGF0ZUxhcmdlID0geyB3aWR0aDogMzAwLCBoZWlnaHQgfTtcbiAgY29uc3Qgd2lkdGhVcGRhdGVTbWFsbCA9IHsgd2lkdGg6IDEwMCwgaGVpZ2h0IH07XG4gIGNvbnN0IGJvdGhVcGRhdGUgPSB7IHdpZHRoOiAyMCwgaGVpZ2h0OiA1MCB9O1xuXG4gIGl0LmVhY2hgXG4gICAgICBpbml0aWFsRGltZW5zaW9ucyAgfCAgbmV4dERpbWVuc2lvbnMgICAgICAgIHwgICBzaGFwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4cGVjdGVkXG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHtoZWlnaHRVcGRhdGVMYXJnZX0gIHwgICAke3JlY3RhbmdsZSgxMCwgMTAsIDEwMCwgNTApfSAgICAgfCAgJHtyZWN0YW5nbGUoMTAsIDMwLCAxMDAsIDE1MCl9IFxuICAgICAgJHtpbWFnZURpbWVuc2lvbnN9IHwgICR7aGVpZ2h0VXBkYXRlU21hbGx9ICB8ICAgJHtyZWN0YW5nbGUoMTAsIDEwLCAxMDAsIDUwKX0gICAgIHwgICR7cmVjdGFuZ2xlKDEwLCA1LCAxMDAsIDI1KX0gXG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHtib3RoVXBkYXRlfSAgICAgICAgIHwgICAke3JlY3RhbmdsZSgxMCwgMTAsIDEwMCwgNTApfSAgICAgfCAgJHtyZWN0YW5nbGUoMSwgNSwgMTAsIDI1KX0gXG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt3aWR0aFVwZGF0ZUxhcmdlfSAgIHwgICAke3JlY3RhbmdsZSgxMCwgMTAsIDEwMCwgNTApfSAgICAgfCAgJHtyZWN0YW5nbGUoMTUsIDEwLCAxNTAsIDUwKX0gXG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt3aWR0aFVwZGF0ZVNtYWxsfSAgIHwgICAke3JlY3RhbmdsZSgxMCwgMTAsIDEwMCwgNTApfSAgICAgfCAgJHtyZWN0YW5nbGUoNSwgMTAsIDUwLCA1MCl9IFxuICAgIGAoJ2luaXRpYWxEaW1lbnNpb25zID0gJGluaXRpYWxEaW1lbnNpb25zLCBuZXh0RGltZW5zaW9ucyA9ICRuZXh0RGltZW5zaW9ucywgc2hhcGUgPSAkc2hhcGUgPT4gJGV4cGVjdGVkJyxcbiAgICBhc3luYyAoeyBpbml0aWFsRGltZW5zaW9ucywgbmV4dERpbWVuc2lvbnMsIHNoYXBlLCBleHBlY3RlZCB9KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldFVwZGF0ZWRSZWN0YW5nbGUoaW5pdGlhbERpbWVuc2lvbnMsIG5leHREaW1lbnNpb25zLCBzaGFwZSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xufSk7XG5cblxuZGVzY3JpYmUoJ2dldFVwZGF0ZWRQb2x5Z29uJywgKCkgPT4ge1xuICBjb25zdCB1cGRhdGVkRGltZW5zaW9ucyA9IHsgd2lkdGg6IHdpZHRoIC8gMiwgaGVpZ2h0OiBoZWlnaHQgKiAyIH07XG5cbiAgY29uc3QgcG9pbnQgPSAoeCwgeSkgPT4gKHsgeCwgeSB9KTtcbiAgY29uc3QgdXBkYXRlZFBvaW50ID0gKHgsIHkpID0+ICh7IHg6IHggLyAyLCB5OiB5ICogMiB9KTtcblxuICBjb25zdCB0cmlhbmdsZSA9IFtwb2ludCgxMCwgMTApLCBwb2ludCgxMDAsIDEwKSwgcG9pbnQoMTAwLCAxMDApXTtcbiAgY29uc3QgdHJpYW5nbGVVcGRhdGVkID0gW3VwZGF0ZWRQb2ludCgxMCwgMTApLCB1cGRhdGVkUG9pbnQoMTAwLCAxMCksIHVwZGF0ZWRQb2ludCgxMDAsIDEwMCldO1xuXG4gIGNvbnN0IHNxdWFyZSA9IFtwb2ludCgxMCwgMTApLCBwb2ludCgxMDAsIDEwKSwgcG9pbnQoMTAwLCAxMDApLCBwb2ludCgxMCwgMTAwKV07XG4gIGNvbnN0IHNxdWFyZVVwZGF0ZWQgPSBbdXBkYXRlZFBvaW50KDEwLCAxMCksIHVwZGF0ZWRQb2ludCgxMDAsIDEwKSwgdXBkYXRlZFBvaW50KDEwMCwgMTAwKSwgdXBkYXRlZFBvaW50KDEwLCAxMDApXTtcblxuICBjb25zdCBwZW50YWdvbiA9IFtwb2ludCgxMCwgMTApLCBwb2ludCgyMCwgMCksIHBvaW50KDMwLCAwKSwgcG9pbnQoNDAsIDEwKSwgcG9pbnQoMjUsIDIwKV07XG4gIGNvbnN0IHBlbnRhZ29uVXBkYXRlZCA9IFt1cGRhdGVkUG9pbnQoMTAsIDEwKSwgdXBkYXRlZFBvaW50KDIwLCAwKSwgdXBkYXRlZFBvaW50KDMwLCAwKSwgdXBkYXRlZFBvaW50KDQwLCAxMCksIHVwZGF0ZWRQb2ludCgyNSwgMjApXTtcblxuICBjb25zdCBoZXhhZ29uID0gW3BvaW50KDEwLCAxMCksIHBvaW50KDIwLCAwKSwgcG9pbnQoMzAsIDApLCBwb2ludCg0MCwgMTApLCBwb2ludCgzMCwgMjApLCBwb2ludCgyMCwgMjApXTtcbiAgY29uc3QgaGV4YWdvblVwZGF0ZWQgPSBbdXBkYXRlZFBvaW50KDEwLCAxMCksIHVwZGF0ZWRQb2ludCgyMCwgMCksIHVwZGF0ZWRQb2ludCgzMCwgMCksIHVwZGF0ZWRQb2ludCg0MCwgMTApLCB1cGRhdGVkUG9pbnQoMzAsIDIwKSwgdXBkYXRlZFBvaW50KDIwLCAyMCldO1xuXG4gIGNvbnN0IHBvbHlnb24gPSBwb2ludHMgPT4gKHsgcG9pbnRzIH0pO1xuXG4gIGl0LmVhY2hgXG4gICAgICBpbml0aWFsRGltZW5zaW9ucyAgfCAgbmV4dERpbWVuc2lvbnMgICAgICAgICB8ICAgc2hhcGUgICAgICAgICAgICAgICAgICAgIHwgZXhwZWN0ZWRcbiAgICAgICR7aW1hZ2VEaW1lbnNpb25zfSB8ICAke3VwZGF0ZWREaW1lbnNpb25zfSAgIHwgICAke3BvbHlnb24odHJpYW5nbGUpfSAgICAgfCAgJHtwb2x5Z29uKHRyaWFuZ2xlVXBkYXRlZCl9IFxuICAgICAgJHtpbWFnZURpbWVuc2lvbnN9IHwgICR7dXBkYXRlZERpbWVuc2lvbnN9ICAgfCAgICR7cG9seWdvbihzcXVhcmUpfSAgICAgICB8ICAke3BvbHlnb24oc3F1YXJlVXBkYXRlZCl9IFxuICAgICAgJHtpbWFnZURpbWVuc2lvbnN9IHwgICR7dXBkYXRlZERpbWVuc2lvbnN9ICAgfCAgICR7cG9seWdvbihwZW50YWdvbil9ICAgICB8ICAke3BvbHlnb24ocGVudGFnb25VcGRhdGVkKX0gXG4gICAgICAke2ltYWdlRGltZW5zaW9uc30gfCAgJHt1cGRhdGVkRGltZW5zaW9uc30gICB8ICAgJHtwb2x5Z29uKGhleGFnb24pfSAgICAgIHwgICR7cG9seWdvbihoZXhhZ29uVXBkYXRlZCl9IFxuICAgIGAoJ2luaXRpYWxEaW1lbnNpb25zID0gJGluaXRpYWxEaW1lbnNpb25zLCBuZXh0RGltZW5zaW9ucyA9ICRuZXh0RGltZW5zaW9ucywgc2hhcGUgPSAkc2hhcGUgPT4gJGV4cGVjdGVkJyxcbiAgICBhc3luYyAoeyBpbml0aWFsRGltZW5zaW9ucywgbmV4dERpbWVuc2lvbnMsIHNoYXBlLCBleHBlY3RlZCB9KSA9PiB7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGdldFVwZGF0ZWRQbHlnb24oaW5pdGlhbERpbWVuc2lvbnMsIG5leHREaW1lbnNpb25zLCBzaGFwZSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xufSk7XG5cblxuY29uc3Qgc2hhcGVzQXJyYXkgPSBbXG4gIHtcbiAgICBoZWlnaHQ6IDEwMCxcbiAgICB3aWR0aDogMTAwLFxuICAgIHg6IDEsXG4gICAgeTogMSxcbiAgICBncm91cDogJ3JlY3RhbmdsZXMnLFxuICAgIGluZGV4OiAwXG4gIH0sIHtcbiAgICBoZWlnaHQ6IDIwMCxcbiAgICB3aWR0aDogMjAwLFxuICAgIHg6IDIwMCxcbiAgICB5OiAxLFxuICAgIGdyb3VwOiAncmVjdGFuZ2xlcycsXG4gICAgaW5kZXg6IDFcbiAgfSxcbiAge1xuICAgIHBvaW50czogW1xuICAgICAgeyB4OiAxLCB5OiAyMDAgfSxcbiAgICAgIHsgeDogMSwgeTogMjAwIH0sXG4gICAgICB7IHk6IDIwMCwgeDogMjAwIH0sXG4gICAgICB7IHk6IDIwMCwgeDogMjAwIH1dLFxuICAgIGdyb3VwOiAncG9seWdvbnMnLFxuICAgIGluZGV4OiAyXG4gIH0sIHtcbiAgICBwb2ludHM6IFtcbiAgICAgIHsgeDogMjAwLCB5OiAxMDAgfSxcbiAgICAgIHsgeDogMjAwLCB5OiAyMDAgfSxcbiAgICAgIHsgeDogNDAwLCB5OiAyMDAgfSxcbiAgICAgIHsgeDogNDAwLCB5OiAyMDAgfVxuICAgIF0sXG4gICAgZ3JvdXA6ICdwb2x5Z29ucycsXG4gICAgaW5kZXg6IDNcbiAgfVxuXTtcblxuXG5jb25zdCBzaGFwZXNNYXAgPSB7XG4gIHJlY3RhbmdsZXM6IFtcbiAgICB7XG4gICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgIHdpZHRoOiAxMDAsXG4gICAgICB4OiAxLFxuICAgICAgeTogMSxcbiAgICAgIGluZGV4OiAwXG4gICAgfSwge1xuICAgICAgaGVpZ2h0OiAyMDAsXG4gICAgICB3aWR0aDogMjAwLFxuICAgICAgeDogMjAwLFxuICAgICAgeTogMSxcbiAgICAgIGluZGV4OiAxXG4gICAgfVxuICBdLCBwb2x5Z29uczogW1xuICAgIHtcbiAgICAgIHBvaW50czogW1xuICAgICAgICB7IHg6IDEsIHk6IDIwMCB9LFxuICAgICAgICB7IHg6IDEsIHk6IDIwMCB9LFxuICAgICAgICB7IHk6IDIwMCwgeDogMjAwIH0sXG4gICAgICAgIHsgeTogMjAwLCB4OiAyMDAgfV0sXG4gICAgICBpbmRleDogMixcbiAgICB9LCB7XG4gICAgICBwb2ludHM6IFtcbiAgICAgICAgeyB4OiAyMDAsIHk6IDEwMCB9LFxuICAgICAgICB7IHg6IDIwMCwgeTogMjAwIH0sXG4gICAgICAgIHsgeDogNDAwLCB5OiAyMDAgfSxcbiAgICAgICAgeyB4OiA0MDAsIHk6IDIwMCB9XG4gICAgICBdLFxuICAgICAgaW5kZXg6IDNcbiAgICB9XG4gIF1cbn07XG5cblxuZGVzY3JpYmUoJ2dldEFsbFNoYXBlcycsICgpID0+IHtcbiAgaXQuZWFjaGBcbiAgICAgIHNoYXBlc01hcCAgICAgfCAgZXhwZWN0ZWRcbiAgICAgICR7c2hhcGVzTWFwfSAgfCAgJHtzaGFwZXNBcnJheX1cbiAgICAgICR7bnVsbH0gICAgICAgfCAgJHtbXX1cbiAgICAgICR7dW5kZWZpbmVkfSAgfCAgJHtbXX1cbiAgICAgICR7e319ICAgICAgICAgfCAgJHtbXX1cbiAgICBgKCdUVVJOUyBzaGFwZXMgPSAkc2hhcGVzTWFwIElOVE8gJGV4cGVjdGVkJyxcbiAgICBhc3luYyAoeyBzaGFwZXNNYXAsIGV4cGVjdGVkIH0pID0+IHtcbiAgICAgIGV4cGVjdChnZXRBbGxTaGFwZXMoc2hhcGVzTWFwKSkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgfSk7XG5cbn0pO1xuXG5kZXNjcmliZSgnZ3JvdXBTaGFwZXMnLCAoKSA9PiB7XG4gIGl0LmVhY2hgXG4gICAgICBzaGFwZXNBcnJheSAgICAgfCAgZXhwZWN0ZWRcbiAgICAgICR7c2hhcGVzQXJyYXl9ICB8ICAke3NoYXBlc01hcH1cbiAgICAgICR7bnVsbH0gICAgICAgICB8ICAke3sgcmVjdGFuZ2xlczogW10sIHBvbHlnb25zOiBbXSB9fVxuICAgICAgJHt1bmRlZmluZWR9ICAgIHwgICR7eyByZWN0YW5nbGVzOiBbXSwgcG9seWdvbnM6IFtdIH19XG4gICAgICAke1tdfSAgICAgICAgICAgfCAgJHt7IHJlY3RhbmdsZXM6IFtdLCBwb2x5Z29uczogW10gfX1cbiAgICBgKCdUVVJOUyBzaGFwZXMgPSAkc2hhcGVzQXJyYXkgSU5UTyAkZXhwZWN0ZWQnLFxuICAgIGFzeW5jICh7IHNoYXBlc0FycmF5LCBleHBlY3RlZCB9KSA9PiB7XG4gICAgICBleHBlY3QoZ3JvdXBTaGFwZXMoc2hhcGVzQXJyYXkpKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbn0pO1xuXG4iXX0=
|
package/configure/lib/button.js
CHANGED
|
@@ -58,4 +58,4 @@ var styles = function styles() {
|
|
|
58
58
|
var ButtonStyled = (0, _styles.withStyles)(styles)(RawButton);
|
|
59
59
|
var _default = ButtonStyled;
|
|
60
60
|
exports["default"] = _default;
|
|
61
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idXR0b24uanN4Il0sIm5hbWVzIjpbIlJhd0J1dHRvbiIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJsYWJlbCIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsImFkZEJ1dHRvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJib29sIiwiZnVuYyIsImRlZmF1bHRQcm9wcyIsInN0eWxlcyIsIm1hcmdpbkxlZnQiLCJCdXR0b25TdHlsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBRyxTQUFaQSxTQUFZO0FBQUEsTUFBR0MsT0FBSCxRQUFHQSxPQUFIO0FBQUEsTUFBWUMsU0FBWixRQUFZQSxTQUFaO0FBQUEsTUFBdUJDLEtBQXZCLFFBQXVCQSxLQUF2QjtBQUFBLE1BQThCQyxPQUE5QixRQUE4QkEsT0FBOUI7QUFBQSxNQUF1Q0MsUUFBdkMsUUFBdUNBLFFBQXZDO0FBQUEsc0JBQ2hCLGdDQUFDLGtCQUFEO0FBQ0UsSUFBQSxPQUFPLEVBQUVELE9BRFg7QUFFRSxJQUFBLFFBQVEsRUFBRUMsUUFGWjtBQUdFLElBQUEsU0FBUyxFQUFFLDRCQUFXSixPQUFPLENBQUNLLFNBQW5CLEVBQThCSixTQUE5QixDQUhiO0FBSUUsSUFBQSxJQUFJLEVBQUMsT0FKUDtBQUtFLElBQUEsT0FBTyxFQUFDLFdBTFY7QUFNRSxJQUFBLEtBQUssRUFBQztBQU5SLEtBUUdDLEtBUkgsQ0FEZ0I7QUFBQSxDQUFsQjs7QUFhQUgsU0FBUyxDQUFDTyxTQUFWLEdBQXNCO0FBQ3BCTixFQUFBQSxPQUFPLEVBQUVPLHNCQUFVQyxNQUFWLENBQWlCQyxVQUROO0FBRXBCUixFQUFBQSxTQUFTLEVBQUVNLHNCQUFVRyxNQUZEO0FBR3BCTixFQUFBQSxRQUFRLEVBQUVHLHNCQUFVSSxJQUhBO0FBSXBCVCxFQUFBQSxLQUFLLEVBQUVLLHNCQUFVRyxNQUpHO0FBS3BCUCxFQUFBQSxPQUFPLEVBQUVJLHNCQUFVSztBQUxDLENBQXRCO0FBUUFiLFNBQVMsQ0FBQ2MsWUFBVixHQUF5QjtBQUN2QlosRUFBQUEsU0FBUyxFQUFFLEVBRFk7QUFFdkJHLEVBQUFBLFFBQVEsRUFBRSxLQUZhO0FBR3ZCRixFQUFBQSxLQUFLLEVBQUUsS0FIZ0I7QUFJdkJDLEVBQUFBLE9BQU8sRUFBRSxtQkFBTSxDQUFFO0FBSk0sQ0FBekI7O0FBT0EsSUFBTVcsTUFBTSxHQUFHLFNBQVRBLE1BQVM7QUFBQSxTQUFPO0FBQ3BCVCxJQUFBQSxTQUFTLEVBQUU7QUFDVFUsTUFBQUEsVUFBVSxFQUFFO0FBREg7QUFEUyxHQUFQO0FBQUEsQ0FBZjs7QUFNQSxJQUFNQyxZQUFZLEdBQUcsd0JBQVdGLE1BQVgsRUFBbUJmLFNBQW5CLENBQXJCO2VBRWVpQixZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9CdXR0b24nO1xuXG5jb25zdCBSYXdCdXR0b24gPSAoeyBjbGFzc2VzLCBjbGFzc05hbWUsIGxhYmVsLCBvbkNsaWNrLCBkaXNhYmxlZCB9KSA9PiAoXG4gIDxCdXR0b25cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5hZGRCdXR0b24sIGNsYXNzTmFtZSl9XG4gICAgc2l6ZT1cInNtYWxsXCJcbiAgICB2YXJpYW50PVwiY29udGFpbmVkXCJcbiAgICBjb2xvcj1cImRlZmF1bHRcIlxuICA+XG4gICAge2xhYmVsfVxuICA8L0J1dHRvbj5cbik7XG5cblJhd0J1dHRvbi5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuY1xufTtcblxuUmF3QnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBsYWJlbDogJ0FkZCcsXG4gIG9uQ2xpY2s6ICgpID0+IHt9XG59O1xuXG5jb25zdCBzdHlsZXMgPSAoKSA9PiAoe1xuICBhZGRCdXR0b246IHtcbiAgICBtYXJnaW5MZWZ0OiA4XG4gIH1cbn0pO1xuXG5jb25zdCBCdXR0b25TdHlsZWQgPSB3aXRoU3R5bGVzKHN0eWxlcykoUmF3QnV0dG9uKTtcblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uU3R5bGVkO1xuIl19
|
|
@@ -47,8 +47,8 @@ var _default = {
|
|
|
47
47
|
label: 'Prompt'
|
|
48
48
|
},
|
|
49
49
|
spellCheck: {
|
|
50
|
-
label:
|
|
51
|
-
settings:
|
|
50
|
+
label: 'Spellcheck',
|
|
51
|
+
settings: false,
|
|
52
52
|
enabled: true
|
|
53
53
|
},
|
|
54
54
|
teacherInstructions: {
|
|
@@ -63,4 +63,4 @@ var _default = {
|
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
exports["default"] = _default;
|
|
66
|
-
//# sourceMappingURL=
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJuYW1lcyI6WyJtb2RlbCIsInByb21wdCIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsInByb21wdEVuYWJsZWQiLCJpbWFnZVVybCIsInNoYXBlcyIsInJlY3RhbmdsZXMiLCJwb2x5Z29ucyIsIm11bHRpcGxlQ29ycmVjdCIsInBhcnRpYWxTY29yaW5nIiwiZGltZW5zaW9ucyIsImhlaWdodCIsIndpZHRoIiwiaG90c3BvdENvbG9yIiwiaG90c3BvdExpc3QiLCJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lTGlzdCIsInJhdGlvbmFsZUVuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwic3Ryb2tlV2lkdGgiLCJjb25maWd1cmF0aW9uIiwic2V0dGluZ3MiLCJsYWJlbCIsInJhdGlvbmFsZSIsInNwZWxsQ2hlY2siLCJlbmFibGVkIiwidGVhY2hlckluc3RydWN0aW9ucyIsInByZXNlcnZlQXNwZWN0UmF0aW8iXSwibWFwcGluZ3MiOiI7Ozs7OztlQUFlO0FBQ2JBLEVBQUFBLEtBQUssRUFBRTtBQUNMQyxJQUFBQSxNQUFNLEVBQUUsNkJBREg7QUFFTEMsSUFBQUEscUJBQXFCLEVBQUUsUUFGbEI7QUFHTEMsSUFBQUEsYUFBYSxFQUFFLElBSFY7QUFJTEMsSUFBQUEsUUFBUSxFQUFFLEVBSkw7QUFLTEMsSUFBQUEsTUFBTSxFQUFFO0FBQ05DLE1BQUFBLFVBQVUsRUFBRSxFQUROO0FBRU5DLE1BQUFBLFFBQVEsRUFBRTtBQUZKLEtBTEg7QUFTTEMsSUFBQUEsZUFBZSxFQUFFLElBVFo7QUFVTEMsSUFBQUEsY0FBYyxFQUFFLEtBVlg7QUFXTEMsSUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLE1BQUFBLE1BQU0sRUFBRSxDQURFO0FBRVZDLE1BQUFBLEtBQUssRUFBRTtBQUZHLEtBWFA7QUFlTEMsSUFBQUEsWUFBWSxFQUFFLDJCQWZUO0FBZ0JMQyxJQUFBQSxXQUFXLEVBQUUsQ0FDWCwyQkFEVyxDQWhCUjtBQW1CTEMsSUFBQUEsWUFBWSxFQUFFLE1BbkJUO0FBb0JMQyxJQUFBQSxXQUFXLEVBQUUsQ0FDWCxNQURXLENBcEJSO0FBdUJMQyxJQUFBQSxnQkFBZ0IsRUFBRSxJQXZCYjtBQXdCTEMsSUFBQUEsMEJBQTBCLEVBQUUsSUF4QnZCO0FBeUJMQyxJQUFBQSwwQkFBMEIsRUFBRSxJQXpCdkI7QUEwQkxDLElBQUFBLFdBQVcsRUFBRTtBQTFCUixHQURNO0FBNkJiQyxFQUFBQSxhQUFhLEVBQUU7QUFDYmIsSUFBQUEsZUFBZSxFQUFFO0FBQ2ZjLE1BQUFBLFFBQVEsRUFBRSxJQURLO0FBRWZDLE1BQUFBLEtBQUssRUFBRTtBQUZRLEtBREo7QUFLYmQsSUFBQUEsY0FBYyxFQUFFO0FBQ2RhLE1BQUFBLFFBQVEsRUFBRSxLQURJO0FBRWRDLE1BQUFBLEtBQUssRUFBRTtBQUZPLEtBTEg7QUFTYkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RGLE1BQUFBLFFBQVEsRUFBRSxJQUREO0FBRVRDLE1BQUFBLEtBQUssRUFBRTtBQUZFLEtBVEU7QUFhYnRCLElBQUFBLE1BQU0sRUFBRTtBQUNOcUIsTUFBQUEsUUFBUSxFQUFFLElBREo7QUFFTkMsTUFBQUEsS0FBSyxFQUFFO0FBRkQsS0FiSztBQWlCYkUsSUFBQUEsVUFBVSxFQUFFO0FBQ1ZGLE1BQUFBLEtBQUssRUFBRSxZQURHO0FBRVZELE1BQUFBLFFBQVEsRUFBQyxLQUZDO0FBR1ZJLE1BQUFBLE9BQU8sRUFBQztBQUhFLEtBakJDO0FBc0JiQyxJQUFBQSxtQkFBbUIsRUFBRTtBQUNuQkwsTUFBQUEsUUFBUSxFQUFFLElBRFM7QUFFbkJDLE1BQUFBLEtBQUssRUFBRTtBQUZZLEtBdEJSO0FBMEJiSyxJQUFBQSxtQkFBbUIsRUFBRTtBQUNuQk4sTUFBQUEsUUFBUSxFQUFFLEtBRFM7QUFFbkJJLE1BQUFBLE9BQU8sRUFBRSxJQUZVO0FBR25CSCxNQUFBQSxLQUFLLEVBQUU7QUFIWTtBQTFCUjtBQTdCRixDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIHByb21wdDogJ1RoaXMgaXMgdGhlIHF1ZXN0aW9uIHByb21wdCcsXG4gICAgdG9vbGJhckVkaXRvclBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICBwcm9tcHRFbmFibGVkOiB0cnVlLFxuICAgIGltYWdlVXJsOiAnJyxcbiAgICBzaGFwZXM6IHtcbiAgICAgIHJlY3RhbmdsZXM6IFtdLFxuICAgICAgcG9seWdvbnM6IFtdXG4gICAgfSxcbiAgICBtdWx0aXBsZUNvcnJlY3Q6IHRydWUsXG4gICAgcGFydGlhbFNjb3Jpbmc6IGZhbHNlLFxuICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIHdpZHRoOiAwXG4gICAgfSxcbiAgICBob3RzcG90Q29sb3I6ICdyZ2JhKDEzNywgMTgzLCAyNDQsIDAuNjUpJyxcbiAgICBob3RzcG90TGlzdDogW1xuICAgICAgJ3JnYmEoMTM3LCAxODMsIDI0NCwgMC42NSknXG4gICAgXSxcbiAgICBvdXRsaW5lQ29sb3I6ICdibHVlJyxcbiAgICBvdXRsaW5lTGlzdDogW1xuICAgICAgJ2JsdWUnXG4gICAgXSxcbiAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHN0cm9rZVdpZHRoOiA1XG4gIH0sXG4gIGNvbmZpZ3VyYXRpb246IHtcbiAgICBtdWx0aXBsZUNvcnJlY3Q6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdNdWx0aXBsZSBDb3JyZWN0IFJlc3BvbnNlcydcbiAgICB9LFxuICAgIHBhcnRpYWxTY29yaW5nOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ0FsbG93IFBhcnRpYWwgU2NvcmluZydcbiAgICB9LFxuICAgIHJhdGlvbmFsZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1JhdGlvbmFsZSdcbiAgICB9LFxuICAgIHByb21wdDoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1Byb21wdCdcbiAgICB9LFxuICAgIHNwZWxsQ2hlY2s6IHtcbiAgICAgIGxhYmVsOiAnU3BlbGxjaGVjaycsXG4gICAgICBzZXR0aW5nczpmYWxzZSxcbiAgICAgIGVuYWJsZWQ6dHJ1ZVxuICAgIH0sXG4gICAgdGVhY2hlckluc3RydWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1RlYWNoZXIgSW5zdHJ1Y3Rpb25zJ1xuICAgIH0sXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUHJlc2VydmUgYXNwZWN0IHJhdGlvJ1xuICAgIH1cbiAgfVxufTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","prompt","toolbarEditorPosition","promptEnabled","imageUrl","shapes","rectangles","polygons","multipleCorrect","partialScoring","dimensions","height","width","hotspotColor","hotspotList","outlineColor","outlineList","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","strokeWidth","configuration","settings","label","rationale","spellCheck","enabled","teacherInstructions","preserveAspectRatio"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE,6BADH;AAELC,IAAAA,qBAAqB,EAAE,QAFlB;AAGLC,IAAAA,aAAa,EAAE,IAHV;AAILC,IAAAA,QAAQ,EAAE,EAJL;AAKLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,UAAU,EAAE,EADN;AAENC,MAAAA,QAAQ,EAAE;AAFJ,KALH;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,cAAc,EAAE,KAVX;AAWLC,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE,CADE;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAXP;AAeLC,IAAAA,YAAY,EAAE,2BAfT;AAgBLC,IAAAA,WAAW,EAAE,CACX,2BADW,CAhBR;AAmBLC,IAAAA,YAAY,EAAE,MAnBT;AAoBLC,IAAAA,WAAW,EAAE,CACX,MADW,CApBR;AAuBLC,IAAAA,gBAAgB,EAAE,IAvBb;AAwBLC,IAAAA,0BAA0B,EAAE,IAxBvB;AAyBLC,IAAAA,0BAA0B,EAAE,IAzBvB;AA0BLC,IAAAA,WAAW,EAAE;AA1BR,GADM;AA6BbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,eAAe,EAAE;AACfc,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KADJ;AAKbd,IAAAA,cAAc,EAAE;AACda,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KALH;AASbC,IAAAA,SAAS,EAAE;AACTF,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KATE;AAabtB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAbK;AAiBbE,IAAAA,UAAU,EAAE;AACVF,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","prompt","toolbarEditorPosition","promptEnabled","imageUrl","shapes","rectangles","polygons","multipleCorrect","partialScoring","dimensions","height","width","hotspotColor","hotspotList","outlineColor","outlineList","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","strokeWidth","configuration","settings","label","rationale","spellCheck","enabled","teacherInstructions","preserveAspectRatio"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE,6BADH;AAELC,IAAAA,qBAAqB,EAAE,QAFlB;AAGLC,IAAAA,aAAa,EAAE,IAHV;AAILC,IAAAA,QAAQ,EAAE,EAJL;AAKLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,UAAU,EAAE,EADN;AAENC,MAAAA,QAAQ,EAAE;AAFJ,KALH;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,cAAc,EAAE,KAVX;AAWLC,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE,CADE;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAXP;AAeLC,IAAAA,YAAY,EAAE,2BAfT;AAgBLC,IAAAA,WAAW,EAAE,CACX,2BADW,CAhBR;AAmBLC,IAAAA,YAAY,EAAE,MAnBT;AAoBLC,IAAAA,WAAW,EAAE,CACX,MADW,CApBR;AAuBLC,IAAAA,gBAAgB,EAAE,IAvBb;AAwBLC,IAAAA,0BAA0B,EAAE,IAxBvB;AAyBLC,IAAAA,0BAA0B,EAAE,IAzBvB;AA0BLC,IAAAA,WAAW,EAAE;AA1BR,GADM;AA6BbC,EAAAA,aAAa,EAAE;AACbb,IAAAA,eAAe,EAAE;AACfc,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KADJ;AAKbd,IAAAA,cAAc,EAAE;AACda,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KALH;AASbC,IAAAA,SAAS,EAAE;AACTF,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KATE;AAabtB,IAAAA,MAAM,EAAE;AACNqB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAbK;AAiBbE,IAAAA,UAAU,EAAE;AACVF,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,KAFC;AAGVI,MAAAA,OAAO,EAAC;AAHE,KAjBC;AAsBbC,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAtBR;AA0BbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,KADS;AAEnBI,MAAAA,OAAO,EAAE,IAFU;AAGnBH,MAAAA,KAAK,EAAE;AAHY;AA1BR;AA7BF,C","sourcesContent":["export default {\n model: {\n prompt: 'This is the question prompt',\n toolbarEditorPosition: 'bottom',\n promptEnabled: true,\n imageUrl: '',\n shapes: {\n rectangles: [],\n polygons: []\n },\n multipleCorrect: true,\n partialScoring: false,\n dimensions: {\n height: 0,\n width: 0\n },\n hotspotColor: 'rgba(137, 183, 244, 0.65)',\n hotspotList: [\n 'rgba(137, 183, 244, 0.65)'\n ],\n outlineColor: 'blue',\n outlineList: [\n 'blue'\n ],\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n strokeWidth: 5\n },\n configuration: {\n multipleCorrect: {\n settings: true,\n label: 'Multiple Correct Responses'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n preserveAspectRatio: {\n settings: false,\n enabled: true,\n label: 'Preserve aspect ratio'\n }\n }\n};\n"],"file":"defaults.js"}
|
|
@@ -45,9 +45,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
45
45
|
|
|
46
46
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
47
47
|
|
|
48
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
49
|
|
|
50
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
51
|
|
|
52
52
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
53
53
|
|
|
@@ -386,4 +386,4 @@ Container.defaultProps = {
|
|
|
386
386
|
var _default = (0, _index.withStyles)(styles)(Container);
|
|
387
387
|
|
|
388
388
|
exports["default"] = _default;
|
|
389
|
-
//# sourceMappingURL=hotspot-container.js.map
|
|
389
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ob3RzcG90LWNvbnRhaW5lci5qc3giXSwibmFtZXMiOlsiaXNJbWFnZSIsImZpbGUiLCJpbWFnZVR5cGUiLCJ0eXBlIiwibWF0Y2giLCJDb250YWluZXIiLCJwcm9wcyIsIm9uSW1hZ2VVcGxvYWQiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkZW5kIiwicmVzdWx0IiwicmVhZEFzRGF0YVVSTCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUZpbGVSZWFkIiwidGFyZ2V0IiwiZmlsZXMiLCJzZXRTdGF0ZSIsImRyb3B6b25lQWN0aXZlIiwiY2xpcGJvYXJkRGF0YSIsImRhdGFUcmFuc2ZlciIsIml0ZW1zIiwia2luZCIsImdldEFzRmlsZSIsImRpc2FibGVEcm9wem9uZSIsInN0YXRlIiwiZW5hYmxlRHJvcHpvbmUiLCJuZXdTaGFwZXMiLCJvblVwZGF0ZVNoYXBlcyIsInNoYXBlcyIsImxlbmd0aCIsInNvcnQiLCJhIiwiYiIsInBhcnNlSW50IiwiaW5kZXgiLCJzbGljZSIsImRyYWdFbmFibGVkIiwiaW5wdXQiLCJjbGljayIsInNob3dUb29sdGlwIiwiY2xhc3NlcyIsImRpbWVuc2lvbnMiLCJob3RzcG90Q29sb3IiLCJpbWFnZVVybCIsIm11bHRpcGxlQ29ycmVjdCIsIm9uVXBkYXRlSW1hZ2VEaW1lbnNpb24iLCJvdXRsaW5lQ29sb3IiLCJzdHJva2VXaWR0aCIsInByZXNlcnZlQXNwZWN0UmF0aW9FbmFibGVkIiwiYmFzZSIsImJveCIsImJveEFjdGl2ZSIsIm9uRHJhZ0V4aXQiLCJoYW5kbGVPbkRyYWdFeGl0Iiwib25EcmFnTGVhdmUiLCJvbkRyYWdPdmVyIiwiaGFuZGxlT25EcmFnT3ZlciIsIm9uRHJvcCIsImhhbmRsZU9uRHJvcCIsIm9uUGFzdGUiLCJoYW5kbGVPblBhc3RlIiwidG9vbGJhciIsInJlcGxhY2VCdXR0b24iLCJyZXBsYWNlU2VjdGlvbiIsImhhbmRsZUlucHV0Q2xpY2siLCJoYW5kbGVVcGxvYWRJbWFnZSIsInJlZiIsImhhbmRsZVVuZG8iLCJoYW5kbGVDbGVhckFsbCIsImltYWdlU2VjdGlvbiIsImRyYXdhYmxlSGVpZ2h0IiwiaGFuZGxlRGlzYWJsZURyYWciLCJoYW5kbGVFbmFibGVEcmFnIiwiY2VudGVyZWQiLCJ0b29sdGlwIiwidG9vbHRpcENvbnRlbnQiLCJ0b29sdGlwQXJyb3ciLCJpY29uIiwidG9nZ2xlVG9vbHRpcCIsIm5leHRQcm9wcyIsInByZXZTdGF0ZSIsIkNvbXBvbmVudCIsInN0eWxlcyIsInRoZW1lIiwibWFyZ2luVG9wIiwic3BhY2luZyIsInVuaXQiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJhbGlnbkl0ZW1zIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJqdXN0aWZ5Q29udGVudCIsIm1pbkhlaWdodCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nUmlnaHQiLCJjb2xvciIsImN1cnNvciIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImJhY2tncm91bmRDb2xvciIsImJvcmRlckJvdHRvbSIsImJvcmRlclRvcExlZnRSYWRpdXMiLCJib3JkZXJUb3BSaWdodFJhZGl1cyIsInBhZGRpbmciLCJwb3NpdGlvbiIsInRleHRBbGlnbiIsImJhY2tncm91bmQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiYm9yZGVyTGVmdCIsImJvcmRlclJpZ2h0IiwiYm9yZGVyVG9wIiwibWFyZ2luQm90dG9tIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImJvb2wiLCJmdW5jIiwic2hhcGUiLCJyZWN0YW5nbGVzIiwiYXJyYXkiLCJwb2x5Z29ucyIsIm51bWJlciIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FB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LEdBQXlCO0FBQ3ZCbEYsRUFBQUEsV0FBVyxFQUFFO0FBRFUsQ0FBekI7O2VBS2UsdUJBQVdtQyxNQUFYLEVBQW1CL0UsU0FBbkIsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcy9pbmRleCc7XG5pbXBvcnQgSGVscCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSGVscCc7XG5cbmltcG9ydCBEcmF3YWJsZSBmcm9tICcuL2hvdHNwb3QtZHJhd2FibGUnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICcuL2J1dHRvbic7XG5pbXBvcnQgVXBsb2FkQ29udHJvbCBmcm9tICcuL3VwbG9hZC1jb250cm9sJztcbmltcG9ydCB7IGdldEFsbFNoYXBlcywgZ3JvdXBTaGFwZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgaXNJbWFnZSA9IChmaWxlKSA9PiB7XG4gIGNvbnN0IGltYWdlVHlwZSA9IC9pbWFnZS4qLztcbiAgcmV0dXJuIGZpbGUudHlwZS5tYXRjaChpbWFnZVR5cGUpO1xufTtcblxuZXhwb3J0IGNsYXNzIENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAvLyBhbHdheXMgdHJhbnNmb3JtIHNoYXBlcyBtYXAgaW50byBzaGFwZXMgYXJyYXkgYXQgdGhpcyBsZXZlbFxuICAgIHJldHVybiB7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBzaGFwZXM6IGdldEFsbFNoYXBlcyhuZXh0UHJvcHMuc2hhcGVzKSxcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBkcmFnRW5hYmxlZDogdHJ1ZSxcbiAgICAgIC8vIGFsd2F5cyB0cmFuc2Zvcm0gc2hhcGVzIG1hcCBpbnRvIHNoYXBlcyBhcnJheSBhdCB0aGlzIGxldmVsXG4gICAgICBzaGFwZXM6IGdldEFsbFNoYXBlcyhwcm9wcy5zaGFwZXMpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRmlsZVJlYWQgPSAoZmlsZSkgPT4ge1xuICAgIGNvbnN0IHsgb25JbWFnZVVwbG9hZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IG9uSW1hZ2VVcGxvYWQocmVhZGVyLnJlc3VsdCk7XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcbiAgfTtcblxuICBoYW5kbGVVcGxvYWRJbWFnZSA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5oYW5kbGVGaWxlUmVhZChlLnRhcmdldC5maWxlc1swXSk7XG4gIH07XG5cbiAgZW5hYmxlRHJvcHpvbmUgPSAoKSA9PiB0aGlzLnNldFN0YXRlKHsgZHJvcHpvbmVBY3RpdmU6IHRydWUgfSk7XG4gIGRpc2FibGVEcm9wem9uZSA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBkcm9wem9uZUFjdGl2ZTogZmFsc2UgfSk7XG5cbiAgaGFuZGxlT25QYXN0ZSA9IChlKSA9PiB7XG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZS5jbGlwYm9hcmREYXRhO1xuXG4gICAgaWYgKGZpbGVzICYmIGlzSW1hZ2UoZmlsZXNbMF0pKSB7XG4gICAgICB0aGlzLmhhbmRsZUZpbGVSZWFkKGZpbGVzWzBdKTtcbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlT25Ecm9wID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCB7IGl0ZW1zLCBmaWxlcyB9ID0gZS5kYXRhVHJhbnNmZXI7XG5cbiAgICBpZiAoaXRlbXMgJiYgaXRlbXNbMF0ua2luZCA9PT0gJ2ZpbGUnKSB7XG4gICAgICBjb25zdCBmaWxlID0gaXRlbXNbMF0uZ2V0QXNGaWxlKCk7XG5cbiAgICAgIGlmIChpc0ltYWdlKGZpbGUpKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZVJlYWQoZmlsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0ltYWdlKGZpbGVzWzBdKSkge1xuICAgICAgdGhpcy5oYW5kbGVGaWxlUmVhZChmaWxlc1swXSk7XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZURyb3B6b25lKCk7XG4gIH07XG5cbiAgaGFuZGxlT25EcmFnT3ZlciA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgeyBkcm9wem9uZUFjdGl2ZSB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGlmICghZHJvcHpvbmVBY3RpdmUpIHtcbiAgICAgIHRoaXMuZW5hYmxlRHJvcHpvbmUoKTtcbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlT25EcmFnRXhpdCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5kaXNhYmxlRHJvcHpvbmUoKTtcbiAgfTtcblxuICBvblVwZGF0ZVNoYXBlcyA9IG5ld1NoYXBlcyA9PiB7XG4gICAgY29uc3QgeyBvblVwZGF0ZVNoYXBlcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7IHNoYXBlczogbmV3U2hhcGVzIH0sXG4gICAgICAvLyBhbHdheXMgdHJhbnNmb3JtIHNoYXBlcyBhcnJheSBiYWNrIGludG8gc2hhcGVzIG1hcCB3aGVuIHNhdmluZyBjaGFuZ2VzXG4gICAgICAoKSA9PiBvblVwZGF0ZVNoYXBlcyhncm91cFNoYXBlcyhuZXdTaGFwZXMpKVxuICAgICk7XG4gIH07XG5cbiAgaGFuZGxlVW5kbyA9ICgpID0+IHtcbiAgICBjb25zdCB7IHNoYXBlcyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGlmIChzaGFwZXMgJiYgc2hhcGVzLmxlbmd0aCkge1xuICAgICAgLy8gc29ydCBieSBpbmRleCB2YWx1ZVxuICAgICAgbGV0IG5ld1NoYXBlcyA9IHNoYXBlcy5zb3J0KChhLCBiKSA9PiAocGFyc2VJbnQoYS5pbmRleCkgLSBwYXJzZUludChiLmluZGV4KSkpO1xuXG4gICAgICBuZXdTaGFwZXMgPSBuZXdTaGFwZXMgPyBuZXdTaGFwZXMuc2xpY2UoMCwgbmV3U2hhcGVzLmxlbmd0aCAtIDEpIDogW107XG5cbiAgICAgIHRoaXMub25VcGRhdGVTaGFwZXMobmV3U2hhcGVzKTtcbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlQ2xlYXJBbGwgPSAoKSA9PiB0aGlzLm9uVXBkYXRlU2hhcGVzKFtdKTtcblxuICBoYW5kbGVFbmFibGVEcmFnID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7IGRyYWdFbmFibGVkOiB0cnVlIH0pO1xuICBoYW5kbGVEaXNhYmxlRHJhZyA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBkcmFnRW5hYmxlZDogZmFsc2UgfSk7XG4gIGhhbmRsZUlucHV0Q2xpY2sgPSAoKSA9PiB0aGlzLmlucHV0LmNsaWNrKCk7XG5cbiAgdG9nZ2xlVG9vbHRpcCA9ICgpID0+IHRoaXMuc2V0U3RhdGUoeyBzaG93VG9vbHRpcDogIXRoaXMuc3RhdGUuc2hvd1Rvb2x0aXAgfSk7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBkaW1lbnNpb25zLFxuICAgICAgaG90c3BvdENvbG9yLFxuICAgICAgaW1hZ2VVcmwsXG4gICAgICBtdWx0aXBsZUNvcnJlY3QsXG4gICAgICBvblVwZGF0ZUltYWdlRGltZW5zaW9uLFxuICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvRW5hYmxlZFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtcbiAgICAgIGRyb3B6b25lQWN0aXZlLFxuICAgICAgZHJhZ0VuYWJsZWQsXG4gICAgICBzaG93VG9vbHRpcFxuICAgIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgc2hhcGVzIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmJhc2V9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Y2xhc3Nlcy5ib3h9ICR7ZHJvcHpvbmVBY3RpdmUgPyBjbGFzc2VzLmJveEFjdGl2ZSA6ICcnfWB9XG4gICAgICAgICAgICAgey4uLmRyYWdFbmFibGVkID8ge1xuICAgICAgICAgICAgICAgb25EcmFnRXhpdDogdGhpcy5oYW5kbGVPbkRyYWdFeGl0LFxuICAgICAgICAgICAgICAgb25EcmFnTGVhdmU6IHRoaXMuaGFuZGxlT25EcmFnRXhpdCxcbiAgICAgICAgICAgICAgIG9uRHJhZ092ZXI6IHRoaXMuaGFuZGxlT25EcmFnT3ZlcixcbiAgICAgICAgICAgICAgIG9uRHJvcDogdGhpcy5oYW5kbGVPbkRyb3AsXG4gICAgICAgICAgICAgICBvblBhc3RlOiB0aGlzLmhhbmRsZU9uUGFzdGVcbiAgICAgICAgICAgICB9IDoge319XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy50b29sYmFyfT5cbiAgICAgICAgICAgIHtpbWFnZVVybCAmJiAoXG4gICAgICAgICAgICAgIDxVcGxvYWRDb250cm9sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lQnV0dG9uPXtjbGFzc2VzLnJlcGxhY2VCdXR0b259XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lU2VjdGlvbj17Y2xhc3Nlcy5yZXBsYWNlU2VjdGlvbn1cbiAgICAgICAgICAgICAgICBsYWJlbD1cIlJlcGxhY2UgSW1hZ2VcIlxuICAgICAgICAgICAgICAgIG9uSW5wdXRDbGljaz17dGhpcy5oYW5kbGVJbnB1dENsaWNrfVxuICAgICAgICAgICAgICAgIG9uVXBsb2FkSW1hZ2U9e3RoaXMuaGFuZGxlVXBsb2FkSW1hZ2V9XG4gICAgICAgICAgICAgICAgc2V0UmVmPXsocmVmKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmlucHV0ID0gcmVmO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBkaXNhYmxlZD17IShzaGFwZXMgJiYgc2hhcGVzLmxlbmd0aCl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlVW5kb31cbiAgICAgICAgICAgICAgbGFiZWw9XCJVbmRvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshKHNoYXBlcyAmJiBzaGFwZXMubGVuZ3RoKX1cbiAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVDbGVhckFsbH1cbiAgICAgICAgICAgICAgbGFiZWw9XCJDbGVhciBhbGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17cmVmID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pbWFnZVNlY3Rpb24gPSByZWY7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmRyYXdhYmxlSGVpZ2h0fT5cbiAgICAgICAgICAgIHtpbWFnZVVybFxuICAgICAgICAgICAgICA/IChcbiAgICAgICAgICAgICAgICA8RHJhd2FibGVcbiAgICAgICAgICAgICAgICAgIGRpbWVuc2lvbnM9e2RpbWVuc2lvbnN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRHJhZz17dGhpcy5oYW5kbGVEaXNhYmxlRHJhZ31cbiAgICAgICAgICAgICAgICAgIGVuYWJsZURyYWc9e3RoaXMuaGFuZGxlRW5hYmxlRHJhZ31cbiAgICAgICAgICAgICAgICAgIGltYWdlVXJsPXtpbWFnZVVybH1cbiAgICAgICAgICAgICAgICAgIGhvdHNwb3RDb2xvcj17aG90c3BvdENvbG9yfVxuICAgICAgICAgICAgICAgICAgbXVsdGlwbGVDb3JyZWN0PXttdWx0aXBsZUNvcnJlY3R9XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlRGltZW5zaW9uPXtvblVwZGF0ZUltYWdlRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgICAgb25VcGRhdGVTaGFwZXM9e3RoaXMub25VcGRhdGVTaGFwZXN9XG4gICAgICAgICAgICAgICAgICBvdXRsaW5lQ29sb3I9e291dGxpbmVDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHNoYXBlcz17c2hhcGVzfVxuICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e3N0cm9rZVdpZHRofVxuICAgICAgICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpb0VuYWJsZWQ9e3ByZXNlcnZlQXNwZWN0UmF0aW9FbmFibGVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2NsYXNzZXMuZHJhd2FibGVIZWlnaHR9ICR7Y2xhc3Nlcy5jZW50ZXJlZH1gfT5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5EcmFnIGFuZCBkcm9wIG9yIHVwbG9hZCBpbWFnZSBmcm9tIGNvbXB1dGVyPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgICAgICAgICA8VXBsb2FkQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlVwbG9hZCBJbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uSW5wdXRDbGljaz17dGhpcy5oYW5kbGVJbnB1dENsaWNrfVxuICAgICAgICAgICAgICAgICAgICBvblVwbG9hZEltYWdlPXt0aGlzLmhhbmRsZVVwbG9hZEltYWdlfVxuICAgICAgICAgICAgICAgICAgICBzZXRSZWY9eyhyZWYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0ID0gcmVmO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHtpbWFnZVVybCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy50b29sdGlwfT5cbiAgICAgICAgICAgICAge3Nob3dUb29sdGlwICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy50b29sdGlwQ29udGVudH0+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIENsaWNrIGFuZCBkcmFnIHRvIGNyZWF0ZSBhIGhvdHNwb3QuIENsaWNrIHRoZSBob3RzcG90IHRvIG1hcmsgY29ycmVjdC4gQ2xpY2tcbiAgICAgICAgICAgICAgICAgICAgYWdhaW4gdG8gdW5tYXJrLlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnRvb2x0aXBBcnJvd30vPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8SGVscFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pY29ufVxuICAgICAgICAgICAgICAgIG9uTW91c2VPdXQ9e3RoaXMudG9nZ2xlVG9vbHRpcH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlT3Zlcj17dGhpcy50b2dnbGVUb29sdGlwfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgYmFzZToge1xuICAgIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZy51bml0ICogMlxuICB9LFxuICBib3g6IHtcbiAgICBib3JkZXI6ICcxcHggc29saWQgI0UwRTFFNicsXG4gICAgYm9yZGVyUmFkaXVzOiAnNXB4J1xuICB9LFxuICBib3hBY3RpdmU6IHtcbiAgICBib3JkZXI6ICcxcHggc29saWQgIzAwMzJDMidcbiAgfSxcbiAgY2VudGVyZWQ6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInXG4gIH0sXG4gIGRyYXdhYmxlSGVpZ2h0OiB7XG4gICAgbWluSGVpZ2h0OiAzNTAsXG4gICAgcGFkZGluZ0JvdHRvbTogJzQwcHgnLFxuICAgIHBhZGRpbmdSaWdodDogJzQwcHgnLFxuICB9LFxuICBpY29uOiB7XG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBjb2xvcjogJyMzMzMxMzEnLFxuICAgICAgY3Vyc29yOiAnaGVscCdcbiAgICB9LFxuICAgIGNvbG9yOiAnI0MxQzFDMSdcbiAgfSxcbiAgcmVwbGFjZUJ1dHRvbjoge1xuICAgIG1hcmdpbkxlZnQ6IDAsXG4gIH0sXG4gIHJlcGxhY2VTZWN0aW9uOiB7XG4gICAgbWFyZ2luUmlnaHQ6ICdhdXRvJ1xuICB9LFxuICB0b29sYmFyOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiAnI0VDRURGMScsXG4gICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNFMEUxRTYnLFxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6ICc1cHgnLFxuICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiAnNXB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LWVuZCcsXG4gICAgcGFkZGluZzogJzEycHggOHB4J1xuICB9LFxuICB0b29sdGlwOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgIHBhZGRpbmc6ICc1cHggOXB4J1xuICB9LFxuICB0b29sdGlwQ29udGVudDoge1xuICAgIGJhY2tncm91bmQ6ICcjMzMzMTMxJyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGNvbG9yOiAnI0ZGRkZGRicsXG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBsaW5lSGVpZ2h0OiAnMThweCcsXG4gICAgbWFyZ2luVG9wOiAnLTcwcHgnLFxuICAgIHBhZGRpbmc6ICc3cHggMTZweCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6ICc1cHgnLFxuICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIHdpZHRoOiAnMzAwcHgnXG4gIH0sXG4gIHRvb2x0aXBBcnJvdzoge1xuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMCxcbiAgICBib3JkZXJMZWZ0OiAnMTBweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgYm9yZGVyUmlnaHQ6ICcxMHB4IHNvbGlkIHRyYW5zcGFyZW50JyxcbiAgICBib3JkZXJUb3A6ICcxMHB4IHNvbGlkICMzMzMxMzEnLFxuICAgIG1hcmdpbkJvdHRvbTogLTEwLFxuICAgIG1hcmdpblRvcDogJzJweCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6ICc1cHgnXG4gIH1cbn0pO1xuXG5Db250YWluZXIucHJvcFR5cGVzID0ge1xuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGRpbWVuc2lvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgaW1hZ2VVcmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaG90c3BvdENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG11bHRpcGxlQ29ycmVjdDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25JbWFnZVVwbG9hZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25VcGRhdGVJbWFnZURpbWVuc2lvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25VcGRhdGVTaGFwZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG91dGxpbmVDb2xvcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzaGFwZXM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgcmVjdGFuZ2xlczogUHJvcFR5cGVzLmFycmF5LFxuICAgIHBvbHlnb25zOiBQcm9wVHlwZXMuYXJyYXlcbiAgfSkuaXNSZXF1aXJlZCxcbiAgc3Ryb2tlV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIHByZXNlcnZlQXNwZWN0UmF0aW9FbmFibGVkOiBQcm9wVHlwZXMuYm9vbFxufTtcbkNvbnRhaW5lci5kZWZhdWx0UHJvcHMgPSB7XG4gIHN0cm9rZVdpZHRoOiA1XG59O1xuXG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShDb250YWluZXIpO1xuIl19
|
|
@@ -41,9 +41,9 @@ var _hotspotPolygon = _interopRequireDefault(require("./hotspot-polygon"));
|
|
|
41
41
|
|
|
42
42
|
var _utils = require("./utils");
|
|
43
43
|
|
|
44
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
45
|
|
|
46
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
46
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
47
|
|
|
48
48
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
49
49
|
|
|
@@ -442,4 +442,4 @@ Drawable.propTypes = {
|
|
|
442
442
|
var _default = (0, _index.withStyles)(styles)(Drawable);
|
|
443
443
|
|
|
444
444
|
exports["default"] = _default;
|
|
445
|
-
//# sourceMappingURL=hotspot-drawable.js.map
|
|
445
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ob3RzcG90LWRyYXdhYmxlLmpzeCJdLCJuYW1lcyI6WyJJTUFHRV9NQVhfV0lEVEgiLCJEcmF3YWJsZSIsInByb3BzIiwiZSIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJvblVwZGF0ZVNoYXBlcyIsInNoYXBlcyIsIm5ld1NoYXBlcyIsInNsaWNlIiwidmFsdWUiLCJtYXAiLCJjIiwicGFyc2VJbnQiLCJpZCIsImZpbHRlciIsImlzTmFOIiwicHVzaCIsImhlaWdodCIsIndpZHRoIiwieCIsImV2dCIsImxheWVyWCIsInkiLCJsYXllclkiLCJncm91cCIsImluZGV4IiwibGVuZ3RoIiwic2V0U3RhdGUiLCJpc0RyYXdpbmciLCJpc0RyYXdpbmdTaGFwZUlkIiwic3RhdGUiLCJzdGF0ZVNoYXBlcyIsInVuZGVmaW5lZCIsIm1vdXNlWCIsIm1vdXNlWSIsImN1cnJTaGFwZUluZGV4IiwiZmluZEluZGV4Iiwic2hhcGUiLCJjdXJyU2hhcGUiLCJuZXdXaWR0aCIsIm5ld0hlaWdodCIsIm5ld1NoYXBlc0xpc3QiLCJ1cGRhdGVkUHJvcHMiLCJtdWx0aXBsZUNvcnJlY3QiLCJjb3JyZWN0Iiwib25VcGRhdGVJbWFnZURpbWVuc2lvbiIsInJlc2l6ZUhhbmRsZSIsInJlc2l6ZSIsImVsZW1lbnRTdHlsZSIsImdldENvbXB1dGVkU3R5bGUiLCJwYXJzZUZsb2F0IiwiYXNwZWN0V2lkdGgiLCJkaW1lbnNpb25zIiwiYWRkRXZlbnRMaXN0ZW5lciIsImluaXRpYWxpc2VSZXNpemUiLCJ3aW5kb3ciLCJzdGFydFJlc2l6aW5nIiwic3RvcFJlc2l6aW5nIiwiYm91bmRzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiYm94IiwiaW1hZ2UiLCJkaXNhYmxlRHJhZyIsInByZXNlcnZlQXNwZWN0UmF0aW9FbmFibGVkIiwiY2xpZW50WCIsImxlZnQiLCJjbGllbnRZIiwidG9wIiwicmVzaXplVmFsaWQiLCJjaGVja0lmUmVzaXplVmFsaWQiLCJoYXNNaW5pbXVtV2lkdGgiLCJzdHlsZSIsInJlc2l6aW5nIiwiZW5hYmxlRHJhZyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkcmF3YWJsZSIsImZvckVhY2giLCJyaWdodCIsImJvdHRvbSIsImNsYXNzZXMiLCJpbWFnZVVybCIsImhvdHNwb3RDb2xvciIsIm91dGxpbmVDb2xvciIsInN0cm9rZVdpZHRoIiwiaGVpZ2h0RnJvbVN0YXRlIiwid2lkdGhGcm9tU3RhdGUiLCJzaGFwZXNUb1VzZSIsImJhc2UiLCJpbWFnZUNvbnRhaW5lciIsImhhbmRsZU9uSW1hZ2VMb2FkIiwicmVmIiwic3RhZ2UiLCJoYW5kbGVPbk1vdXNlRG93biIsImhhbmRsZU9uTW91c2VVcCIsImhhbmRsZU1vdXNlTW92ZSIsIlRhZyIsIlBvbHlnb24iLCJSZWN0YW5nbGUiLCJoYW5kbGVPblNldEFzQ29ycmVjdCIsImhhbmRsZU9uRHJhZ0VuZCIsInBvaW50cyIsIm5leHRQcm9wcyIsInByZXZTdGF0ZSIsIlJlYWN0IiwiQ29tcG9uZW50Iiwic3R5bGVzIiwicG9zaXRpb24iLCJhbGlnbkl0ZW1zIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYm9yZGVyQm90dG9tIiwiYm9yZGVyUmlnaHQiLCJjdXJzb3IiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsInN0cmluZyIsImJvb2wiLCJhcnJheSIsIm51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsZUFBZSxHQUFHLEdBQXhCOztJQUVhQyxROzs7OztBQWNYLG9CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFDakIsOEJBQU1BLEtBQU47QUFEaUIsMEdBZUMsVUFBQ0MsQ0FBRCxFQUFPO0FBQ3pCLFVBQUlBLENBQUMsQ0FBQ0MsTUFBRixLQUFhRCxDQUFDLENBQUNFLGFBQW5CLEVBQWtDO0FBQ2hDLDBCQUFtQyxNQUFLSCxLQUF4QztBQUFBLFlBQVFJLGNBQVIsZUFBUUEsY0FBUjtBQUFBLFlBQXdCQyxNQUF4QixlQUF3QkEsTUFBeEIsQ0FEZ0MsQ0FFaEM7O0FBQ0EsWUFBTUMsU0FBUyxHQUFHRCxNQUFNLENBQUNFLEtBQVAsRUFBbEI7QUFDQSxZQUFNQyxLQUFLLEdBQUcscUJBQUlGLFNBQVMsQ0FBQ0csR0FBVixDQUFjLFVBQUFDLENBQUM7QUFBQSxpQkFBSUMsUUFBUSxDQUFDRCxDQUFDLENBQUNFLEVBQUgsQ0FBWjtBQUFBLFNBQWYsRUFBbUNDLE1BQW5DLENBQTBDLFVBQUFELEVBQUU7QUFBQSxpQkFBSSxDQUFDRSxLQUFLLENBQUNGLEVBQUQsQ0FBVjtBQUFBLFNBQTVDLENBQUosS0FBb0UsQ0FBbEY7QUFFQU4sUUFBQUEsU0FBUyxDQUFDUyxJQUFWLENBQWU7QUFDYkgsVUFBQUEsRUFBRSxZQUFLSixLQUFLLEdBQUcsQ0FBYixDQURXO0FBRWJRLFVBQUFBLE1BQU0sRUFBRSxDQUZLO0FBR2JDLFVBQUFBLEtBQUssRUFBRSxDQUhNO0FBSWJDLFVBQUFBLENBQUMsRUFBRWpCLENBQUMsQ0FBQ2tCLEdBQUYsQ0FBTUMsTUFKSTtBQUtiQyxVQUFBQSxDQUFDLEVBQUVwQixDQUFDLENBQUNrQixHQUFGLENBQU1HLE1BTEk7QUFNYkMsVUFBQUEsS0FBSyxFQUFFLFlBTk07QUFPYkMsVUFBQUEsS0FBSyxFQUFFbkIsTUFBTSxDQUFDb0I7QUFQRCxTQUFmOztBQVVBLGNBQUtDLFFBQUwsQ0FBYztBQUFFQyxVQUFBQSxTQUFTLEVBQUUsSUFBYjtBQUFtQkMsVUFBQUEsZ0JBQWdCLFlBQUtwQixLQUFLLEdBQUcsQ0FBYjtBQUFuQyxTQUFkOztBQUNBSixRQUFBQSxjQUFjLENBQUNFLFNBQUQsQ0FBZDtBQUNEO0FBQ0YsS0FuQ2tCO0FBQUEsd0dBcUNELFlBQU07QUFDdEI7QUFDQSx3QkFBbUMsTUFBS3VCLEtBQXhDO0FBQUEsVUFBUUYsU0FBUixlQUFRQSxTQUFSO0FBQUEsVUFBbUJHLFdBQW5CLGVBQW1CQSxXQUFuQjtBQUNBLFVBQVExQixjQUFSLEdBQTJCLE1BQUtKLEtBQWhDLENBQVFJLGNBQVIsQ0FIc0IsQ0FLdEI7O0FBQ0EsVUFBSXVCLFNBQUosRUFBZTtBQUNiLGNBQUtELFFBQUwsQ0FBYztBQUFFQyxVQUFBQSxTQUFTLEVBQUUsQ0FBQ0EsU0FBZDtBQUF5QkcsVUFBQUEsV0FBVyxFQUFFLEtBQXRDO0FBQTZDRixVQUFBQSxnQkFBZ0IsRUFBRUc7QUFBL0QsU0FBZDs7QUFFQSxZQUFJRCxXQUFKLEVBQWlCO0FBQ2YxQixVQUFBQSxjQUFjLENBQUMwQixXQUFELENBQWQ7QUFDRDtBQUNGO0FBQ0YsS0FsRGtCO0FBQUEsd0dBb0RELFVBQUM3QixDQUFELEVBQU87QUFDdkI7QUFDQSx5QkFBd0MsTUFBSzRCLEtBQTdDO0FBQUEsVUFBUUYsU0FBUixnQkFBUUEsU0FBUjtBQUFBLFVBQW1CQyxnQkFBbkIsZ0JBQW1CQSxnQkFBbkI7QUFDQSxVQUFRdkIsTUFBUixHQUFtQixNQUFLTCxLQUF4QixDQUFRSyxNQUFSOztBQUVBLFVBQUlzQixTQUFTLElBQUlDLGdCQUFqQixFQUFtQztBQUNqQyxZQUFNSSxNQUFNLEdBQUcvQixDQUFDLENBQUNrQixHQUFGLENBQU1DLE1BQXJCO0FBQ0EsWUFBTWEsTUFBTSxHQUFHaEMsQ0FBQyxDQUFDa0IsR0FBRixDQUFNRyxNQUFyQjtBQUVBLFlBQU1ZLGNBQWMsR0FBRzdCLE1BQU0sQ0FBQzhCLFNBQVAsQ0FBaUIsVUFBQUMsS0FBSztBQUFBLGlCQUFJQSxLQUFLLENBQUN4QixFQUFOLEtBQWFnQixnQkFBakI7QUFBQSxTQUF0QixDQUF2QjtBQUNBLFlBQU1TLFNBQVMsR0FBR2hDLE1BQU0sQ0FBQzZCLGNBQUQsQ0FBeEI7O0FBRUEsWUFBSUcsU0FBSixFQUFlO0FBQ2IsY0FBTUMsUUFBUSxHQUFHTixNQUFNLEdBQUdLLFNBQVMsQ0FBQ25CLENBQXBDO0FBQ0EsY0FBTXFCLFNBQVMsR0FBR04sTUFBTSxHQUFHSSxTQUFTLENBQUNoQixDQUFyQztBQUVBLGNBQU1tQixhQUFhLEdBQUduQyxNQUFNLENBQUNFLEtBQVAsRUFBdEI7QUFFQWlDLFVBQUFBLGFBQWEsQ0FBQ04sY0FBRCxDQUFiLG1DQUNLTSxhQUFhLENBQUNOLGNBQUQsQ0FEbEI7QUFFRWxCLFlBQUFBLE1BQU0sRUFBRXVCLFNBRlY7QUFHRXRCLFlBQUFBLEtBQUssRUFBRXFCLFFBSFQ7QUFJRXBCLFlBQUFBLENBQUMsRUFBRW1CLFNBQVMsQ0FBQ25CLENBSmY7QUFLRUcsWUFBQUEsQ0FBQyxFQUFFZ0IsU0FBUyxDQUFDaEI7QUFMZixhQU5hLENBY2I7O0FBQ0EsZ0JBQUtLLFFBQUwsQ0FBYztBQUFFSSxZQUFBQSxXQUFXLEVBQUVVO0FBQWYsV0FBZDtBQUNEO0FBQ0Y7QUFDRixLQWxGa0I7QUFBQSx3R0FvRkQsVUFBQzVCLEVBQUQsRUFBSzZCLFlBQUwsRUFBc0I7QUFDdEMseUJBQW1DLE1BQUt6QyxLQUF4QztBQUFBLFVBQVFLLE1BQVIsZ0JBQVFBLE1BQVI7QUFBQSxVQUFnQkQsY0FBaEIsZ0JBQWdCQSxjQUFoQjtBQUNBLFVBQU1FLFNBQVMsR0FBR0QsTUFBTSxDQUFDSSxHQUFQLENBQVcsVUFBQTJCLEtBQUssRUFBSTtBQUNwQyxZQUFJQSxLQUFLLENBQUN4QixFQUFOLEtBQWFBLEVBQWpCLEVBQXFCO0FBQ25CLGlEQUNLd0IsS0FETCxHQUVLSyxZQUZMO0FBSUQ7O0FBQ0QsZUFBT0wsS0FBUDtBQUNELE9BUmlCLENBQWxCO0FBVUFoQyxNQUFBQSxjQUFjLENBQUMsMkJBQVVFLFNBQVYsQ0FBRCxDQUFkO0FBQ0QsS0FqR2tCO0FBQUEsNkdBbUdJLFVBQUM4QixLQUFELEVBQVc7QUFDaEMsVUFBUXhCLEVBQVIsR0FBZXdCLEtBQWYsQ0FBUXhCLEVBQVI7QUFDQSx5QkFBb0QsTUFBS1osS0FBekQ7QUFBQSxVQUFRMEMsZUFBUixnQkFBUUEsZUFBUjtBQUFBLFVBQXlCckMsTUFBekIsZ0JBQXlCQSxNQUF6QjtBQUFBLFVBQWlDRCxjQUFqQyxnQkFBaUNBLGNBQWpDO0FBRUEsVUFBSUUsU0FBUyxHQUFHLEVBQWhCOztBQUVBLFVBQUlvQyxlQUFKLEVBQXFCO0FBQ25CcEMsUUFBQUEsU0FBUyxHQUFHRCxNQUFNLENBQUNJLEdBQVAsQ0FBVyxVQUFBMkIsS0FBSyxFQUFJO0FBQzlCLGNBQUlBLEtBQUssQ0FBQ3hCLEVBQU4sS0FBYUEsRUFBakIsRUFBcUI7QUFDbkJ3QixZQUFBQSxLQUFLLENBQUNPLE9BQU4sR0FBZ0IsQ0FBQ1AsS0FBSyxDQUFDTyxPQUF2QjtBQUNEOztBQUNELGlCQUFPUCxLQUFQO0FBQ0QsU0FMVyxDQUFaO0FBTUQsT0FQRCxNQU9PO0FBQ0w5QixRQUFBQSxTQUFTLEdBQUdELE1BQU0sQ0FBQ0ksR0FBUCxDQUFXLFVBQUEyQixLQUFLLEVBQUk7QUFDOUJBLFVBQUFBLEtBQUssQ0FBQ08sT0FBTixHQUFnQlAsS0FBSyxDQUFDeEIsRUFBTixLQUFhQSxFQUE3QjtBQUNBLGlCQUFPd0IsS0FBUDtBQUNELFNBSFcsQ0FBWjtBQUlEOztBQUVEaEMsTUFBQUEsY0FBYyxDQUFDLDJCQUFVRSxTQUFWLENBQUQsQ0FBZDtBQUNELEtBeEhrQjtBQUFBLDBHQTRIQyxnQkFBZ0I7QUFBQSxVQUFiSixNQUFhLFFBQWJBLE1BQWE7QUFDbEMsVUFBUTBDLHNCQUFSLEdBQW1DLE1BQUs1QyxLQUF4QyxDQUFRNEMsc0JBQVI7QUFDQSxVQUFNQyxZQUFZLEdBQUcsTUFBS0MsTUFBMUI7QUFDQSxVQUFNQyxZQUFZLEdBQUdDLGdCQUFnQixDQUFDOUMsTUFBRCxDQUFyQztBQUNBLFVBQU1xQyxTQUFTLEdBQUdVLFVBQVUsQ0FBQ0YsWUFBWSxDQUFDL0IsTUFBZCxDQUE1QjtBQUNBLFVBQU1zQixRQUFRLEdBQUdXLFVBQVUsQ0FBQ0YsWUFBWSxDQUFDOUIsS0FBZCxDQUEzQjtBQUNBLFVBQU1pQyxXQUFXLEdBQUdaLFFBQVEsR0FBR3hDLGVBQS9CO0FBRUEsVUFBTXFELFVBQVUsR0FBR2IsUUFBUSxHQUFHeEMsZUFBWCxHQUE2QjtBQUM5Q2tCLFFBQUFBLE1BQU0sRUFBRXVCLFNBQVMsR0FBR1csV0FEMEI7QUFFOUNqQyxRQUFBQSxLQUFLLEVBQUVuQjtBQUZ1QyxPQUE3QixHQUdmO0FBQ0ZrQixRQUFBQSxNQUFNLEVBQUV1QixTQUROO0FBRUZ0QixRQUFBQSxLQUFLLEVBQUVxQjtBQUZMLE9BSEo7O0FBUUEsWUFBS1osUUFBTCxDQUNFO0FBQUV5QixRQUFBQSxVQUFVLEVBQVZBO0FBQUYsT0FERixFQUVFO0FBQUEsZUFBTVAsc0JBQXNCLENBQUNPLFVBQUQsQ0FBNUI7QUFBQSxPQUZGOztBQUlBTixNQUFBQSxZQUFZLENBQUNPLGdCQUFiLENBQThCLFdBQTlCLEVBQTJDLE1BQUtDLGdCQUFoRCxFQUFrRSxLQUFsRTtBQUNELEtBakprQjtBQUFBLHlHQW1KQSxZQUFNO0FBQ3ZCQyxNQUFBQSxNQUFNLENBQUNGLGdCQUFQLENBQXdCLFdBQXhCLEVBQXFDLE1BQUtHLGFBQTFDLEVBQXlELEtBQXpEO0FBQ0FELE1BQUFBLE1BQU0sQ0FBQ0YsZ0JBQVAsQ0FBd0IsU0FBeEIsRUFBbUMsTUFBS0ksWUFBeEMsRUFBc0QsS0FBdEQ7QUFDRCxLQXRKa0I7QUFBQSxzR0F1S0gsVUFBQ3ZELENBQUQsRUFBTztBQUNyQixVQUFNd0QsTUFBTSxHQUFHeEQsQ0FBQyxDQUFDQyxNQUFGLENBQVN3RCxxQkFBVCxFQUFmO0FBQ0EsVUFBTUMsR0FBRyxHQUFHLE1BQUtDLEtBQWpCO0FBQ0EseUJBS0ksTUFBSzVELEtBTFQ7QUFBQSxVQUNFNkQsV0FERixnQkFDRUEsV0FERjtBQUFBLFVBRUVDLDBCQUZGLGdCQUVFQSwwQkFGRjtBQUFBLFVBR0VYLFVBSEYsZ0JBR0VBLFVBSEY7QUFBQSxVQUlFOUMsTUFKRixnQkFJRUEsTUFKRixDQUhxQixDQVVyQjs7QUFDQSxrQ0FBMEIsa0NBQ3hCOEMsVUFEd0IsRUFFeEI7QUFDRWxDLFFBQUFBLEtBQUssRUFBRWhCLENBQUMsQ0FBQzhELE9BQUYsR0FBWU4sTUFBTSxDQUFDTyxJQUQ1QjtBQUVFaEQsUUFBQUEsTUFBTSxFQUFFZixDQUFDLENBQUNnRSxPQUFGLEdBQVlSLE1BQU0sQ0FBQ1M7QUFGN0IsT0FGd0IsRUFNeEJKLDBCQU53QixDQUExQjtBQUFBLFVBQVE3QyxLQUFSLHlCQUFRQSxLQUFSO0FBQUEsVUFBZUQsTUFBZix5QkFBZUEsTUFBZjs7QUFTQSxVQUFNbUQsV0FBVyxHQUFHLE1BQUtDLGtCQUFMLENBQXdCbkQsS0FBeEIsRUFBK0JELE1BQS9CLENBQXBCOztBQUNBLFVBQU1xRCxlQUFlLEdBQUdwRCxLQUFLLEdBQUcsR0FBUixJQUFlRCxNQUFNLEdBQUcsR0FBaEQ7O0FBRUEsVUFBSW1ELFdBQVcsSUFBSUUsZUFBbkIsRUFBb0M7QUFDbENWLFFBQUFBLEdBQUcsQ0FBQ1csS0FBSixDQUFVckQsS0FBVixhQUFxQkEsS0FBckI7QUFDQTBDLFFBQUFBLEdBQUcsQ0FBQ1csS0FBSixDQUFVdEQsTUFBVixhQUFzQkEsTUFBdEI7O0FBRUEsY0FBS1UsUUFBTCxDQUFjO0FBQ1o2QyxVQUFBQSxRQUFRLEVBQUUsSUFERTtBQUVacEIsVUFBQUEsVUFBVSxFQUFFO0FBQUVuQyxZQUFBQSxNQUFNLEVBQUVBLE1BQVY7QUFBa0JDLFlBQUFBLEtBQUssRUFBRUE7QUFBekIsV0FGQTtBQUdaYSxVQUFBQSxXQUFXLEVBQUUsNkJBQWlCcUIsVUFBakIsRUFBNkI7QUFBRWxDLFlBQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTRCxZQUFBQSxNQUFNLEVBQU5BO0FBQVQsV0FBN0IsRUFBZ0RYLE1BQWhEO0FBSEQsU0FBZDtBQUtEOztBQUVEd0QsTUFBQUEsV0FBVztBQUNaLEtBMU1rQjtBQUFBLHFHQTRNSixZQUFNO0FBQ25CLHlCQUErRCxNQUFLN0QsS0FBcEU7QUFBQSxVQUFRd0UsVUFBUixnQkFBUUEsVUFBUjtBQUFBLFVBQW9CNUIsc0JBQXBCLGdCQUFvQkEsc0JBQXBCO0FBQUEsVUFBNEN4QyxjQUE1QyxnQkFBNENBLGNBQTVDO0FBQ0EseUJBQW9DLE1BQUt5QixLQUF6QztBQUFBLFVBQVFzQixVQUFSLGdCQUFRQSxVQUFSO0FBQUEsVUFBb0JyQixXQUFwQixnQkFBb0JBLFdBQXBCO0FBRUEwQyxNQUFBQSxVQUFVOztBQUVWLFVBQUkxQyxXQUFKLEVBQWlCO0FBQ2YxQixRQUFBQSxjQUFjLENBQUMsMkJBQVUwQixXQUFWLENBQUQsQ0FBZDtBQUNEOztBQUVEYyxNQUFBQSxzQkFBc0IsQ0FBQ08sVUFBRCxDQUF0QjtBQUVBRyxNQUFBQSxNQUFNLENBQUNtQixtQkFBUCxDQUEyQixXQUEzQixFQUF3QyxNQUFLbEIsYUFBN0MsRUFBNEQsS0FBNUQ7QUFDQUQsTUFBQUEsTUFBTSxDQUFDbUIsbUJBQVAsQ0FBMkIsU0FBM0IsRUFBc0MsTUFBS2pCLFlBQTNDLEVBQXlELEtBQXpEOztBQUVBLFlBQUs5QixRQUFMLENBQWM7QUFBRTZDLFFBQUFBLFFBQVEsRUFBRSxLQUFaO0FBQW1CekMsUUFBQUEsV0FBVyxFQUFFO0FBQWhDLE9BQWQ7QUFDRCxLQTVOa0I7QUFHakIsVUFBS0QsS0FBTCxHQUFhO0FBQ1hGLE1BQUFBLFNBQVMsRUFBRSxLQURBO0FBRVhHLE1BQUFBLFdBQVcsRUFBRSxLQUZGO0FBR1h5QyxNQUFBQSxRQUFRLEVBQUUsS0FIQztBQUlYcEIsTUFBQUEsVUFBVSxFQUFFO0FBQ1ZuQyxRQUFBQSxNQUFNLEVBQUUsQ0FERTtBQUVWQyxRQUFBQSxLQUFLLEVBQUU7QUFGRztBQUpELEtBQWI7QUFIaUI7QUFZbEIsRyxDQUVEOzs7OztXQTBJQSw0QkFBbUJDLENBQW5CLEVBQXNCRyxDQUF0QixFQUF5QjtBQUN2QixVQUFRaEIsTUFBUixHQUFtQixLQUFLd0IsS0FBeEIsQ0FBUXhCLE1BQVI7QUFDQSxVQUFJcUUsUUFBUSxHQUFHLElBQWYsQ0FGdUIsQ0FJdkI7O0FBQ0FyRSxNQUFBQSxNQUFNLElBQUlBLE1BQU0sQ0FBQ3NFLE9BQVAsQ0FBZSxVQUFBdkMsS0FBSyxFQUFJO0FBQ2hDLFlBQU13QyxLQUFLLEdBQUd4QyxLQUFLLENBQUNsQixDQUFOLEdBQVVrQixLQUFLLENBQUNuQixLQUFoQixHQUF3QixDQUF0QztBQUNBLFlBQU00RCxNQUFNLEdBQUd6QyxLQUFLLENBQUNmLENBQU4sR0FBVWUsS0FBSyxDQUFDcEIsTUFBaEIsR0FBeUIsQ0FBeEM7O0FBQ0EsWUFBSUUsQ0FBQyxJQUFJMEQsS0FBTCxJQUFjdkQsQ0FBQyxJQUFJd0QsTUFBdkIsRUFBK0I7QUFDN0JILFVBQUFBLFFBQVEsR0FBRyxLQUFYO0FBQ0Q7QUFDRixPQU5TLENBQVY7QUFPQSxhQUFPQSxRQUFQO0FBQ0Q7OztXQXdERDtBQUVBLHNCQUFTO0FBQUE7O0FBQ1AseUJBUUksS0FBSzFFLEtBUlQ7QUFBQSxVQUNFOEUsT0FERixnQkFDRUEsT0FERjtBQUFBLFVBRUVDLFFBRkYsZ0JBRUVBLFFBRkY7QUFBQSwrQ0FHRTVCLFVBSEY7QUFBQSxVQUdnQm5DLE1BSGhCLHlCQUdnQkEsTUFIaEI7QUFBQSxVQUd3QkMsS0FIeEIseUJBR3dCQSxLQUh4QjtBQUFBLFVBSUUrRCxZQUpGLGdCQUlFQSxZQUpGO0FBQUEsVUFLRUMsWUFMRixnQkFLRUEsWUFMRjtBQUFBLFVBTUU1RSxNQU5GLGdCQU1FQSxNQU5GO0FBQUEsVUFPRTZFLFdBUEYsZ0JBT0VBLFdBUEY7QUFTQSx5QkFJSSxLQUFLckQsS0FKVDtBQUFBLFVBQ0VDLFdBREYsZ0JBQ0VBLFdBREY7QUFBQSxVQUVFSCxTQUZGLGdCQUVFQSxTQUZGO0FBQUEsK0NBR0V3QixVQUhGO0FBQUEsVUFHd0JnQyxlQUh4Qix5QkFHZ0JuRSxNQUhoQjtBQUFBLFVBR2dEb0UsY0FIaEQseUJBR3lDbkUsS0FIekM7QUFLQSxVQUFNb0UsV0FBVyxHQUFHdkQsV0FBVyxJQUFJekIsTUFBbkM7QUFFQSwwQkFDRTtBQUFLLFFBQUEsU0FBUyxFQUFFeUUsT0FBTyxDQUFDUTtBQUF4QixTQUNHUCxRQUFRLGlCQUNQO0FBQUssUUFBQSxTQUFTLEVBQUVELE9BQU8sQ0FBQ1M7QUFBeEIsc0JBQ0U7QUFDRSxRQUFBLFNBQVMsRUFBRVQsT0FBTyxDQUFDbEIsS0FEckI7QUFFRSxRQUFBLE1BQU0sRUFBRSxLQUFLNEIsaUJBRmY7QUFHRSxRQUFBLEdBQUcsRUFBRSxhQUFBQyxLQUFHLEVBQUk7QUFDVixVQUFBLE1BQUksQ0FBQzdCLEtBQUwsR0FBYTZCLEtBQWI7QUFDRCxTQUxIO0FBTUUsUUFBQSxHQUFHLEVBQUVWO0FBTlAsU0FPTS9ELE1BQU0sSUFBSUMsS0FBVixHQUFrQjtBQUFFcUQsUUFBQUEsS0FBSyxFQUFFO0FBQUV0RCxVQUFBQSxNQUFNLEVBQU5BLE1BQUY7QUFBVUMsVUFBQUEsS0FBSyxFQUFMQTtBQUFWO0FBQVQsT0FBbEIsR0FBaUQsRUFQdkQsRUFERixlQVVFO0FBQUssUUFBQSxHQUFHLEVBQUUsYUFBQXdFLEtBQUcsRUFBSTtBQUNmLFVBQUEsTUFBSSxDQUFDM0MsTUFBTCxHQUFjMkMsS0FBZDtBQUNELFNBRkQ7QUFFRyxRQUFBLFNBQVMsRUFBRVgsT0FBTyxDQUFDaEM7QUFGdEIsUUFWRixDQUZKLGVBa0JFLGdDQUFDLGlCQUFEO0FBQ0UsUUFBQSxTQUFTLEVBQUVnQyxPQUFPLENBQUNZLEtBRHJCO0FBRUUsUUFBQSxNQUFNLEVBQUVQLGVBQWUsSUFBSW5FLE1BRjdCO0FBR0UsUUFBQSxLQUFLLEVBQUVvRSxjQUFjLElBQUluRSxLQUgzQjtBQUlFLFFBQUEsV0FBVyxFQUFFLEtBQUswRSxpQkFKcEI7QUFLRSxRQUFBLFNBQVMsRUFBRSxLQUFLQyxlQUxsQjtBQU1FLFFBQUEsV0FBVyxFQUFFLEtBQUtDO0FBTnBCLHNCQVFFLGdDQUFDLGlCQUFELFFBQ0dSLFdBQVcsQ0FBQzVFLEdBQVosQ0FBZ0IsVUFBQzJCLEtBQUQsRUFBUVosS0FBUixFQUFrQjtBQUNqQyxZQUFNc0UsR0FBRyxHQUFHMUQsS0FBSyxDQUFDYixLQUFOLEtBQWdCLFVBQWhCLEdBQTZCd0UsMEJBQTdCLEdBQXVDQyw0QkFBbkQ7QUFFQSw0QkFDRSxnQ0FBQyxHQUFEO0FBQ0UsVUFBQSxPQUFPLEVBQUU1RCxLQUFLLENBQUNPLE9BRGpCO0FBRUUsVUFBQSxTQUFTLEVBQUVoQixTQUZiO0FBR0UsVUFBQSxNQUFNLEVBQUVTLEtBQUssQ0FBQ3BCLE1BSGhCO0FBSUUsVUFBQSxZQUFZLEVBQUVnRSxZQUpoQjtBQUtFLFVBQUEsRUFBRSxFQUFFNUMsS0FBSyxDQUFDeEIsRUFMWjtBQU1FLFVBQUEsR0FBRyxFQUFFWSxLQU5QO0FBT0UsVUFBQSxPQUFPLEVBQUU7QUFBQSxtQkFBTSxNQUFJLENBQUN5RSxvQkFBTCxDQUEwQjdELEtBQTFCLENBQU47QUFBQSxXQVBYO0FBUUUsVUFBQSxTQUFTLEVBQUUsTUFBSSxDQUFDOEQsZUFSbEI7QUFTRSxVQUFBLFlBQVksRUFBRWpCLFlBVGhCO0FBVUUsVUFBQSxLQUFLLEVBQUU3QyxLQUFLLENBQUNuQixLQVZmO0FBV0UsVUFBQSxDQUFDLEVBQUVtQixLQUFLLENBQUNsQixDQVhYO0FBWUUsVUFBQSxDQUFDLEVBQUVrQixLQUFLLENBQUNmLENBWlg7QUFhRSxVQUFBLE1BQU0sRUFBRWUsS0FBSyxDQUFDK0QsTUFiaEI7QUFjRSxVQUFBLFdBQVcsRUFBRWpCO0FBZGYsVUFERjtBQWtCRCxPQXJCQSxDQURILENBUkYsQ0FsQkYsQ0FERjtBQXNERDs7O1dBblRELGtDQUFnQ2tCLFNBQWhDLEVBQTJDQyxTQUEzQyxFQUFzRDtBQUNwRCxVQUFJbEQsVUFBVSxHQUFHaUQsU0FBUyxDQUFDakQsVUFBM0I7O0FBRUEsVUFBSWtELFNBQVMsSUFBSUEsU0FBUyxDQUFDOUIsUUFBM0IsRUFBcUM7QUFDbkNwQixRQUFBQSxVQUFVLEdBQUdrRCxTQUFTLENBQUNsRCxVQUF2QjtBQUNEOztBQUVELDZDQUNLa0QsU0FETDtBQUVFbEQsUUFBQUEsVUFBVSxFQUFFQTtBQUZkO0FBSUQ7OztFQVoyQm1ELGtCQUFNQyxTOzs7O0FBdVRwQyxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUztBQUFBLFNBQU87QUFDcEJsQixJQUFBQSxJQUFJLEVBQUU7QUFDSm1CLE1BQUFBLFFBQVEsRUFBRTtBQUROLEtBRGM7QUFJcEI3QyxJQUFBQSxLQUFLLEVBQUU7QUFDTDhDLE1BQUFBLFVBQVUsRUFBRSxRQURQO0FBRUxDLE1BQUFBLE9BQU8sRUFBRSxNQUZKO0FBR0xDLE1BQUFBLGNBQWMsRUFBRTtBQUhYLEtBSmE7QUFTcEJyQixJQUFBQSxjQUFjLEVBQUU7QUFDZGtCLE1BQUFBLFFBQVEsRUFBRSxVQURJO0FBRWR4RixNQUFBQSxLQUFLLEVBQUU7QUFGTyxLQVRJO0FBYXBCNkIsSUFBQUEsTUFBTSxFQUFFO0FBQ04rRCxNQUFBQSxZQUFZLEVBQUUsbUJBRFI7QUFFTkMsTUFBQUEsV0FBVyxFQUFFLG1CQUZQO0FBR05qQyxNQUFBQSxNQUFNLEVBQUUsT0FIRjtBQUlOa0MsTUFBQUEsTUFBTSxFQUFFLFdBSkY7QUFLTi9GLE1BQUFBLE1BQU0sRUFBRSxNQUxGO0FBTU55RixNQUFBQSxRQUFRLEVBQUUsVUFOSjtBQU9ON0IsTUFBQUEsS0FBSyxFQUFFLE9BUEQ7QUFRTjNELE1BQUFBLEtBQUssRUFBRTtBQVJELEtBYlk7QUF1QnBCeUUsSUFBQUEsS0FBSyxFQUFFO0FBQ0wxQixNQUFBQSxJQUFJLEVBQUUsQ0FERDtBQUVMRSxNQUFBQSxHQUFHLEVBQUUsQ0FGQTtBQUdMdUMsTUFBQUEsUUFBUSxFQUFFO0FBSEw7QUF2QmEsR0FBUDtBQUFBLENBQWY7O0FBOEJBMUcsUUFBUSxDQUFDaUgsU0FBVCxHQUFxQjtBQUNuQmxDLEVBQUFBLE9BQU8sRUFBRW1DLHNCQUFVQyxNQUFWLENBQWlCQyxVQURQO0FBRW5CdEQsRUFBQUEsV0FBVyxFQUFFb0Qsc0JBQVVHLElBQVYsQ0FBZUQsVUFGVDtBQUduQmhFLEVBQUFBLFVBQVUsRUFBRThELHNCQUFVQyxNQUFWLENBQWlCQyxVQUhWO0FBSW5CM0MsRUFBQUEsVUFBVSxFQUFFeUMsc0JBQVVHLElBQVYsQ0FBZUQsVUFKUjtBQUtuQnBDLEVBQUFBLFFBQVEsRUFBRWtDLHNCQUFVSSxNQUFWLENBQWlCRixVQUxSO0FBTW5CbkMsRUFBQUEsWUFBWSxFQUFFaUMsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBTlo7QUFPbkJ6RSxFQUFBQSxlQUFlLEVBQUV1RSxzQkFBVUssSUFBVixDQUFlSCxVQVBiO0FBUW5CdkUsRUFBQUEsc0JBQXNCLEVBQUVxRSxzQkFBVUcsSUFBVixDQUFlRCxVQVJwQjtBQVNuQi9HLEVBQUFBLGNBQWMsRUFBRTZHLHNCQUFVRyxJQUFWLENBQWVELFVBVFo7QUFVbkJsQyxFQUFBQSxZQUFZLEVBQUVnQyxzQkFBVUksTUFBVixDQUFpQkYsVUFWWjtBQVduQjlHLEVBQUFBLE1BQU0sRUFBRTRHLHNCQUFVTSxLQUFWLENBQWdCSixVQVhMO0FBWW5CakMsRUFBQUEsV0FBVyxFQUFFK0Isc0JBQVVPLE1BWko7QUFhbkIxRCxFQUFBQSwwQkFBMEIsRUFBRW1ELHNCQUFVSztBQWJuQixDQUFyQjs7ZUFnQmUsdUJBQVdkLE1BQVgsRUFBbUJ6RyxRQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBMYXllciwgU3RhZ2UgfSBmcm9tICdyZWFjdC1rb252YSc7XG5pbXBvcnQgbWF4IGZyb20gJ2xvZGFzaC9tYXgnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMvaW5kZXgnO1xuXG5pbXBvcnQgUmVjdGFuZ2xlIGZyb20gJy4vaG90c3BvdC1yZWN0YW5nbGUnO1xuaW1wb3J0IFBvbHlnb24gZnJvbSAnLi9ob3RzcG90LXBvbHlnb24nO1xuaW1wb3J0IHsgdXBkYXRlSW1hZ2VEaW1lbnNpb25zLCBnZXRVcGRhdGVkU2hhcGVzIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IElNQUdFX01BWF9XSURUSCA9IDgwMDtcblxuZXhwb3J0IGNsYXNzIERyYXdhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgIGxldCBkaW1lbnNpb25zID0gbmV4dFByb3BzLmRpbWVuc2lvbnM7XG5cbiAgICBpZiAocHJldlN0YXRlICYmIHByZXZTdGF0ZS5yZXNpemluZykge1xuICAgICAgZGltZW5zaW9ucyA9IHByZXZTdGF0ZS5kaW1lbnNpb25zO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICBkaW1lbnNpb25zOiBkaW1lbnNpb25zLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGlzRHJhd2luZzogZmFsc2UsXG4gICAgICBzdGF0ZVNoYXBlczogZmFsc2UsXG4gICAgICByZXNpemluZzogZmFsc2UsXG4gICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgd2lkdGg6IDAsXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG4gIC8vLyBzdGFydCBvZiBoYW5kbGluZyBIb3RTcG90cyBzZWN0aW9uXG4gIGhhbmRsZU9uTW91c2VEb3duID0gKGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCkge1xuICAgICAgY29uc3QgeyBvblVwZGF0ZVNoYXBlcywgc2hhcGVzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgLy8gQWRkIGEgbmV3IHJlY3RhbmdsZSBhdCB0aGUgbW91c2UgcG9zaXRpb24gd2l0aCAwIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgIGNvbnN0IG5ld1NoYXBlcyA9IHNoYXBlcy5zbGljZSgpO1xuICAgICAgY29uc3QgdmFsdWUgPSBtYXgobmV3U2hhcGVzLm1hcChjID0+IHBhcnNlSW50KGMuaWQpKS5maWx0ZXIoaWQgPT4gIWlzTmFOKGlkKSkpIHx8IDA7XG5cbiAgICAgIG5ld1NoYXBlcy5wdXNoKHtcbiAgICAgICAgaWQ6IGAke3ZhbHVlICsgMX1gLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICB4OiBlLmV2dC5sYXllclgsXG4gICAgICAgIHk6IGUuZXZ0LmxheWVyWSxcbiAgICAgICAgZ3JvdXA6ICdyZWN0YW5nbGVzJyxcbiAgICAgICAgaW5kZXg6IHNoYXBlcy5sZW5ndGhcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgaXNEcmF3aW5nOiB0cnVlLCBpc0RyYXdpbmdTaGFwZUlkOiBgJHt2YWx1ZSArIDF9YCB9KTtcbiAgICAgIG9uVXBkYXRlU2hhcGVzKG5ld1NoYXBlcyk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZU9uTW91c2VVcCA9ICgpID0+IHtcbiAgICAvLyAhSU1QT1JUQU5UOiBjdXJyZW50bHksIG9ubHkgJ3JlY3RhbmdsZXMnIGFyZSBkcmF3YWJsZVxuICAgIGNvbnN0IHsgaXNEcmF3aW5nLCBzdGF0ZVNoYXBlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IG9uVXBkYXRlU2hhcGVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gSWYgd2UncmUgZHJhd2luZyBhIHNoYXBlLCBhIGNsaWNrIGZpbmlzaGVzIHRoZSBkcmF3aW5nIGFuZCBzZW5kcyB0aGUgbmV3IHNoYXBlcyB0byBIT0NcbiAgICBpZiAoaXNEcmF3aW5nKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgaXNEcmF3aW5nOiAhaXNEcmF3aW5nLCBzdGF0ZVNoYXBlczogZmFsc2UsIGlzRHJhd2luZ1NoYXBlSWQ6IHVuZGVmaW5lZCB9KTtcblxuICAgICAgaWYgKHN0YXRlU2hhcGVzKSB7XG4gICAgICAgIG9uVXBkYXRlU2hhcGVzKHN0YXRlU2hhcGVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlTW91c2VNb3ZlID0gKGUpID0+IHtcbiAgICAvLyAhSU1QT1JUQU5UOiBjdXJyZW50bHksIG9ubHkgJ3JlY3RhbmdsZXMnIGFyZSBkcmF3YWJsZVxuICAgIGNvbnN0IHsgaXNEcmF3aW5nLCBpc0RyYXdpbmdTaGFwZUlkIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgc2hhcGVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKGlzRHJhd2luZyAmJiBpc0RyYXdpbmdTaGFwZUlkKSB7XG4gICAgICBjb25zdCBtb3VzZVggPSBlLmV2dC5sYXllclg7XG4gICAgICBjb25zdCBtb3VzZVkgPSBlLmV2dC5sYXllclk7XG5cbiAgICAgIGNvbnN0IGN1cnJTaGFwZUluZGV4ID0gc2hhcGVzLmZpbmRJbmRleChzaGFwZSA9PiBzaGFwZS5pZCA9PT0gaXNEcmF3aW5nU2hhcGVJZCk7XG4gICAgICBjb25zdCBjdXJyU2hhcGUgPSBzaGFwZXNbY3VyclNoYXBlSW5kZXhdO1xuXG4gICAgICBpZiAoY3VyclNoYXBlKSB7XG4gICAgICAgIGNvbnN0IG5ld1dpZHRoID0gbW91c2VYIC0gY3VyclNoYXBlLng7XG4gICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IG1vdXNlWSAtIGN1cnJTaGFwZS55O1xuXG4gICAgICAgIGNvbnN0IG5ld1NoYXBlc0xpc3QgPSBzaGFwZXMuc2xpY2UoKTtcblxuICAgICAgICBuZXdTaGFwZXNMaXN0W2N1cnJTaGFwZUluZGV4XSA9IHtcbiAgICAgICAgICAuLi5uZXdTaGFwZXNMaXN0W2N1cnJTaGFwZUluZGV4XSxcbiAgICAgICAgICBoZWlnaHQ6IG5ld0hlaWdodCxcbiAgICAgICAgICB3aWR0aDogbmV3V2lkdGgsXG4gICAgICAgICAgeDogY3VyclNoYXBlLngsXG4gICAgICAgICAgeTogY3VyclNoYXBlLnlcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBPbiBtb3VzZSBtb3ZlIGRvbid0IHRyaWdnZXIgYW55IGV2ZW50LiBQdXQgdGhlIHNoYXBlcyBvbiB0aGlzIHN0YXRlIGluc3RlYWQuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzdGF0ZVNoYXBlczogbmV3U2hhcGVzTGlzdCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaGFuZGxlT25EcmFnRW5kID0gKGlkLCB1cGRhdGVkUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHNoYXBlcywgb25VcGRhdGVTaGFwZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgbmV3U2hhcGVzID0gc2hhcGVzLm1hcChzaGFwZSA9PiB7XG4gICAgICBpZiAoc2hhcGUuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2hhcGUsXG4gICAgICAgICAgLi4udXBkYXRlZFByb3BzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9KTtcblxuICAgIG9uVXBkYXRlU2hhcGVzKGNsb25lRGVlcChuZXdTaGFwZXMpKTtcbiAgfTtcblxuICBoYW5kbGVPblNldEFzQ29ycmVjdCA9IChzaGFwZSkgPT4ge1xuICAgIGNvbnN0IHsgaWQgfSA9IHNoYXBlO1xuICAgIGNvbnN0IHsgbXVsdGlwbGVDb3JyZWN0LCBzaGFwZXMsIG9uVXBkYXRlU2hhcGVzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgbGV0IG5ld1NoYXBlcyA9IFtdO1xuXG4gICAgaWYgKG11bHRpcGxlQ29ycmVjdCkge1xuICAgICAgbmV3U2hhcGVzID0gc2hhcGVzLm1hcChzaGFwZSA9PiB7XG4gICAgICAgIGlmIChzaGFwZS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICBzaGFwZS5jb3JyZWN0ID0gIXNoYXBlLmNvcnJlY3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2hhcGVzID0gc2hhcGVzLm1hcChzaGFwZSA9PiB7XG4gICAgICAgIHNoYXBlLmNvcnJlY3QgPSBzaGFwZS5pZCA9PT0gaWQ7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgb25VcGRhdGVTaGFwZXMoY2xvbmVEZWVwKG5ld1NoYXBlcykpO1xuICB9O1xuICAvLy8gZW5kIG9mIGhhbmRsaW5nIEhvdFNwb3RzIHNlY3Rpb25cblxuICAvLy8gc3RhcnQgb2YgaGFuZGxpbmcgSW1hZ2Ugc2VjdGlvblxuICBoYW5kbGVPbkltYWdlTG9hZCA9ICh7IHRhcmdldCB9KSA9PiB7XG4gICAgY29uc3QgeyBvblVwZGF0ZUltYWdlRGltZW5zaW9uIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHJlc2l6ZUhhbmRsZSA9IHRoaXMucmVzaXplO1xuICAgIGNvbnN0IGVsZW1lbnRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KTtcbiAgICBjb25zdCBuZXdIZWlnaHQgPSBwYXJzZUZsb2F0KGVsZW1lbnRTdHlsZS5oZWlnaHQpO1xuICAgIGNvbnN0IG5ld1dpZHRoID0gcGFyc2VGbG9hdChlbGVtZW50U3R5bGUud2lkdGgpO1xuICAgIGNvbnN0IGFzcGVjdFdpZHRoID0gbmV3V2lkdGggLyBJTUFHRV9NQVhfV0lEVEg7XG5cbiAgICBjb25zdCBkaW1lbnNpb25zID0gbmV3V2lkdGggPiBJTUFHRV9NQVhfV0lEVEggPyB7XG4gICAgICBoZWlnaHQ6IG5ld0hlaWdodCAvIGFzcGVjdFdpZHRoLFxuICAgICAgd2lkdGg6IElNQUdFX01BWF9XSURUSFxuICAgIH0gOiB7XG4gICAgICBoZWlnaHQ6IG5ld0hlaWdodCxcbiAgICAgIHdpZHRoOiBuZXdXaWR0aFxuICAgIH07XG5cbiAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgeyBkaW1lbnNpb25zIH0sXG4gICAgICAoKSA9PiBvblVwZGF0ZUltYWdlRGltZW5zaW9uKGRpbWVuc2lvbnMpKTtcblxuICAgIHJlc2l6ZUhhbmRsZS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTtcbiAgfTtcblxuICBpbml0aWFsaXNlUmVzaXplID0gKCkgPT4ge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLnN0YXJ0UmVzaXppbmcsIGZhbHNlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuc3RvcFJlc2l6aW5nLCBmYWxzZSk7XG4gIH07XG5cbiAgY2hlY2tJZlJlc2l6ZVZhbGlkKHgsIHkpIHtcbiAgICBjb25zdCB7IHNoYXBlcyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBsZXQgZHJhd2FibGUgPSB0cnVlO1xuXG4gICAgLy8gRG8gbm90IGFsbG93IHJlc2l6aW5nIG92ZXIgdGhlIGhvdHNwb3RzXG4gICAgc2hhcGVzICYmIHNoYXBlcy5mb3JFYWNoKHNoYXBlID0+IHtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gc2hhcGUueCArIHNoYXBlLndpZHRoICsgNTtcbiAgICAgIGNvbnN0IGJvdHRvbSA9IHNoYXBlLnkgKyBzaGFwZS5oZWlnaHQgKyA1O1xuICAgICAgaWYgKHggPD0gcmlnaHQgfHwgeSA8PSBib3R0b20pIHtcbiAgICAgICAgZHJhd2FibGUgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkcmF3YWJsZTtcbiAgfVxuXG4gIHN0YXJ0UmVzaXppbmcgPSAoZSkgPT4ge1xuICAgIGNvbnN0IGJvdW5kcyA9IGUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGJveCA9IHRoaXMuaW1hZ2U7XG4gICAgY29uc3Qge1xuICAgICAgZGlzYWJsZURyYWcsXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvRW5hYmxlZCxcbiAgICAgIGRpbWVuc2lvbnMsXG4gICAgICBzaGFwZXNcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIHRvZG8gcHJldmlvdXNseSB3ZSBoYWQgc3RhdGUuZGltZW5zaW9ucywgaXMgaXQgbmVlZGVkP1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdXBkYXRlSW1hZ2VEaW1lbnNpb25zKFxuICAgICAgZGltZW5zaW9ucyxcbiAgICAgIHtcbiAgICAgICAgd2lkdGg6IGUuY2xpZW50WCAtIGJvdW5kcy5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGUuY2xpZW50WSAtIGJvdW5kcy50b3BcbiAgICAgIH0sXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvRW5hYmxlZFxuICAgICk7XG5cbiAgICBjb25zdCByZXNpemVWYWxpZCA9IHRoaXMuY2hlY2tJZlJlc2l6ZVZhbGlkKHdpZHRoLCBoZWlnaHQpO1xuICAgIGNvbnN0IGhhc01pbmltdW1XaWR0aCA9IHdpZHRoID4gMTUwICYmIGhlaWdodCA+IDE1MDtcblxuICAgIGlmIChyZXNpemVWYWxpZCAmJiBoYXNNaW5pbXVtV2lkdGgpIHtcbiAgICAgIGJveC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgcmVzaXppbmc6IHRydWUsXG4gICAgICAgIGRpbWVuc2lvbnM6IHsgaGVpZ2h0OiBoZWlnaHQsIHdpZHRoOiB3aWR0aCB9LFxuICAgICAgICBzdGF0ZVNoYXBlczogZ2V0VXBkYXRlZFNoYXBlcyhkaW1lbnNpb25zLCB7IHdpZHRoLCBoZWlnaHQgfSwgc2hhcGVzKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGlzYWJsZURyYWcoKTtcbiAgfTtcblxuICBzdG9wUmVzaXppbmcgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBlbmFibGVEcmFnLCBvblVwZGF0ZUltYWdlRGltZW5zaW9uLCBvblVwZGF0ZVNoYXBlcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGRpbWVuc2lvbnMsIHN0YXRlU2hhcGVzIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgZW5hYmxlRHJhZygpO1xuXG4gICAgaWYgKHN0YXRlU2hhcGVzKSB7XG4gICAgICBvblVwZGF0ZVNoYXBlcyhjbG9uZURlZXAoc3RhdGVTaGFwZXMpKTtcbiAgICB9XG5cbiAgICBvblVwZGF0ZUltYWdlRGltZW5zaW9uKGRpbWVuc2lvbnMpO1xuXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuc3RhcnRSZXNpemluZywgZmFsc2UpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5zdG9wUmVzaXppbmcsIGZhbHNlKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoeyByZXNpemluZzogZmFsc2UsIHN0YXRlU2hhcGVzOiBmYWxzZSB9KTtcbiAgfTtcbiAgLy8vIGVuZCBvZiBoYW5kbGluZyBJbWFnZSBzZWN0aW9uXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzZXMsXG4gICAgICBpbWFnZVVybCxcbiAgICAgIGRpbWVuc2lvbnM6IHsgaGVpZ2h0LCB3aWR0aCB9LFxuICAgICAgaG90c3BvdENvbG9yLFxuICAgICAgb3V0bGluZUNvbG9yLFxuICAgICAgc2hhcGVzLFxuICAgICAgc3Ryb2tlV2lkdGhcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBzdGF0ZVNoYXBlcyxcbiAgICAgIGlzRHJhd2luZyxcbiAgICAgIGRpbWVuc2lvbnM6IHsgaGVpZ2h0OiBoZWlnaHRGcm9tU3RhdGUsIHdpZHRoOiB3aWR0aEZyb21TdGF0ZSB9XG4gICAgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qgc2hhcGVzVG9Vc2UgPSBzdGF0ZVNoYXBlcyB8fCBzaGFwZXM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuYmFzZX0+XG4gICAgICAgIHtpbWFnZVVybCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuaW1hZ2VDb250YWluZXJ9PlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW1hZ2V9XG4gICAgICAgICAgICAgIG9uTG9hZD17dGhpcy5oYW5kbGVPbkltYWdlTG9hZH1cbiAgICAgICAgICAgICAgcmVmPXtyZWYgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2UgPSByZWY7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHNyYz17aW1hZ2VVcmx9XG4gICAgICAgICAgICAgIHsuLi5oZWlnaHQgJiYgd2lkdGggPyB7IHN0eWxlOiB7IGhlaWdodCwgd2lkdGggfSB9IDoge319XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiByZWY9e3JlZiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVzaXplID0gcmVmO1xuICAgICAgICAgICAgfX0gY2xhc3NOYW1lPXtjbGFzc2VzLnJlc2l6ZX0vPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuXG4gICAgICAgIDxTdGFnZVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5zdGFnZX1cbiAgICAgICAgICBoZWlnaHQ9e2hlaWdodEZyb21TdGF0ZSB8fCBoZWlnaHR9XG4gICAgICAgICAgd2lkdGg9e3dpZHRoRnJvbVN0YXRlIHx8IHdpZHRofVxuICAgICAgICAgIG9uTW91c2VEb3duPXt0aGlzLmhhbmRsZU9uTW91c2VEb3duIH1cbiAgICAgICAgICBvbk1vdXNlVXA9e3RoaXMuaGFuZGxlT25Nb3VzZVVwIH1cbiAgICAgICAgICBvbk1vdXNlTW92ZT17dGhpcy5oYW5kbGVNb3VzZU1vdmUgfVxuICAgICAgICA+XG4gICAgICAgICAgPExheWVyPlxuICAgICAgICAgICAge3NoYXBlc1RvVXNlLm1hcCgoc2hhcGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IFRhZyA9IHNoYXBlLmdyb3VwID09PSAncG9seWdvbnMnID8gUG9seWdvbiA6IFJlY3RhbmdsZTtcblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUYWdcbiAgICAgICAgICAgICAgICAgIGNvcnJlY3Q9e3NoYXBlLmNvcnJlY3R9XG4gICAgICAgICAgICAgICAgICBpc0RyYXdpbmc9e2lzRHJhd2luZ31cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17c2hhcGUuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgaG90c3BvdENvbG9yPXtob3RzcG90Q29sb3J9XG4gICAgICAgICAgICAgICAgICBpZD17c2hhcGUuaWR9XG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5oYW5kbGVPblNldEFzQ29ycmVjdChzaGFwZSl9XG4gICAgICAgICAgICAgICAgICBvbkRyYWdFbmQ9e3RoaXMuaGFuZGxlT25EcmFnRW5kfVxuICAgICAgICAgICAgICAgICAgb3V0bGluZUNvbG9yPXtvdXRsaW5lQ29sb3J9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17c2hhcGUud2lkdGh9XG4gICAgICAgICAgICAgICAgICB4PXtzaGFwZS54fVxuICAgICAgICAgICAgICAgICAgeT17c2hhcGUueX1cbiAgICAgICAgICAgICAgICAgIHBvaW50cz17c2hhcGUucG9pbnRzfVxuICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9e3N0cm9rZVdpZHRofVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L0xheWVyPlxuICAgICAgICA8L1N0YWdlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSAoKSA9PiAoe1xuICBiYXNlOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBpbWFnZUNvbnRhaW5lcjoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnXG4gIH0sXG4gIHJlc2l6ZToge1xuICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjNzI3MjcyJyxcbiAgICBib3JkZXJSaWdodDogJzFweCBzb2xpZCAjNzI3MjcyJyxcbiAgICBib3R0b206ICctMTBweCcsXG4gICAgY3Vyc29yOiAnc2UtcmVzaXplJyxcbiAgICBoZWlnaHQ6ICcxMHB4JyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICByaWdodDogJy0xMHB4JyxcbiAgICB3aWR0aDogJzEwcHgnXG4gIH0sXG4gIHN0YWdlOiB7XG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgfVxufSk7XG5cbkRyYXdhYmxlLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBkaXNhYmxlRHJhZzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGltZW5zaW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBlbmFibGVEcmFnOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpbWFnZVVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBob3RzcG90Q29sb3I6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbXVsdGlwbGVDb3JyZWN0OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvblVwZGF0ZUltYWdlRGltZW5zaW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblVwZGF0ZVNoYXBlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3V0bGluZUNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNoYXBlczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHN0cm9rZVdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvRW5hYmxlZDogUHJvcFR5cGVzLmJvb2xcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShEcmF3YWJsZSk7XG4iXX0=
|