@pie-element/select-text 6.5.23 → 6.5.26-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 -44
- package/configure/CHANGELOG.md +0 -40
- package/configure/lib/__tests__/design.test.js +219 -0
- package/configure/lib/defaultConfiguration.js +6 -1
- package/configure/lib/defaultConfiguration.js.map +1 -1
- package/configure/lib/design.js +62 -10
- package/configure/lib/design.js.map +1 -1
- package/configure/lib/index.js +3 -3
- package/configure/lib/utils.js +3 -3
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +0 -24
- package/controller/lib/__tests__/index.test.js +833 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +38 -5
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +16 -0
- package/docs/config-schema.json.md +12 -0
- package/docs/demo/generate.js +61 -61
- 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__/index.test.js +91 -0
- package/lib/__tests__/main.test.js +83 -0
- package/lib/index.js +3 -3
- package/lib/main.js +3 -3
- package/lib/print.js +3 -2
- package/lib/print.js.map +1 -1
- package/lib/utils.js +3 -3
- package/package.json +6 -6
- package/LICENSE.md +0 -5
- package/module/configure.js +0 -2727
- package/module/controller.js +0 -19141
- package/module/demo.js +0 -287
- package/module/element.js +0 -2518
- package/module/index.html +0 -21
- package/module/manifest.json +0 -14
- package/module/print-demo.js +0 -325
- package/module/print.html +0 -18
- package/module/print.js +0 -2480
package/CHANGELOG.md
CHANGED
|
@@ -3,50 +3,6 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [6.5.23](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.22...@pie-element/select-text@6.5.23) (2022-03-08)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @pie-element/select-text
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [6.5.22](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.21...@pie-element/select-text@6.5.22) (2022-02-21)
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package @pie-element/select-text
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## [6.5.21](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.20...@pie-element/select-text@6.5.21) (2022-02-17)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @pie-element/select-text
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## [6.5.20](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.19...@pie-element/select-text@6.5.20) (2022-02-04)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @pie-element/select-text
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## [6.5.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.18...@pie-element/select-text@6.5.19) (2022-01-24)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### Bug Fixes
|
|
42
|
-
|
|
43
|
-
* Try to re-trigger ([04e6e41](https://github.com/pie-framework/pie-elements/commit/04e6e41d36a630b5d11abb8683d6b08ec0d2b3ec))
|
|
44
|
-
* use preview prompt for prompt, rationale and teacher instructions to fix table rendering PD-1456 ([f330601](https://github.com/pie-framework/pie-elements/commit/f3306019a2d1c8ce3e2783823dfe9ef0a0394e4f))
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
6
|
## [6.5.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text@6.5.17...@pie-element/select-text@6.5.18) (2022-01-10)
|
|
51
7
|
|
|
52
8
|
**Note:** Version bump only for package @pie-element/select-text
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,46 +3,6 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [5.2.19](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.18...@pie-element/select-text-configure@5.2.19) (2022-03-08)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [5.2.18](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.17...@pie-element/select-text-configure@5.2.18) (2022-02-21)
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## [5.2.17](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.16...@pie-element/select-text-configure@5.2.17) (2022-02-17)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## [5.2.16](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.15...@pie-element/select-text-configure@5.2.16) (2022-02-04)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## [5.2.15](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.14...@pie-element/select-text-configure@5.2.15) (2022-01-24)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
6
|
## [5.2.14](https://github.com/pie-framework/pie-elements/compare/@pie-element/select-text-configure@5.2.13...@pie-element/select-text-configure@5.2.14) (2022-01-10)
|
|
47
7
|
|
|
48
8
|
**Note:** Version bump only for package @pie-element/select-text-configure
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _enzyme = require("enzyme");
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _design = require("../design");
|
|
12
|
+
|
|
13
|
+
var _defaultConfiguration = _interopRequireDefault(require("../defaultConfiguration"));
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
jest.mock('@pie-lib/config-ui', function () {
|
|
20
|
+
return {
|
|
21
|
+
layout: {
|
|
22
|
+
ConfigLayout: function ConfigLayout(props) {
|
|
23
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, props.children);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
settings: {
|
|
27
|
+
Panel: function Panel(props) {
|
|
28
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
29
|
+
oChangeModel: props.onChange
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
toggle: jest.fn(),
|
|
33
|
+
radio: jest.fn()
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
jest.mock('lodash/debounce', function () {
|
|
38
|
+
return function (fn) {
|
|
39
|
+
return fn;
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
describe('design', function () {
|
|
43
|
+
var w;
|
|
44
|
+
var onChange;
|
|
45
|
+
var onPromptChanged;
|
|
46
|
+
var onRationaleChanged;
|
|
47
|
+
|
|
48
|
+
var getModel = function getModel() {
|
|
49
|
+
return {
|
|
50
|
+
tokens: []
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
beforeEach(function () {
|
|
55
|
+
onChange = jest.fn();
|
|
56
|
+
onPromptChanged = jest.fn();
|
|
57
|
+
onRationaleChanged = jest.fn();
|
|
58
|
+
w = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
|
|
59
|
+
model: getModel(),
|
|
60
|
+
configuration: _defaultConfiguration["default"].configuration,
|
|
61
|
+
classes: {},
|
|
62
|
+
className: 'foo',
|
|
63
|
+
onModelChanged: onChange,
|
|
64
|
+
onPromptChanged: onPromptChanged,
|
|
65
|
+
onRationaleChanged: onRationaleChanged
|
|
66
|
+
}));
|
|
67
|
+
});
|
|
68
|
+
describe('snapshot', function () {
|
|
69
|
+
it('renders all items with defaultProps', function () {
|
|
70
|
+
expect(w).toMatchSnapshot();
|
|
71
|
+
});
|
|
72
|
+
it('tokenizer renders with html entities', function () {
|
|
73
|
+
expect((0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
|
|
74
|
+
model: {
|
|
75
|
+
text: '<p>“Lucy?? Are you using your time wisely to plan your project?!!!” Mr. Wilson asked.</p><p>Lucy looked a little confused at first. Ã Then she grinned and proudly stated, “Why, yes I am! I plan to make a bird feeder for that tree out our window!”</p>',
|
|
76
|
+
tokens: []
|
|
77
|
+
},
|
|
78
|
+
configuration: _defaultConfiguration["default"].configuration,
|
|
79
|
+
classes: {},
|
|
80
|
+
className: 'foo',
|
|
81
|
+
onModelChanged: onChange,
|
|
82
|
+
onPromptChanged: onPromptChanged,
|
|
83
|
+
onRationaleChanged: onRationaleChanged
|
|
84
|
+
}))).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
it('renders all items except feedback', function () {
|
|
87
|
+
var defaultConfiguration = _defaultConfiguration["default"].configuration;
|
|
88
|
+
defaultConfiguration.feedback.settings = false;
|
|
89
|
+
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
|
|
90
|
+
model: getModel(),
|
|
91
|
+
configuration: defaultConfiguration,
|
|
92
|
+
classes: {},
|
|
93
|
+
className: 'foo',
|
|
94
|
+
onModelChanged: onChange,
|
|
95
|
+
onPromptChanged: onPromptChanged,
|
|
96
|
+
onRationaleChanged: onRationaleChanged
|
|
97
|
+
}));
|
|
98
|
+
expect(wrapper).toMatchSnapshot();
|
|
99
|
+
});
|
|
100
|
+
it('renders all items except the content input', function () {
|
|
101
|
+
var defaultConfiguration = _defaultConfiguration["default"].configuration;
|
|
102
|
+
defaultConfiguration.text.settings = false;
|
|
103
|
+
var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_design.Design, {
|
|
104
|
+
model: getModel(),
|
|
105
|
+
configuration: defaultConfiguration,
|
|
106
|
+
classes: {},
|
|
107
|
+
className: 'foo',
|
|
108
|
+
onModelChanged: onChange,
|
|
109
|
+
onPromptChanged: onPromptChanged,
|
|
110
|
+
onRationaleChanged: onRationaleChanged
|
|
111
|
+
}));
|
|
112
|
+
expect(wrapper).toMatchSnapshot();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('logic', function () {
|
|
116
|
+
var assert = function assert(fn, args, expected) {
|
|
117
|
+
var e = expected(getModel());
|
|
118
|
+
it("".concat(fn, " ").concat(JSON.stringify(args), " => ").concat(JSON.stringify(e)), function () {
|
|
119
|
+
var instance = w.instance();
|
|
120
|
+
instance[fn].apply(instance, args); //jest.runAllTimers();
|
|
121
|
+
|
|
122
|
+
expect(onChange).toBeCalledWith(e);
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
describe('changeText', function () {
|
|
127
|
+
assert('changeText', [{
|
|
128
|
+
target: {
|
|
129
|
+
value: 'foo'
|
|
130
|
+
}
|
|
131
|
+
}], function (m) {
|
|
132
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
133
|
+
text: 'foo'
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('changeTokens', function () {
|
|
138
|
+
assert('changeTokens', [[{
|
|
139
|
+
start: 0,
|
|
140
|
+
end: 1,
|
|
141
|
+
text: 'f'
|
|
142
|
+
}], 'words'], function (m) {
|
|
143
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
144
|
+
maxSelections: 0,
|
|
145
|
+
tokens: [{
|
|
146
|
+
start: 0,
|
|
147
|
+
end: 1,
|
|
148
|
+
text: 'f'
|
|
149
|
+
}],
|
|
150
|
+
mode: 'words'
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
assert('changeTokens', [[{
|
|
154
|
+
start: 0,
|
|
155
|
+
end: 8,
|
|
156
|
+
text: 'Foo bar.',
|
|
157
|
+
correct: true
|
|
158
|
+
}], 'sentences'], function (m) {
|
|
159
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
160
|
+
maxSelections: 1,
|
|
161
|
+
tokens: [{
|
|
162
|
+
start: 0,
|
|
163
|
+
end: 8,
|
|
164
|
+
text: 'Foo bar.',
|
|
165
|
+
correct: true
|
|
166
|
+
}],
|
|
167
|
+
mode: 'sentences'
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
describe('changeMaxSelections', function () {
|
|
172
|
+
assert('changeMaxSelections', [{}, 4], function (m) {
|
|
173
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
174
|
+
maxSelections: 4
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('changeFeedback', function () {
|
|
179
|
+
assert('changeFeedback', [{
|
|
180
|
+
correctFeedbackType: 'none'
|
|
181
|
+
}], function (m) {
|
|
182
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
183
|
+
feedback: {
|
|
184
|
+
correctFeedbackType: 'none'
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe('changePartialScoring', function () {
|
|
190
|
+
assert('changePartialScoring', [true], function (m) {
|
|
191
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
192
|
+
partialScoring: true
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
describe('changePrompt', function () {
|
|
197
|
+
assert('onPromptChanged', ['New Prompt'], function (m) {
|
|
198
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
199
|
+
prompt: 'New Prompt'
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
describe('changeTeacherInstructions', function () {
|
|
204
|
+
assert('onTeacherInstructionsChanged', ['New Teacher Instructions'], function (m) {
|
|
205
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
206
|
+
teacherInstructions: 'New Teacher Instructions'
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
describe('changeRationale', function () {
|
|
211
|
+
assert('onRationaleChanged', ['New Rationale'], function (m) {
|
|
212
|
+
return _objectSpread(_objectSpread({}, m), {}, {
|
|
213
|
+
rationale: 'New Rationale'
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZGVzaWduLnRlc3QuanN4Il0sIm5hbWVzIjpbImplc3QiLCJtb2NrIiwibGF5b3V0IiwiQ29uZmlnTGF5b3V0IiwicHJvcHMiLCJjaGlsZHJlbiIsInNldHRpbmdzIiwiUGFuZWwiLCJvbkNoYW5nZSIsInRvZ2dsZSIsImZuIiwicmFkaW8iLCJkZXNjcmliZSIsInciLCJvblByb21wdENoYW5nZWQiLCJvblJhdGlvbmFsZUNoYW5nZWQiLCJnZXRNb2RlbCIsInRva2VucyIsImJlZm9yZUVhY2giLCJkZWZhdWx0VmFsdWVzIiwiY29uZmlndXJhdGlvbiIsIml0IiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwidGV4dCIsImRlZmF1bHRDb25maWd1cmF0aW9uIiwiZmVlZGJhY2siLCJ3cmFwcGVyIiwiYXNzZXJ0IiwiYXJncyIsImV4cGVjdGVkIiwiZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbnN0YW5jZSIsImFwcGx5IiwidG9CZUNhbGxlZFdpdGgiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm0iLCJzdGFydCIsImVuZCIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwiY29ycmVjdCIsImNvcnJlY3RGZWVkYmFja1R5cGUiLCJwYXJ0aWFsU2NvcmluZyIsInByb21wdCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQUEsSUFBSSxDQUFDQyxJQUFMLENBQVUsb0JBQVYsRUFBZ0M7QUFBQSxTQUFPO0FBQ3JDQyxJQUFBQSxNQUFNLEVBQUU7QUFDTkMsTUFBQUEsWUFBWSxFQUFFLHNCQUFDQyxLQUFEO0FBQUEsNEJBQVcsNkNBQU1BLEtBQUssQ0FBQ0MsUUFBWixDQUFYO0FBQUE7QUFEUixLQUQ2QjtBQUlyQ0MsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLEtBQUssRUFBRSxlQUFDSCxLQUFEO0FBQUEsNEJBQVc7QUFBSyxV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T0FBakMsQ0FBTjtBQUlELEtBTE8sQ0FBUjtBQU9BbEMsSUFBQUEsUUFBUSxDQUFDLGNBQUQsRUFBaUIsWUFBTTtBQUM3QmdCLE1BQUFBLE1BQU0sQ0FBQyxpQkFBRCxFQUFvQixDQUFDLFlBQUQsQ0FBcEIsRUFBb0MsVUFBQ1csQ0FBRDtBQUFBLCtDQUNyQ0EsQ0FEcUM7QUFFeENRLFVBQUFBLE1BQU0sRUFBRTtBQUZnQztBQUFBLE9BQXBDLENBQU47QUFJRCxLQUxPLENBQVI7QUFPQW5DLElBQUFBLFFBQVEsQ0FBQywyQkFBRCxFQUE4QixZQUFNO0FBQzFDZ0IsTUFBQUEsTUFBTSxDQUNKLDhCQURJLEVBRUosQ0FBQywwQkFBRCxDQUZJLEVBR0osVUFBQ1csQ0FBRDtBQUFBLCtDQUNLQSxDQURMO0FBRUVTLFVBQUFBLG1CQUFtQixFQUFFO0FBRnZCO0FBQUEsT0FISSxDQUFOO0FBUUQsS0FUTyxDQUFSO0FBV0FwQyxJQUFBQSxRQUFRLENBQUMsaUJBQUQsRUFBb0IsWUFBTTtBQUNoQ2dCLE1BQUFBLE1BQU0sQ0FBQyxvQkFBRCxFQUF1QixDQUFDLGVBQUQsQ0FBdkIsRUFBMEMsVUFBQ1csQ0FBRDtBQUFBLCtDQUMzQ0EsQ0FEMkM7QUFFOUNVLFVBQUFBLFNBQVMsRUFBRTtBQUZtQztBQUFBLE9BQTFDLENBQU47QUFJRCxLQUxPLENBQVI7QUFNRCxHQXpGTyxDQUFSO0FBMEZELENBdExPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEZXNpZ24gfSBmcm9tICcuLi9kZXNpZ24nO1xuaW1wb3J0IGRlZmF1bHRWYWx1ZXMgZnJvbSAnLi4vZGVmYXVsdENvbmZpZ3VyYXRpb24nO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvbmZpZy11aScsICgpID0+ICh7XG4gIGxheW91dDoge1xuICAgIENvbmZpZ0xheW91dDogKHByb3BzKSA9PiA8ZGl2Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIH0sXG4gIHNldHRpbmdzOiB7XG4gICAgUGFuZWw6IChwcm9wcykgPT4gPGRpdiBvQ2hhbmdlTW9kZWw9e3Byb3BzLm9uQ2hhbmdlfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ2xvZGFzaC9kZWJvdW5jZScsICgpID0+IChmbikgPT4gZm4pO1xuXG5kZXNjcmliZSgnZGVzaWduJywgKCkgPT4ge1xuICBsZXQgdztcbiAgbGV0IG9uQ2hhbmdlO1xuICBsZXQgb25Qcm9tcHRDaGFuZ2VkO1xuICBsZXQgb25SYXRpb25hbGVDaGFuZ2VkO1xuXG4gIGNvbnN0IGdldE1vZGVsID0gKCkgPT4gKHtcbiAgICB0b2tlbnM6IFtdLFxuICB9KTtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgb25Qcm9tcHRDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgIG9uUmF0aW9uYWxlQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICB3ID0gc2hhbGxvdyhcbiAgICAgIDxEZXNpZ25cbiAgICAgICAgbW9kZWw9e2dldE1vZGVsKCl9XG4gICAgICAgIGNvbmZpZ3VyYXRpb249e2RlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbn1cbiAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgIGNsYXNzTmFtZT17J2Zvbyd9XG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgb25Qcm9tcHRDaGFuZ2VkPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgIG9uUmF0aW9uYWxlQ2hhbmdlZD17b25SYXRpb25hbGVDaGFuZ2VkfVxuICAgICAgLz5cbiAgICApO1xuICB9KTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgYWxsIGl0ZW1zIHdpdGggZGVmYXVsdFByb3BzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Rva2VuaXplciByZW5kZXJzIHdpdGggaHRtbCBlbnRpdGllcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgc2hhbGxvdyhcbiAgICAgICAgICA8RGVzaWduXG4gICAgICAgICAgICBtb2RlbD17e1xuICAgICAgICAgICAgICB0ZXh0OlxuICAgICAgICAgICAgICAgICc8cD4mIzgyMjA7THVjeT8mIzYzOyBBcmUgeW91IHVzaW5nIHlvdXIgdGltZSB3aXNlbHkgdG8gcGxhbiB5b3VyIHByb2plY3Q/JiMzMzsmIzMzOyYjMzM7JiM4MjIxOyBNci4gV2lsc29uIGFza2VkLjwvcD48cD5MdWN5IGxvb2tlZCBhIGxpdHRsZSBjb25mdXNlZCBhdCBmaXJzdC4gJiMxOTU7IFRoZW4gc2hlIGdyaW5uZWQgYW5kIHByb3VkbHkgc3RhdGVkLCAmIzgyMjA7V2h5LCB5ZXMgSSBhbSEgSSBwbGFuIHRvIG1ha2UgYSBiaXJkIGZlZWRlciBmb3IgdGhhdCB0cmVlIG91dCBvdXIgd2luZG93ISYjODIyMTs8L3A+JyxcbiAgICAgICAgICAgICAgdG9rZW5zOiBbXSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2Zvbyd9XG4gICAgICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICAgIG9uUmF0aW9uYWxlQ2hhbmdlZD17b25SYXRpb25hbGVDaGFuZ2VkfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgZXhjZXB0IGZlZWRiYWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uLmZlZWRiYWNrLnNldHRpbmdzID0gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBzaGFsbG93KFxuICAgICAgICA8RGVzaWduXG4gICAgICAgICAgbW9kZWw9e2dldE1vZGVsKCl9XG4gICAgICAgICAgY29uZmlndXJhdGlvbj17ZGVmYXVsdENvbmZpZ3VyYXRpb259XG4gICAgICAgICAgY2xhc3Nlcz17e319XG4gICAgICAgICAgY2xhc3NOYW1lPXsnZm9vJ31cbiAgICAgICAgICBvbk1vZGVsQ2hhbmdlZD17b25DaGFuZ2V9XG4gICAgICAgICAgb25Qcm9tcHRDaGFuZ2VkPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgICAgb25SYXRpb25hbGVDaGFuZ2VkPXtvblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgIC8+XG4gICAgICApO1xuXG4gICAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBhbGwgaXRlbXMgZXhjZXB0IHRoZSBjb250ZW50IGlucHV0JywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb24gPSBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGRlZmF1bHRDb25maWd1cmF0aW9uLnRleHQuc2V0dGluZ3MgPSBmYWxzZTtcblxuICAgICAgY29uc3Qgd3JhcHBlciA9IHNoYWxsb3coXG4gICAgICAgIDxEZXNpZ25cbiAgICAgICAgICBtb2RlbD17Z2V0TW9kZWwoKX1cbiAgICAgICAgICBjb25maWd1cmF0aW9uPXtkZWZhdWx0Q29uZmlndXJhdGlvbn1cbiAgICAgICAgICBjbGFzc2VzPXt7fX1cbiAgICAgICAgICBjbGFzc05hbWU9eydmb28nfVxuICAgICAgICAgIG9uTW9kZWxDaGFuZ2VkPXtvbkNoYW5nZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICBvblJhdGlvbmFsZUNoYW5nZWQ9e29uUmF0aW9uYWxlQ2hhbmdlZH1cbiAgICAgICAgLz5cbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydCA9IChmbiwgYXJncywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGNvbnN0IGUgPSBleHBlY3RlZChnZXRNb2RlbCgpKTtcblxuICAgICAgaXQoYCR7Zm59ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9ID0+ICR7SlNPTi5zdHJpbmdpZnkoZSl9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHcuaW5zdGFuY2UoKTtcbiAgICAgICAgaW5zdGFuY2VbZm5dLmFwcGx5KGluc3RhbmNlLCBhcmdzKTtcblxuICAgICAgICAvL2plc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0JlQ2FsbGVkV2l0aChlKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlVGV4dCcsICgpID0+IHtcbiAgICAgIGFzc2VydCgnY2hhbmdlVGV4dCcsIFt7IHRhcmdldDogeyB2YWx1ZTogJ2ZvbycgfSB9XSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHRleHQ6ICdmb28nLFxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZVRva2VucycsICgpID0+IHtcbiAgICAgIGFzc2VydChcbiAgICAgICAgJ2NoYW5nZVRva2VucycsXG4gICAgICAgIFtbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sICd3b3JkcyddLFxuICAgICAgICAobSkgPT4gKHtcbiAgICAgICAgICAuLi5tLFxuICAgICAgICAgIG1heFNlbGVjdGlvbnM6IDAsXG4gICAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiAxLCB0ZXh0OiAnZicgfV0sXG4gICAgICAgICAgbW9kZTogJ3dvcmRzJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBhc3NlcnQoXG4gICAgICAgICdjaGFuZ2VUb2tlbnMnLFxuICAgICAgICBbW3sgc3RhcnQ6IDAsIGVuZDogOCwgdGV4dDogJ0ZvbyBiYXIuJywgY29ycmVjdDogdHJ1ZSB9XSwgJ3NlbnRlbmNlcyddLFxuICAgICAgICAobSkgPT4gKHtcbiAgICAgICAgICAuLi5tLFxuICAgICAgICAgIG1heFNlbGVjdGlvbnM6IDEsXG4gICAgICAgICAgdG9rZW5zOiBbeyBzdGFydDogMCwgZW5kOiA4LCB0ZXh0OiAnRm9vIGJhci4nLCBjb3JyZWN0OiB0cnVlIH1dLFxuICAgICAgICAgIG1vZGU6ICdzZW50ZW5jZXMnLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdjaGFuZ2VNYXhTZWxlY3Rpb25zJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdjaGFuZ2VNYXhTZWxlY3Rpb25zJywgW3t9LCA0XSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIG1heFNlbGVjdGlvbnM6IDQsXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlRmVlZGJhY2snLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZUZlZWRiYWNrJywgW3sgY29ycmVjdEZlZWRiYWNrVHlwZTogJ25vbmUnIH1dLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgZmVlZGJhY2s6IHsgY29ycmVjdEZlZWRiYWNrVHlwZTogJ25vbmUnIH0sXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUGFydGlhbFNjb3JpbmcnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoJ2NoYW5nZVBhcnRpYWxTY29yaW5nJywgW3RydWVdLCAobSkgPT4gKHtcbiAgICAgICAgLi4ubSxcbiAgICAgICAgcGFydGlhbFNjb3Jpbmc6IHRydWUsXG4gICAgICB9KSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUHJvbXB0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdvblByb21wdENoYW5nZWQnLCBbJ05ldyBQcm9tcHQnXSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHByb21wdDogJ05ldyBQcm9tcHQnLFxuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NoYW5nZVRlYWNoZXJJbnN0cnVjdGlvbnMnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgICdvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkJyxcbiAgICAgICAgWydOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnXSxcbiAgICAgICAgKG0pID0+ICh7XG4gICAgICAgICAgLi4ubSxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY2hhbmdlUmF0aW9uYWxlJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdvblJhdGlvbmFsZUNoYW5nZWQnLCBbJ05ldyBSYXRpb25hbGUnXSwgKG0pID0+ICh7XG4gICAgICAgIC4uLm0sXG4gICAgICAgIHJhdGlvbmFsZTogJ05ldyBSYXRpb25hbGUnLFxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -79,6 +79,11 @@ var _default = {
|
|
|
79
79
|
settings: true,
|
|
80
80
|
label: 'Feedback'
|
|
81
81
|
},
|
|
82
|
+
spellCheck: {
|
|
83
|
+
label: 'Spellcheck',
|
|
84
|
+
settings: false,
|
|
85
|
+
enabled: true
|
|
86
|
+
},
|
|
82
87
|
partialScoring: {
|
|
83
88
|
settings: false,
|
|
84
89
|
label: 'Allow Partial Scoring'
|
|
@@ -90,4 +95,4 @@ var _default = {
|
|
|
90
95
|
}
|
|
91
96
|
};
|
|
92
97
|
exports["default"] = _default;
|
|
93
|
-
//# sourceMappingURL=
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0Q29uZmlndXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJ0b2tlbnMiLCJ0ZXh0Iiwic3RhcnQiLCJlbmQiLCJtb2RlbCIsImhpZ2hsaWdodENob2ljZXMiLCJwYXJ0aWFsU2NvcmluZyIsIm1heFNlbGVjdGlvbnMiLCJtb2RlIiwicHJvbXB0Iiwic2NvcmluZ1R5cGUiLCJmZWVkYmFja0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJ0b29sYmFyRWRpdG9yUG9zaXRpb24iLCJjb25maWd1cmF0aW9uIiwic2VsZWN0aW9uQ291bnQiLCJzZXR0aW5ncyIsImxhYmVsIiwiY29ycmVjdEFuc3dlciIsInNlbGVjdGlvbnMiLCJyYXRpb25hbGUiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9ucyIsImZlZWRiYWNrIiwic3BlbGxDaGVjayIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFNQSxNQUFNLEdBQUcsU0FBVEEsTUFBUztBQUFBLFNBQU0sQ0FDbkI7QUFDRUMsSUFBQUEsSUFBSSxFQUFFLEVBRFI7QUFFRUMsSUFBQUEsS0FBSyxFQUFFLENBRlQ7QUFHRUMsSUFBQUEsR0FBRyxFQUFFO0FBSFAsR0FEbUIsQ0FBTjtBQUFBLENBQWY7O2VBUWU7QUFDYkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLGdCQUFnQixFQUFFLEtBRGI7QUFFTEMsSUFBQUEsY0FBYyxFQUFFLEtBRlg7QUFHTEMsSUFBQUEsYUFBYSxFQUFFLENBSFY7QUFJTEMsSUFBQUEsSUFBSSxFQUFFLFVBSkQ7QUFLTEMsSUFBQUEsTUFBTSxFQUFFLDJCQUxIO0FBTUxSLElBQUFBLElBQUksRUFBRSxFQU5EO0FBT0xELElBQUFBLE1BQU0sRUFBRUEsTUFBTSxFQVBUO0FBUUxVLElBQUFBLFdBQVcsRUFBRSxNQVJSO0FBU0xDLElBQUFBLGVBQWUsRUFBRSxJQVRaO0FBVUxDLElBQUFBLGdCQUFnQixFQUFFLElBVmI7QUFXTEMsSUFBQUEsYUFBYSxFQUFFLElBWFY7QUFZTEMsSUFBQUEsMEJBQTBCLEVBQUUsSUFadkI7QUFhTEMsSUFBQUEsMEJBQTBCLEVBQUUsSUFidkI7QUFjTEMsSUFBQUEscUJBQXFCLEVBQUU7QUFkbEIsR0FETTtBQWlCYkMsRUFBQUEsYUFBYSxFQUFFO0FBQ2JDLElBQUFBLGNBQWMsRUFBRTtBQUNkQyxNQUFBQSxRQUFRLEVBQUUsSUFESTtBQUVkQyxNQUFBQSxLQUFLLEVBQUU7QUFGTyxLQURIO0FBS2JDLElBQUFBLGFBQWEsRUFBRTtBQUNiRixNQUFBQSxRQUFRLEVBQUUsSUFERztBQUViQyxNQUFBQSxLQUFLLEVBQUU7QUFGTSxLQUxGO0FBU2JFLElBQUFBLFVBQVUsRUFBRTtBQUNWSCxNQUFBQSxRQUFRLEVBQUUsSUFEQTtBQUVWQyxNQUFBQSxLQUFLLEVBQUU7QUFGRyxLQVRDO0FBYWJmLElBQUFBLGdCQUFnQixFQUFFO0FBQ2hCYyxNQUFBQSxRQUFRLEVBQUUsSUFETTtBQUVoQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlMsS0FiTDtBQWlCYkcsSUFBQUEsU0FBUyxFQUFFO0FBQ1RKLE1BQUFBLFFBQVEsRUFBRSxJQUREO0FBRVRDLE1BQUFBLEtBQUssRUFBRTtBQUZFLEtBakJFO0FBcUJiVixJQUFBQSxXQUFXLEVBQUU7QUFDWFMsTUFBQUEsUUFBUSxFQUFFLEtBREM7QUFFWEMsTUFBQUEsS0FBSyxFQUFFO0FBRkksS0FyQkE7QUF5QmJJLElBQUFBLG1CQUFtQixFQUFFO0FBQ25CTCxNQUFBQSxRQUFRLEVBQUUsS0FEUztBQUVuQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlksS0F6QlI7QUE2QmJLLElBQUFBLG1CQUFtQixFQUFFO0FBQ25CTixNQUFBQSxRQUFRLEVBQUUsSUFEUztBQUVuQkMsTUFBQUEsS0FBSyxFQUFFO0FBRlksS0E3QlI7QUFpQ2JYLElBQUFBLE1BQU0sRUFBRTtBQUNOVyxNQUFBQSxLQUFLLEVBQUUsUUFERDtBQUVORCxNQUFBQSxRQUFRLEVBQUU7QUFGSixLQWpDSztBQXFDYmxCLElBQUFBLElBQUksRUFBRTtBQUNKa0IsTUFBQUEsUUFBUSxFQUFFLElBRE47QUFFSkMsTUFBQUEsS0FBSyxFQUFFO0FBRkgsS0FyQ087QUF5Q2JwQixJQUFBQSxNQUFNLEVBQUU7QUFDTm1CLE1BQUFBLFFBQVEsRUFBRSxJQURKO0FBRU5DLE1BQUFBLEtBQUssRUFBRTtBQUZELEtBekNLO0FBNkNiTSxJQUFBQSxRQUFRLEVBQUU7QUFDUlAsTUFBQUEsUUFBUSxFQUFFLElBREY7QUFFUkMsTUFBQUEsS0FBSyxFQUFFO0FBRkMsS0E3Q0c7QUFpRGJPLElBQUFBLFVBQVUsRUFBRTtBQUNWUCxNQUFBQSxLQUFLLEVBQUUsWUFERztBQUVWRCxNQUFBQSxRQUFRLEVBQUMsS0FGQztBQUdWUyxNQUFBQSxPQUFPLEVBQUM7QUFIRSxLQWpEQztBQXNEYnRCLElBQUFBLGNBQWMsRUFBRTtBQUNkYSxNQUFBQSxRQUFRLEVBQUUsS0FESTtBQUVkQyxNQUFBQSxLQUFLLEVBQUU7QUFGTyxLQXRESDtBQTBEYlosSUFBQUEsSUFBSSxFQUFFO0FBQ0pXLE1BQUFBLFFBQVEsRUFBRSxJQUROO0FBRUpDLE1BQUFBLEtBQUssRUFBRTtBQUZIO0FBMURPO0FBakJGLEMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB0b2tlbnMgPSAoKSA9PiBbXG4gIHtcbiAgICB0ZXh0OiAnJyxcbiAgICBzdGFydDogMCxcbiAgICBlbmQ6IDBcbiAgfVxuXTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBtb2RlbDoge1xuICAgIGhpZ2hsaWdodENob2ljZXM6IGZhbHNlLFxuICAgIHBhcnRpYWxTY29yaW5nOiBmYWxzZSxcbiAgICBtYXhTZWxlY3Rpb25zOiAyLFxuICAgIG1vZGU6ICdzZW50ZW5jZScsXG4gICAgcHJvbXB0OiAnUXVlc3Rpb24gUHJvbXB0IGdvZXMgaGVyZScsXG4gICAgdGV4dDogJycsXG4gICAgdG9rZW5zOiB0b2tlbnMoKSxcbiAgICBzY29yaW5nVHlwZTogJ2F1dG8nLFxuICAgIGZlZWRiYWNrRW5hYmxlZDogdHJ1ZSxcbiAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgIHByb21wdEVuYWJsZWQ6IHRydWUsXG4gICAgdGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgdG9vbGJhckVkaXRvclBvc2l0aW9uOiAnYm90dG9tJ1xuICB9LFxuICBjb25maWd1cmF0aW9uOiB7XG4gICAgc2VsZWN0aW9uQ291bnQ6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdTZWxlY3Rpb24gY291bnQnXG4gICAgfSxcbiAgICBjb3JyZWN0QW5zd2VyOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnQ29ycmVjdCBBbnN3ZXJzJ1xuICAgIH0sXG4gICAgc2VsZWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ1NlbGVjdGlvbnMgQXZhaWxhYmxlJ1xuICAgIH0sXG4gICAgaGlnaGxpZ2h0Q2hvaWNlczoge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ0hpZ2hsaWdodCBjaG9pY2VzJ1xuICAgIH0sXG4gICAgcmF0aW9uYWxlOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUmF0aW9uYWxlJ1xuICAgIH0sXG4gICAgc2NvcmluZ1R5cGU6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnU2NvcmluZyBUeXBlJ1xuICAgIH0sXG4gICAgc3R1ZGVudEluc3RydWN0aW9uczoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdTdHVkZW50IEluc3RydWN0aW9ucydcbiAgICB9LFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdUZWFjaGVyIEluc3RydWN0aW9ucydcbiAgICB9LFxuICAgIHByb21wdDoge1xuICAgICAgbGFiZWw6ICdQcm9tcHQnLFxuICAgICAgc2V0dGluZ3M6IHRydWVcbiAgICB9LFxuICAgIHRleHQ6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdDb250ZW50J1xuICAgIH0sXG4gICAgdG9rZW5zOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnVG9rZW5zJ1xuICAgIH0sXG4gICAgZmVlZGJhY2s6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdGZWVkYmFjaydcbiAgICB9LFxuICAgIHNwZWxsQ2hlY2s6IHtcbiAgICAgIGxhYmVsOiAnU3BlbGxjaGVjaycsXG4gICAgICBzZXR0aW5nczpmYWxzZSxcbiAgICAgIGVuYWJsZWQ6dHJ1ZVxuICAgIH0sXG4gICAgcGFydGlhbFNjb3Jpbmc6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWxsb3cgUGFydGlhbCBTY29yaW5nJ1xuICAgIH0sXG4gICAgbW9kZToge1xuICAgICAgc2V0dGluZ3M6IHRydWUsXG4gICAgICBsYWJlbDogJ01vZGUnXG4gICAgfVxuICB9XG59O1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaultConfiguration.js"],"names":["tokens","text","start","end","model","highlightChoices","partialScoring","maxSelections","mode","prompt","scoringType","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","selectionCount","settings","label","correctAnswer","selections","rationale","studentInstructions","teacherInstructions","feedback"],"mappings":";;;;;;;AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAM,CACnB;AACEC,IAAAA,IAAI,EAAE,EADR;AAEEC,IAAAA,KAAK,EAAE,CAFT;AAGEC,IAAAA,GAAG,EAAE;AAHP,GADmB,CAAN;AAAA,CAAf;;eAQe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,KADb;AAELC,IAAAA,cAAc,EAAE,KAFX;AAGLC,IAAAA,aAAa,EAAE,CAHV;AAILC,IAAAA,IAAI,EAAE,UAJD;AAKLC,IAAAA,MAAM,EAAE,2BALH;AAMLR,IAAAA,IAAI,EAAE,EAND;AAOLD,IAAAA,MAAM,EAAEA,MAAM,EAPT;AAQLU,IAAAA,WAAW,EAAE,MARR;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,gBAAgB,EAAE,IAVb;AAWLC,IAAAA,aAAa,EAAE,IAXV;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,0BAA0B,EAAE,IAbvB;AAcLC,IAAAA,qBAAqB,EAAE;AAdlB,GADM;AAiBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,cAAc,EAAE;AACdC,MAAAA,QAAQ,EAAE,IADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KADH;AAKbC,IAAAA,aAAa,EAAE;AACbF,MAAAA,QAAQ,EAAE,IADG;AAEbC,MAAAA,KAAK,EAAE;AAFM,KALF;AASbE,IAAAA,UAAU,EAAE;AACVH,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KATC;AAabf,IAAAA,gBAAgB,EAAE;AAChBc,MAAAA,QAAQ,EAAE,IADM;AAEhBC,MAAAA,KAAK,EAAE;AAFS,KAbL;AAiBbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAjBE;AAqBbV,IAAAA,WAAW,EAAE;AACXS,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KArBA;AAyBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6BbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA7BR;AAiCbX,IAAAA,MAAM,EAAE;AACNW,MAAAA,KAAK,EAAE,QADD;AAEND,MAAAA,QAAQ,EAAE;AAFJ,KAjCK;AAqCblB,IAAAA,IAAI,EAAE;AACJkB,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH,KArCO;AAyCbpB,IAAAA,MAAM,EAAE;AACNmB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAzCK;AA6CbM,IAAAA,QAAQ,EAAE;AACRP,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KA7CG;
|
|
1
|
+
{"version":3,"sources":["../src/defaultConfiguration.js"],"names":["tokens","text","start","end","model","highlightChoices","partialScoring","maxSelections","mode","prompt","scoringType","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","selectionCount","settings","label","correctAnswer","selections","rationale","studentInstructions","teacherInstructions","feedback","spellCheck","enabled"],"mappings":";;;;;;;AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAM,CACnB;AACEC,IAAAA,IAAI,EAAE,EADR;AAEEC,IAAAA,KAAK,EAAE,CAFT;AAGEC,IAAAA,GAAG,EAAE;AAHP,GADmB,CAAN;AAAA,CAAf;;eAQe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,gBAAgB,EAAE,KADb;AAELC,IAAAA,cAAc,EAAE,KAFX;AAGLC,IAAAA,aAAa,EAAE,CAHV;AAILC,IAAAA,IAAI,EAAE,UAJD;AAKLC,IAAAA,MAAM,EAAE,2BALH;AAMLR,IAAAA,IAAI,EAAE,EAND;AAOLD,IAAAA,MAAM,EAAEA,MAAM,EAPT;AAQLU,IAAAA,WAAW,EAAE,MARR;AASLC,IAAAA,eAAe,EAAE,IATZ;AAULC,IAAAA,gBAAgB,EAAE,IAVb;AAWLC,IAAAA,aAAa,EAAE,IAXV;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,0BAA0B,EAAE,IAbvB;AAcLC,IAAAA,qBAAqB,EAAE;AAdlB,GADM;AAiBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,cAAc,EAAE;AACdC,MAAAA,QAAQ,EAAE,IADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KADH;AAKbC,IAAAA,aAAa,EAAE;AACbF,MAAAA,QAAQ,EAAE,IADG;AAEbC,MAAAA,KAAK,EAAE;AAFM,KALF;AASbE,IAAAA,UAAU,EAAE;AACVH,MAAAA,QAAQ,EAAE,IADA;AAEVC,MAAAA,KAAK,EAAE;AAFG,KATC;AAabf,IAAAA,gBAAgB,EAAE;AAChBc,MAAAA,QAAQ,EAAE,IADM;AAEhBC,MAAAA,KAAK,EAAE;AAFS,KAbL;AAiBbG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAjBE;AAqBbV,IAAAA,WAAW,EAAE;AACXS,MAAAA,QAAQ,EAAE,KADC;AAEXC,MAAAA,KAAK,EAAE;AAFI,KArBA;AAyBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,KADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAzBR;AA6BbK,IAAAA,mBAAmB,EAAE;AACnBN,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KA7BR;AAiCbX,IAAAA,MAAM,EAAE;AACNW,MAAAA,KAAK,EAAE,QADD;AAEND,MAAAA,QAAQ,EAAE;AAFJ,KAjCK;AAqCblB,IAAAA,IAAI,EAAE;AACJkB,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH,KArCO;AAyCbpB,IAAAA,MAAM,EAAE;AACNmB,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KAzCK;AA6CbM,IAAAA,QAAQ,EAAE;AACRP,MAAAA,QAAQ,EAAE,IADF;AAERC,MAAAA,KAAK,EAAE;AAFC,KA7CG;AAiDbO,IAAAA,UAAU,EAAE;AACVP,MAAAA,KAAK,EAAE,YADG;AAEVD,MAAAA,QAAQ,EAAC,KAFC;AAGVS,MAAAA,OAAO,EAAC;AAHE,KAjDC;AAsDbtB,IAAAA,cAAc,EAAE;AACda,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KAtDH;AA0DbZ,IAAAA,IAAI,EAAE;AACJW,MAAAA,QAAQ,EAAE,IADN;AAEJC,MAAAA,KAAK,EAAE;AAFH;AA1DO;AAjBF,C","sourcesContent":["const tokens = () => [\n {\n text: '',\n start: 0,\n end: 0\n }\n];\n\nexport default {\n model: {\n highlightChoices: false,\n partialScoring: false,\n maxSelections: 2,\n mode: 'sentence',\n prompt: 'Question Prompt goes here',\n text: '',\n tokens: tokens(),\n scoringType: 'auto',\n feedbackEnabled: true,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom'\n },\n configuration: {\n selectionCount: {\n settings: true,\n label: 'Selection count'\n },\n correctAnswer: {\n settings: true,\n label: 'Correct Answers'\n },\n selections: {\n settings: true,\n label: 'Selections Available'\n },\n highlightChoices: {\n settings: true,\n label: 'Highlight choices'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type'\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n prompt: {\n label: 'Prompt',\n settings: true\n },\n text: {\n settings: true,\n label: 'Content'\n },\n tokens: {\n settings: true,\n label: 'Tokens'\n },\n feedback: {\n settings: true,\n label: 'Feedback'\n },\n spellCheck: {\n label: 'Spellcheck',\n settings:false,\n enabled:true\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n mode: {\n settings: true,\n label: 'Mode'\n }\n }\n};\n"],"file":"defaultConfiguration.js"}
|
package/configure/lib/design.js
CHANGED
|
@@ -39,13 +39,17 @@ var _configUi = require("@pie-lib/config-ui");
|
|
|
39
39
|
|
|
40
40
|
var _Chip = _interopRequireDefault(require("@material-ui/core/Chip"));
|
|
41
41
|
|
|
42
|
+
var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
|
|
43
|
+
|
|
42
44
|
var _debug = _interopRequireDefault(require("debug"));
|
|
43
45
|
|
|
44
46
|
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
|
|
49
|
+
|
|
50
|
+
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; }
|
|
47
51
|
|
|
48
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
52
|
+
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; }
|
|
49
53
|
|
|
50
54
|
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); }; }
|
|
51
55
|
|
|
@@ -200,16 +204,31 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
200
204
|
rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
201
205
|
_ref$scoringType = _ref.scoringType,
|
|
202
206
|
scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
|
|
207
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
208
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
203
209
|
_ref$highlightChoices = _ref.highlightChoices,
|
|
204
|
-
highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices
|
|
210
|
+
highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices,
|
|
211
|
+
minTokens = _ref.minTokens,
|
|
212
|
+
maxTokens = _ref.maxTokens,
|
|
213
|
+
maxSelections = _ref.maxSelections;
|
|
205
214
|
|
|
206
215
|
var _ref2 = model || {},
|
|
207
216
|
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
208
217
|
promptEnabled = _ref2.promptEnabled,
|
|
209
218
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
210
|
-
|
|
219
|
+
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
220
|
+
feedbackEnabled = _ref2.feedbackEnabled,
|
|
221
|
+
errors = _ref2.errors;
|
|
211
222
|
|
|
212
223
|
var toolbarOpts = {};
|
|
224
|
+
var configSettings = maxSelections || minTokens || maxTokens;
|
|
225
|
+
var maxSelectionsValidation = maxSelections ? "\nNo more than ".concat(maxSelections, " tokens should be selected.") : '';
|
|
226
|
+
var minTokensValidation = minTokens ? "\nThere should be at least ".concat(minTokens, " tokens defined.") : '';
|
|
227
|
+
var maxTokensValidation = maxTokens ? "\nNo more than ".concat(maxTokens, " tokens should be defined.") : '';
|
|
228
|
+
|
|
229
|
+
var _ref3 = errors || {},
|
|
230
|
+
tokensError = _ref3.tokensError,
|
|
231
|
+
selectionsError = _ref3.selectionsError;
|
|
213
232
|
|
|
214
233
|
switch (model.toolbarEditorPosition) {
|
|
215
234
|
case 'top':
|
|
@@ -243,6 +262,7 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
243
262
|
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
244
263
|
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
245
264
|
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
265
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
246
266
|
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
|
|
247
267
|
}
|
|
248
268
|
}
|
|
@@ -258,7 +278,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
258
278
|
onChange: this.onTeacherInstructionsChanged,
|
|
259
279
|
imageSupport: imageSupport,
|
|
260
280
|
nonEmpty: false,
|
|
261
|
-
toolbarOpts: toolbarOpts
|
|
281
|
+
toolbarOpts: toolbarOpts,
|
|
282
|
+
spellCheck: spellCheckEnabled
|
|
262
283
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
263
284
|
label: prompt.label || '',
|
|
264
285
|
className: classes.promptHolder
|
|
@@ -267,7 +288,8 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
267
288
|
markup: model.prompt,
|
|
268
289
|
onChange: this.onPromptChanged,
|
|
269
290
|
imageSupport: imageSupport,
|
|
270
|
-
toolbarOpts: toolbarOpts
|
|
291
|
+
toolbarOpts: toolbarOpts,
|
|
292
|
+
spellCheck: spellCheckEnabled
|
|
271
293
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
272
294
|
label: rationale.label || '',
|
|
273
295
|
className: classes.promptHolder
|
|
@@ -276,14 +298,34 @@ var Design = /*#__PURE__*/function (_React$Component) {
|
|
|
276
298
|
markup: model.rationale || '',
|
|
277
299
|
onChange: this.onRationaleChanged,
|
|
278
300
|
imageSupport: imageSupport,
|
|
279
|
-
toolbarOpts: toolbarOpts
|
|
301
|
+
toolbarOpts: toolbarOpts,
|
|
302
|
+
spellCheck: spellCheckEnabled
|
|
280
303
|
})), text.settings && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
281
304
|
label: text.label,
|
|
282
305
|
className: classes.input,
|
|
283
306
|
multiline: true,
|
|
284
307
|
value: textValue,
|
|
285
|
-
onChange: this.changeText
|
|
286
|
-
|
|
308
|
+
onChange: this.changeText,
|
|
309
|
+
spellCheck: spellCheckEnabled
|
|
310
|
+
}), configSettings && /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
311
|
+
classes: {
|
|
312
|
+
tooltip: classes.tooltip
|
|
313
|
+
},
|
|
314
|
+
disableFocusListener: true,
|
|
315
|
+
disableTouchListener: true,
|
|
316
|
+
placement: 'left',
|
|
317
|
+
title: "Validation requirements:".concat(maxSelectionsValidation).concat(minTokensValidation).concat(maxTokensValidation)
|
|
318
|
+
}, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
|
|
319
|
+
fontSize: 'small',
|
|
320
|
+
color: 'primary',
|
|
321
|
+
style: {
|
|
322
|
+
"float": 'right'
|
|
323
|
+
}
|
|
324
|
+
})), tokensError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
325
|
+
className: classes.errorText
|
|
326
|
+
}, tokensModel), selectionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
327
|
+
className: classes.errorText
|
|
328
|
+
}, selectionsError), tokens.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
287
329
|
label: tokens.label || '',
|
|
288
330
|
className: classes.tokenizerContainer
|
|
289
331
|
}, /*#__PURE__*/_react["default"].createElement(_textSelect.Tokenizer, {
|
|
@@ -381,9 +423,19 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
381
423
|
},
|
|
382
424
|
numberField: {
|
|
383
425
|
width: '180px'
|
|
426
|
+
},
|
|
427
|
+
tooltip: {
|
|
428
|
+
fontSize: '12px',
|
|
429
|
+
whiteSpace: 'pre',
|
|
430
|
+
maxWidth: '500px'
|
|
431
|
+
},
|
|
432
|
+
errorText: {
|
|
433
|
+
fontSize: '12px',
|
|
434
|
+
color: 'red',
|
|
435
|
+
padding: '5px 0'
|
|
384
436
|
}
|
|
385
437
|
};
|
|
386
438
|
})(Design);
|
|
387
439
|
|
|
388
440
|
exports["default"] = _default;
|
|
389
|
-
//# sourceMappingURL=design.js.map
|
|
441
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXNpZ24uanN4Il0sIm5hbWVzIjpbIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImxvZyIsIkRlc2lnbiIsInByb3BzIiwidmFsIiwiYXBwbHkiLCJ1IiwidGV4dCIsInRva2VucyIsImV2ZW50IiwidmFsdWUiLCJ0YXJnZXQiLCJwcmVwYXJlZFRleHQiLCJzZXRTdGF0ZSIsInVwZGF0ZVRleHQiLCJtb2RlIiwiY29ycmVjdFRva2VuQ291bnQiLCJmaWx0ZXIiLCJ0IiwiY29ycmVjdCIsImxlbmd0aCIsIm1heCIsImlzRmluaXRlIiwibWF4U2VsZWN0aW9ucyIsIk1hdGgiLCJmbiIsIm9uTW9kZWxDaGFuZ2VkIiwibW9kZWwiLCJ1cGRhdGUiLCJmZWVkYmFjayIsInBhcnRpYWxTY29yaW5nIiwicHJvbXB0IiwidGVhY2hlckluc3RydWN0aW9ucyIsInJhdGlvbmFsZSIsInN0YXRlIiwiblByb3BzIiwidGV4dFZhbHVlIiwiY2xhc3NlcyIsImltYWdlU3VwcG9ydCIsImNvbmZpZ3VyYXRpb24iLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwic2VsZWN0aW9ucyIsInNlbGVjdGlvbkNvdW50IiwiY29ycmVjdEFuc3dlciIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJzY29yaW5nVHlwZSIsInNwZWxsQ2hlY2siLCJoaWdobGlnaHRDaG9pY2VzIiwibWluVG9rZW5zIiwibWF4VG9rZW5zIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJwcm9tcHRFbmFibGVkIiwicmF0aW9uYWxlRW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwiZXJyb3JzIiwidG9vbGJhck9wdHMiLCJjb25maWdTZXR0aW5ncyIsIm1heFNlbGVjdGlvbnNWYWxpZGF0aW9uIiwibWluVG9rZW5zVmFsaWRhdGlvbiIsIm1heFRva2Vuc1ZhbGlkYXRpb24iLCJ0b2tlbnNFcnJvciIsInNlbGVjdGlvbnNFcnJvciIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsInBvc2l0aW9uIiwidG9rZW5zTW9kZWwiLCJTZXR0aW5ncyIsImxhYmVsIiwiUHJvcGVydGllcyIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwiY29udGFpbmVyIiwicHJvbXB0SG9sZGVyIiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCIsIm9uUHJvbXB0Q2hhbmdlZCIsIm9uUmF0aW9uYWxlQ2hhbmdlZCIsImlucHV0IiwiY2hhbmdlVGV4dCIsInRvb2x0aXAiLCJlcnJvclRleHQiLCJ0b2tlbml6ZXJDb250YWluZXIiLCJ0b2tlbml6ZXIiLCJjaGFuZ2VUb2tlbnMiLCJjaGlwIiwiY2hhbmdlTWF4U2VsZWN0aW9ucyIsIm51bWJlckZpZWxkIiwiY2hhbmdlRmVlZGJhY2siLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwic2hhcGUiLCJhZGQiLCJ0aGVtZSIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwidW5pdCIsInBhZGRpbmdSaWdodCIsIm1hcmdpblJpZ2h0IiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiaGVpZ2h0IiwiY29udGVudCIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJwcmltYXJ5IiwibWFpbiIsIm1hcmdpbkJvdHRvbSIsIndpZHRoIiwicGFkZGluZ0JvdHRvbSIsIm1hcmdpblRvcCIsIm1haW5PcHRzIiwianVzdGlmeUNvbnRlbnQiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImZvbnRTaXplIiwid2hpdGVTcGFjZSIsIm1heFdpZHRoIiwiY29sb3IiLCJwYWRkaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQU9BOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBUUEsS0FBUixHQUFpQ0Msa0JBQWpDLENBQVFELEtBQVI7QUFBQSxJQUFlRSxNQUFmLEdBQWlDRCxrQkFBakMsQ0FBZUMsTUFBZjtBQUFBLElBQXVCQyxLQUF2QixHQUFpQ0Ysa0JBQWpDLENBQXVCRSxLQUF2QjtBQUVBLElBQU1DLEdBQUcsR0FBRyx1QkFBTSxvQ0FBTixDQUFaOztJQUVhQyxNOzs7OztBQWVYLGtCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7QUFDakIsOEJBQU1BLEtBQU47QUFEaUIsbUdBb0JOLDBCQUFTLFVBQUFDLEdBQUcsRUFBSTtBQUMzQixZQUFLQyxLQUFMLENBQVcsVUFBQUMsQ0FBQyxFQUFJO0FBQ2RBLFFBQUFBLENBQUMsQ0FBQ0MsSUFBRixHQUFTSCxHQUFUO0FBQ0FFLFFBQUFBLENBQUMsQ0FBQ0UsTUFBRixHQUFXLEVBQVg7QUFDRCxPQUhEO0FBSUQsS0FMWSxFQUtWLEdBTFUsQ0FwQk07QUFBQSxtR0EyQk4sVUFBQUMsS0FBSyxFQUFJO0FBQ3BCLFVBQU1DLEtBQUssR0FBR0QsS0FBSyxDQUFDRSxNQUFOLENBQWFELEtBQTNCO0FBQ0EsVUFBTUUsWUFBWSxHQUFHRixLQUFyQjs7QUFFQSxZQUFLRyxRQUFMLENBQWM7QUFDWk4sUUFBQUEsSUFBSSxFQUFFRztBQURNLE9BQWQ7O0FBR0EsWUFBS0ksVUFBTCxDQUFnQkYsWUFBaEI7QUFDRCxLQW5Da0I7QUFBQSxxR0FxQ0osVUFBQ0osTUFBRCxFQUFTTyxJQUFULEVBQWtCO0FBQy9CLFlBQUtWLEtBQUwsQ0FBVyxVQUFBQyxDQUFDLEVBQUk7QUFDZEEsUUFBQUEsQ0FBQyxDQUFDRSxNQUFGLEdBQVdBLE1BQVg7QUFDQUYsUUFBQUEsQ0FBQyxDQUFDUyxJQUFGLEdBQVNBLElBQVQ7QUFFQSxZQUFNQyxpQkFBaUIsR0FBR1IsTUFBTSxDQUFDUyxNQUFQLENBQWMsVUFBQUMsQ0FBQztBQUFBLGlCQUFJQSxDQUFDLENBQUNDLE9BQU47QUFBQSxTQUFmLEVBQThCQyxNQUF4RDtBQUNBLFlBQU1DLEdBQUcsR0FBR0MsUUFBUSxDQUFDaEIsQ0FBQyxDQUFDaUIsYUFBSCxDQUFSLEdBQTRCakIsQ0FBQyxDQUFDaUIsYUFBOUIsR0FBOEMsQ0FBMUQ7QUFFQWpCLFFBQUFBLENBQUMsQ0FBQ2lCLGFBQUYsR0FBa0JDLElBQUksQ0FBQ0gsR0FBTCxDQUFTQSxHQUFULEVBQWNMLGlCQUFkLENBQWxCO0FBQ0QsT0FSRDtBQVNELEtBL0NrQjtBQUFBLDRHQWlERyxVQUFDUCxLQUFELEVBQVFZLEdBQVIsRUFBZ0I7QUFDcEMsWUFBS2hCLEtBQUwsQ0FBVyxVQUFBQyxDQUFDO0FBQUEsZUFBS0EsQ0FBQyxDQUFDaUIsYUFBRixHQUFrQkYsR0FBdkI7QUFBQSxPQUFaO0FBQ0QsS0FuRGtCO0FBQUEsOEZBcURYLFVBQUFJLEVBQUUsRUFBSTtBQUNaLHdCQUFrQyxNQUFLdEIsS0FBdkM7QUFBQSxVQUFRdUIsY0FBUixlQUFRQSxjQUFSO0FBQUEsVUFBd0JDLEtBQXhCLGVBQXdCQSxLQUF4QjtBQUNBLFVBQU1DLE1BQU0sR0FBRywyQkFBVUQsS0FBVixDQUFmO0FBQ0FGLE1BQUFBLEVBQUUsQ0FBQ0csTUFBRCxDQUFGO0FBQ0FGLE1BQUFBLGNBQWMsQ0FBQ0UsTUFBRCxDQUFkO0FBQ0QsS0ExRGtCO0FBQUEsdUdBNERGLFVBQUFDLFFBQVEsRUFBSTtBQUMzQixZQUFLeEIsS0FBTCxDQUFXLFVBQUFDLENBQUM7QUFBQSxlQUFLQSxDQUFDLENBQUN1QixRQUFGLEdBQWFBLFFBQWxCO0FBQUEsT0FBWjtBQUNELEtBOURrQjtBQUFBLDZHQWdFSSxVQUFBQyxjQUFjLEVBQUk7QUFDdkMseUJBQWtDLE1BQUszQixLQUF2QztBQUFBLFVBQVF1QixjQUFSLGdCQUFRQSxjQUFSO0FBQUEsVUFBd0JDLEtBQXhCLGdCQUF3QkEsS0FBeEI7QUFDQSxVQUFNQyxNQUFNLEdBQUcsMkJBQVVELEtBQVYsQ0FBZjtBQUNBQyxNQUFBQSxNQUFNLENBQUNFLGNBQVAsR0FBd0JBLGNBQXhCO0FBQ0FKLE1BQUFBLGNBQWMsQ0FBQ0UsTUFBRCxDQUFkO0FBQ0QsS0FyRWtCO0FBQUEsd0dBdUVELFVBQUFHLE1BQU0sRUFBSTtBQUMxQix5QkFBa0MsTUFBSzVCLEtBQXZDO0FBQUEsVUFBUXVCLGNBQVIsZ0JBQVFBLGNBQVI7QUFBQSxVQUF3QkMsS0FBeEIsZ0JBQXdCQSxLQUF4QjtBQUNBLFVBQU1DLE1BQU0sR0FBRywyQkFBVUQsS0FBVixDQUFmO0FBRUFDLE1BQUFBLE1BQU0sQ0FBQ0csTUFBUCxHQUFnQkEsTUFBaEI7QUFDQUwsTUFBQUEsY0FBYyxDQUFDRSxNQUFELENBQWQ7QUFDRCxLQTdFa0I7QUFBQSxxSEErRVksVUFBQUksbUJBQW1CLEVBQUk7QUFDcEQseUJBQWtDLE1BQUs3QixLQUF2QztBQUFBLFVBQVF1QixjQUFSLGdCQUFRQSxjQUFSO0FBQUEsVUFBd0JDLEtBQXhCLGdCQUF3QkEsS0FBeEI7QUFDQSxVQUFNQyxNQUFNLEdBQUcsMkJBQVVELEtBQVYsQ0FBZjtBQUVBQyxNQUFBQSxNQUFNLENBQUNJLG1CQUFQLEdBQTZCQSxtQkFBN0I7QUFDQU4sTUFBQUEsY0FBYyxDQUFDRSxNQUFELENBQWQ7QUFDRCxLQXJGa0I7QUFBQSwyR0F1RkUsVUFBQUssU0FBUyxFQUFJO0FBQ2hDLHlCQUFrQyxNQUFLOUIsS0FBdkM7QUFBQSxVQUFRdUIsY0FBUixnQkFBUUEsY0FBUjtBQUFBLFVBQXdCQyxLQUF4QixnQkFBd0JBLEtBQXhCO0FBRUFELE1BQUFBLGNBQWMsaUNBQ1RDLEtBRFM7QUFFWk0sUUFBQUEsU0FBUyxFQUFUQTtBQUZZLFNBQWQ7QUFJRCxLQTlGa0I7QUFHakIsUUFBUU4sTUFBUixHQUFrQixNQUFLeEIsS0FBdkIsQ0FBUXdCLEtBQVI7QUFFQSxVQUFLTyxLQUFMLEdBQWE7QUFDWDNCLE1BQUFBLElBQUksRUFBR29CLE1BQUssSUFBSUEsTUFBSyxDQUFDcEIsSUFBaEIsSUFBeUI7QUFEcEIsS0FBYjtBQUxpQjtBQVFsQjs7OztXQUVELDBDQUFpQzRCLE1BQWpDLEVBQXlDO0FBQ3ZDLFVBQVFSLEtBQVIsR0FBa0JRLE1BQWxCLENBQVFSLEtBQVI7O0FBRUEsVUFBSUEsS0FBSyxJQUFJQSxLQUFLLENBQUNwQixJQUFuQixFQUF5QjtBQUN2QixhQUFLTSxRQUFMLENBQWM7QUFDWk4sVUFBQUEsSUFBSSxFQUFFb0IsS0FBSyxDQUFDcEI7QUFEQSxTQUFkO0FBR0Q7QUFDRjs7O1dBOEVELGtCQUFTO0FBQ1AsVUFBYzZCLFNBQWQsR0FBNEIsS0FBS0YsS0FBakMsQ0FBUTNCLElBQVI7QUFDQSx5QkFPSSxLQUFLSixLQVBUO0FBQUEsVUFDRXdCLEtBREYsZ0JBQ0VBLEtBREY7QUFBQSxVQUVFVSxPQUZGLGdCQUVFQSxPQUZGO0FBQUEsVUFHRUMsWUFIRixnQkFHRUEsWUFIRjtBQUFBLFVBSUVaLGNBSkYsZ0JBSUVBLGNBSkY7QUFBQSxVQUtFYSxhQUxGLGdCQUtFQSxhQUxGO0FBQUEsVUFNRUMsc0JBTkYsZ0JBTUVBLHNCQU5GOztBQVFBLGlCQW1CSUQsYUFBYSxJQUFJLEVBbkJyQjtBQUFBLDZCQUNFUixNQURGO0FBQUEsVUFDRUEsTUFERiw0QkFDVyxFQURYO0FBQUEsMkJBRUV4QixJQUZGO0FBQUEsVUFFRUEsSUFGRiwwQkFFUyxFQUZUO0FBQUEsNkJBR0VDLE1BSEY7QUFBQSxVQUdFQSxNQUhGLDRCQUdXLEVBSFg7QUFBQSwyQkFJRU8sSUFKRjtBQUFBLFVBSUVBLElBSkYsMEJBSVMsRUFKVDtBQUFBLCtCQUtFYyxRQUxGO0FBQUEsVUFLRUEsUUFMRiw4QkFLYSxFQUxiO0FBQUEscUNBTUVDLGNBTkY7QUFBQSxVQU1FQSxjQU5GLG9DQU1tQixFQU5uQjtBQUFBLGlDQU9FVyxVQVBGO0FBQUEsVUFPRUEsVUFQRixnQ0FPZSxFQVBmO0FBQUEscUNBUUVDLGNBUkY7QUFBQSxVQVFFQSxjQVJGLG9DQVFtQixFQVJuQjtBQUFBLG9DQVNFQyxhQVRGO0FBQUEsVUFTRUEsYUFURixtQ0FTa0IsRUFUbEI7QUFBQSx1Q0FVRVgsbUJBVkY7QUFBQSxVQVVFQSxtQkFWRixzQ0FVd0IsRUFWeEI7QUFBQSx1Q0FXRVksbUJBWEY7QUFBQSxVQVdFQSxtQkFYRixzQ0FXd0IsRUFYeEI7QUFBQSxnQ0FZRVgsU0FaRjtBQUFBLFVBWUVBLFNBWkYsK0JBWWMsRUFaZDtBQUFBLGtDQWFFWSxXQWJGO0FBQUEsVUFhRUEsV0FiRixpQ0FhZ0IsRUFiaEI7QUFBQSxpQ0FjRUMsVUFkRjtBQUFBLFVBY0VBLFVBZEYsZ0NBY2UsRUFkZjtBQUFBLHVDQWVFQyxnQkFmRjtBQUFBLFVBZUVBLGdCQWZGLHNDQWVxQixFQWZyQjtBQUFBLFVBZ0JFQyxTQWhCRixRQWdCRUEsU0FoQkY7QUFBQSxVQWlCRUMsU0FqQkYsUUFpQkVBLFNBakJGO0FBQUEsVUFrQkUxQixhQWxCRixRQWtCRUEsYUFsQkY7O0FBb0JBLGtCQUVJSSxLQUFLLElBQUksRUFGYjtBQUFBLFVBQ0V1QiwwQkFERixTQUNFQSwwQkFERjtBQUFBLFVBQzhCQyxhQUQ5QixTQUM4QkEsYUFEOUI7QUFBQSxVQUM2Q0MsZ0JBRDdDLFNBQzZDQSxnQkFEN0M7QUFBQSxVQUMrREMsaUJBRC9ELFNBQytEQSxpQkFEL0Q7QUFBQSxVQUNrRkMsZUFEbEYsU0FDa0ZBLGVBRGxGO0FBQUEsVUFDbUdDLE1BRG5HLFNBQ21HQSxNQURuRzs7QUFHQSxVQUFNQyxXQUFXLEdBQUcsRUFBcEI7QUFDQSxVQUFNQyxjQUFjLEdBQUdsQyxhQUFhLElBQUl5QixTQUFqQixJQUErQkMsU0FBdEQ7QUFDQSxVQUFNUyx1QkFBdUIsR0FBR25DLGFBQWEsNEJBQXFCQSxhQUFyQixtQ0FBa0UsRUFBL0c7QUFDQSxVQUFNb0MsbUJBQW1CLEdBQUdYLFNBQVMsd0NBQWlDQSxTQUFqQyx3QkFBK0QsRUFBcEc7QUFDQSxVQUFNWSxtQkFBbUIsR0FBR1gsU0FBUyw0QkFBcUJBLFNBQXJCLGtDQUE2RCxFQUFsRzs7QUFFQSxrQkFBeUNNLE1BQU0sSUFBSSxFQUFuRDtBQUFBLFVBQVFNLFdBQVIsU0FBUUEsV0FBUjtBQUFBLFVBQXFCQyxlQUFyQixTQUFxQkEsZUFBckI7O0FBRUEsY0FBUW5DLEtBQUssQ0FBQ29DLHFCQUFkO0FBQ0UsYUFBSyxLQUFMO0FBQ0VQLFVBQUFBLFdBQVcsQ0FBQ1EsUUFBWixHQUF1QixLQUF2QjtBQUNBOztBQUNGO0FBQ0VSLFVBQUFBLFdBQVcsQ0FBQ1EsUUFBWixHQUF1QixRQUF2QjtBQUNBO0FBTko7O0FBUUEsVUFBY0MsV0FBZCxHQUE4QnRDLEtBQTlCLENBQU1uQixNQUFOO0FBQ0F5RCxNQUFBQSxXQUFXLEdBQUdBLFdBQVcsSUFBSSxFQUE3QjtBQUVBaEUsTUFBQUEsR0FBRyxDQUFDLHlCQUFELEVBQTRCMEIsS0FBSyxDQUFDSixhQUFsQyxDQUFIO0FBRUEsMEJBQ0UsZ0NBQUMsZ0JBQUQsQ0FBUSxZQUFSO0FBQ0UsUUFBQSxRQUFRLGVBQ04sZ0NBQUMsS0FBRDtBQUNFLFVBQUEsS0FBSyxFQUFFSSxLQURUO0FBRUUsVUFBQSxhQUFhLEVBQUVZLGFBRmpCO0FBR0UsVUFBQSxhQUFhLEVBQUUsdUJBQUFaLEtBQUs7QUFBQSxtQkFBSUQsY0FBYyxDQUFDQyxLQUFELENBQWxCO0FBQUEsV0FIdEI7QUFJRSxVQUFBLHFCQUFxQixFQUFFYSxzQkFKekI7QUFLRSxVQUFBLE1BQU0sRUFBRTtBQUNOMEIsWUFBQUEsUUFBUSxFQUFFO0FBQ1JwQyxjQUFBQSxjQUFjLEVBQ1pBLGNBQWMsQ0FBQ2hDLFFBQWYsSUFBMkJDLE1BQU0sQ0FBQytCLGNBQWMsQ0FBQ3FDLEtBQWhCLENBRjNCO0FBR1JwQixjQUFBQSxnQkFBZ0IsRUFDZEEsZ0JBQWdCLENBQUNqRCxRQUFqQixJQUE2QkMsTUFBTSxDQUFDZ0QsZ0JBQWdCLENBQUNvQixLQUFsQixDQUo3QjtBQUtSYixjQUFBQSxlQUFlLEVBQ2J6QixRQUFRLENBQUMvQixRQUFULElBQXFCQyxNQUFNLENBQUM4QixRQUFRLENBQUNzQyxLQUFWO0FBTnJCLGFBREo7QUFTTkMsWUFBQUEsVUFBVSxFQUFFO0FBQ1ZsQixjQUFBQSwwQkFBMEIsRUFDeEJsQixtQkFBbUIsQ0FBQ2xDLFFBQXBCLElBQ0FDLE1BQU0sQ0FBQ2lDLG1CQUFtQixDQUFDbUMsS0FBckIsQ0FIRTtBQUlWRSxjQUFBQSwwQkFBMEIsRUFDeEJ6QixtQkFBbUIsQ0FBQzlDLFFBQXBCLElBQ0FDLE1BQU0sQ0FBQzZDLG1CQUFtQixDQUFDdUIsS0FBckIsQ0FORTtBQU9WaEIsY0FBQUEsYUFBYSxFQUFFcEIsTUFBTSxDQUFDakMsUUFBUCxJQUFtQkMsTUFBTSxDQUFDZ0MsTUFBTSxDQUFDb0MsS0FBUixDQVA5QjtBQVFWZixjQUFBQSxnQkFBZ0IsRUFBRW5CLFNBQVMsQ0FBQ25DLFFBQVYsSUFBc0JDLE1BQU0sQ0FBQ2tDLFNBQVMsQ0FBQ2tDLEtBQVgsQ0FScEM7QUFTVmQsY0FBQUEsaUJBQWlCLEVBQ2JQLFVBQVUsQ0FBQ2hELFFBQVgsSUFBdUJDLE1BQU0sQ0FBQytDLFVBQVUsQ0FBQ3FCLEtBQVosQ0FWdkI7QUFXVnRCLGNBQUFBLFdBQVcsRUFDVEEsV0FBVyxDQUFDL0MsUUFBWixJQUNBRSxLQUFLLENBQUM2QyxXQUFXLENBQUNzQixLQUFiLEVBQW9CLENBQUMsTUFBRCxFQUFTLFFBQVQsQ0FBcEI7QUFiRztBQVROO0FBTFY7QUFGSixzQkFtQ0U7QUFBSyxRQUFBLFNBQVMsRUFBRTlCLE9BQU8sQ0FBQ2lDO0FBQXhCLFNBQ0dwQiwwQkFBMEIsaUJBQ3pCLGdDQUFDLHdCQUFEO0FBQ0UsUUFBQSxLQUFLLEVBQUVsQixtQkFBbUIsQ0FBQ21DLEtBRDdCO0FBRUUsUUFBQSxTQUFTLEVBQUU5QixPQUFPLENBQUNrQztBQUZyQixzQkFJRSxnQ0FBQyx3QkFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFbEMsT0FBTyxDQUFDTixNQURyQjtBQUVFLFFBQUEsTUFBTSxFQUFFSixLQUFLLENBQUNLLG1CQUFOLElBQTZCLEVBRnZDO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBS3dDLDRCQUhqQjtBQUlFLFFBQUEsWUFBWSxFQUFFbEMsWUFKaEI7QUFLRSxRQUFBLFFBQVEsRUFBRSxLQUxaO0FBTUUsUUFBQSxXQUFXLEVBQUVrQixXQU5mO0FBT0UsUUFBQSxVQUFVLEVBQUVIO0FBUGQsUUFKRixDQUZKLEVBa0JHRixhQUFhLGlCQUNaLGdDQUFDLHdCQUFEO0FBQ0UsUUFBQSxLQUFLLEVBQUVwQixNQUFNLENBQUNvQyxLQUFQLElBQWdCLEVBRHpCO0FBRUUsUUFBQSxTQUFTLEVBQUU5QixPQUFPLENBQUNrQztBQUZyQixzQkFJRSxnQ0FBQyx3QkFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFbEMsT0FBTyxDQUFDTixNQURyQjtBQUVFLFFBQUEsTUFBTSxFQUFFSixLQUFLLENBQUNJLE1BRmhCO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBSzBDLGVBSGpCO0FBSUUsUUFBQSxZQUFZLEVBQUVuQyxZQUpoQjtBQUtFLFFBQUEsV0FBVyxFQUFFa0IsV0FMZjtBQU1FLFFBQUEsVUFBVSxFQUFFSDtBQU5kLFFBSkYsQ0FuQkosRUFrQ0dELGdCQUFnQixpQkFDZixnQ0FBQyx3QkFBRDtBQUNFLFFBQUEsS0FBSyxFQUFFbkIsU0FBUyxDQUFDa0MsS0FBVixJQUFtQixFQUQ1QjtBQUVFLFFBQUEsU0FBUyxFQUFFOUIsT0FBTyxDQUFDa0M7QUFGckIsc0JBSUUsZ0NBQUMsd0JBQUQ7QUFDRSxRQUFBLFNBQVMsRUFBRWxDLE9BQU8sQ0FBQ04sTUFEckI7QUFFRSxRQUFBLE1BQU0sRUFBRUosS0FBSyxDQUFDTSxTQUFOLElBQW1CLEVBRjdCO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBS3lDLGtCQUhqQjtBQUlFLFFBQUEsWUFBWSxFQUFFcEMsWUFKaEI7QUFLRSxRQUFBLFdBQVcsRUFBRWtCLFdBTGY7QUFNRSxRQUFBLFVBQVUsRUFBRUg7QUFOZCxRQUpGLENBbkNKLEVBa0RHOUMsSUFBSSxDQUFDVCxRQUFMLGlCQUNDLGdDQUFDLHFCQUFEO0FBQ0UsUUFBQSxLQUFLLEVBQUVTLElBQUksQ0FBQzRELEtBRGQ7QUFFRSxRQUFBLFNBQVMsRUFBRTlCLE9BQU8sQ0FBQ3NDLEtBRnJCO0FBR0UsUUFBQSxTQUFTLE1BSFg7QUFJRSxRQUFBLEtBQUssRUFBRXZDLFNBSlQ7QUFLRSxRQUFBLFFBQVEsRUFBRSxLQUFLd0MsVUFMakI7QUFNRSxRQUFBLFVBQVUsRUFBRXZCO0FBTmQsUUFuREosRUE2REdJLGNBQWMsaUJBQUksZ0NBQUMsbUJBQUQ7QUFDakIsUUFBQSxPQUFPLEVBQUU7QUFBQ29CLFVBQUFBLE9BQU8sRUFBRXhDLE9BQU8sQ0FBQ3dDO0FBQWxCLFNBRFE7QUFFakIsUUFBQSxvQkFBb0IsTUFGSDtBQUdqQixRQUFBLG9CQUFvQixNQUhIO0FBSWpCLFFBQUEsU0FBUyxFQUFFLE1BSk07QUFLakIsUUFBQSxLQUFLLG9DQUE2Qm5CLHVCQUE3QixTQUF1REMsbUJBQXZELFNBQTZFQyxtQkFBN0U7QUFMWSxzQkFPakIsZ0NBQUMsZ0JBQUQ7QUFBTSxRQUFBLFFBQVEsRUFBRSxPQUFoQjtBQUF5QixRQUFBLEtBQUssRUFBRSxTQUFoQztBQUEyQyxRQUFBLEtBQUssRUFBRTtBQUFFLG1CQUFPO0FBQVQ7QUFBbEQsUUFQaUIsQ0E3RHJCLEVBdUVHQyxXQUFXLGlCQUFJO0FBQUssUUFBQSxTQUFTLEVBQUV4QixPQUFPLENBQUN5QztBQUF4QixTQUFvQ2IsV0FBcEMsQ0F2RWxCLEVBd0VHSCxlQUFlLGlCQUFJO0FBQUssUUFBQSxTQUFTLEVBQUV6QixPQUFPLENBQUN5QztBQUF4QixTQUFvQ2hCLGVBQXBDLENBeEV0QixFQTBFR3RELE1BQU0sQ0FBQ1YsUUFBUCxpQkFDQyxnQ0FBQyx3QkFBRDtBQUNFLFFBQUEsS0FBSyxFQUFFVSxNQUFNLENBQUMyRCxLQUFQLElBQWdCLEVBRHpCO0FBRUUsUUFBQSxTQUFTLEVBQUU5QixPQUFPLENBQUMwQztBQUZyQixzQkFJRSxnQ0FBQyxxQkFBRDtBQUNFLFFBQUEsU0FBUyxFQUFFMUMsT0FBTyxDQUFDMkMsU0FEckI7QUFFRSxRQUFBLElBQUksRUFBRXJELEtBQUssQ0FBQ3BCLElBRmQ7QUFHRSxRQUFBLE1BQU0sRUFBRTBELFdBSFY7QUFJRSxRQUFBLFFBQVEsRUFBRSxLQUFLZ0I7QUFKakIsUUFKRixDQTNFSixFQXdGR2xFLElBQUksQ0FBQ2pCLFFBQUwsaUJBQ0MsZ0NBQUMsZ0JBQUQ7QUFDRSxRQUFBLEtBQUssWUFBS2lCLElBQUksQ0FBQ29ELEtBQVYsZUFBb0J4QyxLQUFLLENBQUNaLElBQU4sR0FBYVksS0FBSyxDQUFDWixJQUFuQixHQUEwQixNQUE5QyxDQURQO0FBRUUsUUFBQSxTQUFTLEVBQUVzQixPQUFPLENBQUM2QztBQUZyQixRQXpGSixFQStGR3pDLFVBQVUsQ0FBQzNDLFFBQVgsaUJBQ0MsZ0NBQUMsZ0JBQUQ7QUFDRSxRQUFBLEtBQUssWUFBSzJDLFVBQVUsQ0FBQzBCLEtBQWhCLGVBQTBCRixXQUFXLENBQUM3QyxNQUF0QyxDQURQO0FBRUUsUUFBQSxTQUFTLEVBQUVpQixPQUFPLENBQUM2QztBQUZyQixRQWhHSixFQXNHR3ZDLGFBQWEsQ0FBQzdDLFFBQWQsaUJBQ0MsZ0NBQUMsZ0JBQUQ7QUFDRSxRQUFBLEtBQUssWUFBSzZDLGFBQWEsQ0FBQ3dCLEtBQW5CLGVBQ0hGLFdBQVcsQ0FBQ2hELE1BQVosQ0FBbUIsVUFBQUMsQ0FBQztBQUFBLGlCQUFJQSxDQUFDLENBQUNDLE9BQU47QUFBQSxTQUFwQixFQUFtQ0MsTUFEaEMsQ0FEUDtBQUlFLFFBQUEsU0FBUyxFQUFFaUIsT0FBTyxDQUFDNkM7QUFKckIsUUF2R0osRUErR0d4QyxjQUFjLENBQUM1QyxRQUFmLGlCQUNDLGdDQUFDLHlCQUFEO0FBQ0UsUUFBQSxHQUFHLEVBQUVtRSxXQUFXLENBQUNoRCxNQUFaLENBQW1CLFVBQUFDLENBQUM7QUFBQSxpQkFBSUEsQ0FBQyxDQUFDQyxPQUFOO0FBQUEsU0FBcEIsRUFBbUNDLE1BQW5DLElBQTZDLENBRHBEO0FBRUUsUUFBQSxLQUFLLFlBQUtzQixjQUFjLENBQUN5QixLQUFwQixhQUZQO0FBR0UsUUFBQSxHQUFHLEVBQUVGLFdBQVcsQ0FBQzdDLE1BSG5CO0FBSUUsUUFBQSxLQUFLLEVBQUVPLEtBQUssQ0FBQ0osYUFKZjtBQUtFLFFBQUEsUUFBUSxFQUFFLEtBQUs0RCxtQkFMakI7QUFNRSxRQUFBLFNBQVMsRUFBRTlDLE9BQU8sQ0FBQytDO0FBTnJCLFFBaEhKLEVBMEhHOUIsZUFBZSxpQkFDZCxnQ0FBQyx3QkFBRDtBQUNFLFFBQUEsUUFBUSxFQUFFM0IsS0FBSyxDQUFDRSxRQURsQjtBQUVFLFFBQUEsUUFBUSxFQUFFLEtBQUt3RCxjQUZqQjtBQUdFLFFBQUEsV0FBVyxFQUFFN0I7QUFIZixRQTNISixDQW5DRixDQURGO0FBd0tEOzs7RUE3VXlCOEIsa0JBQU1DLFM7OztpQ0FBckJyRixNLGVBQ1E7QUFDakJ5QixFQUFBQSxLQUFLLEVBQUU2RCxzQkFBVUMsTUFBVixDQUFpQkMsVUFEUDtBQUVqQm5ELEVBQUFBLGFBQWEsRUFBRWlELHNCQUFVQyxNQUFWLENBQWlCQyxVQUZmO0FBR2pCckQsRUFBQUEsT0FBTyxFQUFFbUQsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBSFQ7QUFJakJoRSxFQUFBQSxjQUFjLEVBQUU4RCxzQkFBVUcsSUFBVixDQUFlRCxVQUpkO0FBS2pCbEQsRUFBQUEsc0JBQXNCLEVBQUVnRCxzQkFBVUcsSUFBVixDQUFlRCxVQUx0QjtBQU1qQnBELEVBQUFBLFlBQVksRUFBRWtELHNCQUFVSSxLQUFWLENBQWdCO0FBQzVCQyxJQUFBQSxHQUFHLEVBQUVMLHNCQUFVRyxJQUFWLENBQWVELFVBRFE7QUFFNUIsY0FBUUYsc0JBQVVHLElBQVYsQ0FBZUQ7QUFGSyxHQUFoQjtBQU5HLEM7aUNBRFJ4RixNLGtCQWFXLEU7O2VBa1VULHdCQUFXLFVBQUE0RixLQUFLO0FBQUEsU0FBSztBQUNsQ3hCLElBQUFBLFNBQVMsRUFBRTtBQUNUeUIsTUFBQUEsVUFBVSxFQUFFRCxLQUFLLENBQUNFLE9BQU4sQ0FBY0M7QUFEakIsS0FEdUI7QUFJbENsQixJQUFBQSxrQkFBa0IsRUFBRTtBQUNsQm1CLE1BQUFBLFlBQVksRUFBRSxDQURJO0FBRWxCQyxNQUFBQSxXQUFXLEVBQUUsQ0FGSztBQUdsQixpQkFBVztBQUNUbkMsUUFBQUEsUUFBUSxFQUFFLFVBREQ7QUFFVG9DLFFBQUFBLE1BQU0sRUFBRSxDQUZDO0FBR1RDLFFBQUFBLElBQUksRUFBRSxDQUhHO0FBSVRDLFFBQUFBLEtBQUssRUFBRSxDQUpFO0FBS1RDLFFBQUFBLE1BQU0sRUFBRSxLQUxDO0FBTVRDLFFBQUFBLE9BQU8sRUFBRSxJQU5BO0FBT1RDLFFBQUFBLGVBQWUsRUFBRVgsS0FBSyxDQUFDWSxPQUFOLENBQWNDLE9BQWQsQ0FBc0JDO0FBUDlCLE9BSE87QUFZbEJDLE1BQUFBLFlBQVksRUFBRWYsS0FBSyxDQUFDRSxPQUFOLENBQWNDO0FBWlYsS0FKYztBQWtCbENmLElBQUFBLElBQUksRUFBRTtBQUNKaUIsTUFBQUEsV0FBVyxFQUFFTCxLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUQ5QixLQWxCNEI7QUFxQmxDdEIsSUFBQUEsS0FBSyxFQUFFO0FBQ0xtQyxNQUFBQSxLQUFLLEVBQUUsTUFERjtBQUVMQyxNQUFBQSxhQUFhLEVBQUVqQixLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUYvQixLQXJCMkI7QUF5QmxDakIsSUFBQUEsU0FBUyxFQUFFO0FBQ1RnQyxNQUFBQSxTQUFTLEVBQUVsQixLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQjtBQUR2QixLQXpCdUI7QUE0QmxDZ0IsSUFBQUEsUUFBUSxFQUFFO0FBQ1JILE1BQUFBLEtBQUssRUFBRSxNQURDO0FBRVJJLE1BQUFBLGNBQWMsRUFBRSxlQUZSO0FBR1JDLE1BQUFBLE9BQU8sRUFBRSxNQUhEO0FBSVJDLE1BQUFBLFVBQVUsRUFBRTtBQUpKLEtBNUJ3QjtBQWtDbEM3QyxJQUFBQSxZQUFZLEVBQUU7QUFDWnVDLE1BQUFBLEtBQUssRUFBRSxNQURLO0FBRVpDLE1BQUFBLGFBQWEsRUFBRWpCLEtBQUssQ0FBQ0UsT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRnhCO0FBR1pZLE1BQUFBLFlBQVksRUFBRWYsS0FBSyxDQUFDRSxPQUFOLENBQWNDLElBQWQsR0FBcUI7QUFIdkIsS0FsQ29CO0FBdUNsQ2xFLElBQUFBLE1BQU0sRUFBRTtBQUNOZ0UsTUFBQUEsVUFBVSxFQUFFRCxLQUFLLENBQUNFLE9BQU4sQ0FBY0MsSUFBZCxHQUFxQixDQUQzQjtBQUVOYSxNQUFBQSxLQUFLLEVBQUU7QUFGRCxLQXZDMEI7QUEyQ2xDMUIsSUFBQUEsV0FBVyxFQUFFO0FBQ1gwQixNQUFBQSxLQUFLLEVBQUU7QUFESSxLQTNDcUI7QUE4Q2xDakMsSUFBQUEsT0FBTyxFQUFFO0FBQ1B3QyxNQUFBQSxRQUFRLEVBQUUsTUFESDtBQUVQQyxNQUFBQSxVQUFVLEVBQUUsS0FGTDtBQUdQQyxNQUFBQSxRQUFRLEVBQUU7QUFISCxLQTlDeUI7QUFtRGxDekMsSUFBQUEsU0FBUyxFQUFFO0FBQ1R1QyxNQUFBQSxRQUFRLEVBQUUsTUFERDtBQUVURyxNQUFBQSxLQUFLLEVBQUUsS0FGRTtBQUdUQyxNQUFBQSxPQUFPLEVBQUU7QUFIQTtBQW5EdUIsR0FBTDtBQUFBLENBQWhCLEVBd0RYdkgsTUF4RFcsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UZXh0RmllbGQnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQgeyBUb2tlbml6ZXIgfSBmcm9tICdAcGllLWxpYi90ZXh0LXNlbGVjdCc7XG5pbXBvcnQge1xuICBJbnB1dENvbnRhaW5lcixcbiAgTnVtYmVyVGV4dEZpZWxkLFxuICBGZWVkYmFja0NvbmZpZyxcbiAgc2V0dGluZ3MsXG4gIGxheW91dFxufSBmcm9tICdAcGllLWxpYi9jb25maWctdWknO1xuaW1wb3J0IENoaXAgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ2hpcCc7XG5pbXBvcnQgSW5mbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSW5mbyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1Rvb2x0aXAnO1xuXG5jb25zdCB7IFBhbmVsLCB0b2dnbGUsIHJhZGlvIH0gPSBzZXR0aW5ncztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtZWxlbWVudDpzZWxlY3QtdGV4dDpjb25maWd1cmUnKTtcblxuZXhwb3J0IGNsYXNzIERlc2lnbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfSlcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCB7IG1vZGVsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRleHQ6IChtb2RlbCAmJiBtb2RlbC50ZXh0KSB8fCAnJ1xuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuUHJvcHMpIHtcbiAgICBjb25zdCB7IG1vZGVsIH0gPSBuUHJvcHM7XG5cbiAgICBpZiAobW9kZWwgJiYgbW9kZWwudGV4dCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHRleHQ6IG1vZGVsLnRleHRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVRleHQgPSBkZWJvdW5jZSh2YWwgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRleHQgPSB2YWw7XG4gICAgICB1LnRva2VucyA9IFtdO1xuICAgIH0pO1xuICB9LCAyMDApO1xuXG4gIGNoYW5nZVRleHQgPSBldmVudCA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgY29uc3QgcHJlcGFyZWRUZXh0ID0gdmFsdWU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHRleHQ6IHZhbHVlXG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVUZXh0KHByZXBhcmVkVGV4dCk7XG4gIH07XG5cbiAgY2hhbmdlVG9rZW5zID0gKHRva2VucywgbW9kZSkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiB7XG4gICAgICB1LnRva2VucyA9IHRva2VucztcbiAgICAgIHUubW9kZSA9IG1vZGU7XG5cbiAgICAgIGNvbnN0IGNvcnJlY3RUb2tlbkNvdW50ID0gdG9rZW5zLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoO1xuICAgICAgY29uc3QgbWF4ID0gaXNGaW5pdGUodS5tYXhTZWxlY3Rpb25zKSA/IHUubWF4U2VsZWN0aW9ucyA6IDA7XG5cbiAgICAgIHUubWF4U2VsZWN0aW9ucyA9IE1hdGgubWF4KG1heCwgY29ycmVjdFRva2VuQ291bnQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNoYW5nZU1heFNlbGVjdGlvbnMgPSAoZXZlbnQsIG1heCkgPT4ge1xuICAgIHRoaXMuYXBwbHkodSA9PiAodS5tYXhTZWxlY3Rpb25zID0gbWF4KSk7XG4gIH07XG5cbiAgYXBwbHkgPSBmbiA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCwgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlID0gY2xvbmVEZWVwKG1vZGVsKTtcbiAgICBmbih1cGRhdGUpO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgY2hhbmdlRmVlZGJhY2sgPSBmZWVkYmFjayA9PiB7XG4gICAgdGhpcy5hcHBseSh1ID0+ICh1LmZlZWRiYWNrID0gZmVlZGJhY2spKTtcbiAgfTtcblxuICBjaGFuZ2VQYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuICAgIHVwZGF0ZS5wYXJ0aWFsU2NvcmluZyA9IHBhcnRpYWxTY29yaW5nO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gcHJvbXB0ID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnByb21wdCA9IHByb21wdDtcbiAgICBvbk1vZGVsQ2hhbmdlZCh1cGRhdGUpO1xuICB9O1xuXG4gIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSBjbG9uZURlZXAobW9kZWwpO1xuXG4gICAgdXBkYXRlLnRlYWNoZXJJbnN0cnVjdGlvbnMgPSB0ZWFjaGVySW5zdHJ1Y3Rpb25zO1xuICAgIG9uTW9kZWxDaGFuZ2VkKHVwZGF0ZSk7XG4gIH07XG5cbiAgb25SYXRpb25hbGVDaGFuZ2VkID0gcmF0aW9uYWxlID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkLCBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIG9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLm1vZGVsLFxuICAgICAgcmF0aW9uYWxlXG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdGV4dDogdGV4dFZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtcbiAgICAgIG1vZGVsLFxuICAgICAgY2xhc3NlcyxcbiAgICAgIGltYWdlU3VwcG9ydCxcbiAgICAgIG9uTW9kZWxDaGFuZ2VkLFxuICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWRcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7XG4gICAgICBwcm9tcHQgPSB7fSxcbiAgICAgIHRleHQgPSB7fSxcbiAgICAgIHRva2VucyA9IHt9LFxuICAgICAgbW9kZSA9IHt9LFxuICAgICAgZmVlZGJhY2sgPSB7fSxcbiAgICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgICBzZWxlY3Rpb25zID0ge30sXG4gICAgICBzZWxlY3Rpb25Db3VudCA9IHt9LFxuICAgICAgY29ycmVjdEFuc3dlciA9IHt9LFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgc3R1ZGVudEluc3RydWN0aW9ucyA9IHt9LFxuICAgICAgcmF0aW9uYWxlID0ge30sXG4gICAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgICAgc3BlbGxDaGVjayA9IHt9LFxuICAgICAgaGlnaGxpZ2h0Q2hvaWNlcyA9IHt9LFxuICAgICAgbWluVG9rZW5zLFxuICAgICAgbWF4VG9rZW5zLFxuICAgICAgbWF4U2VsZWN0aW9uc1xuICAgIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkLCBwcm9tcHRFbmFibGVkLCByYXRpb25hbGVFbmFibGVkLCBzcGVsbENoZWNrRW5hYmxlZCwgZmVlZGJhY2tFbmFibGVkLCBlcnJvcnNcbiAgICB9ID0gbW9kZWwgfHwge307XG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7fTtcbiAgICBjb25zdCBjb25maWdTZXR0aW5ncyA9IG1heFNlbGVjdGlvbnMgfHwgbWluVG9rZW5zIHx8ICBtYXhUb2tlbnM7XG4gICAgY29uc3QgbWF4U2VsZWN0aW9uc1ZhbGlkYXRpb24gPSBtYXhTZWxlY3Rpb25zID8gYFxcbk5vIG1vcmUgdGhhbiAke21heFNlbGVjdGlvbnN9IHRva2VucyBzaG91bGQgYmUgc2VsZWN0ZWQuYCA6ICcnO1xuICAgIGNvbnN0IG1pblRva2Vuc1ZhbGlkYXRpb24gPSBtaW5Ub2tlbnMgPyBgXFxuVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0ICR7bWluVG9rZW5zfSB0b2tlbnMgZGVmaW5lZC5gIDogJyc7XG4gICAgY29uc3QgbWF4VG9rZW5zVmFsaWRhdGlvbiA9IG1heFRva2VucyA/IGBcXG5ObyBtb3JlIHRoYW4gJHttYXhUb2tlbnN9IHRva2VucyBzaG91bGQgYmUgZGVmaW5lZC5gIDogJyc7XG5cbiAgICBjb25zdCB7IHRva2Vuc0Vycm9yLCBzZWxlY3Rpb25zRXJyb3IgfSA9IGVycm9ycyB8fCB7fTtcblxuICAgIHN3aXRjaCAobW9kZWwudG9vbGJhckVkaXRvclBvc2l0aW9uKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICB0b29sYmFyT3B0cy5wb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRvb2xiYXJPcHRzLnBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBsZXQgeyB0b2tlbnM6IHRva2Vuc01vZGVsIH0gPSBtb2RlbDtcbiAgICB0b2tlbnNNb2RlbCA9IHRva2Vuc01vZGVsIHx8IFtdO1xuXG4gICAgbG9nKCdbcmVuZGVyXSBtYXhTZWxlY3Rpb25zOicsIG1vZGVsLm1heFNlbGVjdGlvbnMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxsYXlvdXQuQ29uZmlnTGF5b3V0XG4gICAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgICBvbkNoYW5nZU1vZGVsPXttb2RlbCA9PiBvbk1vZGVsQ2hhbmdlZChtb2RlbCl9XG4gICAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249e29uQ29uZmlndXJhdGlvbkNoYW5nZWR9XG4gICAgICAgICAgICBncm91cHM9e3tcbiAgICAgICAgICAgICAgU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICBwYXJ0aWFsU2NvcmluZzpcbiAgICAgICAgICAgICAgICAgIHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q2hvaWNlczpcbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodENob2ljZXMuc2V0dGluZ3MgJiYgdG9nZ2xlKGhpZ2hsaWdodENob2ljZXMubGFiZWwpLFxuICAgICAgICAgICAgICAgIGZlZWRiYWNrRW5hYmxlZDpcbiAgICAgICAgICAgICAgICAgIGZlZWRiYWNrLnNldHRpbmdzICYmIHRvZ2dsZShmZWVkYmFjay5sYWJlbClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHRlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOlxuICAgICAgICAgICAgICAgICAgc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICAgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgICAgICAgICAgICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICAgICAgICAgICAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgICAgICAgICAgICAgc3BlbGxDaGVja0VuYWJsZWQ6XG4gICAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgICAgICAgICAgICAgIHNjb3JpbmdUeXBlOlxuICAgICAgICAgICAgICAgICAgc2NvcmluZ1R5cGUuc2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICAgIHJhZGlvKHNjb3JpbmdUeXBlLmxhYmVsLCBbJ2F1dG8nLCAncnVicmljJ10pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250YWluZXJ9PlxuICAgICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3RlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWx9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICAgIG1hcmt1cD17bW9kZWwudGVhY2hlckluc3RydWN0aW9ucyB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8SW5wdXRDb250YWluZXJcbiAgICAgICAgICAgICAgbGFiZWw9e3Byb21wdC5sYWJlbCB8fCAnJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdEhvbGRlcn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHR9XG4gICAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17cmF0aW9uYWxlLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RWRpdGFibGVIdG1sXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vblJhdGlvbmFsZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3RleHQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPFRleHRGaWVsZFxuICAgICAgICAgICAgICBsYWJlbD17dGV4dC5sYWJlbH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICBtdWx0aWxpbmVcbiAgICAgICAgICAgICAgdmFsdWU9e3RleHRWYWx1ZX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVGV4dH1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7Y29uZmlnU2V0dGluZ3MgJiYgPFRvb2x0aXBcbiAgICAgICAgICAgIGNsYXNzZXM9e3t0b29sdGlwOiBjbGFzc2VzLnRvb2x0aXB9fVxuICAgICAgICAgICAgZGlzYWJsZUZvY3VzTGlzdGVuZXJcbiAgICAgICAgICAgIGRpc2FibGVUb3VjaExpc3RlbmVyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9eydsZWZ0J31cbiAgICAgICAgICAgIHRpdGxlPXtgVmFsaWRhdGlvbiByZXF1aXJlbWVudHM6JHttYXhTZWxlY3Rpb25zVmFsaWRhdGlvbn0ke21pblRva2Vuc1ZhbGlkYXRpb259JHttYXhUb2tlbnNWYWxpZGF0aW9ufWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEluZm8gZm9udFNpemU9eydzbWFsbCd9IGNvbG9yPXsncHJpbWFyeSd9IHN0eWxlPXt7IGZsb2F0OiAncmlnaHQnIH19Lz5cbiAgICAgICAgICA8L1Rvb2x0aXA+fVxuXG4gICAgICAgICAge3Rva2Vuc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3Rva2Vuc01vZGVsfTwvZGl2Pn1cbiAgICAgICAgICB7c2VsZWN0aW9uc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3NlbGVjdGlvbnNFcnJvcn08L2Rpdj59XG5cbiAgICAgICAgICB7dG9rZW5zLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBsYWJlbD17dG9rZW5zLmxhYmVsIHx8ICcnfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMudG9rZW5pemVyQ29udGFpbmVyfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8VG9rZW5pemVyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnRva2VuaXplcn1cbiAgICAgICAgICAgICAgICB0ZXh0PXttb2RlbC50ZXh0fVxuICAgICAgICAgICAgICAgIHRva2Vucz17dG9rZW5zTW9kZWx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlVG9rZW5zfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge21vZGUuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake21vZGUubGFiZWx9OiAke21vZGVsLm1vZGUgPyBtb2RlbC5tb2RlIDogJ05vbmUnfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jaGlwfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NlbGVjdGlvbnMuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgbGFiZWw9e2Ake3NlbGVjdGlvbnMubGFiZWx9OiAke3Rva2Vuc01vZGVsLmxlbmd0aH1gfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuY2hpcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtjb3JyZWN0QW5zd2VyLnNldHRpbmdzICYmIChcbiAgICAgICAgICAgIDxDaGlwXG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtjb3JyZWN0QW5zd2VyLmxhYmVsfTogJHtcbiAgICAgICAgICAgICAgICB0b2tlbnNNb2RlbC5maWx0ZXIodCA9PiB0LmNvcnJlY3QpLmxlbmd0aFxuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmNoaXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICB7c2VsZWN0aW9uQ291bnQuc2V0dGluZ3MgJiYgKFxuICAgICAgICAgICAgPE51bWJlclRleHRGaWVsZFxuICAgICAgICAgICAgICBtaW49e3Rva2Vuc01vZGVsLmZpbHRlcih0ID0+IHQuY29ycmVjdCkubGVuZ3RoIHx8IDB9XG4gICAgICAgICAgICAgIGxhYmVsPXtgJHtzZWxlY3Rpb25Db3VudC5sYWJlbH0gKDA6YW55KWB9XG4gICAgICAgICAgICAgIG1heD17dG9rZW5zTW9kZWwubGVuZ3RofVxuICAgICAgICAgICAgICB2YWx1ZT17bW9kZWwubWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuY2hhbmdlTWF4U2VsZWN0aW9uc31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm51bWJlckZpZWxkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2ZlZWRiYWNrRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8RmVlZGJhY2tDb25maWdcbiAgICAgICAgICAgICAgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VGZWVkYmFja31cbiAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGF5b3V0LkNvbmZpZ0xheW91dD5cbiAgICApO1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHRoZW1lID0+ICh7XG4gIGNvbnRhaW5lcjoge1xuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICB0b2tlbml6ZXJDb250YWluZXI6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDAsXG4gICAgbWFyZ2luUmlnaHQ6IDAsXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGJvdHRvbTogMCxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICByaWdodDogMCxcbiAgICAgIGhlaWdodDogJzFweCcsXG4gICAgICBjb250ZW50OiAnXCJcIicsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWluXG4gICAgfSxcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdFxuICB9LFxuICBjaGlwOiB7XG4gICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDNcbiAgfSxcbiAgdG9rZW5pemVyOiB7XG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyXG4gIH0sXG4gIG1haW5PcHRzOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnYmFzZWxpbmUnXG4gIH0sXG4gIHByb21wdEhvbGRlcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZ0JvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDJcbiAgfSxcbiAgcHJvbXB0OiB7XG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICB3aWR0aDogJzEwMCUnXG4gIH0sXG4gIG51bWJlckZpZWxkOiB7XG4gICAgd2lkdGg6ICcxODBweCdcbiAgfSxcbiAgdG9vbHRpcDoge1xuICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgd2hpdGVTcGFjZTogJ3ByZScsXG4gICAgbWF4V2lkdGg6ICc1MDBweCcsXG4gIH0sXG4gIGVycm9yVGV4dDoge1xuICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgY29sb3I6ICdyZWQnLFxuICAgIHBhZGRpbmc6ICc1cHggMCdcbiAgfVxufSkpKERlc2lnbik7XG4iXX0=
|