@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.
@@ -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 &nbsp; replaced with a regular space', () => {
50
- const markup = ['<div>', '<span data-type="drag_in_the_blank" data-value="foo&nbsp;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+JywgJzwvZGl2PiddLmpvaW4oJycpO1xuXG4gICAgICBleHBlY3QoY2hvaWNlSXNFbXB0eSh7IHZhbHVlOiBtYXJrdXAgfSkpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQVFBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE1BQU07RUFDNUJBLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNO0lBQ3RDQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsTUFBTTtNQUNoRCxNQUFNQyxFQUFFLEdBQUcsSUFBQUMsa0NBQXFCLEVBQUMsb0JBQW9CLENBQUM7TUFFdERDLE1BQU0sQ0FBQ0YsRUFBRSxDQUFDRyxTQUFTLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLCtCQUErQixDQUFDO0lBQy9ELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGTixRQUFRLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtJQUN6Q0MsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN4RixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLE1BQU07TUFDL0NHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDJCQUEyQixFQUFFLE1BQU07TUFDcENHLE1BQU0sQ0FBQyxJQUFBRyxxQ0FBd0IsRUFBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUNELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztJQUMxRixDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFD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RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BQzdELE1BQU1JLE9BQU8sR0FBRyxDQUNkO1FBQ0VDLEtBQUssRUFBRSxRQUFRO1FBQ2ZDLEVBQUUsRUFBRTtNQUNOLENBQUMsRUFDRDtRQUNFRCxLQUFLLEVBQUUsRUFBRTtRQUNUQyxFQUFFLEVBQUU7TUFDTixDQUFDLENBQ0Y7TUFDRCxNQUFNQyxlQUFlLEdBQUc7UUFDdEIsQ0FBQyxFQUFFLEdBQUc7UUFDTixDQUFDLEVBQUU7TUFDTCxDQUFDO01BQ0QsTUFBTUUsV0FBVyxHQUFHLElBQUFDLDhCQUFpQixFQUFDWCxNQUFNLEVBQUVLLE9BQU8sRUFBRUcsZUFBZSxDQUFDO01BRXZFWixNQUFNLENBQUNjLFdBQVcsQ0FBQyxDQUFDWixPQUFPLENBQ3pCLENBQ0UsT0FBTyxFQUNQLDRGQUE0RixFQUM1RixxRkFBcUYsRUFDckYsUUFBUSxDQUNULENBQUNHLElBQUksQ0FBQyxFQUFFLENBQ1gsQ0FBQztJQUNILENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGVCxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU07SUFDOUJDLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxNQUFNO01BQzdERyxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQztNQUUxQ0YsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDQyxTQUFTLENBQUMsQ0FBQyxDQUFDZixPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVGTCxFQUFFLENBQUMsOENBQThDLEVBQUUsTUFBTTtNQUN2REcsTUFBTSxDQUFDLElBQUFnQiwwQkFBYSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLE1BQU07TUFDdkQsTUFBTU8sTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO01BRW5FTCxNQUFNLENBQUMsSUFBQWdCLDBCQUFhLEVBQUM7UUFBRU4sS0FBSyxFQUFFTjtNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119