@pie-element/drag-in-the-blank 10.2.2-beta.3 → 10.2.2-beta.5
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 +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +8 -0
- package/controller/package.json +1 -1
- package/package.json +3 -3
- package/configure/lib/__tests__/choice.test.js +0 -114
- package/configure/lib/__tests__/choices.test.js +0 -157
- package/configure/lib/__tests__/main.test.js +0 -167
- package/configure/lib/__tests__/markupUtils.test.js +0 -105
- package/controller/lib/__tests__/index.test.js +0 -775
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/index.test.js +0 -118
- package/lib/__tests__/main.test.js +0 -139
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _markupUtils = require("../markupUtils");
|
|
4
|
-
describe('markupUtils', () => {
|
|
5
|
-
describe('createElementFromHTML', () => {
|
|
6
|
-
it('should create dom element from string', () => {
|
|
7
|
-
const el = (0, _markupUtils.createElementFromHTML)(`<div>Foo Bar</div>`);
|
|
8
|
-
expect(el.outerHTML).toEqual('<div><div>Foo Bar</div></div>');
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
describe('removeUnwantedCharacters', () => {
|
|
12
|
-
it('should remove \\t and \\n characters', () => {
|
|
13
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\t\nbar</div>')).toEqual('<div>foobar</div>');
|
|
14
|
-
});
|
|
15
|
-
it('should remove \\t and \\n characters', () => {
|
|
16
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\\t\\nbar</div>')).toEqual('<div>foobar</div>');
|
|
17
|
-
});
|
|
18
|
-
it('should replace \\" with "', () => {
|
|
19
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>"foo bar"</div>')).toEqual('<div>"foo bar"</div>');
|
|
20
|
-
});
|
|
21
|
-
it('should replace \\/ with /', () => {
|
|
22
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo/bar</div>')).toEqual('<div>foo/bar</div>');
|
|
23
|
-
});
|
|
24
|
-
it('should not remove \\t character which has latex like \\times', () => {
|
|
25
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div><span data-latex="" data-raw="3\\times3\\div2">3\\times3\\div2</span></div>')).toEqual('<div><span data-latex="" data-raw="3\\times3\\div2">3\\times3\\div2</span></div>');
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
describe('processMarkup', () => {
|
|
29
|
-
it('should get choices, markup and correctResponse from markup', () => {
|
|
30
|
-
const markup = ['<div>', '<span data-type="drag_in_the_blank" data-value="foobar" data-id="0"></span>', '<span data-type="drag_in_the_blank" data-value="barfoo" data-id="1"></span>', '</div>'].join('');
|
|
31
|
-
const processed = (0, _markupUtils.processMarkup)(markup);
|
|
32
|
-
expect(processed).toEqual(expect.objectContaining({
|
|
33
|
-
markup: ['<div>', '{{0}}', '{{1}}', '</div>'].join(''),
|
|
34
|
-
choices: [{
|
|
35
|
-
value: 'foobar',
|
|
36
|
-
id: '0'
|
|
37
|
-
}, {
|
|
38
|
-
value: 'barfoo',
|
|
39
|
-
id: '1'
|
|
40
|
-
}],
|
|
41
|
-
correctResponse: {
|
|
42
|
-
0: '0',
|
|
43
|
-
1: '1'
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// TODO: not sure if this test is very good
|
|
49
|
-
it('should get value with replaced with a regular space', () => {
|
|
50
|
-
const markup = ['<div>', '<span data-type="drag_in_the_blank" data-value="foo bar" data-id="0"></span>', '</div>'].join('');
|
|
51
|
-
const processed = (0, _markupUtils.processMarkup)(markup);
|
|
52
|
-
expect(encodeURIComponent(processed.choices[0].value)).toEqual('foo%C2%A0bar');
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('createSlateMarkup', () => {
|
|
56
|
-
it('should create slate markup from the regular markup, choices and correctResponses', () => {
|
|
57
|
-
const markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
58
|
-
const choices = [{
|
|
59
|
-
value: 'foobar',
|
|
60
|
-
id: '0'
|
|
61
|
-
}, {
|
|
62
|
-
value: 'barfoo',
|
|
63
|
-
id: '1'
|
|
64
|
-
}];
|
|
65
|
-
const correctResponse = {
|
|
66
|
-
0: '0',
|
|
67
|
-
1: '1'
|
|
68
|
-
};
|
|
69
|
-
const slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices, correctResponse);
|
|
70
|
-
expect(slateMarkup).toEqual(['<div>', '<span data-type="drag_in_the_blank" data-index="0" data-id="0" data-value="foobar"></span>', '<span data-type="drag_in_the_blank" data-index="1" data-id="1" data-value="barfoo"></span>', '</div>'].join(''));
|
|
71
|
-
});
|
|
72
|
-
it('should handle choices with empty values', () => {
|
|
73
|
-
const markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
74
|
-
const choices = [{
|
|
75
|
-
value: 'foobar',
|
|
76
|
-
id: '0'
|
|
77
|
-
}, {
|
|
78
|
-
value: '',
|
|
79
|
-
id: '1'
|
|
80
|
-
}];
|
|
81
|
-
const correctResponse = {
|
|
82
|
-
0: '0',
|
|
83
|
-
1: '1'
|
|
84
|
-
};
|
|
85
|
-
const slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices, correctResponse);
|
|
86
|
-
expect(slateMarkup).toEqual(['<div>', '<span data-type="drag_in_the_blank" data-index="0" data-id="0" data-value="foobar"></span>', '<span data-type="drag_in_the_blank" data-index="1" data-id="" data-value=""></span>', '</div>'].join(''));
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
describe('choiceIsEmpty', () => {
|
|
90
|
-
it('should return false if choice is null or undefined', () => {
|
|
91
|
-
expect((0, _markupUtils.choiceIsEmpty)(null)).toEqual(false);
|
|
92
|
-
expect((0, _markupUtils.choiceIsEmpty)(undefined)).toEqual(false);
|
|
93
|
-
});
|
|
94
|
-
it('should handle choices with no value provided', () => {
|
|
95
|
-
expect((0, _markupUtils.choiceIsEmpty)({})).toEqual(true);
|
|
96
|
-
});
|
|
97
|
-
it('should handle choices with img tags provided', () => {
|
|
98
|
-
const markup = ['<div>', '<img src="foobar" />', '</div>'].join('');
|
|
99
|
-
expect((0, _markupUtils.choiceIsEmpty)({
|
|
100
|
-
value: markup
|
|
101
|
-
})).toEqual(false);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFya3VwVXRpbHMiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJpdCIsImVsIiwiY3JlYXRlRWxlbWVudEZyb21IVE1MIiwiZXhwZWN0Iiwib3V0ZXJIVE1MIiwidG9FcXVhbCIsInJlbW92ZVVud2FudGVkQ2hhcmFjdGVycyIsIm1hcmt1cCIsImpvaW4iLCJwcm9jZXNzZWQiLCJwcm9jZXNzTWFya3VwIiwib2JqZWN0Q29udGFpbmluZyIsImNob2ljZXMiLCJ2YWx1ZSIsImlkIiwiY29ycmVjdFJlc3BvbnNlIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic2xhdGVNYXJrdXAiLCJjcmVhdGVTbGF0ZU1hcmt1cCIsImNob2ljZUlzRW1wdHkiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL21hcmt1cFV0aWxzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNob2ljZUlzRW1wdHksXG4gIGNyZWF0ZUVsZW1lbnRGcm9tSFRNTCxcbiAgY3JlYXRlU2xhdGVNYXJrdXAsXG4gIHByb2Nlc3NNYXJrdXAsXG4gIHJlbW92ZVVud2FudGVkQ2hhcmFjdGVycyxcbn0gZnJvbSAnLi4vbWFya3VwVXRpbHMnO1xuXG5kZXNjcmliZSgnbWFya3VwVXRpbHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjcmVhdGVFbGVtZW50RnJvbUhUTUwnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgZG9tIGVsZW1lbnQgZnJvbSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgPGRpdj5Gb28gQmFyPC9kaXY+YCk7XG5cbiAgICAgIGV4cGVjdChlbC5vdXRlckhUTUwpLnRvRXF1YWwoJzxkaXY+PGRpdj5Gb28gQmFyPC9kaXY+PC9kaXY+Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZW1vdmUgXFxcXHQgYW5kIFxcXFxuIGNoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PmZvb1xcdFxcbmJhcjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PmZvb2JhcjwvZGl2PicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZW1vdmUgXFxcXHQgYW5kIFxcXFxuIGNoYXJhY3RlcnMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PmZvb1xcXFx0XFxcXG5iYXI8L2Rpdj4nKSkudG9FcXVhbCgnPGRpdj5mb29iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVwbGFjZSBcXFxcXCIgd2l0aCBcIicsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+XCJmb28gYmFyXCI8L2Rpdj4nKSkudG9FcXVhbCgnPGRpdj5cImZvbyBiYXJcIjwvZGl2PicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIFxcXFwvIHdpdGggLycsICgpID0+IHtcbiAgICAgIGV4cGVjdChyZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+Zm9vL2JhcjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PmZvby9iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJlbW92ZSBcXFxcdCBjaGFyYWN0ZXIgd2hpY2ggaGFzIGxhdGV4IGxpa2UgXFxcXHRpbWVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KFxuICAgICAgICByZW1vdmVVbndhbnRlZENoYXJhY3RlcnMoJzxkaXY+PHNwYW4gZGF0YS1sYXRleD1cIlwiIGRhdGEtcmF3PVwiM1xcXFx0aW1lczNcXFxcZGl2MlwiPjNcXFxcdGltZXMzXFxcXGRpdjI8L3NwYW4+PC9kaXY+JyksXG4gICAgICApLnRvRXF1YWwoJzxkaXY+PHNwYW4gZGF0YS1sYXRleD1cIlwiIGRhdGEtcmF3PVwiM1xcXFx0aW1lczNcXFxcZGl2MlwiPjNcXFxcdGltZXMzXFxcXGRpdjI8L3NwYW4+PC9kaXY+Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwcm9jZXNzTWFya3VwJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2V0IGNob2ljZXMsIG1hcmt1cCBhbmQgY29ycmVjdFJlc3BvbnNlIGZyb20gbWFya3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIiBkYXRhLXZhbHVlPVwiZm9vYmFyXCIgZGF0YS1pZD1cIjBcIj48L3NwYW4+JyxcbiAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS12YWx1ZT1cImJhcmZvb1wiIGRhdGEtaWQ9XCIxXCI+PC9zcGFuPicsXG4gICAgICAgICc8L2Rpdj4nLFxuICAgICAgXS5qb2luKCcnKTtcbiAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IHByb2Nlc3NNYXJrdXAobWFya3VwKTtcblxuICAgICAgZXhwZWN0KHByb2Nlc3NlZCkudG9FcXVhbChcbiAgICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIG1hcmt1cDogWyc8ZGl2PicsICd7ezB9fScsICd7ezF9fScsICc8L2Rpdj4nXS5qb2luKCcnKSxcbiAgICAgICAgICBjaG9pY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnZm9vYmFyJyxcbiAgICAgICAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnYmFyZm9vJyxcbiAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjb3JyZWN0UmVzcG9uc2U6IHtcbiAgICAgICAgICAgIDA6ICcwJyxcbiAgICAgICAgICAgIDE6ICcxJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBUT0RPOiBub3Qgc3VyZSBpZiB0aGlzIHRlc3QgaXMgdmVyeSBnb29kXG4gICAgaXQoJ3Nob3VsZCBnZXQgdmFsdWUgd2l0aCAmbmJzcDsgcmVwbGFjZWQgd2l0aCBhIHJlZ3VsYXIgc3BhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrdXAgPSBbXG4gICAgICAgICc8ZGl2PicsXG4gICAgICAgICc8c3BhbiBkYXRhLXR5cGU9XCJkcmFnX2luX3RoZV9ibGFua1wiIGRhdGEtdmFsdWU9XCJmb28mbmJzcDtiYXJcIiBkYXRhLWlkPVwiMFwiPjwvc3Bhbj4nLFxuICAgICAgICAnPC9kaXY+JyxcbiAgICAgIF0uam9pbignJyk7XG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBwcm9jZXNzTWFya3VwKG1hcmt1cCk7XG5cbiAgICAgIGV4cGVjdChlbmNvZGVVUklDb21wb25lbnQocHJvY2Vzc2VkLmNob2ljZXNbMF0udmFsdWUpKS50b0VxdWFsKCdmb28lQzIlQTBiYXInKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NyZWF0ZVNsYXRlTWFya3VwJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIHNsYXRlIG1hcmt1cCBmcm9tIHRoZSByZWd1bGFyIG1hcmt1cCwgY2hvaWNlcyBhbmQgY29ycmVjdFJlc3BvbnNlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmt1cCA9IFsnPGRpdj4nLCAne3swfX0nLCAne3sxfX0nLCAnPC9kaXY+J10uam9pbignJyk7XG4gICAgICBjb25zdCBjaG9pY2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdmb29iYXInLFxuICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2JhcmZvbycsXG4gICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBjb25zdCBjb3JyZWN0UmVzcG9uc2UgPSB7XG4gICAgICAgIDA6ICcwJyxcbiAgICAgICAgMTogJzEnLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHNsYXRlTWFya3VwID0gY3JlYXRlU2xhdGVNYXJrdXAobWFya3VwLCBjaG9pY2VzLCBjb3JyZWN0UmVzcG9uc2UpO1xuXG4gICAgICBleHBlY3Qoc2xhdGVNYXJrdXApLnRvRXF1YWwoXG4gICAgICAgIFtcbiAgICAgICAgICAnPGRpdj4nLFxuICAgICAgICAgICc8c3BhbiBkYXRhLXR5cGU9XCJkcmFnX2luX3RoZV9ibGFua1wiIGRhdGEtaW5kZXg9XCIwXCIgZGF0YS1pZD1cIjBcIiBkYXRhLXZhbHVlPVwiZm9vYmFyXCI+PC9zcGFuPicsXG4gICAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS1pbmRleD1cIjFcIiBkYXRhLWlkPVwiMVwiIGRhdGEtdmFsdWU9XCJiYXJmb29cIj48L3NwYW4+JyxcbiAgICAgICAgICAnPC9kaXY+JyxcbiAgICAgICAgXS5qb2luKCcnKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjaG9pY2VzIHdpdGggZW1wdHkgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gWyc8ZGl2PicsICd7ezB9fScsICd7ezF9fScsICc8L2Rpdj4nXS5qb2luKCcnKTtcbiAgICAgIGNvbnN0IGNob2ljZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ2Zvb2JhcicsXG4gICAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICBpZDogJzEnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIGNvbnN0IGNvcnJlY3RSZXNwb25zZSA9IHtcbiAgICAgICAgMDogJzAnLFxuICAgICAgICAxOiAnMScsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2xhdGVNYXJrdXAgPSBjcmVhdGVTbGF0ZU1hcmt1cChtYXJrdXAsIGNob2ljZXMsIGNvcnJlY3RSZXNwb25zZSk7XG5cbiAgICAgIGV4cGVjdChzbGF0ZU1hcmt1cCkudG9FcXVhbChcbiAgICAgICAgW1xuICAgICAgICAgICc8ZGl2PicsXG4gICAgICAgICAgJzxzcGFuIGRhdGEtdHlwZT1cImRyYWdfaW5fdGhlX2JsYW5rXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLWlkPVwiMFwiIGRhdGEtdmFsdWU9XCJmb29iYXJcIj48L3NwYW4+JyxcbiAgICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIiBkYXRhLWluZGV4PVwiMVwiIGRhdGEtaWQ9XCJcIiBkYXRhLXZhbHVlPVwiXCI+PC9zcGFuPicsXG4gICAgICAgICAgJzwvZGl2PicsXG4gICAgICAgIF0uam9pbignJyksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY2hvaWNlSXNFbXB0eScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSBpZiBjaG9pY2UgaXMgbnVsbCBvciB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoY2hvaWNlSXNFbXB0eShudWxsKSkudG9FcXVhbChmYWxzZSk7XG5cbiAgICAgIGV4cGVjdChjaG9pY2VJc0VtcHR5KHVuZGVmaW5lZCkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgY2hvaWNlcyB3aXRoIG5vIHZhbHVlIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNob2ljZUlzRW1wdHkoe30pKS50b0VxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgY2hvaWNlcyB3aXRoIGltZyB0YWdzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gWyc8ZGl2PicsICc8aW1nIHNyYz1cImZvb2JhclwiIC8+JywgJzwvZGl2PiddLmpvaW4oJycpO1xuXG4gICAgICBleHBlY3QoY2hvaWNlSXNFbXB0eSh7IHZhbHVlOiBtYXJrdXAgfSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQVFBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUJBLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNO0lBQ3RDQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsTUFBTTtNQUNoRCxNQUFNQyxFQUFFLEdBQUcsSUFBQUMsa0NBQXFCLEVBQUMsb0JBQW9CLENBQUM7TUFFdERDLE1BQU0sQ0FBQ0YsRUFBRSxDQUFDRyxTQUFTLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLCtCQUErQixDQUFDO0lBQy9ELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtJQUN6Q0MsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN4RixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE1BQU07TUFDcENHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE1BQU07TUFDcENHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztJQUN0RixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLE1BQU07TUFDdkVHLE1BQU0sQ0FDSixJQUFBRyxxQ0FBd0IsRUFBQyxrRkFBa0YsQ0FDN0csQ0FBQyxDQUFDRCxPQUFPLENBQUMsa0ZBQWtGLENBQUM7SUFDL0YsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZOLFFBQVEsQ0FBQyxlQUFlLEVBQUUsTUFBTTtJQUM5QkMsRUFBRSxDQUFDLDREQUE0RCxFQUFFLE1BQU07TUFDckUsTUFBTU8sTUFBTSxHQUFHLENBQ2IsT0FBTyxFQUNQLDZFQUE2RSxFQUM3RSw2RUFBNkUsRUFDN0UsUUFBUSxDQUNULENBQUNDLElBQUksQ0FBQyxFQUFFLENBQUM7TUFDVixNQUFNQyxTQUFTLEdBQUcsSUFBQUMsMEJBQWEsRUFBQ0gsTUFBTSxDQUFDO01BRXZDSixNQUFNLENBQUNNLFNBQVMsQ0FBQyxDQUFDSixPQUFPLENBQ3ZCRixNQUFNLENBQUNRLGdCQUFnQixDQUFDO1FBQ3RCSixNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN0REksT0FBTyxFQUFFLENBQ1A7VUFDRUMsS0FBSyxFQUFFLFFBQVE7VUFDZkMsRUFBRSxFQUFFO1FBQ04sQ0FBQyxFQUNEO1VBQ0VELEtBQUssRUFBRSxRQUFRO1VBQ2ZDLEVBQUUsRUFBRTtRQUNOLENBQUMsQ0FDRjtRQUNEQyxlQUFlLEVBQUU7VUFDZixDQUFDLEVBQUUsR0FBRztVQUNOLENBQUMsRUFBRTtRQUNMO01BQ0YsQ0FBQyxDQUNILENBQUM7SUFDSCxDQUFDLENBQUM7O0lBRUY7SUFDQWYsRUFBRSxDQUFDLDREQUE0RCxFQUFFLE1BQU07TUFDckUsTUFBTU8sTUFBTSxHQUFHLENBQ2IsT0FBTyxFQUNQLG1GQUFtRixFQUNuRixRQUFRLENBQ1QsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQztNQUNWLE1BQU1DLFNBQVMsR0FBRyxJQUFBQywwQkFBYSxFQUFDSCxNQUFNLENBQUM7TUFFdkNKLE1BQU0sQ0FBQ2Esa0JBQWtCLENBQUNQLFNBQVMsQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDUixPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ2hGLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixRQUFRLENBQUMsbUJBQW1CLEVBQUUsTUFBTTtJQUNsQ0MsRUFBRSxDQUFDLGtGQUFrRixFQUFFLE1BQU07TUFDM0YsTUFBTU8sTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUNDLElBQUksQ0FBQyxFQUFFLENBQUM7TUFDN0QsTUFBTUksT0FBTyxHQUFHLENBQ2Q7UUFDRUMsS0FBSyxFQUFFLFFBQVE7UUFDZkMsRUFBRSxFQUFFO01BQ04sQ0FBQyxFQUNEO1FBQ0VELEtBQUssRUFBRSxRQUFRO1FBQ2ZDLEVBQUUsRUFBRTtNQUNOLENBQUMsQ0FDRjtNQUNELE1BQU1DLGVBQWUsR0FBRztRQUN0QixDQUFDLEVBQUUsR0FBRztRQUNOLENBQUMsRUFBRTtNQUNMLENBQUM7TUFDRCxNQUFNRSxXQUFXLEdBQUcsSUFBQUMsOEJBQWlCLEVBQUNYLE1BQU0sRUFBRUssT0FBTyxFQUFFRyxlQUFlLENBQUM7TUFFdkVaLE1BQU0sQ0FBQ2MsV0FBVyxDQUFDLENBQUNaLE9BQU8sQ0FDekIsQ0FDRSxPQUFPLEVBQ1AsNEZBQTRGLEVBQzVGLDRGQUE0RixFQUM1RixRQUFRLENBQ1QsQ0FBQ0csSUFBSSxDQUFDLEVBQUUsQ0FDWCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUZSLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxNQUFNO01BQ2xELE1BQU1PLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BQzdELE1BQU1JLE9BQU8sR0FBRyxDQUNkO1FBQ0VDLEtBQUssRUFBRSxRQUFRO1FBQ2ZDLEVBQUUsRUFBRTtNQUNOLENBQUMsRUFDRDtRQUNFRCxLQUFLLEVBQUUsRUFBRTtRQUNUQyxFQUFFLEVBQUU7TUFDTixDQUFDLENBQ0Y7TUFDRCxNQUFNQyxlQUFlLEdBQUc7UUFDdEIsQ0FBQyxFQUFFLEdBQUc7UUFDTixDQUFDLEVBQUU7TUFDTCxDQUFDO01BQ0QsTUFBTUUsV0FBVyxHQUFHLElBQUFDLDhCQUFpQixFQUFDWCxNQUFNLEVBQUVLLE9BQU8sRUFBRUcsZUFBZSxDQUFDO01BRXZFWixNQUFNLENBQUNjLFdBQVcsQ0FBQyxDQUFDWixPQUFPLENBQ3pCLENBQ0UsT0FBTyxFQUNQLDRGQUE0RixFQUM1RixxRkFBcUYsRUFDckYsUUFBUSxDQUNULENBQUNHLElBQUksQ0FBQyxFQUFFLENBQ1gsQ0FBQztJQUNILENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGVCxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU07SUFDOUJDLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxNQUFNO01BQzdERyxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQztNQUUxQ0YsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDZixPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVGTCxFQUFFLENBQUMsOENBQThDLEVBQUUsTUFBTTtNQUN2REcsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLE1BQU07TUFDdkQsTUFBTU8sTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BRW5FTCxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUM7UUFBRU4sS0FBSyxFQUFFTjtNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|