@pie-element/categorize 13.2.0-beta.0 → 13.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -10
- package/configure/CHANGELOG.md +65 -8
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +31 -4
- package/controller/package.json +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/package.json +6 -6
- package/configure/lib/__tests__/main.test.js +0 -100
- package/configure/lib/__tests__/utils.js +0 -39
- package/configure/lib/design/__tests__/builder.test.js +0 -34
- package/configure/lib/design/__tests__/buttons.test.js +0 -36
- package/configure/lib/design/__tests__/header.test.js +0 -37
- package/configure/lib/design/__tests__/index.test.js +0 -269
- package/configure/lib/design/__tests__/input-header.test.js +0 -41
- package/configure/lib/design/categories/__tests__/alternateResponses.test.js +0 -93
- package/configure/lib/design/categories/__tests__/category.test.js +0 -65
- package/configure/lib/design/categories/__tests__/choice-preview.test.js +0 -52
- package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +0 -63
- package/configure/lib/design/categories/__tests__/index.test.js +0 -91
- package/configure/lib/design/choices/__tests__/choice.test.js +0 -62
- package/configure/lib/design/choices/__tests__/config.test.js +0 -66
- package/configure/lib/design/choices/__tests__/index.test.js +0 -70
- package/controller/lib/__tests__/index.test.js +0 -526
- package/docs/demo/.pie/.configure/package.json +0 -10
- package/docs/demo/.pie/.configure/yarn.lock +0 -2122
- package/docs/demo/.pie/.controllers/package.json +0 -10
- package/docs/demo/.pie/.controllers/yarn.lock +0 -110
- package/docs/demo/.pie/info.entry.js +0 -89
- package/docs/demo/.pie/info.webpack.config.js +0 -119
- package/docs/demo/.pie/package.json +0 -10
- package/docs/demo/.pie/yarn.lock +0 -2137
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/index.test.js +0 -197
- package/lib/categorize/__tests__/categories.test.js +0 -138
- package/lib/categorize/__tests__/category.test.js +0 -137
- package/lib/categorize/__tests__/choice.test.js +0 -88
- package/lib/categorize/__tests__/choices.test.js +0 -118
- package/lib/categorize/__tests__/droppable-placeholder.test.js +0 -96
- package/lib/categorize/__tests__/grid-content.test.js +0 -48
- package/lib/categorize/__tests__/index.test.js +0 -250
|
@@ -1,526 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _index = require("../index");
|
|
5
|
-
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
jest.mock('@pie-lib/categorize', () => ({
|
|
7
|
-
// used this algorithm in order to control the value of correct; check `fakeCorrect` below
|
|
8
|
-
buildState: (mockedCategories, choices, answers) => ({
|
|
9
|
-
categories: mockedCategories,
|
|
10
|
-
correct: mockedCategories === answers
|
|
11
|
-
})
|
|
12
|
-
}));
|
|
13
|
-
jest.mock('@pie-lib/feedback', () => ({
|
|
14
|
-
getFeedbackForCorrectness: () => new Promise(resolve => resolve('This is getFeedbackForCorrectness response.'))
|
|
15
|
-
}));
|
|
16
|
-
jest.mock('@pie-lib/controller-utils', () => ({
|
|
17
|
-
...jest.requireActual('@pie-lib/controller-utils'),
|
|
18
|
-
getShuffledChoices: (choices, session, updateSession, key) => {
|
|
19
|
-
const currentShuffled = ((session || {}).shuffledValues || []).filter(v => v);
|
|
20
|
-
if (session && !currentShuffled.length && updateSession && typeof updateSession === 'function') {
|
|
21
|
-
updateSession();
|
|
22
|
-
}
|
|
23
|
-
return choices;
|
|
24
|
-
},
|
|
25
|
-
partialScoring: {
|
|
26
|
-
enabled: (config, env) => {
|
|
27
|
-
config = config || {};
|
|
28
|
-
env = env || {};
|
|
29
|
-
if (config.partialScoring === false) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
if (env.partialScoring === false) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}));
|
|
39
|
-
const categories = [{
|
|
40
|
-
id: '1',
|
|
41
|
-
label: 'One'
|
|
42
|
-
}];
|
|
43
|
-
const choices = [{
|
|
44
|
-
id: '1',
|
|
45
|
-
content: 'Foo'
|
|
46
|
-
}, {
|
|
47
|
-
id: '2',
|
|
48
|
-
content: 'Bar'
|
|
49
|
-
}];
|
|
50
|
-
const category10 = {
|
|
51
|
-
id: '10',
|
|
52
|
-
label: 'SUM=10'
|
|
53
|
-
};
|
|
54
|
-
const category11 = {
|
|
55
|
-
id: '11',
|
|
56
|
-
label: 'SUM=11'
|
|
57
|
-
};
|
|
58
|
-
const choice3 = {
|
|
59
|
-
id: '3',
|
|
60
|
-
content: '3'
|
|
61
|
-
};
|
|
62
|
-
const choice4 = {
|
|
63
|
-
id: '4',
|
|
64
|
-
content: '4'
|
|
65
|
-
};
|
|
66
|
-
const choice5 = {
|
|
67
|
-
id: '5',
|
|
68
|
-
content: '5'
|
|
69
|
-
};
|
|
70
|
-
const choice6 = {
|
|
71
|
-
id: '6',
|
|
72
|
-
content: '6'
|
|
73
|
-
};
|
|
74
|
-
const choice7 = {
|
|
75
|
-
id: '7',
|
|
76
|
-
content: '7'
|
|
77
|
-
};
|
|
78
|
-
const scoringCorrectResponseNoAlternates = [{
|
|
79
|
-
category: '10',
|
|
80
|
-
choices: ['3', '7']
|
|
81
|
-
}, {
|
|
82
|
-
category: '11',
|
|
83
|
-
choices: ['4', '7']
|
|
84
|
-
}];
|
|
85
|
-
const scoringCorrectResponseWithAlternates = [{
|
|
86
|
-
category: '10',
|
|
87
|
-
choices: ['3', '7'],
|
|
88
|
-
alternateResponses: [['4', '6']]
|
|
89
|
-
}, {
|
|
90
|
-
category: '11',
|
|
91
|
-
choices: ['4', '7'],
|
|
92
|
-
alternateResponses: [['5', '6']]
|
|
93
|
-
}];
|
|
94
|
-
const makeQuestion = extras => ({
|
|
95
|
-
categories,
|
|
96
|
-
choices,
|
|
97
|
-
correctResponse: [{
|
|
98
|
-
category: '1',
|
|
99
|
-
choices: ['1', '2']
|
|
100
|
-
}],
|
|
101
|
-
lockChoiceOrder: true,
|
|
102
|
-
...extras
|
|
103
|
-
});
|
|
104
|
-
describe('controller', () => {
|
|
105
|
-
let question = makeQuestion();
|
|
106
|
-
describe('model', () => {
|
|
107
|
-
it('returns model', async () => {
|
|
108
|
-
const result = await (0, _index.model)(question, {}, {
|
|
109
|
-
mode: 'gather'
|
|
110
|
-
}, jest.fn());
|
|
111
|
-
expect(result).toMatchObject({
|
|
112
|
-
...question,
|
|
113
|
-
correctResponse: undefined
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
it('returns model in evaluate mode', async () => {
|
|
117
|
-
const result = await (0, _index.model)(question, {}, {
|
|
118
|
-
mode: 'evaluate'
|
|
119
|
-
}, jest.fn());
|
|
120
|
-
expect(result).toMatchObject({
|
|
121
|
-
...question,
|
|
122
|
-
correctness: 'incorrect'
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
it('feedback: returns proper feedback in evaluate mode', async () => {
|
|
126
|
-
const result = await (0, _index.model)({
|
|
127
|
-
...question,
|
|
128
|
-
feedbackEnabled: true
|
|
129
|
-
}, {}, {
|
|
130
|
-
mode: 'evaluate'
|
|
131
|
-
}, jest.fn());
|
|
132
|
-
expect(result.feedback).toEqual('This is getFeedbackForCorrectness response.');
|
|
133
|
-
});
|
|
134
|
-
it('feedback: returns proper feedback if feedback is not enabled', async () => {
|
|
135
|
-
const result = await (0, _index.model)({
|
|
136
|
-
...question,
|
|
137
|
-
feedbackEnabled: false
|
|
138
|
-
}, {}, {
|
|
139
|
-
mode: 'evaluate'
|
|
140
|
-
}, jest.fn());
|
|
141
|
-
expect(result.feedback).toEqual(undefined);
|
|
142
|
-
});
|
|
143
|
-
it('feedback: returns proper feedback in gather mode', async () => {
|
|
144
|
-
const result = await (0, _index.model)(question, {}, {
|
|
145
|
-
mode: 'gather'
|
|
146
|
-
}, jest.fn());
|
|
147
|
-
expect(result.feedback).toEqual(undefined);
|
|
148
|
-
});
|
|
149
|
-
describe('disabled', () => {
|
|
150
|
-
it('disabled false for gather', async () => {
|
|
151
|
-
const result = await (0, _index.model)(question, {}, {
|
|
152
|
-
mode: 'gather'
|
|
153
|
-
}, jest.fn());
|
|
154
|
-
expect(result).toMatchObject({
|
|
155
|
-
disabled: false
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
it('disabled true for view', async () => {
|
|
159
|
-
const result = await (0, _index.model)(question, {}, {
|
|
160
|
-
mode: 'view'
|
|
161
|
-
}, jest.fn());
|
|
162
|
-
expect(result).toMatchObject({
|
|
163
|
-
disabled: true
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
it('disabled true for evaluate', async () => {
|
|
167
|
-
const result = await (0, _index.model)(question, {}, {
|
|
168
|
-
mode: 'evaluate'
|
|
169
|
-
}, jest.fn());
|
|
170
|
-
expect(result).toMatchObject({
|
|
171
|
-
disabled: true
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
it('adds correctResponse for evaluate', async () => {
|
|
176
|
-
const result = await (0, _index.model)(question, {}, {
|
|
177
|
-
mode: 'evaluate'
|
|
178
|
-
}, jest.fn());
|
|
179
|
-
expect(result).toMatchObject({
|
|
180
|
-
correctResponse: [{
|
|
181
|
-
category: '1',
|
|
182
|
-
choices: ['1', '2']
|
|
183
|
-
}]
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
it('adds default config', async () => {
|
|
187
|
-
const result = await (0, _index.model)(question, {}, {
|
|
188
|
-
mode: 'gather'
|
|
189
|
-
}, jest.fn());
|
|
190
|
-
expect(result).toMatchObject({
|
|
191
|
-
categoriesPerRow: 2,
|
|
192
|
-
choicesLabel: ''
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
describe('model - with updateSession', () => {
|
|
196
|
-
it('calls updateSession', async () => {
|
|
197
|
-
const session = {
|
|
198
|
-
id: '1',
|
|
199
|
-
element: 'categorize-element'
|
|
200
|
-
};
|
|
201
|
-
const env = {
|
|
202
|
-
mode: 'gather'
|
|
203
|
-
};
|
|
204
|
-
const updateSession = jest.fn().mockResolvedValue();
|
|
205
|
-
await (0, _index.model)({
|
|
206
|
-
id: '1',
|
|
207
|
-
element: 'categorize-element',
|
|
208
|
-
...question,
|
|
209
|
-
lockChoiceOrder: false
|
|
210
|
-
}, session, env, updateSession);
|
|
211
|
-
expect(updateSession).toHaveBeenCalled();
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
describe('correct response', () => {
|
|
216
|
-
it('returns correct response if env is correct', async () => {
|
|
217
|
-
const sess = await (0, _index.createCorrectResponseSession)(question, {
|
|
218
|
-
mode: 'gather',
|
|
219
|
-
role: 'instructor'
|
|
220
|
-
});
|
|
221
|
-
expect(sess).toEqual({
|
|
222
|
-
answers: [{
|
|
223
|
-
category: '1',
|
|
224
|
-
choices: ['1', '2']
|
|
225
|
-
}],
|
|
226
|
-
id: 1
|
|
227
|
-
});
|
|
228
|
-
});
|
|
229
|
-
it('returns null env is student', async () => {
|
|
230
|
-
const noResult = await (0, _index.createCorrectResponseSession)(question, {
|
|
231
|
-
mode: 'gather',
|
|
232
|
-
role: 'student'
|
|
233
|
-
});
|
|
234
|
-
expect(noResult).toBeNull();
|
|
235
|
-
});
|
|
236
|
-
});
|
|
237
|
-
const mC1 = [{
|
|
238
|
-
id: '10',
|
|
239
|
-
label: 'SUM=10',
|
|
240
|
-
correct: true,
|
|
241
|
-
choices: [{
|
|
242
|
-
...choice3,
|
|
243
|
-
correct: true
|
|
244
|
-
}, {
|
|
245
|
-
...choice7,
|
|
246
|
-
correct: true
|
|
247
|
-
}]
|
|
248
|
-
}, {
|
|
249
|
-
id: '11',
|
|
250
|
-
label: 'SUM=11',
|
|
251
|
-
correct: false,
|
|
252
|
-
choices: [{
|
|
253
|
-
...choice3,
|
|
254
|
-
correct: true
|
|
255
|
-
}, {
|
|
256
|
-
...choice7,
|
|
257
|
-
correct: false
|
|
258
|
-
}]
|
|
259
|
-
}];
|
|
260
|
-
const mC2 = [{
|
|
261
|
-
id: '10',
|
|
262
|
-
label: 'SUM=10',
|
|
263
|
-
correct: true,
|
|
264
|
-
choices: [{
|
|
265
|
-
...choice3,
|
|
266
|
-
correct: true
|
|
267
|
-
}, {
|
|
268
|
-
...choice7,
|
|
269
|
-
correct: true
|
|
270
|
-
}]
|
|
271
|
-
}, {
|
|
272
|
-
id: '11',
|
|
273
|
-
label: 'SUM=11',
|
|
274
|
-
correct: true,
|
|
275
|
-
choices: [{
|
|
276
|
-
...choice3,
|
|
277
|
-
correct: true
|
|
278
|
-
}, {
|
|
279
|
-
...choice7,
|
|
280
|
-
correct: true
|
|
281
|
-
}]
|
|
282
|
-
}];
|
|
283
|
-
const mC3 = [{
|
|
284
|
-
id: '10',
|
|
285
|
-
label: 'SUM=10',
|
|
286
|
-
correct: true,
|
|
287
|
-
choices: [{
|
|
288
|
-
...choice3,
|
|
289
|
-
correct: true
|
|
290
|
-
}, {
|
|
291
|
-
...choice3,
|
|
292
|
-
correct: false
|
|
293
|
-
}, {
|
|
294
|
-
...choice7,
|
|
295
|
-
correct: true
|
|
296
|
-
}]
|
|
297
|
-
}, {
|
|
298
|
-
id: '11',
|
|
299
|
-
label: 'SUM=11',
|
|
300
|
-
correct: true,
|
|
301
|
-
choices: [{
|
|
302
|
-
...choice3,
|
|
303
|
-
correct: true
|
|
304
|
-
}, {
|
|
305
|
-
...choice7,
|
|
306
|
-
correct: true
|
|
307
|
-
}]
|
|
308
|
-
}];
|
|
309
|
-
const mC4 = [{
|
|
310
|
-
id: '10',
|
|
311
|
-
label: 'SUM=10',
|
|
312
|
-
correct: true,
|
|
313
|
-
choices: [{
|
|
314
|
-
...choice3,
|
|
315
|
-
correct: true
|
|
316
|
-
}, {
|
|
317
|
-
...choice3,
|
|
318
|
-
correct: false
|
|
319
|
-
}, {
|
|
320
|
-
...choice7,
|
|
321
|
-
correct: true
|
|
322
|
-
}]
|
|
323
|
-
}, {
|
|
324
|
-
id: '11',
|
|
325
|
-
label: 'SUM=11',
|
|
326
|
-
correct: true,
|
|
327
|
-
choices: [{
|
|
328
|
-
...choice3,
|
|
329
|
-
correct: true
|
|
330
|
-
}, {
|
|
331
|
-
...choice7,
|
|
332
|
-
correct: true
|
|
333
|
-
}, {
|
|
334
|
-
...choice7,
|
|
335
|
-
correct: false
|
|
336
|
-
}]
|
|
337
|
-
}];
|
|
338
|
-
const mC5 = [{
|
|
339
|
-
id: '10',
|
|
340
|
-
label: 'SUM=10',
|
|
341
|
-
correct: false,
|
|
342
|
-
choices: [{
|
|
343
|
-
...choice3,
|
|
344
|
-
correct: false
|
|
345
|
-
}, {
|
|
346
|
-
...choice3,
|
|
347
|
-
correct: false
|
|
348
|
-
}, {
|
|
349
|
-
...choice7,
|
|
350
|
-
correct: false
|
|
351
|
-
}]
|
|
352
|
-
}, {
|
|
353
|
-
id: '11',
|
|
354
|
-
label: 'SUM=11',
|
|
355
|
-
correct: false,
|
|
356
|
-
choices: [{
|
|
357
|
-
...choice3,
|
|
358
|
-
correct: false
|
|
359
|
-
}, {
|
|
360
|
-
...choice7,
|
|
361
|
-
correct: false
|
|
362
|
-
}, {
|
|
363
|
-
...choice7,
|
|
364
|
-
correct: false
|
|
365
|
-
}]
|
|
366
|
-
}];
|
|
367
|
-
describe('getCorrectness', () => {
|
|
368
|
-
it('mode: gather -> resolves undefined', () => {
|
|
369
|
-
expect((0, _index.getCorrectness)(question, {}, {
|
|
370
|
-
mode: 'gather'
|
|
371
|
-
})).resolves.toEqual(undefined);
|
|
372
|
-
});
|
|
373
|
-
it('mode: view -> resolves undefined', () => {
|
|
374
|
-
expect((0, _index.getCorrectness)(question, {}, {
|
|
375
|
-
mode: 'view'
|
|
376
|
-
})).resolves.toEqual(undefined);
|
|
377
|
-
});
|
|
378
|
-
const sessionCorrect = {
|
|
379
|
-
answers: mC2
|
|
380
|
-
};
|
|
381
|
-
const sessionPartially = {
|
|
382
|
-
answers: mC1
|
|
383
|
-
};
|
|
384
|
-
it.each`
|
|
385
|
-
session | categories | expected
|
|
386
|
-
${undefined} | ${mC1} | ${'incorrect'}
|
|
387
|
-
${null} | ${mC1} | ${'incorrect'}
|
|
388
|
-
${{}} | ${mC1} | ${'incorrect'}
|
|
389
|
-
${sessionCorrect} | ${mC2} | ${'correct'}
|
|
390
|
-
${sessionPartially} | ${mC1} | ${'partially-correct'}
|
|
391
|
-
`('mode: evaluate -> resolves $expected if session is $session', async ({
|
|
392
|
-
session,
|
|
393
|
-
categories,
|
|
394
|
-
expected
|
|
395
|
-
}) => {
|
|
396
|
-
const res = await (0, _index.getCorrectness)({
|
|
397
|
-
...question,
|
|
398
|
-
partialScoring: true,
|
|
399
|
-
categories,
|
|
400
|
-
correctResponse: scoringCorrectResponseNoAlternates
|
|
401
|
-
}, session, {
|
|
402
|
-
mode: 'evaluate'
|
|
403
|
-
});
|
|
404
|
-
expect(res).toEqual(expected);
|
|
405
|
-
});
|
|
406
|
-
});
|
|
407
|
-
describe('getTotalScore', () => {
|
|
408
|
-
it.each`
|
|
409
|
-
partialScoring | mockedCategories | fakeCorrect | expected
|
|
410
|
-
${true} | ${mC1} | ${false} | ${0}
|
|
411
|
-
${false} | ${mC1} | ${false} | ${0}
|
|
412
|
-
${true} | ${mC1} | ${true} | ${1}
|
|
413
|
-
${false} | ${mC1} | ${true} | ${1}
|
|
414
|
-
`('With Alternates, partialScoring = $partialScoring -> dychotomous: $expected', ({
|
|
415
|
-
partialScoring,
|
|
416
|
-
mockedCategories,
|
|
417
|
-
fakeCorrect,
|
|
418
|
-
expected
|
|
419
|
-
}) => {
|
|
420
|
-
const totalScore = (0, _index.getTotalScore)({
|
|
421
|
-
...question,
|
|
422
|
-
partialScoring,
|
|
423
|
-
categories: mockedCategories,
|
|
424
|
-
correctResponse: scoringCorrectResponseWithAlternates
|
|
425
|
-
}, {
|
|
426
|
-
answers: fakeCorrect ? mockedCategories : []
|
|
427
|
-
}, {});
|
|
428
|
-
expect(totalScore).toEqual(expected);
|
|
429
|
-
});
|
|
430
|
-
it.each`
|
|
431
|
-
partialScoring | mockedCategories | expected
|
|
432
|
-
${true} | ${mC1} | ${0.75}
|
|
433
|
-
${false} | ${mC1} | ${0}
|
|
434
|
-
${true} | ${mC2} | ${1}
|
|
435
|
-
${false} | ${mC2} | ${0}
|
|
436
|
-
${true} | ${mC3} | ${0.75}
|
|
437
|
-
${true} | ${mC4} | ${0.5}
|
|
438
|
-
${true} | ${mC5} | ${0}
|
|
439
|
-
`('Without Alternates, partialScoring = $partialScoring -> $expected', ({
|
|
440
|
-
partialScoring,
|
|
441
|
-
mockedCategories,
|
|
442
|
-
expected
|
|
443
|
-
}) => {
|
|
444
|
-
const totalScore = (0, _index.getTotalScore)({
|
|
445
|
-
...question,
|
|
446
|
-
partialScoring,
|
|
447
|
-
categories: mockedCategories,
|
|
448
|
-
correctResponse: scoringCorrectResponseNoAlternates
|
|
449
|
-
}, {
|
|
450
|
-
answers: []
|
|
451
|
-
}, {});
|
|
452
|
-
expect(totalScore).toEqual(expected);
|
|
453
|
-
});
|
|
454
|
-
});
|
|
455
|
-
describe('getPartialScore', () => {
|
|
456
|
-
it.each`
|
|
457
|
-
mockedCategories | expected
|
|
458
|
-
${mC1} | ${0.75}
|
|
459
|
-
${mC2} | ${1}
|
|
460
|
-
${mC3} | ${0.75}
|
|
461
|
-
${mC4} | ${0.5}
|
|
462
|
-
${mC5} | ${0}
|
|
463
|
-
`('Without Alternates, partialScoring = $partialScoring -> $expected', ({
|
|
464
|
-
mockedCategories,
|
|
465
|
-
expected
|
|
466
|
-
}) => {
|
|
467
|
-
const totalScore = (0, _index.getPartialScore)(scoringCorrectResponseNoAlternates, mockedCategories);
|
|
468
|
-
expect(totalScore).toEqual(expected);
|
|
469
|
-
});
|
|
470
|
-
});
|
|
471
|
-
describe('outcome', () => {
|
|
472
|
-
describe('mode: gather', () => {
|
|
473
|
-
it('rejects with an error for gather', () => {
|
|
474
|
-
expect((0, _index.outcome)(question, {}, {
|
|
475
|
-
mode: 'gather'
|
|
476
|
-
})).rejects.toEqual(expect.any(Error));
|
|
477
|
-
});
|
|
478
|
-
});
|
|
479
|
-
describe('mode: view', () => {
|
|
480
|
-
it('rejects with an error for gather', () => {
|
|
481
|
-
expect((0, _index.outcome)(question, {}, {
|
|
482
|
-
mode: 'view'
|
|
483
|
-
})).rejects.toEqual(expect.any(Error));
|
|
484
|
-
});
|
|
485
|
-
});
|
|
486
|
-
describe('mode: evaluate', () => {
|
|
487
|
-
it.each`
|
|
488
|
-
partialScoring | envPartialScoring | expected
|
|
489
|
-
${true} | ${undefined} | ${{
|
|
490
|
-
empty: false,
|
|
491
|
-
score: 0.75
|
|
492
|
-
}}
|
|
493
|
-
${false} | ${undefined} | ${{
|
|
494
|
-
empty: false,
|
|
495
|
-
score: 1
|
|
496
|
-
}}
|
|
497
|
-
${true} | ${false} | ${{
|
|
498
|
-
empty: false,
|
|
499
|
-
score: 1
|
|
500
|
-
}}
|
|
501
|
-
${false} | ${true} | ${{
|
|
502
|
-
empty: false,
|
|
503
|
-
score: 1
|
|
504
|
-
}}
|
|
505
|
-
`('element.partialScoring = $partialScoring, env.partialScoring = $envPartialScoring', async ({
|
|
506
|
-
partialScoring,
|
|
507
|
-
envPartialScoring,
|
|
508
|
-
expected
|
|
509
|
-
}) => {
|
|
510
|
-
const result = await (0, _index.outcome)({
|
|
511
|
-
...question,
|
|
512
|
-
partialScoring,
|
|
513
|
-
correctResponse: scoringCorrectResponseNoAlternates,
|
|
514
|
-
categories: mC1
|
|
515
|
-
}, {
|
|
516
|
-
answers: mC1
|
|
517
|
-
}, {
|
|
518
|
-
mode: 'evaluate',
|
|
519
|
-
partialScoring: envPartialScoring
|
|
520
|
-
});
|
|
521
|
-
expect(result).toEqual(expect.objectContaining(expected));
|
|
522
|
-
});
|
|
523
|
-
});
|
|
524
|
-
});
|
|
525
|
-
});
|
|
526
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsImplc3QiLCJtb2NrIiwiYnVpbGRTdGF0ZSIsIm1vY2tlZENhdGVnb3JpZXMiLCJjaG9pY2VzIiwiYW5zd2VycyIsImNhdGVnb3JpZXMiLCJjb3JyZWN0IiwiZ2V0RmVlZGJhY2tGb3JDb3JyZWN0bmVzcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVxdWlyZUFjdHVhbCIsImdldFNodWZmbGVkQ2hvaWNlcyIsInNlc3Npb24iLCJ1cGRhdGVTZXNzaW9uIiwia2V5IiwiY3VycmVudFNodWZmbGVkIiwic2h1ZmZsZWRWYWx1ZXMiLCJmaWx0ZXIiLCJ2IiwibGVuZ3RoIiwicGFydGlhbFNjb3JpbmciLCJlbmFibGVkIiwiY29uZmlnIiwiZW52IiwiaWQiLCJsYWJlbCIsImNvbnRlbnQiLCJjYXRlZ29yeTEwIiwiY2F0ZWdvcnkxMSIsImNob2ljZTMiLCJjaG9pY2U0IiwiY2hvaWNlNSIsImNob2ljZTYiLCJjaG9pY2U3Iiwic2NvcmluZ0NvcnJlY3RSZXNwb25zZU5vQWx0ZXJuYXRlcyIsImNhdGVnb3J5Iiwic2NvcmluZ0NvcnJlY3RSZXNwb25zZVdpdGhBbHRlcm5hdGVzIiwiYWx0ZXJuYXRlUmVzcG9uc2VzIiwibWFrZVF1ZXN0aW9uIiwiZXh0cmFzIiwiY29ycmVjdFJlc3BvbnNlIiwibG9ja0Nob2ljZU9yZGVyIiwiZGVzY3JpYmUiLCJxdWVzdGlvbiIsIml0IiwicmVzdWx0IiwibW9kZWwiLCJtb2RlIiwiZm4iLCJleHBlY3QiLCJ0b01hdGNoT2JqZWN0IiwidW5kZWZpbmVkIiwiY29ycmVjdG5lc3MiLCJmZWVkYmFja0VuYWJsZWQiLCJmZWVkYmFjayIsInRvRXF1YWwiLCJkaXNhYmxlZCIsImNhdGVnb3JpZXNQZXJSb3ciLCJjaG9pY2VzTGFiZWwiLCJlbGVtZW50IiwibW9ja1Jlc29sdmVkVmFsdWUiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwic2VzcyIsImNyZWF0ZUNvcnJlY3RSZXNwb25zZVNlc3Npb24iLCJyb2xlIiwibm9SZXN1bHQiLCJ0b0JlTnVsbCIsIm1DMSIsIm1DMiIsIm1DMyIsIm1DNCIsIm1DNSIsImdldENvcnJlY3RuZXNzIiwicmVzb2x2ZXMiLCJzZXNzaW9uQ29ycmVjdCIsInNlc3Npb25QYXJ0aWFsbHkiLCJlYWNoIiwiZXhwZWN0ZWQiLCJyZXMiLCJmYWtlQ29ycmVjdCIsInRvdGFsU2NvcmUiLCJnZXRUb3RhbFNjb3JlIiwiZ2V0UGFydGlhbFNjb3JlIiwib3V0Y29tZSIsInJlamVjdHMiLCJhbnkiLCJFcnJvciIsImVtcHR5Iiwic2NvcmUiLCJlbnZQYXJ0aWFsU2NvcmluZyIsIm9iamVjdENvbnRhaW5pbmciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2luZGV4LnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbW9kZWwsIG91dGNvbWUsIGdldENvcnJlY3RuZXNzLCBjcmVhdGVDb3JyZWN0UmVzcG9uc2VTZXNzaW9uLCBnZXRUb3RhbFNjb3JlLCBnZXRQYXJ0aWFsU2NvcmUgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NhdGVnb3JpemUnLCAoKSA9PiAoe1xuICAvLyB1c2VkIHRoaXMgYWxnb3JpdGhtIGluIG9yZGVyIHRvIGNvbnRyb2wgdGhlIHZhbHVlIG9mIGNvcnJlY3Q7IGNoZWNrIGBmYWtlQ29ycmVjdGAgYmVsb3dcbiAgYnVpbGRTdGF0ZTogKG1vY2tlZENhdGVnb3JpZXMsIGNob2ljZXMsIGFuc3dlcnMpID0+ICh7XG4gICAgY2F0ZWdvcmllczogbW9ja2VkQ2F0ZWdvcmllcyxcbiAgICBjb3JyZWN0OiBtb2NrZWRDYXRlZ29yaWVzID09PSBhbnN3ZXJzLFxuICB9KSxcbn0pKTtcbmplc3QubW9jaygnQHBpZS1saWIvZmVlZGJhY2snLCAoKSA9PiAoe1xuICBnZXRGZWVkYmFja0ZvckNvcnJlY3RuZXNzOiAoKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gcmVzb2x2ZSgnVGhpcyBpcyBnZXRGZWVkYmFja0ZvckNvcnJlY3RuZXNzIHJlc3BvbnNlLicpKSxcbn0pKTtcbmplc3QubW9jaygnQHBpZS1saWIvY29udHJvbGxlci11dGlscycsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbCgnQHBpZS1saWIvY29udHJvbGxlci11dGlscycpLFxuICBnZXRTaHVmZmxlZENob2ljZXM6IChjaG9pY2VzLCBzZXNzaW9uLCB1cGRhdGVTZXNzaW9uLCBrZXkpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U2h1ZmZsZWQgPSAoKHNlc3Npb24gfHwge30pLnNodWZmbGVkVmFsdWVzIHx8IFtdKS5maWx0ZXIoKHYpID0+IHYpO1xuXG4gICAgaWYgKHNlc3Npb24gJiYgIWN1cnJlbnRTaHVmZmxlZC5sZW5ndGggJiYgdXBkYXRlU2Vzc2lvbiAmJiB0eXBlb2YgdXBkYXRlU2Vzc2lvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdXBkYXRlU2Vzc2lvbigpO1xuICAgIH1cblxuICAgIHJldHVybiBjaG9pY2VzO1xuICB9LFxuICBwYXJ0aWFsU2NvcmluZzoge1xuICAgIGVuYWJsZWQ6IChjb25maWcsIGVudikgPT4ge1xuICAgICAgY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgICAgZW52ID0gZW52IHx8IHt9O1xuXG4gICAgICBpZiAoY29uZmlnLnBhcnRpYWxTY29yaW5nID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbnYucGFydGlhbFNjb3JpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgfSxcbn0pKTtcblxuY29uc3QgY2F0ZWdvcmllcyA9IFt7IGlkOiAnMScsIGxhYmVsOiAnT25lJyB9XTtcbmNvbnN0IGNob2ljZXMgPSBbXG4gIHsgaWQ6ICcxJywgY29udGVudDogJ0ZvbycgfSxcbiAgeyBpZDogJzInLCBjb250ZW50OiAnQmFyJyB9LFxuXTtcblxuY29uc3QgY2F0ZWdvcnkxMCA9IHsgaWQ6ICcxMCcsIGxhYmVsOiAnU1VNPTEwJyB9O1xuY29uc3QgY2F0ZWdvcnkxMSA9IHsgaWQ6ICcxMScsIGxhYmVsOiAnU1VNPTExJyB9O1xuXG5jb25zdCBjaG9pY2UzID0geyBpZDogJzMnLCBjb250ZW50OiAnMycgfTtcbmNvbnN0IGNob2ljZTQgPSB7IGlkOiAnNCcsIGNvbnRlbnQ6ICc0JyB9O1xuY29uc3QgY2hvaWNlNSA9IHsgaWQ6ICc1JywgY29udGVudDogJzUnIH07XG5jb25zdCBjaG9pY2U2ID0geyBpZDogJzYnLCBjb250ZW50OiAnNicgfTtcbmNvbnN0IGNob2ljZTcgPSB7IGlkOiAnNycsIGNvbnRlbnQ6ICc3JyB9O1xuY29uc3Qgc2NvcmluZ0NvcnJlY3RSZXNwb25zZU5vQWx0ZXJuYXRlcyA9IFtcbiAgeyBjYXRlZ29yeTogJzEwJywgY2hvaWNlczogWyczJywgJzcnXSB9LFxuICB7IGNhdGVnb3J5OiAnMTEnLCBjaG9pY2VzOiBbJzQnLCAnNyddIH0sXG5dO1xuY29uc3Qgc2NvcmluZ0NvcnJlY3RSZXNwb25zZVdpdGhBbHRlcm5hdGVzID0gW1xuICB7IGNhdGVnb3J5OiAnMTAnLCBjaG9pY2VzOiBbJzMnLCAnNyddLCBhbHRlcm5hdGVSZXNwb25zZXM6IFtbJzQnLCAnNiddXSB9LFxuICB7IGNhdGVnb3J5OiAnMTEnLCBjaG9pY2VzOiBbJzQnLCAnNyddLCBhbHRlcm5hdGVSZXNwb25zZXM6IFtbJzUnLCAnNiddXSB9LFxuXTtcblxuY29uc3QgbWFrZVF1ZXN0aW9uID0gKGV4dHJhcykgPT4gKHtcbiAgY2F0ZWdvcmllcyxcbiAgY2hvaWNlcyxcbiAgY29ycmVjdFJlc3BvbnNlOiBbeyBjYXRlZ29yeTogJzEnLCBjaG9pY2VzOiBbJzEnLCAnMiddIH1dLFxuICBsb2NrQ2hvaWNlT3JkZXI6IHRydWUsXG4gIC4uLmV4dHJhcyxcbn0pO1xuXG5kZXNjcmliZSgnY29udHJvbGxlcicsICgpID0+IHtcbiAgbGV0IHF1ZXN0aW9uID0gbWFrZVF1ZXN0aW9uKCk7XG5cbiAgZGVzY3JpYmUoJ21vZGVsJywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIG1vZGVsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInIH0sIGplc3QuZm4oKSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b01hdGNoT2JqZWN0KHsgLi4ucXVlc3Rpb24sIGNvcnJlY3RSZXNwb25zZTogdW5kZWZpbmVkIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgbW9kZWwgaW4gZXZhbHVhdGUgbW9kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHF1ZXN0aW9uLCB7fSwgeyBtb2RlOiAnZXZhbHVhdGUnIH0sIGplc3QuZm4oKSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b01hdGNoT2JqZWN0KHsgLi4ucXVlc3Rpb24sIGNvcnJlY3RuZXNzOiAnaW5jb3JyZWN0JyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdmZWVkYmFjazogcmV0dXJucyBwcm9wZXIgZmVlZGJhY2sgaW4gZXZhbHVhdGUgbW9kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHsgLi4ucXVlc3Rpb24sIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSB9LCB7fSwgeyBtb2RlOiAnZXZhbHVhdGUnIH0sIGplc3QuZm4oKSk7XG4gICAgICBleHBlY3QocmVzdWx0LmZlZWRiYWNrKS50b0VxdWFsKCdUaGlzIGlzIGdldEZlZWRiYWNrRm9yQ29ycmVjdG5lc3MgcmVzcG9uc2UuJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZmVlZGJhY2s6IHJldHVybnMgcHJvcGVyIGZlZWRiYWNrIGlmIGZlZWRiYWNrIGlzIG5vdCBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwoXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5xdWVzdGlvbixcbiAgICAgICAgICBmZWVkYmFja0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICAgeyBtb2RlOiAnZXZhbHVhdGUnIH0sXG4gICAgICAgIGplc3QuZm4oKSxcbiAgICAgICk7XG4gICAgICBleHBlY3QocmVzdWx0LmZlZWRiYWNrKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZmVlZGJhY2s6IHJldHVybnMgcHJvcGVyIGZlZWRiYWNrIGluIGdhdGhlciBtb2RlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInIH0sIGplc3QuZm4oKSk7XG4gICAgICBleHBlY3QocmVzdWx0LmZlZWRiYWNrKS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBpdCgnZGlzYWJsZWQgZmFsc2UgZm9yIGdhdGhlcicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInIH0sIGplc3QuZm4oKSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hPYmplY3QoeyBkaXNhYmxlZDogZmFsc2UgfSk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ2Rpc2FibGVkIHRydWUgZm9yIHZpZXcnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vZGVsKHF1ZXN0aW9uLCB7fSwgeyBtb2RlOiAndmlldycgfSwgamVzdC5mbigpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaE9iamVjdCh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkaXNhYmxlZCB0cnVlIGZvciBldmFsdWF0ZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdldmFsdWF0ZScgfSwgamVzdC5mbigpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9NYXRjaE9iamVjdCh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYWRkcyBjb3JyZWN0UmVzcG9uc2UgZm9yIGV2YWx1YXRlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdldmFsdWF0ZScgfSwgamVzdC5mbigpKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgICBjb3JyZWN0UmVzcG9uc2U6IFt7IGNhdGVnb3J5OiAnMScsIGNob2ljZXM6IFsnMScsICcyJ10gfV0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhZGRzIGRlZmF1bHQgY29uZmlnJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9kZWwocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInIH0sIGplc3QuZm4oKSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b01hdGNoT2JqZWN0KHtcbiAgICAgICAgY2F0ZWdvcmllc1BlclJvdzogMixcbiAgICAgICAgY2hvaWNlc0xhYmVsOiAnJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ21vZGVsIC0gd2l0aCB1cGRhdGVTZXNzaW9uJywgKCkgPT4ge1xuICAgICAgaXQoJ2NhbGxzIHVwZGF0ZVNlc3Npb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB7IGlkOiAnMScsIGVsZW1lbnQ6ICdjYXRlZ29yaXplLWVsZW1lbnQnIH07XG4gICAgICAgIGNvbnN0IGVudiA9IHsgbW9kZTogJ2dhdGhlcicgfTtcbiAgICAgICAgY29uc3QgdXBkYXRlU2Vzc2lvbiA9IGplc3QuZm4oKS5tb2NrUmVzb2x2ZWRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCBtb2RlbChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgZWxlbWVudDogJ2NhdGVnb3JpemUtZWxlbWVudCcsXG4gICAgICAgICAgICAuLi5xdWVzdGlvbixcbiAgICAgICAgICAgIGxvY2tDaG9pY2VPcmRlcjogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXNzaW9uLFxuICAgICAgICAgIGVudixcbiAgICAgICAgICB1cGRhdGVTZXNzaW9uLFxuICAgICAgICApO1xuICAgICAgICBleHBlY3QodXBkYXRlU2Vzc2lvbikudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb3JyZWN0IHJlc3BvbnNlJywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIGNvcnJlY3QgcmVzcG9uc2UgaWYgZW52IGlzIGNvcnJlY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzZXNzID0gYXdhaXQgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbihxdWVzdGlvbiwge1xuICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgcm9sZTogJ2luc3RydWN0b3InLFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qoc2VzcykudG9FcXVhbCh7XG4gICAgICAgIGFuc3dlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjYXRlZ29yeTogJzEnLFxuICAgICAgICAgICAgY2hvaWNlczogWycxJywgJzInXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpZDogMSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgbnVsbCBlbnYgaXMgc3R1ZGVudCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5vUmVzdWx0ID0gYXdhaXQgY3JlYXRlQ29ycmVjdFJlc3BvbnNlU2Vzc2lvbihxdWVzdGlvbiwge1xuICAgICAgICBtb2RlOiAnZ2F0aGVyJyxcbiAgICAgICAgcm9sZTogJ3N0dWRlbnQnLFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qobm9SZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0IG1DMSA9IFtcbiAgICB7XG4gICAgICBpZDogJzEwJyxcbiAgICAgIGxhYmVsOiAnU1VNPTEwJyxcbiAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHsgLi4uY2hvaWNlMywgY29ycmVjdDogdHJ1ZSB9LFxuICAgICAgICB7IC4uLmNob2ljZTcsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJzExJyxcbiAgICAgIGxhYmVsOiAnU1VNPTExJyxcbiAgICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgICAgeyAuLi5jaG9pY2U3LCBjb3JyZWN0OiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuICBjb25zdCBtQzIgPSBbXG4gICAge1xuICAgICAgaWQ6ICcxMCcsXG4gICAgICBsYWJlbDogJ1NVTT0xMCcsXG4gICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgICAgeyAuLi5jaG9pY2U3LCBjb3JyZWN0OiB0cnVlIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICcxMScsXG4gICAgICBsYWJlbDogJ1NVTT0xMScsXG4gICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgICAgeyAuLi5jaG9pY2U3LCBjb3JyZWN0OiB0cnVlIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIGNvbnN0IG1DMyA9IFtcbiAgICB7XG4gICAgICBpZDogJzEwJyxcbiAgICAgIGxhYmVsOiAnU1VNPTEwJyxcbiAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHsgLi4uY2hvaWNlMywgY29ycmVjdDogdHJ1ZSB9LFxuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IGZhbHNlIH0sXG4gICAgICAgIHsgLi4uY2hvaWNlNywgY29ycmVjdDogdHJ1ZSB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnMTEnLFxuICAgICAgbGFiZWw6ICdTVU09MTEnLFxuICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgeyAuLi5jaG9pY2UzLCBjb3JyZWN0OiB0cnVlIH0sXG4gICAgICAgIHsgLi4uY2hvaWNlNywgY29ycmVjdDogdHJ1ZSB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuICBjb25zdCBtQzQgPSBbXG4gICAge1xuICAgICAgaWQ6ICcxMCcsXG4gICAgICBsYWJlbDogJ1NVTT0xMCcsXG4gICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgICAgeyAuLi5jaG9pY2UzLCBjb3JyZWN0OiBmYWxzZSB9LFxuICAgICAgICB7IC4uLmNob2ljZTcsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJzExJyxcbiAgICAgIGxhYmVsOiAnU1VNPTExJyxcbiAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICBjaG9pY2VzOiBbXG4gICAgICAgIHsgLi4uY2hvaWNlMywgY29ycmVjdDogdHJ1ZSB9LFxuICAgICAgICB7IC4uLmNob2ljZTcsIGNvcnJlY3Q6IHRydWUgfSxcbiAgICAgICAgeyAuLi5jaG9pY2U3LCBjb3JyZWN0OiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuICBjb25zdCBtQzUgPSBbXG4gICAge1xuICAgICAgaWQ6ICcxMCcsXG4gICAgICBsYWJlbDogJ1NVTT0xMCcsXG4gICAgICBjb3JyZWN0OiBmYWxzZSxcbiAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgeyAuLi5jaG9pY2UzLCBjb3JyZWN0OiBmYWxzZSB9LFxuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IGZhbHNlIH0sXG4gICAgICAgIHsgLi4uY2hvaWNlNywgY29ycmVjdDogZmFsc2UgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJzExJyxcbiAgICAgIGxhYmVsOiAnU1VNPTExJyxcbiAgICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgICAgY2hvaWNlczogW1xuICAgICAgICB7IC4uLmNob2ljZTMsIGNvcnJlY3Q6IGZhbHNlIH0sXG4gICAgICAgIHsgLi4uY2hvaWNlNywgY29ycmVjdDogZmFsc2UgfSxcbiAgICAgICAgeyAuLi5jaG9pY2U3LCBjb3JyZWN0OiBmYWxzZSB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuXG4gIGRlc2NyaWJlKCdnZXRDb3JyZWN0bmVzcycsICgpID0+IHtcbiAgICBpdCgnbW9kZTogZ2F0aGVyIC0+IHJlc29sdmVzIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRDb3JyZWN0bmVzcyhxdWVzdGlvbiwge30sIHsgbW9kZTogJ2dhdGhlcicgfSkpLnJlc29sdmVzLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdtb2RlOiB2aWV3IC0+IHJlc29sdmVzIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRDb3JyZWN0bmVzcyhxdWVzdGlvbiwge30sIHsgbW9kZTogJ3ZpZXcnIH0pKS5yZXNvbHZlcy50b0VxdWFsKHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzZXNzaW9uQ29ycmVjdCA9IHsgYW5zd2VyczogbUMyIH07XG4gICAgY29uc3Qgc2Vzc2lvblBhcnRpYWxseSA9IHsgYW5zd2VyczogbUMxIH07XG5cbiAgICBpdC5lYWNoYFxuICAgICAgc2Vzc2lvbiAgICAgICAgICAgICB8IGNhdGVnb3JpZXMgfCBleHBlY3RlZFxuICAgICAgJHt1bmRlZmluZWR9ICAgICAgICB8ICR7bUMxfSAgICAgfCAkeydpbmNvcnJlY3QnfVxuICAgICAgJHtudWxsfSAgICAgICAgICAgICB8ICR7bUMxfSAgICAgfCAkeydpbmNvcnJlY3QnfVxuICAgICAgJHt7fX0gICAgICAgICAgICAgICB8ICR7bUMxfSAgICAgfCAkeydpbmNvcnJlY3QnfVxuICAgICAgJHtzZXNzaW9uQ29ycmVjdH0gICB8ICR7bUMyfSAgICAgfCAkeydjb3JyZWN0J31cbiAgICAgICR7c2Vzc2lvblBhcnRpYWxseX0gfCAke21DMX0gICAgIHwgJHsncGFydGlhbGx5LWNvcnJlY3QnfVxuICAgIGAoJ21vZGU6IGV2YWx1YXRlIC0+IHJlc29sdmVzICRleHBlY3RlZCBpZiBzZXNzaW9uIGlzICRzZXNzaW9uJywgYXN5bmMgKHsgc2Vzc2lvbiwgY2F0ZWdvcmllcywgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZ2V0Q29ycmVjdG5lc3MoXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5xdWVzdGlvbixcbiAgICAgICAgICBwYXJ0aWFsU2NvcmluZzogdHJ1ZSxcbiAgICAgICAgICBjYXRlZ29yaWVzLFxuICAgICAgICAgIGNvcnJlY3RSZXNwb25zZTogc2NvcmluZ0NvcnJlY3RSZXNwb25zZU5vQWx0ZXJuYXRlcyxcbiAgICAgICAgfSxcbiAgICAgICAgc2Vzc2lvbixcbiAgICAgICAgeyBtb2RlOiAnZXZhbHVhdGUnIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QocmVzKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFRvdGFsU2NvcmUnLCAoKSA9PiB7XG4gICAgaXQuZWFjaGBcbiAgICAgIHBhcnRpYWxTY29yaW5nIHwgbW9ja2VkQ2F0ZWdvcmllcyB8IGZha2VDb3JyZWN0IHwgZXhwZWN0ZWRcbiAgICAgICR7dHJ1ZX0gICAgICAgIHwgJHttQzF9ICAgICAgICAgICB8ICR7ZmFsc2V9ICAgIHwgJHswfVxuICAgICAgJHtmYWxzZX0gICAgICAgfCAke21DMX0gICAgICAgICAgIHwgJHtmYWxzZX0gICAgfCAkezB9XG4gICAgICAke3RydWV9ICAgICAgICB8ICR7bUMxfSAgICAgICAgICAgfCAke3RydWV9ICAgICB8ICR7MX1cbiAgICAgICR7ZmFsc2V9ICAgICAgIHwgJHttQzF9ICAgICAgICAgICB8ICR7dHJ1ZX0gICAgIHwgJHsxfVxuICAgIGAoXG4gICAgICAnV2l0aCBBbHRlcm5hdGVzLCBwYXJ0aWFsU2NvcmluZyA9ICRwYXJ0aWFsU2NvcmluZyAtPiBkeWNob3RvbW91czogJGV4cGVjdGVkJyxcbiAgICAgICh7IHBhcnRpYWxTY29yaW5nLCBtb2NrZWRDYXRlZ29yaWVzLCBmYWtlQ29ycmVjdCwgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgICBjb25zdCB0b3RhbFNjb3JlID0gZ2V0VG90YWxTY29yZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5xdWVzdGlvbixcbiAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLFxuICAgICAgICAgICAgY2F0ZWdvcmllczogbW9ja2VkQ2F0ZWdvcmllcyxcbiAgICAgICAgICAgIGNvcnJlY3RSZXNwb25zZTogc2NvcmluZ0NvcnJlY3RSZXNwb25zZVdpdGhBbHRlcm5hdGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBhbnN3ZXJzOiBmYWtlQ29ycmVjdCA/IG1vY2tlZENhdGVnb3JpZXMgOiBbXSB9LFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuXG4gICAgICAgIGV4cGVjdCh0b3RhbFNjb3JlKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGl0LmVhY2hgXG4gICAgICBwYXJ0aWFsU2NvcmluZyB8IG1vY2tlZENhdGVnb3JpZXMgfCBleHBlY3RlZFxuICAgICAgJHt0cnVlfSAgICAgICAgfCAke21DMX0gICAgICAgICAgIHwgJHswLjc1fVxuICAgICAgJHtmYWxzZX0gICAgICAgfCAke21DMX0gICAgICAgICAgIHwgJHswfVxuICAgICAgJHt0cnVlfSAgICAgICAgfCAke21DMn0gICAgICAgICAgIHwgJHsxfVxuICAgICAgJHtmYWxzZX0gICAgICAgfCAke21DMn0gICAgICAgICAgIHwgJHswfVxuICAgICAgJHt0cnVlfSAgICAgICAgfCAke21DM30gICAgICAgICAgIHwgJHswLjc1fVxuICAgICAgJHt0cnVlfSAgICAgICAgfCAke21DNH0gICAgICAgICAgIHwgJHswLjV9XG4gICAgICAke3RydWV9ICAgICAgICB8ICR7bUM1fSAgICAgICAgICAgfCAkezB9XG4gICAgYChcbiAgICAgICdXaXRob3V0IEFsdGVybmF0ZXMsIHBhcnRpYWxTY29yaW5nID0gJHBhcnRpYWxTY29yaW5nIC0+ICRleHBlY3RlZCcsXG4gICAgICAoeyBwYXJ0aWFsU2NvcmluZywgbW9ja2VkQ2F0ZWdvcmllcywgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgICBjb25zdCB0b3RhbFNjb3JlID0gZ2V0VG90YWxTY29yZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5xdWVzdGlvbixcbiAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLFxuICAgICAgICAgICAgY2F0ZWdvcmllczogbW9ja2VkQ2F0ZWdvcmllcyxcbiAgICAgICAgICAgIGNvcnJlY3RSZXNwb25zZTogc2NvcmluZ0NvcnJlY3RSZXNwb25zZU5vQWx0ZXJuYXRlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgYW5zd2VyczogW10gfSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QodG90YWxTY29yZSkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgICB9LFxuICAgICk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRQYXJ0aWFsU2NvcmUnLCAoKSA9PiB7XG4gICAgaXQuZWFjaGBcbiAgICAgIG1vY2tlZENhdGVnb3JpZXMgfCBleHBlY3RlZFxuICAgICAgJHttQzF9ICAgICAgICAgICB8ICR7MC43NX1cbiAgICAgICR7bUMyfSAgICAgICAgICAgfCAkezF9XG4gICAgICAke21DM30gICAgICAgICAgIHwgJHswLjc1fVxuICAgICAgJHttQzR9ICAgICAgICAgICB8ICR7MC41fVxuICAgICAgJHttQzV9ICAgICAgICAgICB8ICR7MH1cbiAgICBgKCdXaXRob3V0IEFsdGVybmF0ZXMsIHBhcnRpYWxTY29yaW5nID0gJHBhcnRpYWxTY29yaW5nIC0+ICRleHBlY3RlZCcsICh7IG1vY2tlZENhdGVnb3JpZXMsIGV4cGVjdGVkIH0pID0+IHtcbiAgICAgIGNvbnN0IHRvdGFsU2NvcmUgPSBnZXRQYXJ0aWFsU2NvcmUoc2NvcmluZ0NvcnJlY3RSZXNwb25zZU5vQWx0ZXJuYXRlcywgbW9ja2VkQ2F0ZWdvcmllcyk7XG5cbiAgICAgIGV4cGVjdCh0b3RhbFNjb3JlKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ291dGNvbWUnLCAoKSA9PiB7XG4gICAgZGVzY3JpYmUoJ21vZGU6IGdhdGhlcicsICgpID0+IHtcbiAgICAgIGl0KCdyZWplY3RzIHdpdGggYW4gZXJyb3IgZm9yIGdhdGhlcicsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KG91dGNvbWUocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICdnYXRoZXInIH0pKS5yZWplY3RzLnRvRXF1YWwoZXhwZWN0LmFueShFcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnbW9kZTogdmlldycsICgpID0+IHtcbiAgICAgIGl0KCdyZWplY3RzIHdpdGggYW4gZXJyb3IgZm9yIGdhdGhlcicsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KG91dGNvbWUocXVlc3Rpb24sIHt9LCB7IG1vZGU6ICd2aWV3JyB9KSkucmVqZWN0cy50b0VxdWFsKGV4cGVjdC5hbnkoRXJyb3IpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ21vZGU6IGV2YWx1YXRlJywgKCkgPT4ge1xuICAgICAgaXQuZWFjaGBcbiAgICAgICAgcGFydGlhbFNjb3JpbmcgfCBlbnZQYXJ0aWFsU2NvcmluZyB8IGV4cGVjdGVkXG4gICAgICAgICR7dHJ1ZX0gICAgICAgIHwgJHt1bmRlZmluZWR9ICAgICAgfCAke3sgZW1wdHk6IGZhbHNlLCBzY29yZTogMC43NSB9fVxuICAgICAgICAke2ZhbHNlfSAgICAgICB8ICR7dW5kZWZpbmVkfSAgICAgIHwgJHt7IGVtcHR5OiBmYWxzZSwgc2NvcmU6IDEgfX1cbiAgICAgICAgJHt0cnVlfSAgICAgICAgfCAke2ZhbHNlfSAgICAgICAgICB8ICR7eyBlbXB0eTogZmFsc2UsIHNjb3JlOiAxIH19XG4gICAgICAgICR7ZmFsc2V9ICAgICAgIHwgJHt0cnVlfSAgICAgICAgICAgfCAke3sgZW1wdHk6IGZhbHNlLCBzY29yZTogMSB9fVxuICAgICAgYChcbiAgICAgICAgJ2VsZW1lbnQucGFydGlhbFNjb3JpbmcgPSAkcGFydGlhbFNjb3JpbmcsIGVudi5wYXJ0aWFsU2NvcmluZyA9ICRlbnZQYXJ0aWFsU2NvcmluZycsXG4gICAgICAgIGFzeW5jICh7IHBhcnRpYWxTY29yaW5nLCBlbnZQYXJ0aWFsU2NvcmluZywgZXhwZWN0ZWQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG91dGNvbWUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIC4uLnF1ZXN0aW9uLFxuICAgICAgICAgICAgICBwYXJ0aWFsU2NvcmluZyxcbiAgICAgICAgICAgICAgY29ycmVjdFJlc3BvbnNlOiBzY29yaW5nQ29ycmVjdFJlc3BvbnNlTm9BbHRlcm5hdGVzLFxuICAgICAgICAgICAgICBjYXRlZ29yaWVzOiBtQzEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbnN3ZXJzOiBtQzEgfSxcbiAgICAgICAgICAgIHsgbW9kZTogJ2V2YWx1YXRlJywgcGFydGlhbFNjb3Jpbmc6IGVudlBhcnRpYWxTY29yaW5nIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdC5vYmplY3RDb250YWluaW5nKGV4cGVjdGVkKSk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQUcsSUFBSSxDQUFDQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsT0FBTztFQUN0QztFQUNBQyxVQUFVLEVBQUVBLENBQUNDLGdCQUFnQixFQUFFQyxPQUFPLEVBQUVDLE9BQU8sTUFBTTtJQUNuREMsVUFBVSxFQUFFSCxnQkFBZ0I7SUFDNUJJLE9BQU8sRUFBRUosZ0JBQWdCLEtBQUtFO0VBQ2hDLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUNITCxJQUFJLENBQUNDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPO0VBQ3BDTyx5QkFBeUIsRUFBRUEsQ0FBQSxLQUFNLElBQUlDLE9BQU8sQ0FBRUMsT0FBTyxJQUFLQSxPQUFPLENBQUMsNkNBQTZDLENBQUM7QUFDbEgsQ0FBQyxDQUFDLENBQUM7QUFDSFYsSUFBSSxDQUFDQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsT0FBTztFQUM1QyxHQUFHRCxJQUFJLENBQUNXLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQztFQUNsREMsa0JBQWtCLEVBQUVBLENBQUNSLE9BQU8sRUFBRVMsT0FBTyxFQUFFQyxhQUFhLEVBQUVDLEdBQUcsS0FBSztJQUM1RCxNQUFNQyxlQUFlLEdBQUcsQ0FBQyxDQUFDSCxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUVJLGNBQWMsSUFBSSxFQUFFLEVBQUVDLE1BQU0sQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUM7SUFFL0UsSUFBSU4sT0FBTyxJQUFJLENBQUNHLGVBQWUsQ0FBQ0ksTUFBTSxJQUFJTixhQUFhLElBQUksT0FBT0EsYUFBYSxLQUFLLFVBQVUsRUFBRTtNQUM5RkEsYUFBYSxDQUFDLENBQUM7SUFDakI7SUFFQSxPQUFPVixPQUFPO0VBQ2hCLENBQUM7RUFDRGlCLGNBQWMsRUFBRTtJQUNkQyxPQUFPLEVBQUVBLENBQUNDLE1BQU0sRUFBRUMsR0FBRyxLQUFLO01BQ3hCRCxNQUFNLEdBQUdBLE1BQU0sSUFBSSxDQUFDLENBQUM7TUFDckJDLEdBQUcsR0FBR0EsR0FBRyxJQUFJLENBQUMsQ0FBQztNQUVmLElBQUlELE1BQU0sQ0FBQ0YsY0FBYyxLQUFLLEtBQUssRUFBRTtRQUNuQyxPQUFPLEtBQUs7TUFDZDtNQUVBLElBQUlHLEdBQUcsQ0FBQ0gsY0FBYyxLQUFLLEtBQUssRUFBRTtRQUNoQyxPQUFPLEtBQUs7TUFDZDtNQUVBLE9BQU8sSUFBSTtJQUNiO0VBQ0Y7QUFDRixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1mLFVBQVUsR0FBRyxDQUFDO0VBQUVtQixFQUFFLEVBQUUsR0FBRztFQUFFQyxLQUFLLEVBQUU7QUFBTSxDQUFDLENBQUM7QUFDOUMsTUFBTXRCLE9BQU8sR0FBRyxDQUNkO0VBQUVxQixFQUFFLEVBQUUsR0FBRztFQUFFRSxPQUFPLEVBQUU7QUFBTSxDQUFDLEVBQzNCO0VBQUVGLEVBQUUsRUFBRSxHQUFHO0VBQUVFLE9BQU8sRUFBRTtBQUFNLENBQUMsQ0FDNUI7QUFFRCxNQUFNQyxVQUFVLEdBQUc7RUFBRUgsRUFBRSxFQUFFLElBQUk7RUFBRUMsS0FBSyxFQUFFO0FBQVMsQ0FBQztBQUNoRCxNQUFNRyxVQUFVLEdBQUc7RUFBRUosRUFBRSxFQUFFLElBQUk7RUFBRUMsS0FBSyxFQUFFO0FBQVMsQ0FBQztBQUVoRCxNQUFNSSxPQUFPLEdBQUc7RUFBRUwsRUFBRSxFQUFFLEdBQUc7RUFBRUUsT0FBTyxFQUFFO0FBQUksQ0FBQztBQUN6QyxNQUFNSSxPQUFPLEdBQUc7RUFBRU4sRUFBRSxFQUFFLEdBQUc7RUFBRUUsT0FBTyxFQUFFO0FBQUksQ0FBQztBQUN6QyxNQUFNSyxPQUFPLEdBQUc7RUFBRVAsRUFBRSxFQUFFLEdBQUc7RUFBRUUsT0FBTyxFQUFFO0FBQUksQ0FBQztBQUN6QyxNQUFNTSxPQUFPLEdBQUc7RUFBRVIsRUFBRSxFQUFFLEdBQUc7RUFBRUUsT0FBTyxFQUFFO0FBQUksQ0FBQztBQUN6QyxNQUFNTyxPQUFPLEdBQUc7RUFBRVQsRUFBRSxFQUFFLEdBQUc7RUFBRUUsT0FBTyxFQUFFO0FBQUksQ0FBQztBQUN6QyxNQUFNUSxrQ0FBa0MsR0FBRyxDQUN6QztFQUFFQyxRQUFRLEVBQUUsSUFBSTtFQUFFaEMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUc7QUFBRSxDQUFDLEVBQ3ZDO0VBQUVnQyxRQUFRLEVBQUUsSUFBSTtFQUFFaEMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUc7QUFBRSxDQUFDLENBQ3hDO0FBQ0QsTUFBTWlDLG9DQUFvQyxHQUFHLENBQzNDO0VBQUVELFFBQVEsRUFBRSxJQUFJO0VBQUVoQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0VBQUVrQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztBQUFFLENBQUMsRUFDekU7RUFBRUYsUUFBUSxFQUFFLElBQUk7RUFBRWhDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7RUFBRWtDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBQUUsQ0FBQyxDQUMxRTtBQUVELE1BQU1DLFlBQVksR0FBSUMsTUFBTSxLQUFNO0VBQ2hDbEMsVUFBVTtFQUNWRixPQUFPO0VBQ1BxQyxlQUFlLEVBQUUsQ0FBQztJQUFFTCxRQUFRLEVBQUUsR0FBRztJQUFFaEMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUc7RUFBRSxDQUFDLENBQUM7RUFDekRzQyxlQUFlLEVBQUUsSUFBSTtFQUNyQixHQUFHRjtBQUNMLENBQUMsQ0FBQztBQUVGRyxRQUFRLENBQUMsWUFBWSxFQUFFLE1BQU07RUFDM0IsSUFBSUMsUUFBUSxHQUFHTCxZQUFZLENBQUMsQ0FBQztFQUU3QkksUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNO0lBQ3RCRSxFQUFFLENBQUMsZUFBZSxFQUFFLFlBQVk7TUFDOUIsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBQUMsWUFBSyxFQUFDSCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFBRUksSUFBSSxFQUFFO01BQVMsQ0FBQyxFQUFFaEQsSUFBSSxDQUFDaUQsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUN2RUMsTUFBTSxDQUFDSixNQUFNLENBQUMsQ0FBQ0ssYUFBYSxDQUFDO1FBQUUsR0FBR1AsUUFBUTtRQUFFSCxlQUFlLEVBQUVXO01BQVUsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztJQUVGUCxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsWUFBWTtNQUMvQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtRQUFFSSxJQUFJLEVBQUU7TUFBVyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO01BQ3pFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7UUFBRSxHQUFHUCxRQUFRO1FBQUVTLFdBQVcsRUFBRTtNQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDLENBQUM7SUFFRlIsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLFlBQVk7TUFDbkUsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBQUMsWUFBSyxFQUFDO1FBQUUsR0FBR0gsUUFBUTtRQUFFVSxlQUFlLEVBQUU7TUFBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFBRU4sSUFBSSxFQUFFO01BQVcsQ0FBQyxFQUFFaEQsSUFBSSxDQUFDaUQsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUN2R0MsTUFBTSxDQUFDSixNQUFNLENBQUNTLFFBQVEsQ0FBQyxDQUFDQyxPQUFPLENBQUMsNkNBQTZDLENBQUM7SUFDaEYsQ0FBQyxDQUFDO0lBRUZYLEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxZQUFZO01BQzdFLE1BQU1DLE1BQU0sR0FBRyxNQUFNLElBQUFDLFlBQUssRUFDeEI7UUFDRSxHQUFHSCxRQUFRO1FBQ1hVLGVBQWUsRUFBRTtNQUNuQixDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQ0Y7UUFBRU4sSUFBSSxFQUFFO01BQVcsQ0FBQyxFQUNwQmhELElBQUksQ0FBQ2lELEVBQUUsQ0FBQyxDQUNWLENBQUM7TUFDREMsTUFBTSxDQUFDSixNQUFNLENBQUNTLFFBQVEsQ0FBQyxDQUFDQyxPQUFPLENBQUNKLFNBQVMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRlAsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLFlBQVk7TUFDakUsTUFBTUMsTUFBTSxHQUFHLE1BQU0sSUFBQUMsWUFBSyxFQUFDSCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFBRUksSUFBSSxFQUFFO01BQVMsQ0FBQyxFQUFFaEQsSUFBSSxDQUFDaUQsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUN2RUMsTUFBTSxDQUFDSixNQUFNLENBQUNTLFFBQVEsQ0FBQyxDQUFDQyxPQUFPLENBQUNKLFNBQVMsQ0FBQztJQUM1QyxDQUFDLENBQUM7SUFFRlQsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNO01BQ3pCRSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsWUFBWTtRQUMxQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtVQUFFSSxJQUFJLEVBQUU7UUFBUyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7VUFBRU0sUUFBUSxFQUFFO1FBQU0sQ0FBQyxDQUFDO01BQ25ELENBQUMsQ0FBQztNQUVGWixFQUFFLENBQUMsd0JBQXdCLEVBQUUsWUFBWTtRQUN2QyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtVQUFFSSxJQUFJLEVBQUU7UUFBTyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7VUFBRU0sUUFBUSxFQUFFO1FBQUssQ0FBQyxDQUFDO01BQ2xELENBQUMsQ0FBQztNQUVGWixFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBWTtRQUMzQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtVQUFFSSxJQUFJLEVBQUU7UUFBVyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7VUFBRU0sUUFBUSxFQUFFO1FBQUssQ0FBQyxDQUFDO01BQ2xELENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGWixFQUFFLENBQUMsbUNBQW1DLEVBQUUsWUFBWTtNQUNsRCxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtRQUFFSSxJQUFJLEVBQUU7TUFBVyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO01BQ3pFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7UUFDM0JWLGVBQWUsRUFBRSxDQUFDO1VBQUVMLFFBQVEsRUFBRSxHQUFHO1VBQUVoQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRztRQUFFLENBQUM7TUFDMUQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUZ5QyxFQUFFLENBQUMscUJBQXFCLEVBQUUsWUFBWTtNQUNwQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFBQyxZQUFLLEVBQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtRQUFFSSxJQUFJLEVBQUU7TUFBUyxDQUFDLEVBQUVoRCxJQUFJLENBQUNpRCxFQUFFLENBQUMsQ0FBQyxDQUFDO01BQ3ZFQyxNQUFNLENBQUNKLE1BQU0sQ0FBQyxDQUFDSyxhQUFhLENBQUM7UUFDM0JPLGdCQUFnQixFQUFFLENBQUM7UUFDbkJDLFlBQVksRUFBRTtNQUNoQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRmhCLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNO01BQzNDRSxFQUFFLENBQUMscUJBQXFCLEVBQUUsWUFBWTtRQUNwQyxNQUFNaEMsT0FBTyxHQUFHO1VBQUVZLEVBQUUsRUFBRSxHQUFHO1VBQUVtQyxPQUFPLEVBQUU7UUFBcUIsQ0FBQztRQUMxRCxNQUFNcEMsR0FBRyxHQUFHO1VBQUV3QixJQUFJLEVBQUU7UUFBUyxDQUFDO1FBQzlCLE1BQU1sQyxhQUFhLEdBQUdkLElBQUksQ0FBQ2lELEVBQUUsQ0FBQyxDQUFDLENBQUNZLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFBZCxZQUFLLEVBQ1Q7VUFDRXRCLEVBQUUsRUFBRSxHQUFHO1VBQ1BtQyxPQUFPLEVBQUUsb0JBQW9CO1VBQzdCLEdBQUdoQixRQUFRO1VBQ1hGLGVBQWUsRUFBRTtRQUNuQixDQUFDLEVBQ0Q3QixPQUFPLEVBQ1BXLEdBQUcsRUFDSFYsYUFDRixDQUFDO1FBQ0RvQyxNQUFNLENBQUNwQyxhQUFhLENBQUMsQ0FBQ2dELGdCQUFnQixDQUFDLENBQUM7TUFDMUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZuQixRQUFRLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtJQUNqQ0UsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLFlBQVk7TUFDM0QsTUFBTWtCLElBQUksR0FBRyxNQUFNLElBQUFDLG1DQUE0QixFQUFDcEIsUUFBUSxFQUFFO1FBQ3hESSxJQUFJLEVBQUUsUUFBUTtRQUNkaUIsSUFBSSxFQUFFO01BQ1IsQ0FBQyxDQUFDO01BQ0ZmLE1BQU0sQ0FBQ2EsSUFBSSxDQUFDLENBQUNQLE9BQU8sQ0FBQztRQUNuQm5ELE9BQU8sRUFBRSxDQUNQO1VBQ0UrQixRQUFRLEVBQUUsR0FBRztVQUNiaEMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUc7UUFDcEIsQ0FBQyxDQUNGO1FBQ0RxQixFQUFFLEVBQUU7TUFDTixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRm9CLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxZQUFZO01BQzVDLE1BQU1xQixRQUFRLEdBQUcsTUFBTSxJQUFBRixtQ0FBNEIsRUFBQ3BCLFFBQVEsRUFBRTtRQUM1REksSUFBSSxFQUFFLFFBQVE7UUFDZGlCLElBQUksRUFBRTtNQUNSLENBQUMsQ0FBQztNQUNGZixNQUFNLENBQUNnQixRQUFRLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUYsTUFBTUMsR0FBRyxHQUFHLENBQ1Y7SUFDRTNDLEVBQUUsRUFBRSxJQUFJO0lBQ1JDLEtBQUssRUFBRSxRQUFRO0lBQ2ZuQixPQUFPLEVBQUUsSUFBSTtJQUNiSCxPQUFPLEVBQUUsQ0FDUDtNQUFFLEdBQUcwQixPQUFPO01BQUV2QixPQUFPLEVBQUU7SUFBSyxDQUFDLEVBQzdCO01BQUUsR0FBRzJCLE9BQU87TUFBRTNCLE9BQU8sRUFBRTtJQUFLLENBQUM7RUFFakMsQ0FBQyxFQUNEO0lBQ0VrQixFQUFFLEVBQUUsSUFBSTtJQUNSQyxLQUFLLEVBQUUsUUFBUTtJQUNmbkIsT0FBTyxFQUFFLEtBQUs7SUFDZEgsT0FBTyxFQUFFLENBQ1A7TUFBRSxHQUFHMEIsT0FBTztNQUFFdkIsT0FBTyxFQUFFO0lBQUssQ0FBQyxFQUM3QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBTSxDQUFDO0VBRWxDLENBQUMsQ0FDRjtFQUNELE1BQU04RCxHQUFHLEdBQUcsQ0FDVjtJQUNFNUMsRUFBRSxFQUFFLElBQUk7SUFDUkMsS0FBSyxFQUFFLFFBQVE7SUFDZm5CLE9BQU8sRUFBRSxJQUFJO0lBQ2JILE9BQU8sRUFBRSxDQUNQO01BQUUsR0FBRzBCLE9BQU87TUFBRXZCLE9BQU8sRUFBRTtJQUFLLENBQUMsRUFDN0I7TUFBRSxHQUFHMkIsT0FBTztNQUFFM0IsT0FBTyxFQUFFO0lBQUssQ0FBQztFQUVqQyxDQUFDLEVBQ0Q7SUFDRWtCLEVBQUUsRUFBRSxJQUFJO0lBQ1JDLEtBQUssRUFBRSxRQUFRO0lBQ2ZuQixPQUFPLEVBQUUsSUFBSTtJQUNiSCxPQUFPLEVBQUUsQ0FDUDtNQUFFLEdBQUcwQixPQUFPO01BQUV2QixPQUFPLEVBQUU7SUFBSyxDQUFDLEVBQzdCO01BQUUsR0FBRzJCLE9BQU87TUFBRTNCLE9BQU8sRUFBRTtJQUFLLENBQUM7RUFFakMsQ0FBQyxDQUNGO0VBQ0QsTUFBTStELEdBQUcsR0FBRyxDQUNWO0lBQ0U3QyxFQUFFLEVBQUUsSUFBSTtJQUNSQyxLQUFLLEVBQUUsUUFBUTtJQUNmbkIsT0FBTyxFQUFFLElBQUk7SUFDYkgsT0FBTyxFQUFFLENBQ1A7TUFBRSxHQUFHMEIsT0FBTztNQUFFdkIsT0FBTyxFQUFFO0lBQUssQ0FBQyxFQUM3QjtNQUFFLEdBQUd1QixPQUFPO01BQUV2QixPQUFPLEVBQUU7SUFBTSxDQUFDLEVBQzlCO01BQUUsR0FBRzJCLE9BQU87TUFBRTNCLE9BQU8sRUFBRTtJQUFLLENBQUM7RUFFakMsQ0FBQyxFQUNEO0lBQ0VrQixFQUFFLEVBQUUsSUFBSTtJQUNSQyxLQUFLLEVBQUUsUUFBUTtJQUNmbkIsT0FBTyxFQUFFLElBQUk7SUFDYkgsT0FBTyxFQUFFLENBQ1A7TUFBRSxHQUFHMEIsT0FBTztNQUFFdkIsT0FBTyxFQUFFO0lBQUssQ0FBQyxFQUM3QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBSyxDQUFDO0VBRWpDLENBQUMsQ0FDRjtFQUNELE1BQU1nRSxHQUFHLEdBQUcsQ0FDVjtJQUNFOUMsRUFBRSxFQUFFLElBQUk7SUFDUkMsS0FBSyxFQUFFLFFBQVE7SUFDZm5CLE9BQU8sRUFBRSxJQUFJO0lBQ2JILE9BQU8sRUFBRSxDQUNQO01BQUUsR0FBRzBCLE9BQU87TUFBRXZCLE9BQU8sRUFBRTtJQUFLLENBQUMsRUFDN0I7TUFBRSxHQUFHdUIsT0FBTztNQUFFdkIsT0FBTyxFQUFFO0lBQU0sQ0FBQyxFQUM5QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBSyxDQUFDO0VBRWpDLENBQUMsRUFDRDtJQUNFa0IsRUFBRSxFQUFFLElBQUk7SUFDUkMsS0FBSyxFQUFFLFFBQVE7SUFDZm5CLE9BQU8sRUFBRSxJQUFJO0lBQ2JILE9BQU8sRUFBRSxDQUNQO01BQUUsR0FBRzBCLE9BQU87TUFBRXZCLE9BQU8sRUFBRTtJQUFLLENBQUMsRUFDN0I7TUFBRSxHQUFHMkIsT0FBTztNQUFFM0IsT0FBTyxFQUFFO0lBQUssQ0FBQyxFQUM3QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBTSxDQUFDO0VBRWxDLENBQUMsQ0FDRjtFQUNELE1BQU1pRSxHQUFHLEdBQUcsQ0FDVjtJQUNFL0MsRUFBRSxFQUFFLElBQUk7SUFDUkMsS0FBSyxFQUFFLFFBQVE7SUFDZm5CLE9BQU8sRUFBRSxLQUFLO0lBQ2RILE9BQU8sRUFBRSxDQUNQO01BQUUsR0FBRzBCLE9BQU87TUFBRXZCLE9BQU8sRUFBRTtJQUFNLENBQUMsRUFDOUI7TUFBRSxHQUFHdUIsT0FBTztNQUFFdkIsT0FBTyxFQUFFO0lBQU0sQ0FBQyxFQUM5QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBTSxDQUFDO0VBRWxDLENBQUMsRUFDRDtJQUNFa0IsRUFBRSxFQUFFLElBQUk7SUFDUkMsS0FBSyxFQUFFLFFBQVE7SUFDZm5CLE9BQU8sRUFBRSxLQUFLO0lBQ2RILE9BQU8sRUFBRSxDQUNQO01BQUUsR0FBRzBCLE9BQU87TUFBRXZCLE9BQU8sRUFBRTtJQUFNLENBQUMsRUFDOUI7TUFBRSxHQUFHMkIsT0FBTztNQUFFM0IsT0FBTyxFQUFFO0lBQU0sQ0FBQyxFQUM5QjtNQUFFLEdBQUcyQixPQUFPO01BQUUzQixPQUFPLEVBQUU7SUFBTSxDQUFDO0VBRWxDLENBQUMsQ0FDRjtFQUVEb0MsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU07SUFDL0JFLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxNQUFNO01BQzdDSyxNQUFNLENBQUMsSUFBQXVCLHFCQUFjLEVBQUM3QixRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFBRUksSUFBSSxFQUFFO01BQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzBCLFFBQVEsQ0FBQ2xCLE9BQU8sQ0FBQ0osU0FBUyxDQUFDO0lBQ3RGLENBQUMsQ0FBQztJQUVGUCxFQUFFLENBQUMsa0NBQWtDLEVBQUUsTUFBTTtNQUMzQ0ssTUFBTSxDQUFDLElBQUF1QixxQkFBYyxFQUFDN0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQUVJLElBQUksRUFBRTtNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMwQixRQUFRLENBQUNsQixPQUFPLENBQUNKLFNBQVMsQ0FBQztJQUNwRixDQUFDLENBQUM7SUFFRixNQUFNdUIsY0FBYyxHQUFHO01BQUV0RSxPQUFPLEVBQUVnRTtJQUFJLENBQUM7SUFDdkMsTUFBTU8sZ0JBQWdCLEdBQUc7TUFBRXZFLE9BQU8sRUFBRStEO0lBQUksQ0FBQztJQUV6Q3ZCLEVBQUUsQ0FBQ2dDLElBQUk7QUFDWDtBQUNBLFFBQVF6QixTQUFTLGFBQWFnQixHQUFHLFVBQVUsV0FBVztBQUN0RCxRQUFRLElBQUksa0JBQWtCQSxHQUFHLFVBQVUsV0FBVztBQUN0RCxRQUFRLENBQUMsQ0FBQyxvQkFBb0JBLEdBQUcsVUFBVSxXQUFXO0FBQ3RELFFBQVFPLGNBQWMsUUFBUU4sR0FBRyxVQUFVLFNBQVM7QUFDcEQsUUFBUU8sZ0JBQWdCLE1BQU1SLEdBQUcsVUFBVSxtQkFBbUI7QUFDOUQsS0FBSyxDQUFDLDZEQUE2RCxFQUFFLE9BQU87TUFBRXZELE9BQU87TUFBRVAsVUFBVTtNQUFFd0U7SUFBUyxDQUFDLEtBQUs7TUFDNUcsTUFBTUMsR0FBRyxHQUFHLE1BQU0sSUFBQU4scUJBQWMsRUFDOUI7UUFDRSxHQUFHN0IsUUFBUTtRQUNYdkIsY0FBYyxFQUFFLElBQUk7UUFDcEJmLFVBQVU7UUFDVm1DLGVBQWUsRUFBRU47TUFDbkIsQ0FBQyxFQUNEdEIsT0FBTyxFQUNQO1FBQUVtQyxJQUFJLEVBQUU7TUFBVyxDQUNyQixDQUFDO01BRURFLE1BQU0sQ0FBQzZCLEdBQUcsQ0FBQyxDQUFDdkIsT0FBTyxDQUFDc0IsUUFBUSxDQUFDO0lBQy9CLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGbkMsUUFBUSxDQUFDLGVBQWUsRUFBRSxNQUFNO0lBQzlCRSxFQUFFLENBQUNnQyxJQUFJO0FBQ1g7QUFDQSxRQUFRLElBQUksYUFBYVQsR0FBRyxnQkFBZ0IsS0FBSyxTQUFTLENBQUM7QUFDM0QsUUFBUSxLQUFLLFlBQVlBLEdBQUcsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO0FBQzNELFFBQVEsSUFBSSxhQUFhQSxHQUFHLGdCQUFnQixJQUFJLFVBQVUsQ0FBQztBQUMzRCxRQUFRLEtBQUssWUFBWUEsR0FBRyxnQkFBZ0IsSUFBSSxVQUFVLENBQUM7QUFDM0QsS0FBSyxDQUNDLDZFQUE2RSxFQUM3RSxDQUFDO01BQUUvQyxjQUFjO01BQUVsQixnQkFBZ0I7TUFBRTZFLFdBQVc7TUFBRUY7SUFBUyxDQUFDLEtBQUs7TUFDL0QsTUFBTUcsVUFBVSxHQUFHLElBQUFDLG9CQUFhLEVBQzlCO1FBQ0UsR0FBR3RDLFFBQVE7UUFDWHZCLGNBQWM7UUFDZGYsVUFBVSxFQUFFSCxnQkFBZ0I7UUFDNUJzQyxlQUFlLEVBQUVKO01BQ25CLENBQUMsRUFDRDtRQUFFaEMsT0FBTyxFQUFFMkUsV0FBVyxHQUFHN0UsZ0JBQWdCLEdBQUc7TUFBRyxDQUFDLEVBQ2hELENBQUMsQ0FDSCxDQUFDO01BRUQrQyxNQUFNLENBQUMrQixVQUFVLENBQUMsQ0FBQ3pCLE9BQU8sQ0FBQ3NCLFFBQVEsQ0FBQztJQUN0QyxDQUNGLENBQUM7SUFFRGpDLEVBQUUsQ0FBQ2dDLElBQUk7QUFDWDtBQUNBLFFBQVEsSUFBSSxhQUFhVCxHQUFHLGdCQUFnQixJQUFJO0FBQ2hELFFBQVEsS0FBSyxZQUFZQSxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLFFBQVEsSUFBSSxhQUFhQyxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLFFBQVEsS0FBSyxZQUFZQSxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLFFBQVEsSUFBSSxhQUFhQyxHQUFHLGdCQUFnQixJQUFJO0FBQ2hELFFBQVEsSUFBSSxhQUFhQyxHQUFHLGdCQUFnQixHQUFHO0FBQy9DLFFBQVEsSUFBSSxhQUFhQyxHQUFHLGdCQUFnQixDQUFDO0FBQzdDLEtBQUssQ0FDQyxtRUFBbUUsRUFDbkUsQ0FBQztNQUFFbkQsY0FBYztNQUFFbEIsZ0JBQWdCO01BQUUyRTtJQUFTLENBQUMsS0FBSztNQUNsRCxNQUFNRyxVQUFVLEdBQUcsSUFBQUMsb0JBQWEsRUFDOUI7UUFDRSxHQUFHdEMsUUFBUTtRQUNYdkIsY0FBYztRQUNkZixVQUFVLEVBQUVILGdCQUFnQjtRQUM1QnNDLGVBQWUsRUFBRU47TUFDbkIsQ0FBQyxFQUNEO1FBQUU5QixPQUFPLEVBQUU7TUFBRyxDQUFDLEVBQ2YsQ0FBQyxDQUNILENBQUM7TUFFRDZDLE1BQU0sQ0FBQytCLFVBQVUsQ0FBQyxDQUFDekIsT0FBTyxDQUFDc0IsUUFBUSxDQUFDO0lBQ3RDLENBQ0YsQ0FBQztFQUNILENBQUMsQ0FBQztFQUVGbkMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE1BQU07SUFDaENFLEVBQUUsQ0FBQ2dDLElBQUk7QUFDWDtBQUNBLFFBQVFULEdBQUcsZ0JBQWdCLElBQUk7QUFDL0IsUUFBUUMsR0FBRyxnQkFBZ0IsQ0FBQztBQUM1QixRQUFRQyxHQUFHLGdCQUFnQixJQUFJO0FBQy9CLFFBQVFDLEdBQUcsZ0JBQWdCLEdBQUc7QUFDOUIsUUFBUUMsR0FBRyxnQkFBZ0IsQ0FBQztBQUM1QixLQUFLLENBQUMsbUVBQW1FLEVBQUUsQ0FBQztNQUFFckUsZ0JBQWdCO01BQUUyRTtJQUFTLENBQUMsS0FBSztNQUN6RyxNQUFNRyxVQUFVLEdBQUcsSUFBQUUsc0JBQWUsRUFBQ2hELGtDQUFrQyxFQUFFaEMsZ0JBQWdCLENBQUM7TUFFeEYrQyxNQUFNLENBQUMrQixVQUFVLENBQUMsQ0FBQ3pCLE9BQU8sQ0FBQ3NCLFFBQVEsQ0FBQztJQUN0QyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRm5DLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTTtJQUN4QkEsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNO01BQzdCRSxFQUFFLENBQUMsa0NBQWtDLEVBQUUsTUFBTTtRQUMzQ0ssTUFBTSxDQUFDLElBQUFrQyxjQUFPLEVBQUN4QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUU7VUFBRUksSUFBSSxFQUFFO1FBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQ3FDLE9BQU8sQ0FBQzdCLE9BQU8sQ0FBQ04sTUFBTSxDQUFDb0MsR0FBRyxDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUN0RixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjVDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTTtNQUMzQkUsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLE1BQU07UUFDM0NLLE1BQU0sQ0FBQyxJQUFBa0MsY0FBTyxFQUFDeEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO1VBQUVJLElBQUksRUFBRTtRQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNxQyxPQUFPLENBQUM3QixPQUFPLENBQUNOLE1BQU0sQ0FBQ29DLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLENBQUM7TUFDcEYsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY1QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsTUFBTTtNQUMvQkUsRUFBRSxDQUFDZ0MsSUFBSTtBQUNiO0FBQ0EsVUFBVSxJQUFJLGFBQWF6QixTQUFTLFdBQVc7UUFBRW9DLEtBQUssRUFBRSxLQUFLO1FBQUVDLEtBQUssRUFBRTtNQUFLLENBQUM7QUFDNUUsVUFBVSxLQUFLLFlBQVlyQyxTQUFTLFdBQVc7UUFBRW9DLEtBQUssRUFBRSxLQUFLO1FBQUVDLEtBQUssRUFBRTtNQUFFLENBQUM7QUFDekUsVUFBVSxJQUFJLGFBQWEsS0FBSyxlQUFlO1FBQUVELEtBQUssRUFBRSxLQUFLO1FBQUVDLEtBQUssRUFBRTtNQUFFLENBQUM7QUFDekUsVUFBVSxLQUFLLFlBQVksSUFBSSxnQkFBZ0I7UUFBRUQsS0FBSyxFQUFFLEtBQUs7UUFBRUMsS0FBSyxFQUFFO01BQUUsQ0FBQztBQUN6RSxPQUFPLENBQ0MsbUZBQW1GLEVBQ25GLE9BQU87UUFBRXBFLGNBQWM7UUFBRXFFLGlCQUFpQjtRQUFFWjtNQUFTLENBQUMsS0FBSztRQUN6RCxNQUFNaEMsTUFBTSxHQUFHLE1BQU0sSUFBQXNDLGNBQU8sRUFDMUI7VUFDRSxHQUFHeEMsUUFBUTtVQUNYdkIsY0FBYztVQUNkb0IsZUFBZSxFQUFFTixrQ0FBa0M7VUFDbkQ3QixVQUFVLEVBQUU4RDtRQUNkLENBQUMsRUFDRDtVQUFFL0QsT0FBTyxFQUFFK0Q7UUFBSSxDQUFDLEVBQ2hCO1VBQUVwQixJQUFJLEVBQUUsVUFBVTtVQUFFM0IsY0FBYyxFQUFFcUU7UUFBa0IsQ0FDeEQsQ0FBQztRQUNEeEMsTUFBTSxDQUFDSixNQUFNLENBQUMsQ0FBQ1UsT0FBTyxDQUFDTixNQUFNLENBQUN5QyxnQkFBZ0IsQ0FBQ2IsUUFBUSxDQUFDLENBQUM7TUFDM0QsQ0FDRixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"description": "auto generated package.json",
|
|
3
|
-
"license": "MIT",
|
|
4
|
-
"name": "configure-generated-pkg",
|
|
5
|
-
"private": true,
|
|
6
|
-
"version": "0.0.1",
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"@pie-element/categorize-configure": "file:../node_modules/@pie-element/categorize/configure"
|
|
9
|
-
}
|
|
10
|
-
}
|