single-scripture-rcl 3.4.2-beta → 3.4.2-beta.2
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/dist/components/ScriptureCard/ScriptureCard.js +716 -387
- package/dist/components/ScripturePane/ScripturePane.js +57 -27
- package/dist/components/VerseSelectorPopup/index.js +1 -1
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/useScripture.js +390 -112
- package/dist/hooks/useScriptureAlignmentEdit.js +88 -74
- package/dist/hooks/useScriptureResources.js +20 -18
- package/dist/hooks/useScriptureSelector.js +12 -12
- package/dist/hooks/useScriptureSettings.js +35 -39
- package/dist/utils/ScriptureSettings.js +11 -6
- package/dist/utils/index.js +2 -1
- package/dist/utils/maps.js +41 -0
- package/package.json +6 -5
|
@@ -23,13 +23,13 @@ import Tooltip from '@material-ui/core/Tooltip';
|
|
|
23
23
|
import { delay } from '../utils/delay';
|
|
24
24
|
import { useComboBox } from './useComboBox';
|
|
25
25
|
export function useScriptureSelector(_ref) {
|
|
26
|
-
var
|
|
27
|
-
options = _ref.options,
|
|
26
|
+
var allowUserInput = _ref.allowUserInput,
|
|
28
27
|
current = _ref.current,
|
|
29
|
-
allowUserInput = _ref.allowUserInput,
|
|
30
|
-
onChange = _ref.onChange,
|
|
31
28
|
deleteItem = _ref.deleteItem,
|
|
32
|
-
initialPrompt = _ref.initialPrompt
|
|
29
|
+
initialPrompt = _ref.initialPrompt,
|
|
30
|
+
label = _ref.label,
|
|
31
|
+
onChange = _ref.onChange,
|
|
32
|
+
options = _ref.options;
|
|
33
33
|
|
|
34
34
|
function scriptureSelectorOnChange(newSelection, index) {
|
|
35
35
|
onChange && onChange(newSelection, index, function (success, item) {
|
|
@@ -46,10 +46,10 @@ export function useScriptureSelector(_ref) {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
var _useComboBox = useComboBox({
|
|
49
|
+
allowUserInput: allowUserInput,
|
|
50
|
+
current: current,
|
|
49
51
|
label: label,
|
|
50
52
|
options: options,
|
|
51
|
-
current: current,
|
|
52
|
-
allowUserInput: allowUserInput,
|
|
53
53
|
onChange: scriptureSelectorOnChange,
|
|
54
54
|
initialPrompt: initialPrompt
|
|
55
55
|
}),
|
|
@@ -145,17 +145,17 @@ export function useScriptureSelector(_ref) {
|
|
|
145
145
|
|
|
146
146
|
return {
|
|
147
147
|
state: {
|
|
148
|
-
value: state.value,
|
|
149
|
-
options: currentOptions,
|
|
150
148
|
filterOptions: state.filterOptions,
|
|
149
|
+
freeSolo: state.freeSolo,
|
|
151
150
|
getOptionLabel: state.getOptionLabel,
|
|
152
|
-
|
|
151
|
+
options: currentOptions,
|
|
153
152
|
renderInput: state.renderInput,
|
|
154
|
-
|
|
153
|
+
renderOption: renderOption,
|
|
154
|
+
value: state.value
|
|
155
155
|
},
|
|
156
156
|
actions: {
|
|
157
157
|
onChange: actions.onChange
|
|
158
158
|
}
|
|
159
159
|
};
|
|
160
160
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZWxlY3Rvci50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJIaWdobGlnaHRPZmZJY29uIiwiSWNvbkJ1dHRvbiIsIlRvb2x0aXAiLCJkZWxheSIsInVzZUNvbWJvQm94IiwidXNlU2NyaXB0dXJlU2VsZWN0b3IiLCJsYWJlbCIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsImRlbGV0ZUl0ZW0iLCJpbml0aWFsUHJvbXB0Iiwic2NyaXB0dXJlU2VsZWN0b3JPbkNoYW5nZSIsIm5ld1NlbGVjdGlvbiIsImluZGV4Iiwic3VjY2VzcyIsIml0ZW0iLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1ha2VTdXJlSXRlbUlzU2VsZWN0ZWRJbkNvbWJvQm94Iiwic3RhdGUiLCJhY3Rpb25zIiwidXNlU3RhdGUiLCJjdXJyZW50T3B0aW9ucyIsInNldE9wdGlvbnMiLCJmaW5kVGl0bGUiLCJ0aXRsZSIsImZpbmRJbmRleCIsInNlbGVjdGVkSXRlbSIsIm5ld09wdGlvbnMiLCJ1bnNoaWZ0IiwidGhlbiIsInNldFZhbHVlIiwiaGFuZGxlRGVsZXRlIiwib3B0aW9uIiwiY3VycmVudFRpdGxlIiwidmFsdWUiLCJyZW1vdmVUaXRsZSIsInJlbW92ZUluZGV4IiwiY3VycmVudFNlbGVjdGlvbkluZGV4IiwiZGVsZXRpbmciLCJzcGxpY2UiLCJuZXdJbmRleCIsImN1cnJlbnRTZWxlY3Rpb24iLCJyZW5kZXJPcHRpb24iLCJ1c2VyQWRkZWQiLCJmaWx0ZXJPcHRpb25zIiwiZ2V0T3B0aW9uTGFiZWwiLCJyZW5kZXJJbnB1dCIsImZyZWVTb2xvIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLGdCQUFQLE1BQTZCLGlDQUE3QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIs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O0FBS0xILE1BQUFBLFlBQVksRUFBWkEsWUFMSztBQU1MSSxNQUFBQSxXQUFXLEVBQUU1QixLQUFLLENBQUM0QixXQU5kO0FBT0xDLE1BQUFBLFFBQVEsRUFBRTdCLEtBQUssQ0FBQzZCO0FBUFgsS0FERjtBQVVMNUIsSUFBQUEsT0FBTyxFQUFFO0FBQUVkLE1BQUFBLFFBQVEsRUFBRWMsT0FBTyxDQUFDZDtBQUFwQjtBQVZKLEdBQVA7QUFZRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2VkIG9uIE1hdGVyaWFsIFVJIENyZWF0YWJsZSBleGFtcGxlOiBodHRwczovL21hdGVyaWFsLXVpLmNvbS9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS8jY3JlYXRhYmxlXG4vLyBjb252ZXJ0ZWQgdG8gaGVhZGxlc3NcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgSGlnaGxpZ2h0T2ZmSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSGlnaGxpZ2h0T2ZmJ1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbidcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1Rvb2x0aXAnXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uL3V0aWxzL2RlbGF5J1xuaW1wb3J0IHsgdXNlQ29tYm9Cb3ggfSBmcm9tICcuL3VzZUNvbWJvQm94J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogdGV4dCB0byBkaXNwbGF5IGluIGlucHV0IGJveCAqL1xuICBsYWJlbDogc3RyaW5nLFxuICAvKiogYXJyYXkgb2Ygb3B0aW9ucyB0byBzaG93IGluIGRyb3Bkb3duICovXG4gIG9wdGlvbnM6IGFueVtdLFxuICAvKiogYXJyYXkgaW5kZXggaW50byBvcHRpb25zIG9mIGN1cnJlbnQgc2VsZWN0aW9uICovXG4gIGN1cnJlbnQ6IG51bWJlcixcbiAgLyoqIGlmIHRydWUgdGhlbiB1c2VyIGNhbiB0eXBlIGluIGFueSB0ZXh0ICovXG4gIGFsbG93VXNlcklucHV0OiBib29sZWFuLFxuICAvKiogY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHdoZW4gdXNlciBtYWtlcyBhIHNlbGVjdGlvbiAqL1xuICBvbkNoYW5nZTogRnVuY3Rpb24sXG4gIC8qKiBjYWxsYmFjayBmdW5jdGlvbiBmb3Igd2hlbiB1c2VyIG1ha2VzIGRlbGV0ZXMgYSBzY3JpcHR1cmUgZnJvbSBvcHRpb25zICovXG4gIGRlbGV0ZUl0ZW06IEZ1bmN0aW9uLFxuICAvKiogaWYgdHJ1dGh5IHRoZSBsYWJlbCBpcyBpbml0aWFsbHkgc2hvd24gaW4gaW5wdXQgYm94LCBvdGhlcndpc2UgY3VycmVudCBzZWxlY3Rpb24gc2hvd24gKi9cbiAgaW5pdGlhbFByb21wdDogYW55IHwgbnVsbCxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZVNlbGVjdG9yKHtcbiAgbGFiZWwsXG4gIG9wdGlvbnMsXG4gIGN1cnJlbnQsXG4gIGFsbG93VXNlcklucHV0LFxuICBvbkNoYW5nZSxcbiAgZGVsZXRlSXRlbSxcbiAgaW5pdGlhbFByb21wdCxcbn06IFByb3BzKSB7XG4gIGZ1bmN0aW9uIHNjcmlwdHVyZVNlbGVjdG9yT25DaGFuZ2UobmV3U2VsZWN0aW9uLCBpbmRleCkge1xuICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKG5ld1NlbGVjdGlvbiwgaW5kZXgsIChzdWNjZXNzLCBpdGVtKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZXdTZWxlY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgZGVsZXRlSXRlbShuZXdTZWxlY3Rpb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZVNlbGVjdG9yLXNjcmlwdHVyZVNlbGVjdG9yT25DaGFuZ2UoKSBjYW5ub3QgZGVsZXRlIGl0ZW0gJyR7SlNPTi5zdHJpbmdpZnkobmV3U2VsZWN0aW9uKX0nYClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFrZVN1cmVJdGVtSXNTZWxlY3RlZEluQ29tYm9Cb3goaXRlbSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbGV0IHsgc3RhdGUsIGFjdGlvbnMgfSA9IHVzZUNvbWJvQm94KHtcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zLFxuICAgIGN1cnJlbnQsXG4gICAgYWxsb3dVc2VySW5wdXQsXG4gICAgb25DaGFuZ2U6IHNjcmlwdHVyZVNlbGVjdG9yT25DaGFuZ2UsXG4gICAgaW5pdGlhbFByb21wdCxcbiAgfSlcbiAgY29uc3QgW2N1cnJlbnRPcHRpb25zLCBzZXRPcHRpb25zXSA9IFJlYWN0LnVzZVN0YXRlKHN0YXRlLm9wdGlvbnMpXG5cbiAgZnVuY3Rpb24gZmluZFRpdGxlKHRpdGxlKSB7XG4gICAgY29uc3QgaW5kZXggPSBjdXJyZW50T3B0aW9ucy5maW5kSW5kZXgoaXRlbSA9PiAoaXRlbS50aXRsZSA9PT0gdGl0bGUpKVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gbWFrZVN1cmVJdGVtSXNTZWxlY3RlZEluQ29tYm9Cb3goaXRlbSkge1xuICAgIGNvbnN0IHRpdGxlID0gaXRlbT8udGl0bGVcblxuICAgIGlmICh0aXRsZSkge1xuICAgICAgbGV0IGluZGV4ID0gZmluZFRpdGxlKHRpdGxlKVxuICAgICAgbGV0IHNlbGVjdGVkSXRlbVxuXG4gICAgICBpZiAoaW5kZXggPCAwKSB7IC8vIGlmIHdlIG5lZWQgdG8gYWRkXG4gICAgICAgIGNvbnN0IG5ld09wdGlvbnMgPSBjdXJyZW50T3B0aW9uc1xuICAgICAgICBuZXdPcHRpb25zLnVuc2hpZnQoaXRlbSlcbiAgICAgICAgc2V0T3B0aW9ucyhuZXdPcHRpb25zKVxuICAgICAgICBzZWxlY3RlZEl0ZW0gPSBpdGVtXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZEl0ZW0gPSBjdXJyZW50T3B0aW9uc1tpbmRleF1cbiAgICAgIH1cbiAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgIGFjdGlvbnMuc2V0VmFsdWUoc2VsZWN0ZWRJdGVtKSAvLyBzZWxlY3QgdGhpcyBpdGVtXG4gICAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHNlbGVjdGVkSXRlbT8udGl0bGUsIDApXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShvcHRpb24pIHtcbiAgICBjb25zdCBjdXJyZW50VGl0bGUgPSBzdGF0ZT8udmFsdWU/LnRpdGxlIHx8ICcnXG4gICAgY29uc3QgcmVtb3ZlVGl0bGUgPSBvcHRpb24udGl0bGVcbiAgICBkZWxldGVJdGVtKHJlbW92ZVRpdGxlKVxuICAgIGNvbnN0IHJlbW92ZUluZGV4ID0gZmluZFRpdGxlKHJlbW92ZVRpdGxlKVxuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb25JbmRleCA9IGZpbmRUaXRsZShjdXJyZW50VGl0bGUpXG5cbiAgICBpZiAocmVtb3ZlSW5kZXggPj0gMCkge1xuICAgICAgY3VycmVudE9wdGlvbnNbcmVtb3ZlSW5kZXhdLmRlbGV0aW5nID0gdHJ1ZSAvLyBmbGFnIHdlIGFyZSBkZWxldGluZyBiZWZvcmUgb25DaGFuZ2UgY2FsbGVkXG4gICAgICBjdXJyZW50T3B0aW9ucy5zcGxpY2UocmVtb3ZlSW5kZXgsIDEpXG4gICAgICBzZXRPcHRpb25zKGN1cnJlbnRPcHRpb25zKVxuXG4gICAgICBpZiAoKGN1cnJlbnRTZWxlY3Rpb25JbmRleCA8IDApIHx8ICFjdXJyZW50VGl0bGUgfHxcbiAgICAgICAgKGN1cnJlbnRUaXRsZSA9PT0gcmVtb3ZlVGl0bGUpKSB7IC8vIGlmIHdlIHJlbW92ZWQgY3VycmVudCBvciBjdXJyZW50IGFscmVhZHkgcmVtb3ZlZCwgd2UgbmVlZCB0byBzZWxlY3QgYW5vdGhlclxuICAgICAgICBjb25zdCBuZXdJbmRleCA9IDBcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gY3VycmVudE9wdGlvbnNbbmV3SW5kZXhdXG5cbiAgICAgICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShuZXdTZWxlY3Rpb24udGl0bGUsIG5ld0luZGV4KVxuICAgICAgICAgIGFjdGlvbnMuc2V0VmFsdWUobmV3U2VsZWN0aW9uKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHsgLy8gcmVzZWxlY3QgY3VycmVudCBpdGVtIHNpbmNlIHJhY2UgY29uZGl0aW9uIGNhbiBsZWF2ZSB3cm9uZyBpdGVtIHNob3duIHNlbGVjdGVkXG4gICAgICAgIGlmIChjdXJyZW50U2VsZWN0aW9uSW5kZXggPj0gMCkge1xuICAgICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gY3VycmVudE9wdGlvbnNbY3VycmVudFNlbGVjdGlvbkluZGV4XVxuICAgICAgICAgICAgYWN0aW9ucy5zZXRWYWx1ZShjdXJyZW50U2VsZWN0aW9uLnRpdGxlKVxuICAgICAgICAgICAgc2V0T3B0aW9ucyhjdXJyZW50T3B0aW9ucylcbiAgICAgICAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKGN1cnJlbnRTZWxlY3Rpb24udGl0bGUsIGN1cnJlbnRTZWxlY3Rpb25JbmRleClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVuZGVyT3B0aW9uID0gKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7b3B0aW9uLnRpdGxlfVxuICAgICAge29wdGlvbi51c2VyQWRkZWQgJiZcbiAgICAgIDxUb29sdGlwIHRpdGxlPVwiUmVtb3ZlXCI+XG4gICAgICAgIDxJY29uQnV0dG9uIGFyaWEtbGFiZWw9XCJkZWxldGVcIiBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRGVsZXRlKG9wdGlvbilcbiAgICAgICAgfX0+XG4gICAgICAgICAgPEhpZ2hsaWdodE9mZkljb24gLz5cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPC9Ub29sdGlwPlxuICAgICAgfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN0YXRlOiB7XG4gICAgICB2YWx1ZTogc3RhdGUudmFsdWUsXG4gICAgICBvcHRpb25zOiBjdXJyZW50T3B0aW9ucyxcbiAgICAgIGZpbHRlck9wdGlvbnM6IHN0YXRlLmZpbHRlck9wdGlvbnMsXG4gICAgICBnZXRPcHRpb25MYWJlbDogc3RhdGUuZ2V0T3B0aW9uTGFiZWwsXG4gICAgICByZW5kZXJPcHRpb24sXG4gICAgICByZW5kZXJJbnB1dDogc3RhdGUucmVuZGVySW5wdXQsXG4gICAgICBmcmVlU29sbzogc3RhdGUuZnJlZVNvbG8sXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7IG9uQ2hhbmdlOiBhY3Rpb25zLm9uQ2hhbmdlIH0sXG4gIH1cbn1cbiJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZWxlY3Rvci50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJIaWdobGlnaHRPZmZJY29uIiwiSWNvbkJ1dHRvbiIsIlRvb2x0aXAiLCJkZWxheSIsInVzZUNvbWJvQm94IiwidXNlU2NyaXB0dXJlU2VsZWN0b3IiLCJhbGxvd1VzZXJJbnB1dCIsImN1cnJlbnQiLCJkZWxldGVJdGVtIiwiaW5pdGlhbFByb21wdCIsImxhYmVsIiwib25DaGFuZ2UiLCJvcHRpb25zIiwic2NyaXB0dXJlU2VsZWN0b3JPbkNoYW5nZSIsIm5ld1NlbGVjdGlvbiIsImluZGV4Iiwic3VjY2VzcyIsIml0ZW0iLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm1ha2VTdXJlSXRlbUlzU2VsZWN0ZWRJbkNvbWJvQm94Iiwic3RhdGUiLCJhY3Rpb25zIiwidXNlU3RhdGUiLCJjdXJyZW50T3B0aW9ucyIsInNldE9wdGlvbnMiLCJmaW5kVGl0bGUiLCJ0aXRsZSIsImZpbmRJbmRleCIsInNlbGVjdGVkSXRlbSIsIm5ld09wdGlvbnMiLCJ1bnNoaWZ0IiwidGhlbiIsInNldFZhbHVlIiwiaGFuZGxlRGVsZXRlIiwib3B0aW9uIiwiY3VycmVudFRpdGxlIiwidmFsdWUiLCJyZW1vdmVUaXRsZSIsInJlbW92ZUluZGV4IiwiY3VycmVudFNlbGVjdGlvbkluZGV4IiwiZGVsZXRpbmciLCJzcGxpY2UiLCJuZXdJbmRleCIsImN1cnJlbnRTZWxlY3Rpb24iLCJyZW5kZXJPcHRpb24iLCJ1c2VyQWRkZWQiLCJmaWx0ZXJPcHRpb25zIiwiZnJlZVNvbG8iLCJnZXRPcHRpb25MYWJlbCIsInJlbmRlcklucHV0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU9DLGdCQUFQLE1BQTZCLGlDQUE3QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIs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MEIsTUFBQUEsV0FBVyxFQUFFN0IsS0FBSyxDQUFDNkIsV0FMZDtBQU1MTCxNQUFBQSxZQUFZLEVBQVpBLFlBTks7QUFPTFIsTUFBQUEsS0FBSyxFQUFFaEIsS0FBSyxDQUFDZ0I7QUFQUixLQURGO0FBVUxmLElBQUFBLE9BQU8sRUFBRTtBQUFFYixNQUFBQSxRQUFRLEVBQUVhLE9BQU8sQ0FBQ2I7QUFBcEI7QUFWSixHQUFQO0FBWUQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCYXNlZCBvbiBNYXRlcmlhbCBVSSBDcmVhdGFibGUgZXhhbXBsZTogaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY29tcG9uZW50cy9hdXRvY29tcGxldGUvI2NyZWF0YWJsZVxuLy8gY29udmVydGVkIHRvIGhlYWRsZXNzXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEhpZ2hsaWdodE9mZkljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0hpZ2hsaWdodE9mZidcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0ljb25CdXR0b24nXG5pbXBvcnQgVG9vbHRpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Ub29sdGlwJ1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi91dGlscy9kZWxheSdcbmltcG9ydCB7IHVzZUNvbWJvQm94IH0gZnJvbSAnLi91c2VDb21ib0JveCdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqIHRleHQgdG8gZGlzcGxheSBpbiBpbnB1dCBib3ggKi9cbiAgbGFiZWw6IHN0cmluZyxcbiAgLyoqIGFycmF5IG9mIG9wdGlvbnMgdG8gc2hvdyBpbiBkcm9wZG93biAqL1xuICBvcHRpb25zOiBhbnlbXSxcbiAgLyoqIGFycmF5IGluZGV4IGludG8gb3B0aW9ucyBvZiBjdXJyZW50IHNlbGVjdGlvbiAqL1xuICBjdXJyZW50OiBudW1iZXIsXG4gIC8qKiBpZiB0cnVlIHRoZW4gdXNlciBjYW4gdHlwZSBpbiBhbnkgdGV4dCAqL1xuICBhbGxvd1VzZXJJbnB1dDogYm9vbGVhbixcbiAgLyoqIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB3aGVuIHVzZXIgbWFrZXMgYSBzZWxlY3Rpb24gKi9cbiAgb25DaGFuZ2U6IEZ1bmN0aW9uLFxuICAvKiogY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHdoZW4gdXNlciBtYWtlcyBkZWxldGVzIGEgc2NyaXB0dXJlIGZyb20gb3B0aW9ucyAqL1xuICBkZWxldGVJdGVtOiBGdW5jdGlvbixcbiAgLyoqIGlmIHRydXRoeSB0aGUgbGFiZWwgaXMgaW5pdGlhbGx5IHNob3duIGluIGlucHV0IGJveCwgb3RoZXJ3aXNlIGN1cnJlbnQgc2VsZWN0aW9uIHNob3duICovXG4gIGluaXRpYWxQcm9tcHQ6IGFueSB8IG51bGwsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmVTZWxlY3Rvcih7XG4gIGFsbG93VXNlcklucHV0LFxuICBjdXJyZW50LFxuICBkZWxldGVJdGVtLFxuICBpbml0aWFsUHJvbXB0LFxuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIG9wdGlvbnMsXG59OiBQcm9wcykge1xuICBmdW5jdGlvbiBzY3JpcHR1cmVTZWxlY3Rvck9uQ2hhbmdlKG5ld1NlbGVjdGlvbiwgaW5kZXgpIHtcbiAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShuZXdTZWxlY3Rpb24sIGluZGV4LCAoc3VjY2VzcywgaXRlbSkgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmV3U2VsZWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGRlbGV0ZUl0ZW0obmV3U2VsZWN0aW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmVTZWxlY3Rvci1zY3JpcHR1cmVTZWxlY3Rvck9uQ2hhbmdlKCkgY2Fubm90IGRlbGV0ZSBpdGVtICcke0pTT04uc3RyaW5naWZ5KG5ld1NlbGVjdGlvbil9J2ApXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1ha2VTdXJlSXRlbUlzU2VsZWN0ZWRJbkNvbWJvQm94KGl0ZW0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGxldCB7IHN0YXRlLCBhY3Rpb25zIH0gPSB1c2VDb21ib0JveCh7XG4gICAgYWxsb3dVc2VySW5wdXQsXG4gICAgY3VycmVudCxcbiAgICBsYWJlbCxcbiAgICBvcHRpb25zLFxuICAgIG9uQ2hhbmdlOiBzY3JpcHR1cmVTZWxlY3Rvck9uQ2hhbmdlLFxuICAgIGluaXRpYWxQcm9tcHQsXG4gIH0pXG4gIGNvbnN0IFtjdXJyZW50T3B0aW9ucywgc2V0T3B0aW9uc10gPSBSZWFjdC51c2VTdGF0ZShzdGF0ZS5vcHRpb25zKVxuXG4gIGZ1bmN0aW9uIGZpbmRUaXRsZSh0aXRsZSkge1xuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudE9wdGlvbnMuZmluZEluZGV4KGl0ZW0gPT4gKGl0ZW0udGl0bGUgPT09IHRpdGxlKSlcbiAgICByZXR1cm4gaW5kZXhcbiAgfVxuXG4gIGZ1bmN0aW9uIG1ha2VTdXJlSXRlbUlzU2VsZWN0ZWRJbkNvbWJvQm94KGl0ZW0pIHtcbiAgICBjb25zdCB0aXRsZSA9IGl0ZW0/LnRpdGxlXG5cbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIGxldCBpbmRleCA9IGZpbmRUaXRsZSh0aXRsZSlcbiAgICAgIGxldCBzZWxlY3RlZEl0ZW1cblxuICAgICAgaWYgKGluZGV4IDwgMCkgeyAvLyBpZiB3ZSBuZWVkIHRvIGFkZFxuICAgICAgICBjb25zdCBuZXdPcHRpb25zID0gY3VycmVudE9wdGlvbnNcbiAgICAgICAgbmV3T3B0aW9ucy51bnNoaWZ0KGl0ZW0pXG4gICAgICAgIHNldE9wdGlvbnMobmV3T3B0aW9ucylcbiAgICAgICAgc2VsZWN0ZWRJdGVtID0gaXRlbVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRJdGVtID0gY3VycmVudE9wdGlvbnNbaW5kZXhdXG4gICAgICB9XG4gICAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgICBhY3Rpb25zLnNldFZhbHVlKHNlbGVjdGVkSXRlbSkgLy8gc2VsZWN0IHRoaXMgaXRlbVxuICAgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShzZWxlY3RlZEl0ZW0/LnRpdGxlLCAwKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVEZWxldGUob3B0aW9uKSB7XG4gICAgY29uc3QgY3VycmVudFRpdGxlID0gc3RhdGU/LnZhbHVlPy50aXRsZSB8fCAnJ1xuICAgIGNvbnN0IHJlbW92ZVRpdGxlID0gb3B0aW9uLnRpdGxlXG4gICAgZGVsZXRlSXRlbShyZW1vdmVUaXRsZSlcbiAgICBjb25zdCByZW1vdmVJbmRleCA9IGZpbmRUaXRsZShyZW1vdmVUaXRsZSlcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uSW5kZXggPSBmaW5kVGl0bGUoY3VycmVudFRpdGxlKVxuXG4gICAgaWYgKHJlbW92ZUluZGV4ID49IDApIHtcbiAgICAgIGN1cnJlbnRPcHRpb25zW3JlbW92ZUluZGV4XS5kZWxldGluZyA9IHRydWUgLy8gZmxhZyB3ZSBhcmUgZGVsZXRpbmcgYmVmb3JlIG9uQ2hhbmdlIGNhbGxlZFxuICAgICAgY3VycmVudE9wdGlvbnMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKVxuICAgICAgc2V0T3B0aW9ucyhjdXJyZW50T3B0aW9ucylcblxuICAgICAgaWYgKChjdXJyZW50U2VsZWN0aW9uSW5kZXggPCAwKSB8fCAhY3VycmVudFRpdGxlIHx8XG4gICAgICAgIChjdXJyZW50VGl0bGUgPT09IHJlbW92ZVRpdGxlKSkgeyAvLyBpZiB3ZSByZW1vdmVkIGN1cnJlbnQgb3IgY3VycmVudCBhbHJlYWR5IHJlbW92ZWQsIHdlIG5lZWQgdG8gc2VsZWN0IGFub3RoZXJcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSAwXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IGN1cnJlbnRPcHRpb25zW25ld0luZGV4XVxuXG4gICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UobmV3U2VsZWN0aW9uLnRpdGxlLCBuZXdJbmRleClcbiAgICAgICAgICBhY3Rpb25zLnNldFZhbHVlKG5ld1NlbGVjdGlvbilcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7IC8vIHJlc2VsZWN0IGN1cnJlbnQgaXRlbSBzaW5jZSByYWNlIGNvbmRpdGlvbiBjYW4gbGVhdmUgd3JvbmcgaXRlbSBzaG93biBzZWxlY3RlZFxuICAgICAgICBpZiAoY3VycmVudFNlbGVjdGlvbkluZGV4ID49IDApIHtcbiAgICAgICAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IGN1cnJlbnRPcHRpb25zW2N1cnJlbnRTZWxlY3Rpb25JbmRleF1cbiAgICAgICAgICAgIGFjdGlvbnMuc2V0VmFsdWUoY3VycmVudFNlbGVjdGlvbi50aXRsZSlcbiAgICAgICAgICAgIHNldE9wdGlvbnMoY3VycmVudE9wdGlvbnMpXG4gICAgICAgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShjdXJyZW50U2VsZWN0aW9uLnRpdGxlLCBjdXJyZW50U2VsZWN0aW9uSW5kZXgpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlck9wdGlvbiA9IChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gPFJlYWN0LkZyYWdtZW50PlxuICAgICAge29wdGlvbi50aXRsZX1cbiAgICAgIHtvcHRpb24udXNlckFkZGVkICYmXG4gICAgICA8VG9vbHRpcCB0aXRsZT1cIlJlbW92ZVwiPlxuICAgICAgICA8SWNvbkJ1dHRvbiBhcmlhLWxhYmVsPVwiZGVsZXRlXCIgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZURlbGV0ZShvcHRpb24pXG4gICAgICAgIH19PlxuICAgICAgICAgIDxIaWdobGlnaHRPZmZJY29uIC8+XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICAgIH1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdGF0ZToge1xuICAgICAgZmlsdGVyT3B0aW9uczogc3RhdGUuZmlsdGVyT3B0aW9ucyxcbiAgICAgIGZyZWVTb2xvOiBzdGF0ZS5mcmVlU29sbyxcbiAgICAgIGdldE9wdGlvbkxhYmVsOiBzdGF0ZS5nZXRPcHRpb25MYWJlbCxcbiAgICAgIG9wdGlvbnM6IGN1cnJlbnRPcHRpb25zLFxuICAgICAgcmVuZGVySW5wdXQ6IHN0YXRlLnJlbmRlcklucHV0LFxuICAgICAgcmVuZGVyT3B0aW9uLFxuICAgICAgdmFsdWU6IHN0YXRlLnZhbHVlLFxuICAgIH0sXG4gICAgYWN0aW9uczogeyBvbkNoYW5nZTogYWN0aW9ucy5vbkNoYW5nZSB9LFxuICB9XG59XG4iXX0=
|
|
@@ -96,38 +96,39 @@ function isScriptureResource(subject) {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
export function useScriptureSettings(_ref) {
|
|
99
|
-
var
|
|
100
|
-
title = _ref.title,
|
|
99
|
+
var appRef = _ref.appRef,
|
|
101
100
|
cardNum = _ref.cardNum,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
appRef = _ref.appRef,
|
|
101
|
+
disableWordPopover = _ref.disableWordPopover,
|
|
102
|
+
greekRepoUrl = _ref.greekRepoUrl,
|
|
103
|
+
hebrewRepoUrl = _ref.hebrewRepoUrl,
|
|
104
|
+
httpConfig = _ref.httpConfig,
|
|
105
|
+
isNT = _ref.isNT,
|
|
108
106
|
languageId = _ref.languageId,
|
|
107
|
+
originalLanguageOwner = _ref.originalLanguageOwner,
|
|
108
|
+
owner = _ref.owner,
|
|
109
|
+
reference = _ref.reference,
|
|
109
110
|
resourceId = _ref.resourceId,
|
|
110
111
|
resourceLink = _ref.resourceLink,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
_ref$readyForFetch = _ref.readyForFetch,
|
|
113
|
+
readyForFetch = _ref$readyForFetch === void 0 ? false : _ref$readyForFetch,
|
|
114
|
+
server = _ref.server,
|
|
114
115
|
setUrlError = _ref.setUrlError,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
hebrewRepoUrl = _ref.hebrewRepoUrl,
|
|
116
|
+
title = _ref.title,
|
|
117
|
+
useUserLocalStorage = _ref.useUserLocalStorage,
|
|
118
118
|
_ref$wholeBook = _ref.wholeBook,
|
|
119
119
|
wholeBook = _ref$wholeBook === void 0 ? false : _ref$wholeBook;
|
|
120
|
+
var bookId = reference === null || reference === void 0 ? void 0 : reference.projectId;
|
|
120
121
|
var isNewTestament = isNT(bookId);
|
|
121
122
|
var scriptureDefaultSettings = getScriptureObject({
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
disableWordPopover: disableWordPopover,
|
|
124
|
+
languageId: languageId,
|
|
125
|
+
originalLanguageOwner: originalLanguageOwner,
|
|
124
126
|
owner: owner,
|
|
125
127
|
ref: appRef,
|
|
126
|
-
languageId: languageId,
|
|
127
128
|
resourceId: resourceId,
|
|
128
129
|
resourceLink: resourceLink,
|
|
129
|
-
|
|
130
|
-
|
|
130
|
+
server: server,
|
|
131
|
+
title: title
|
|
131
132
|
});
|
|
132
133
|
|
|
133
134
|
var _useUserLocalStorage = useUserLocalStorage(KEY_SCRIPTURE_VER_HISTORY, []),
|
|
@@ -185,16 +186,15 @@ export function useScriptureSettings(_ref) {
|
|
|
185
186
|
}, [languageId, owner, cleanUp]);
|
|
186
187
|
var originalRepoUrl = isNewTestament ? greekRepoUrl : hebrewRepoUrl;
|
|
187
188
|
var scriptureConfig = useScriptureResources({
|
|
188
|
-
|
|
189
|
-
scriptureSettings: scriptureSettings,
|
|
190
|
-
chapter: chapter,
|
|
191
|
-
verse: verse,
|
|
192
|
-
isNewTestament: isNewTestament,
|
|
193
|
-
originalRepoUrl: originalRepoUrl,
|
|
189
|
+
appRef: appRef,
|
|
194
190
|
currentLanguageId: languageId,
|
|
195
191
|
currentOwner: owner,
|
|
196
192
|
httpConfig: httpConfig,
|
|
197
|
-
|
|
193
|
+
isNewTestament: isNewTestament,
|
|
194
|
+
originalRepoUrl: originalRepoUrl,
|
|
195
|
+
readyForFetch: readyForFetch,
|
|
196
|
+
reference: reference,
|
|
197
|
+
scriptureSettings: scriptureSettings,
|
|
198
198
|
wholeBook: wholeBook
|
|
199
199
|
});
|
|
200
200
|
/**
|
|
@@ -291,11 +291,7 @@ export function useScriptureSettings(_ref) {
|
|
|
291
291
|
|
|
292
292
|
core.resourceFromResourceLink({
|
|
293
293
|
resourceLink: url_,
|
|
294
|
-
reference:
|
|
295
|
-
projectId: bookId,
|
|
296
|
-
chapter: chapter,
|
|
297
|
-
verse: verse
|
|
298
|
-
},
|
|
294
|
+
reference: reference,
|
|
299
295
|
config: {
|
|
300
296
|
server: server_,
|
|
301
297
|
cache: {
|
|
@@ -322,15 +318,15 @@ export function useScriptureSettings(_ref) {
|
|
|
322
318
|
} else if (_title && version) {
|
|
323
319
|
// we succeeded in getting resource - use it
|
|
324
320
|
newScripture = getScriptureObject({
|
|
325
|
-
|
|
326
|
-
|
|
321
|
+
disableWordPopover: disableWordPopover,
|
|
322
|
+
languageId: resource.languageId,
|
|
323
|
+
originalLanguageOwner: originalLanguageOwner,
|
|
327
324
|
owner: resource.username,
|
|
328
325
|
ref: resource.ref || 'master',
|
|
329
|
-
languageId: resource.languageId,
|
|
330
326
|
resourceId: resource.resourceId,
|
|
331
327
|
resourceLink: cleanResourceLink(resource === null || resource === void 0 ? void 0 : resource.resourceLink),
|
|
332
|
-
|
|
333
|
-
|
|
328
|
+
server: server_,
|
|
329
|
+
title: _title
|
|
334
330
|
});
|
|
335
331
|
newScripture['userAdded'] = true;
|
|
336
332
|
scriptureVersionHist.addItemToHistory(newScripture); // persist in local storage
|
|
@@ -377,10 +373,10 @@ export function useScriptureSettings(_ref) {
|
|
|
377
373
|
return {
|
|
378
374
|
isNewTestament: isNewTestament,
|
|
379
375
|
scriptureConfig: scriptureConfig,
|
|
380
|
-
|
|
376
|
+
scriptureSettings: scriptureSettings,
|
|
381
377
|
scriptureVersionHist: scriptureVersionHist,
|
|
382
|
-
|
|
378
|
+
setScripture: setScripture
|
|
383
379
|
};
|
|
384
380
|
}
|
|
385
381
|
export default useScriptureSettings;
|
|
386
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncy50c3giXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb3JlIiwiaXNFcXVhbCIsIktFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlkiLCJTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSIsIklOVkFMSURfUkVQT19VUkxfRVJST1IiLCJJTlZBTElEX1VSTCIsIk1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IiLCJOVF9PUklHX0xBTkdfQklCTEUiLCJOVF9PUklHX0xBTkciLCJPUklHSU5BTF9TT1VSQ0UiLCJPVF9PUklHX0xBTkdfQklCTEUiLCJPVF9PUklHX0xBTkciLCJSRVBPX05PVF9GT1VORF9FUlJPUiIsIlJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUiIsInNldExvY2FsU3RvcmFnZVZhbHVlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidmFsaWRhdGVEY3NVcmwiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRTY3JpcHR1cmVPYmplY3QiLCJnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIiwidXNlU2NyaXB0dXJlUmVzb3VyY2VzIiwiS0VZX1NFVFRJTkdTX0JBU0UiLCJLRVlfVEFSR0VUX0JBU0UiLCJmaXhTY3JpcHR1cmVTZXR0aW5ncyIsInZlcnNpb25IaXN0Iiwic2NyaXB0dXJlU2V0dGluZ3MiLCJsYW5ndWFnZUlkIiwiY2FyZE51bSIsIm93bmVyIiwicmVzb3VyY2VJZCIsIm5ld1NjcmlwdHVyZVNldHRpbmdzIiwicmVzb3VyY2VMaW5rIiwiYWRkSXRlbVRvSGlzdG9yeSIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJtb2RpZmllZCIsImkiLCJsZW5ndGgiLCJpdGVtIiwiaiIsIm1hdGNoX2l0ZW0iLCJtYXRjaF9yZXNvdXJjZUlkIiwicmVmIiwic2VydmVyIiwic3BsaWNlIiwic2F2ZUhpc3RvcnkiLCJpc1NjcmlwdHVyZVJlc291cmNlIiwic3ViamVjdCIsIkJpYmxlUmVzb3VyY2VzIiwiaXNTY3JpcHR1cmUiLCJpbmNsdWRlcyIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiaXNOVCIsInRpdGxlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYXBwUmVmIiwidXNlVXNlckxvY2FsU3RvcmFnZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsIm9yaWdpbmFsTGFuZ3VhZ2VPd25lciIsInNldFVybEVycm9yIiwiaHR0cENvbmZpZyIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyIsInZlcnNpb25IaXN0b3J5Iiwic2F2ZVZlcnNpb25IaXN0IiwicmVmcmVzaFZlcnNpb25IaXN0Iiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJzZXRTY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJzZXRUYXJnZXQiLCJjbGVhblVwIiwic2V0Q2xlYW5VcCIsIm9sZERlZmF1bHRTZXR0aW5ncyIsInJlbW92ZUl0ZW0iLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVDb25maWciLCJjdXJyZW50TGFuZ3VhZ2VJZCIsImN1cnJlbnRPd25lciIsImNsZWFuUmVzb3VyY2VMaW5rIiwicmVzb3VyY2VMaW5rXyIsInJlc291cmNlTGlua3MiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsInNldFNjcmlwdHVyZSIsInZhbGlkYXRpb25DQiIsInVybCIsIm5ld1VybCIsInBhcnRzIiwiaG9zdG5hbWUiLCJVUkwiLCJjb25zb2xlIiwibG9nIiwicmVtb3ZlVXJsIiwic2VydmVyXyIsInBvcnQiLCJ1cmxfIiwicmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rIiwicmVmZXJlbmNlIiwicHJvamVjdElkIiwiY29uZmlnIiwiY2FjaGUiLCJtYXhBZ2UiLCJ0aGVuIiwicmVzb3VyY2UiLCJlcnJvciIsIm5ld1NjcmlwdHVyZSIsInZlcnNpb24iLCJ3YXJuIiwidXNlcm5hbWUi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QUFHbkcsb0JBQVI7QUFDRCxXQUZNLE1BRUE7QUFDTG1HLFlBQUFBLEtBQUssR0FBRzNHLHNCQUFSO0FBQ0Q7QUFDRjs7QUFDRHlELFFBQUFBLFdBQVcsQ0FBQ2tELEtBQUQsQ0FBWDtBQUNBcEIsUUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUMsQ0FBQ29CLEtBQUYsRUFBU0MsWUFBVCxDQUE1QjtBQUNELE9BbEVEO0FBbUVELEtBNUZELE1BNEZPO0FBQUU7QUFDUG5ELE1BQUFBLFdBQVcsQ0FBQyxJQUFELENBQVgsQ0FESyxDQUNhOztBQUNsQlcsTUFBQUEsb0JBQW9CLENBQUNsQyxJQUFELENBQXBCO0FBQ0FxRCxNQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQyxJQUFELENBQTVCO0FBQ0Q7QUFDRixHQTNIRDs7QUE2SEEsU0FBTztBQUNMekIsSUFBQUEsY0FBYyxFQUFkQSxjQURLO0FBRUxlLElBQUFBLGVBQWUsRUFBZkEsZUFGSztBQUdMUyxJQUFBQSxZQUFZLEVBQVpBLFlBSEs7QUFJTG5CLElBQUFBLG9CQUFvQixFQUFwQkEsb0JBSks7QUFLTDlDLElBQUFBLGlCQUFpQixFQUFqQkE7QUFMSyxHQUFQO0FBT0Q7QUFFRCxlQUFlMEIsb0JBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBLRVlfU0NSSVBUVVJFX1ZFUl9ISVNUT1JZLCBTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVZlcnNpb25IaXN0b3J5J1xuaW1wb3J0IHtcbiAgSU5WQUxJRF9SRVBPX1VSTF9FUlJPUixcbiAgSU5WQUxJRF9VUkwsXG4gIE1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgT1RfT1JJR19MQU5HLFxuICBSRVBPX05PVF9GT1VORF9FUlJPUixcbiAgUkVQT19OT1RfU0NSSVBUVVJFX0VSUk9SLFxuICBzZXRMb2NhbFN0b3JhZ2VWYWx1ZSxcbiAgcGFyc2VSZXNvdXJjZU1hbmlmZXN0LFxuICB2YWxpZGF0ZURjc1VybCxcbn0gZnJvbSAnLi4nXG5pbXBvcnQge1xuICBnZXRSZXNvdXJjZUxpbmssXG4gIGdldFNjcmlwdHVyZU9iamVjdCxcbiAgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyxcbn0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgdXNlU2NyaXB0dXJlUmVzb3VyY2VzIGZyb20gJy4vdXNlU2NyaXB0dXJlUmVzb3VyY2VzJ1xuXG5jb25zdCBLRVlfU0VUVElOR1NfQkFTRSA9ICdzY3JpcHR1cmVQYW5lQ29uZmlnXydcbmNvbnN0IEtFWV9UQVJHRVRfQkFTRSA9ICdzY3JpcHR1cmVQYW5lVGFyZ2V0XydcblxuZnVuY3Rpb24gZml4U2NyaXB0dXJlU2V0dGluZ3ModmVyc2lvbkhpc3QsIHNjcmlwdHVyZVNldHRpbmdzLCBsYW5ndWFnZUlkLCBjYXJkTnVtLCBvd25lcikge1xuICAvLyBjbGVhbiB1cCBoYXJkLWNvZGVkIG9yaWdpbmFsIHNvdXJjZXNcbiAgaWYgKChzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpKSB7XG4gICAgaWYgKChzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkICE9PSBOVF9PUklHX0xBTkcpICYmIChzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkICE9PSBPVF9PUklHX0xBTkcpKSB7IC8vIGlmIHRoaXMgaXMgdHJhY2sgd2l0aCBjdXJyZW50IHNlbGVjdGVkIGxhbmd1YWdlIGFuZCB0ZXN0YW1lbnQgb2YgYm9va1xuICAgICAgY29uc3QgbmV3U2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzIH1cbiAgICAgIG5ld1NjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBsYW5ndWFnZUlkXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gT1JJR0lOQUxfU09VUkNFXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IG93bmVyXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsobmV3U2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgICBzZXRMb2NhbFN0b3JhZ2VWYWx1ZShLRVlfU0VUVElOR1NfQkFTRSArIGNhcmROdW0sIG5ld1NjcmlwdHVyZVNldHRpbmdzKVxuICAgICAgdmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdTY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gIH1cblxuICAvLyBjbGVhbiBoaXN0b3J5IG9mIG9yaWdpbmFsIHNvdXJjZXNcbiAgbGV0IGhpc3RvcnkgPSB2ZXJzaW9uSGlzdC5nZXRMYXRlc3QoKSB8fCBbXVxuICBsZXQgbW9kaWZpZWQgPSBmYWxzZVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGlzdG9yeS5sZW5ndGg7IGkrKykgeyAvLyBzZWFyY2ggZm9yIG9yaWdpbmFsIHNvdXJjZSBkdXBsaWNhdGVzIGluIGhpc3RvcnlcbiAgICBjb25zdCBpdGVtID0gaGlzdG9yeVtpXVxuICAgIGNvbnN0IHJlc291cmNlSWQgPSBpdGVtLnJlc291cmNlSWRcblxuICAgIGlmICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSkge1xuICAgICAgZm9yICggbGV0IGogPSBpICsgMTsgaiA8IGhpc3RvcnkubGVuZ3RoOyBqKyspIHsgLy8gc2VhcmNoIHJlc3Qgb2YgbGlzdCBmb3IgZHVwbGljYXRlcyBvZiBpdGVtIGF0IGlcbiAgICAgICAgY29uc3QgbWF0Y2hfaXRlbSA9IGhpc3Rvcnlbal1cbiAgICAgICAgY29uc3QgbWF0Y2hfcmVzb3VyY2VJZCA9IG1hdGNoX2l0ZW0ucmVzb3VyY2VJZFxuXG4gICAgICAgIGlmICgobWF0Y2hfcmVzb3VyY2VJZCA9PT0gcmVzb3VyY2VJZCkpIHtcbiAgICAgICAgICBpZiAoKGl0ZW0ub3duZXIgPT09IG1hdGNoX2l0ZW0ub3duZXIpICYmXG4gICAgICAgICAgICAoaXRlbS5yZWYgPT09IG1hdGNoX2l0ZW0ucmVmKSAmJlxuICAgICAgICAgICAgKGl0ZW0uc2VydmVyID09PSBtYXRjaF9pdGVtLnNlcnZlcikgJiZcbiAgICAgICAgICAgIChpdGVtLnJlc291cmNlSWQgPT09IG1hdGNoX2l0ZW0ucmVzb3VyY2VJZCkpIHtcbiAgICAgICAgICAgIGhpc3Rvcnkuc3BsaWNlKGosIDEpIC8vIHJlbW92ZSBkdXBsaWNhdGUgaXRlbVxuICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlXG4gICAgICAgICAgICBqLS0gLy8gYmFjayB1cCBpbmRleCBzaW5jZSBjb250ZW50cyBzaGlmdGVkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1vZGlmaWVkKSB7XG4gICAgdmVyc2lvbkhpc3Quc2F2ZUhpc3RvcnkoaGlzdG9yeSlcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1NjcmlwdHVyZVJlc291cmNlKHN1YmplY3QpIHtcbiAgY29uc3QgQmlibGVSZXNvdXJjZXMgPSBbICdCaWJsZScsICdBbGlnbmVkIEJpYmxlJywgJ0dyZWVrIE5ldyBUZXN0YW1lbnQnLCAnSGVicmV3IE9sZCBUZXN0YW1lbnQnIF1cbiAgY29uc3QgaXNTY3JpcHR1cmUgPSBCaWJsZVJlc291cmNlcy5pbmNsdWRlcyhzdWJqZWN0KVxuICByZXR1cm4gaXNTY3JpcHR1cmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgaXNOVCxcbiAgdGl0bGUsXG4gIGNhcmROdW0sXG4gIGNoYXB0ZXIsXG4gIHZlcnNlLFxuICBib29rSWQsXG4gIG93bmVyLFxuICBzZXJ2ZXIsXG4gIGFwcFJlZixcbiAgbGFuZ3VhZ2VJZCxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgc2V0VXJsRXJyb3IsXG4gIGh0dHBDb25maWcsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgd2hvbGVCb29rID0gZmFsc2UsXG59KSB7XG4gIGNvbnN0IGlzTmV3VGVzdGFtZW50ID0gaXNOVChib29rSWQpXG4gIGNvbnN0IHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyA9IGdldFNjcmlwdHVyZU9iamVjdCh7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSlcbiAgY29uc3QgW3ZlcnNpb25IaXN0b3J5LCBzYXZlVmVyc2lvbkhpc3QsIHJlZnJlc2hWZXJzaW9uSGlzdF0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlksIFtdKVxuICBjb25zdCBzY3JpcHR1cmVWZXJzaW9uSGlzdCA9IG5ldyBTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSh2ZXJzaW9uSGlzdG9yeSwgc2F2ZVZlcnNpb25IaXN0LCByZWZyZXNoVmVyc2lvbkhpc3QpXG5cbiAgbGV0IFtzY3JpcHR1cmVTZXR0aW5ncywgc2V0U2NyaXB0dXJlU2V0dGluZ3NdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfU0VUVElOR1NfQkFTRSArIGNhcmROdW0sIHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncylcbiAgY29uc3QgY3VycmVudFRhcmdldCA9IHtcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgfVxuICBjb25zdCBbdGFyZ2V0LCBzZXRUYXJnZXRdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfVEFSR0VUX0JBU0UgKyBjYXJkTnVtLCBjdXJyZW50VGFyZ2V0KVxuICBjb25zdCBbY2xlYW5VcCwgc2V0Q2xlYW5VcF0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhbmd1YWdlSWQgJiYgb3duZXIpIHsgLy8gbWFrZSBzdXJlIHdlIGhhdmUgbGFuZ3VhZ2VJZCBhbmQgb3duZXIgc2VsZWN0ZWQgZmlyc3RcbiAgICAgIGlmIChjbGVhblVwKSB7IC8vIGRvIGluaXRpYWwgY2xlYW51cFxuICAgICAgICBmaXhTY3JpcHR1cmVTZXR0aW5ncyhzY3JpcHR1cmVWZXJzaW9uSGlzdCwgc2NyaXB0dXJlU2V0dGluZ3MsIGxhbmd1YWdlSWQsIGNhcmROdW0sIG93bmVyKVxuICAgICAgICBzZXRDbGVhblVwKGZhbHNlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXF1YWwoY3VycmVudFRhcmdldCwgdGFyZ2V0KSkgeyAvLyB3aGVuIHRhcmdldCBjaGFuZ2VzLCBzd2l0Y2ggYmFjayB0byBkZWZhdWx0c1xuICAgICAgICBjb25zdCBvbGREZWZhdWx0U2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncywgLi4udGFyZ2V0IH1cbiAgICAgICAgb2xkRGVmYXVsdFNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhvbGREZWZhdWx0U2V0dGluZ3MpXG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW0ob2xkRGVmYXVsdFNldHRpbmdzKSAvLyByZW1vdmUgb2xkIGRlZmF1bHQgc2V0dGluZ3MgZnJvbSBoaXN0b3J5XG4gICAgICAgIGZpeFNjcmlwdHVyZVNldHRpbmdzKHNjcmlwdHVyZVZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpXG5cbiAgICAgICAgc2V0U2NyaXB0dXJlU2V0dGluZ3Moc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzKVxuICAgICAgICBzZXRUYXJnZXQoY3VycmVudFRhcmdldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3Rvcnkoc2NyaXB0dXJlU2V0dGluZ3MpIC8vIG1ha2Ugc3VyZSBjdXJyZW50IHNjcmlwdHVyZSB2ZXJzaW9uIHBlcnNpc3RlZCBpbiBoaXN0b3J5XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VJZCwgb3duZXIsIGNsZWFuVXBdKVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVDb25maWcgPSB1c2VTY3JpcHR1cmVSZXNvdXJjZXMoe1xuICAgIGJvb2tJZCxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIG9yaWdpbmFsUmVwb1VybCxcbiAgICBjdXJyZW50TGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZCxcbiAgICBjdXJyZW50T3duZXI6IG93bmVyLFxuICAgIGh0dHBDb25maWcsXG4gICAgYXBwUmVmLFxuICAgIHdob2xlQm9vayxcbiAgfSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIHRoYXQgYm9va0lkIG9yIHByb2plY3RJZCBhcmUgbm90IGVtYmVkZGVkIGluIGxpbmsuXG4gICAqICAgIEZvciBleGFtcGxlIGluIGBydV9nbC9ydS9yc29iL21hc3Rlci9oZWJgIHRoZSBwcm9qZWN0SWQgaGViIGlzIGluIHRoZSBsaW5rIGFuZCB3aWxsIG92ZXJyaWRlIHRoZVxuICAgKiAgICBwcm9qZWN0SWQgaW4gdGhlIHJlZmVyZW5jZSB3aGVuIHdlIHRyeSB0byBmZXRjaCBsYXRlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVzb3VyY2VMaW5rXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLSBjbGVhbmVkIHVwIHJlc291cmNlIGxpbmtcbiAgICovXG4gIGZ1bmN0aW9uIGNsZWFuUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaykge1xuICAgIGxldCByZXNvdXJjZUxpbmtfID0gcmVzb3VyY2VMaW5rXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rcyA9IHJlc291cmNlTGlua18/LnNwbGl0KCcvJylcblxuICAgIGlmIChyZXNvdXJjZUxpbmtzPy5sZW5ndGggPiA0KSB7IC8vIGlmIHRvbyBtYW55IGZpZWxkcywgdGhlbiB0cmltXG4gICAgICByZXNvdXJjZUxpbmtfID0gcmVzb3VyY2VMaW5rcz8uc2xpY2UoMCwgNCkuam9pbignLycpXG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZUxpbmtfXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgdG8gZWl0aGVyIGFkZCBuZXcgc2NyaXB0dXJlIGl0ZW0gb3Igc2VsZWN0IGV4aXN0aW5nIGl0ZW0gaW4gaGlzdG9yeVxuICAgKiBAcGFyYW0ge29iamVjdH0gaXRlbSAtIG5ldyBpdGVtIHRvIGFkZCBvciBleGlzdGluZyBpdGVtIHRvIHNlbGVjdCBmcm9tIGhpc3RvcnlcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gdmFsaWRhdGlvbkNCIC0gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcGFzcyBiYWNrIGlmIGl0ZW0gdXJsIHdhcyB2YWxpZCBvciBub3RcbiAgICovXG4gIGNvbnN0IHNldFNjcmlwdHVyZSA9IChpdGVtLCB2YWxpZGF0aW9uQ0IgPSBudWxsKSA9PiB7XG4gICAgbGV0IHVybFxuICAgIGxldCBuZXdVcmwgPSBpdGVtPy51cmxcblxuICAgIGlmIChuZXdVcmwpIHtcbiAgICAgIHNldFVybEVycm9yKG51bGwpIC8vIGNsZWFyIHByZXZpb3VzIHdhcm5pbmdzXG5cbiAgICAgIC8vIGhhbmRsZTogYGdpdEBnaXQuZG9vcjQzLm9yZzp1bmZvbGRpbmdXb3JkL2VuX3VsdC5naXRgXG4gICAgICAvLyAgICBieSBtYXBwaW5nIHRvIGh0dHBzIGdpdCBmZXRjaCB1cmwgKGUuZy4gaHR0cHM6Ly9naXQuZG9vcjQzLm9yZzp1bmZvbGRpbmdXb3JkL2VuX3VsdC5naXQpXG4gICAgICBpZiAobmV3VXJsPy5pbmNsdWRlcygnZ2l0QCcpKSB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gbmV3VXJsPy5zcGxpdCgnOicpXG4gICAgICAgIGNvbnN0IFssIGhvc3RuYW1lXSA9IHBhcnRzWzBdLnNwbGl0KCdAJylcbiAgICAgICAgbmV3VXJsID0gYGh0dHBzOi8vJHtob3N0bmFtZX0vJHtwYXJ0cy5zbGljZSgxKS5qb2luKCc6Jyl9YFxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBuZXcgVVJMKG5ld1VybClcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBjb25zb2xlLmxvZygnaWxsZWdhbCB1cmwnLCBpdGVtLnVybClcbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlVXJsKGl0ZW0udXJsKVxuICAgICAgICBzZXRVcmxFcnJvcihJTlZBTElEX1VSTClcbiAgICAgICAgdmFsaWRhdGlvbkNCICYmIHZhbGlkYXRpb25DQihmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcbiAgICAgIGxldCBzZXJ2ZXJfXG4gICAgICBsZXQgaG9zdG5hbWUgPSB1cmwuaG9zdG5hbWVcblxuICAgICAgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGlmIChob3N0bmFtZSA9PT0gYGRvb3I0My5vcmdgKSB7XG4gICAgICAgICAgLy8gaGFuZGxlIGNhc2Ugb2YgbGluayB0byBkNDMgcmVhZGVyIHBhZ2UgKGUuZy4gaHR0cHM6Ly9kb29yNDMub3JnL3UvdW5mb2xkaW5nV29yZC9lbl91bHQvKVxuICAgICAgICAgIGhvc3RuYW1lID0gJ2dpdC4nICsgaG9zdG5hbWUgLy8gcmVkaXJlY3QgdG8gZ2l0IHJlcG9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1cmwucG9ydCkge1xuICAgICAgICAgIGhvc3RuYW1lICs9ICc6JyArIHVybC5wb3J0XG4gICAgICAgIH1cbiAgICAgICAgc2VydmVyXyA9ICdodHRwczovLycgKyBob3N0bmFtZVxuICAgICAgfVxuXG4gICAgICBsZXQgdXJsXyA9IG5ld1VybFxuXG4gICAgICBpZiAoIXVybCkgeyAvLyBpZiBub3QgYSBuZXcgcmVzb3VyY2VcbiAgICAgICAgc2NyaXB0dXJlU2V0dGluZ3MgPSBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKHJlc291cmNlSWQsIGJvb2tJZCwgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCkgLy8gY29udmVydCBhbnkgZGVmYXVsdCBzZXR0aW5ncyBzdHJpbmdzXG4gICAgICAgIHVybF8gPSBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmtcbiAgICAgIH1cblxuICAgICAgLy8gbWFrZSBzdXJlIGl0IGV4aXN0c1xuICAgICAgY29yZS5yZXNvdXJjZUZyb21SZXNvdXJjZUxpbmsoe1xuICAgICAgICByZXNvdXJjZUxpbms6IHVybF8sXG4gICAgICAgIHJlZmVyZW5jZToge1xuICAgICAgICAgIHByb2plY3RJZDogYm9va0lkLFxuICAgICAgICAgIGNoYXB0ZXI6IGNoYXB0ZXIsXG4gICAgICAgICAgdmVyc2U6IHZlcnNlLFxuICAgICAgICB9LFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBzZXJ2ZXI6IHNlcnZlcl8sXG4gICAgICAgICAgY2FjaGU6IHsgbWF4QWdlOiAxICogNjAgKiA2MCAqIDEwMDAgfSwgLy8gMSBoclxuICAgICAgICB9LFxuICAgICAgfSkudGhlbihyZXNvdXJjZSA9PiB7XG4gICAgICAgIGxldCBlcnJvciA9IFJFUE9fTk9UX0ZPVU5EX0VSUk9SXG4gICAgICAgIGxldCBuZXdTY3JpcHR1cmUgPSBudWxsXG5cbiAgICAgICAgaWYgKHJlc291cmNlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgc3ViamVjdCxcbiAgICAgICAgICB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICAgICAgICAgIGNvbnN0IGlzU2NyaXB0dXJlID0gaXNTY3JpcHR1cmVSZXNvdXJjZShzdWJqZWN0KVxuXG4gICAgICAgICAgaWYgKCFpc1NjcmlwdHVyZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB1c2VTY3JpcHR1cmVTZXR0aW5ncy5zZXRTY3JpcHR1cmUgLSBVUkwgaXMgbm90IGEgc2NyaXB0dXJlIHJlc291cmNlOiAke3VybF99YClcbiAgICAgICAgICAgIGVycm9yID0gUkVQT19OT1RfU0NSSVBUVVJFX0VSUk9SXG4gICAgICAgICAgfSBlbHNlIGlmICh0aXRsZSAmJiB2ZXJzaW9uKSB7XG4gICAgICAgICAgICAvLyB3ZSBzdWNjZWVkZWQgaW4gZ2V0dGluZyByZXNvdXJjZSAtIHVzZSBpdFxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlID0gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgIHNlcnZlcjogc2VydmVyXyxcbiAgICAgICAgICAgICAgb3duZXI6IHJlc291cmNlLnVzZXJuYW1lLFxuICAgICAgICAgICAgICByZWY6IHJlc291cmNlLnJlZiB8fCAnbWFzdGVyJyxcbiAgICAgICAgICAgICAgbGFuZ3VhZ2VJZDogcmVzb3VyY2UubGFuZ3VhZ2VJZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2UucmVzb3VyY2VJZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VMaW5rOiBjbGVhblJlc291cmNlTGluayhyZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSxcbiAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgICAgICAgICAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlWyd1c2VyQWRkZWQnXSA9IHRydWVcbiAgICAgICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3U2NyaXB0dXJlKSAvLyBwZXJzaXN0IGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKG5ld1NjcmlwdHVyZSlcbiAgICAgICAgICAgIGVycm9yID0gbnVsbCAvLyBubyBlcnJvclxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBwYXJzaW5nIG1hbmlmZXN0JywgaXRlbS51cmwpXG4gICAgICAgICAgICBlcnJvciA9IE1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignbm90IGZvdW5kJywgaXRlbS51cmwpXG4gICAgICAgIH1cbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgIGlmIChlcnJvciA9PT0gUkVQT19OT1RfRk9VTkRfRVJST1IpIHsgLy8gaWYgZ2VuZXJpYyBlcnJvciwgdmFsaWRhdGUgdGhlIFVSTFxuICAgICAgICAgIGNvbnN0IHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfSA9IHZhbGlkYXRlRGNzVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgICAgaWYgKCF2YWxpZFVybCkge1xuICAgICAgICAgICAgZXJyb3IgPSBJTlZBTElEX1VSTFxuICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRSZXBvUGF0aCkge1xuICAgICAgICAgICAgZXJyb3IgPSBSRVBPX05PVF9GT1VORF9FUlJPUlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvciA9IElOVkFMSURfUkVQT19VUkxfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0VXJsRXJyb3IoZXJyb3IpXG4gICAgICAgIHZhbGlkYXRpb25DQiAmJiB2YWxpZGF0aW9uQ0IoIWVycm9yLCBuZXdTY3JpcHR1cmUpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7IC8vIHNlbGVjdGVkIGEgcHJldmlvdXMgc2V0dGluZ1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcbiAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKGl0ZW0pXG4gICAgICB2YWxpZGF0aW9uQ0IgJiYgdmFsaWRhdGlvbkNCKHRydWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNjcmlwdHVyZVNldHRpbmdzXG4iXX0=
|
|
382
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncy50c3giXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb3JlIiwiaXNFcXVhbCIsIktFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlkiLCJTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSIsIklOVkFMSURfUkVQT19VUkxfRVJST1IiLCJJTlZBTElEX1VSTCIsIk1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IiLCJOVF9PUklHX0xBTkdfQklCTEUiLCJOVF9PUklHX0xBTkciLCJPUklHSU5BTF9TT1VSQ0UiLCJPVF9PUklHX0xBTkdfQklCTEUiLCJPVF9PUklHX0xBTkciLCJSRVBPX05PVF9GT1VORF9FUlJPUiIsIlJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUiIsInNldExvY2FsU3RvcmFnZVZhbHVlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidmFsaWRhdGVEY3NVcmwiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRTY3JpcHR1cmVPYmplY3QiLCJnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIiwidXNlU2NyaXB0dXJlUmVzb3VyY2VzIiwiS0VZX1NFVFRJTkdTX0JBU0UiLCJLRVlfVEFSR0VUX0JBU0UiLCJmaXhTY3JpcHR1cmVTZXR0aW5ncyIsInZlcnNpb25IaXN0Iiwic2NyaXB0dXJlU2V0dGluZ3MiLCJsYW5ndWFnZUlkIiwiY2FyZE51bSIsIm93bmVyIiwicmVzb3VyY2VJZCIsIm5ld1NjcmlwdHVyZVNldHRpbmdzIiwicmVzb3VyY2VMaW5rIiwiYWRkSXRlbVRvSGlzdG9yeSIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJtb2RpZmllZCIsImkiLCJsZW5ndGgiLCJpdGVtIiwiaiIsIm1hdGNoX2l0ZW0iLCJtYXRjaF9yZXNvdXJjZUlkIiwicmVmIiwic2VydmVyIiwic3BsaWNlIiwic2F2ZUhpc3RvcnkiLCJpc1NjcmlwdHVyZVJlc291cmNlIiwic3ViamVjdCIsIkJpYmxlUmVzb3VyY2VzIiwiaXNTY3JpcHR1cmUiLCJpbmNsdWRlcyIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiYXBwUmVmIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImh0dHBDb25maWciLCJpc05UIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwicmVmZXJlbmNlIiwicmVhZHlGb3JGZXRjaCIsInNldFVybEVycm9yIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwid2hvbGVCb29rIiwiYm9va0lkIiwicHJvamVjdElkIiwiaXNOZXdUZXN0YW1lbnQiLCJzY3JpcHR1cmVEZWZhdWx0U2V0dGluZ3MiLCJ2ZXJzaW9uSGlzdG9yeSIsInNhdmVWZXJzaW9uSGlzdCIsInJlZnJlc2hWZXJzaW9uSGlzdCIsInNjcmlwdHVyZVZlcnNpb25IaXN0Iiwic2V0U2NyaXB0dXJlU2V0dGluZ3MiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0Iiwic2V0VGFyZ2V0IiwiY2xlYW5VcCIsInNldENsZWFuVXAiLCJvbGREZWZhdWx0U2V0dGluZ3MiLCJyZW1vdmVJdGVtIiwib3JpZ2luYWxSZXBvVXJsIiwic2NyaXB0dXJlQ29uZmlnIiwiY3VycmVudExhbmd1YWdlSWQiLCJjdXJyZW50T3duZXIiLCJjbGVhblJlc291cmNlTGluayIsInJlc291cmNlTGlua18iLCJyZXNvdXJjZUxpbmtzIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJzZXRTY3JpcHR1cmUiLCJ2YWxpZGF0aW9uQ0IiLCJ1cmwiLCJuZXdVcmwiLCJwYXJ0cyIsImhvc3RuYW1lIiwiVVJMIiwiY29uc29sZSIsImxvZyIsInJlbW92ZVVybCIsInNlcnZlcl8iLCJwb3J0IiwidXJsXyIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsImNvbmZpZyIsImNhY2hlIiwibWF4QWdlIiwidGhlbiIsInJlc291cmNlIiwiZXJyb3IiLCJuZXdTY3JpcHR1cmUiLCJ2ZXJzaW9uIiwid2FybiIsInVzZXJuYW1lIiwi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QVI7QUFDRDtBQUNGOztBQUNEeUQsUUFBQUEsV0FBVyxDQUFDaUQsS0FBRCxDQUFYO0FBQ0FsQixRQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQyxDQUFDa0IsS0FBRixFQUFTQyxZQUFULENBQTVCO0FBQ0QsT0E5REQ7QUErREQsS0F4RkQsTUF3Rk87QUFBRTtBQUNQbEQsTUFBQUEsV0FBVyxDQUFDLElBQUQsQ0FBWCxDQURLLENBQ2E7O0FBQ2xCWSxNQUFBQSxvQkFBb0IsQ0FBQ25DLElBQUQsQ0FBcEI7QUFDQXNELE1BQUFBLFlBQVksSUFBSUEsWUFBWSxDQUFDLElBQUQsQ0FBNUI7QUFDRDtBQUNGLEdBdkhEOztBQXlIQSxTQUFPO0FBQ0x6QixJQUFBQSxjQUFjLEVBQWRBLGNBREs7QUFFTGUsSUFBQUEsZUFBZSxFQUFmQSxlQUZLO0FBR0x6RCxJQUFBQSxpQkFBaUIsRUFBakJBLGlCQUhLO0FBSUwrQyxJQUFBQSxvQkFBb0IsRUFBcEJBLG9CQUpLO0FBS0xtQixJQUFBQSxZQUFZLEVBQVpBO0FBTEssR0FBUDtBQU9EO0FBRUQsZUFBZXhDLG9CQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0ICogYXMgaXNFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgS0VZX1NDUklQVFVSRV9WRVJfSElTVE9SWSwgU2NyaXB0dXJlVmVyc2lvbkhpc3RvcnkgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSdcbmltcG9ydCB7XG4gIElOVkFMSURfUkVQT19VUkxfRVJST1IsXG4gIElOVkFMSURfVVJMLFxuICBNQU5JRkVTVF9JTlZBTElEX1NIT1JUX0VSUk9SLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIE9UX09SSUdfTEFORyxcbiAgUkVQT19OT1RfRk9VTkRfRVJST1IsXG4gIFJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUixcbiAgc2V0TG9jYWxTdG9yYWdlVmFsdWUsXG4gIHBhcnNlUmVzb3VyY2VNYW5pZmVzdCxcbiAgdmFsaWRhdGVEY3NVcmwsXG59IGZyb20gJy4uJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRTY3JpcHR1cmVPYmplY3QsXG4gIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MsXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHVzZVNjcmlwdHVyZVJlc291cmNlcyBmcm9tICcuL3VzZVNjcmlwdHVyZVJlc291cmNlcydcblxuY29uc3QgS0VZX1NFVFRJTkdTX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUNvbmZpZ18nXG5jb25zdCBLRVlfVEFSR0VUX0JBU0UgPSAnc2NyaXB0dXJlUGFuZVRhcmdldF8nXG5cbmZ1bmN0aW9uIGZpeFNjcmlwdHVyZVNldHRpbmdzKHZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpIHtcbiAgLy8gY2xlYW4gdXAgaGFyZC1jb2RlZCBvcmlnaW5hbCBzb3VyY2VzXG4gIGlmICgoc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAoc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSkge1xuICAgIGlmICgoc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCAhPT0gTlRfT1JJR19MQU5HKSAmJiAoc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCAhPT0gT1RfT1JJR19MQU5HKSkgeyAvLyBpZiB0aGlzIGlzIHRyYWNrIHdpdGggY3VycmVudCBzZWxlY3RlZCBsYW5ndWFnZSBhbmQgdGVzdGFtZW50IG9mIGJvb2tcbiAgICAgIGNvbnN0IG5ld1NjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5ncyB9XG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gbGFuZ3VhZ2VJZFxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IE9SSUdJTkFMX1NPVVJDRVxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBvd25lclxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKG5ld1NjcmlwdHVyZVNldHRpbmdzKVxuICAgICAgc2V0TG9jYWxTdG9yYWdlVmFsdWUoS0VZX1NFVFRJTkdTX0JBU0UgKyBjYXJkTnVtLCBuZXdTY3JpcHR1cmVTZXR0aW5ncylcbiAgICAgIHZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3U2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICB9XG5cbiAgLy8gY2xlYW4gaGlzdG9yeSBvZiBvcmlnaW5hbCBzb3VyY2VzXG4gIGxldCBoaXN0b3J5ID0gdmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KCkgfHwgW11cbiAgbGV0IG1vZGlmaWVkID0gZmFsc2VcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGhpc3RvcnkubGVuZ3RoOyBpKyspIHsgLy8gc2VhcmNoIGZvciBvcmlnaW5hbCBzb3VyY2UgZHVwbGljYXRlcyBpbiBoaXN0b3J5XG4gICAgY29uc3QgaXRlbSA9IGhpc3RvcnlbaV1cbiAgICBjb25zdCByZXNvdXJjZUlkID0gaXRlbS5yZXNvdXJjZUlkXG5cbiAgICBpZiAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpIHtcbiAgICAgIGZvciAoIGxldCBqID0gaSArIDE7IGogPCBoaXN0b3J5Lmxlbmd0aDsgaisrKSB7IC8vIHNlYXJjaCByZXN0IG9mIGxpc3QgZm9yIGR1cGxpY2F0ZXMgb2YgaXRlbSBhdCBpXG4gICAgICAgIGNvbnN0IG1hdGNoX2l0ZW0gPSBoaXN0b3J5W2pdXG4gICAgICAgIGNvbnN0IG1hdGNoX3Jlc291cmNlSWQgPSBtYXRjaF9pdGVtLnJlc291cmNlSWRcblxuICAgICAgICBpZiAoKG1hdGNoX3Jlc291cmNlSWQgPT09IHJlc291cmNlSWQpKSB7XG4gICAgICAgICAgaWYgKChpdGVtLm93bmVyID09PSBtYXRjaF9pdGVtLm93bmVyKSAmJlxuICAgICAgICAgICAgKGl0ZW0ucmVmID09PSBtYXRjaF9pdGVtLnJlZikgJiZcbiAgICAgICAgICAgIChpdGVtLnNlcnZlciA9PT0gbWF0Y2hfaXRlbS5zZXJ2ZXIpICYmXG4gICAgICAgICAgICAoaXRlbS5yZXNvdXJjZUlkID09PSBtYXRjaF9pdGVtLnJlc291cmNlSWQpKSB7XG4gICAgICAgICAgICBoaXN0b3J5LnNwbGljZShqLCAxKSAvLyByZW1vdmUgZHVwbGljYXRlIGl0ZW1cbiAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZVxuICAgICAgICAgICAgai0tIC8vIGJhY2sgdXAgaW5kZXggc2luY2UgY29udGVudHMgc2hpZnRlZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChtb2RpZmllZCkge1xuICAgIHZlcnNpb25IaXN0LnNhdmVIaXN0b3J5KGhpc3RvcnkpXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTY3JpcHR1cmVSZXNvdXJjZShzdWJqZWN0KSB7XG4gIGNvbnN0IEJpYmxlUmVzb3VyY2VzID0gWyAnQmlibGUnLCAnQWxpZ25lZCBCaWJsZScsICdHcmVlayBOZXcgVGVzdGFtZW50JywgJ0hlYnJldyBPbGQgVGVzdGFtZW50JyBdXG4gIGNvbnN0IGlzU2NyaXB0dXJlID0gQmlibGVSZXNvdXJjZXMuaW5jbHVkZXMoc3ViamVjdClcbiAgcmV0dXJuIGlzU2NyaXB0dXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gIGFwcFJlZixcbiAgY2FyZE51bSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG4gIGh0dHBDb25maWcsXG4gIGlzTlQsXG4gIGxhbmd1YWdlSWQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3duZXIsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICByZWFkeUZvckZldGNoID0gZmFsc2UsXG4gIHNlcnZlcixcbiAgc2V0VXJsRXJyb3IsXG4gIHRpdGxlLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB3aG9sZUJvb2sgPSBmYWxzZSxcbn0pIHtcbiAgY29uc3QgYm9va0lkID0gcmVmZXJlbmNlPy5wcm9qZWN0SWRcbiAgY29uc3QgaXNOZXdUZXN0YW1lbnQgPSBpc05UKGJvb2tJZClcbiAgY29uc3Qgc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzID0gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgb3duZXIsXG4gICAgcmVmOiBhcHBSZWYsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgc2VydmVyLFxuICAgIHRpdGxlLFxuICB9KVxuICBjb25zdCBbdmVyc2lvbkhpc3RvcnksIHNhdmVWZXJzaW9uSGlzdCwgcmVmcmVzaFZlcnNpb25IaXN0XSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX1NDUklQVFVSRV9WRVJfSElTVE9SWSwgW10pXG4gIGNvbnN0IHNjcmlwdHVyZVZlcnNpb25IaXN0ID0gbmV3IFNjcmlwdHVyZVZlcnNpb25IaXN0b3J5KHZlcnNpb25IaXN0b3J5LCBzYXZlVmVyc2lvbkhpc3QsIHJlZnJlc2hWZXJzaW9uSGlzdClcblxuICBsZXQgW3NjcmlwdHVyZVNldHRpbmdzLCBzZXRTY3JpcHR1cmVTZXR0aW5nc10gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9TRVRUSU5HU19CQVNFICsgY2FyZE51bSwgc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzKVxuICBjb25zdCBjdXJyZW50VGFyZ2V0ID0ge1xuICAgIHNlcnZlcixcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICB9XG4gIGNvbnN0IFt0YXJnZXQsIHNldFRhcmdldF0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9UQVJHRVRfQkFTRSArIGNhcmROdW0sIGN1cnJlbnRUYXJnZXQpXG4gIGNvbnN0IFtjbGVhblVwLCBzZXRDbGVhblVwXSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGFuZ3VhZ2VJZCAmJiBvd25lcikgeyAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBsYW5ndWFnZUlkIGFuZCBvd25lciBzZWxlY3RlZCBmaXJzdFxuICAgICAgaWYgKGNsZWFuVXApIHsgLy8gZG8gaW5pdGlhbCBjbGVhbnVwXG4gICAgICAgIGZpeFNjcmlwdHVyZVNldHRpbmdzKHNjcmlwdHVyZVZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpXG4gICAgICAgIHNldENsZWFuVXAoZmFsc2UpXG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFcXVhbChjdXJyZW50VGFyZ2V0LCB0YXJnZXQpKSB7IC8vIHdoZW4gdGFyZ2V0IGNoYW5nZXMsIHN3aXRjaCBiYWNrIHRvIGRlZmF1bHRzXG4gICAgICAgIGNvbnN0IG9sZERlZmF1bHRTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzLCAuLi50YXJnZXQgfVxuICAgICAgICBvbGREZWZhdWx0U2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKG9sZERlZmF1bHRTZXR0aW5ncylcbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbShvbGREZWZhdWx0U2V0dGluZ3MpIC8vIHJlbW92ZSBvbGQgZGVmYXVsdCBzZXR0aW5ncyBmcm9tIGhpc3RvcnlcbiAgICAgICAgZml4U2NyaXB0dXJlU2V0dGluZ3Moc2NyaXB0dXJlVmVyc2lvbkhpc3QsIHNjcmlwdHVyZVNldHRpbmdzLCBsYW5ndWFnZUlkLCBjYXJkTnVtLCBvd25lcilcblxuICAgICAgICBzZXRTY3JpcHR1cmVTZXR0aW5ncyhzY3JpcHR1cmVEZWZhdWx0U2V0dGluZ3MpXG4gICAgICAgIHNldFRhcmdldChjdXJyZW50VGFyZ2V0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShzY3JpcHR1cmVTZXR0aW5ncykgLy8gbWFrZSBzdXJlIGN1cnJlbnQgc2NyaXB0dXJlIHZlcnNpb24gcGVyc2lzdGVkIGluIGhpc3RvcnlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsYW5ndWFnZUlkLCBvd25lciwgY2xlYW5VcF0pXG5cbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUNvbmZpZyA9IHVzZVNjcmlwdHVyZVJlc291cmNlcyh7XG4gICAgYXBwUmVmLFxuICAgIGN1cnJlbnRMYW5ndWFnZUlkOiBsYW5ndWFnZUlkLFxuICAgIGN1cnJlbnRPd25lcjogb3duZXIsXG4gICAgaHR0cENvbmZpZyxcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWZlcmVuY2UsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgd2hvbGVCb29rLFxuICB9KVxuXG4gIC8qKlxuICAgKiBtYWtlIHN1cmUgdGhhdCBib29rSWQgb3IgcHJvamVjdElkIGFyZSBub3QgZW1iZWRkZWQgaW4gbGluay5cbiAgICogICAgRm9yIGV4YW1wbGUgaW4gYHJ1X2dsL3J1L3Jzb2IvbWFzdGVyL2hlYmAgdGhlIHByb2plY3RJZCBoZWIgaXMgaW4gdGhlIGxpbmsgYW5kIHdpbGwgb3ZlcnJpZGUgdGhlXG4gICAqICAgIHByb2plY3RJZCBpbiB0aGUgcmVmZXJlbmNlIHdoZW4gd2UgdHJ5IHRvIGZldGNoIGxhdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZUxpbmtcbiAgICogQHJldHVybiB7c3RyaW5nfSAtIGNsZWFuZWQgdXAgcmVzb3VyY2UgbGlua1xuICAgKi9cbiAgZnVuY3Rpb24gY2xlYW5SZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rKSB7XG4gICAgbGV0IHJlc291cmNlTGlua18gPSByZXNvdXJjZUxpbmtcbiAgICBjb25zdCByZXNvdXJjZUxpbmtzID0gcmVzb3VyY2VMaW5rXz8uc3BsaXQoJy8nKVxuXG4gICAgaWYgKHJlc291cmNlTGlua3M/Lmxlbmd0aCA+IDQpIHsgLy8gaWYgdG9vIG1hbnkgZmllbGRzLCB0aGVuIHRyaW1cbiAgICAgIHJlc291cmNlTGlua18gPSByZXNvdXJjZUxpbmtzPy5zbGljZSgwLCA0KS5qb2luKCcvJylcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlTGlua19cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBlaXRoZXIgYWRkIG5ldyBzY3JpcHR1cmUgaXRlbSBvciBzZWxlY3QgZXhpc3RpbmcgaXRlbSBpbiBoaXN0b3J5XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpdGVtIC0gbmV3IGl0ZW0gdG8gYWRkIG9yIGV4aXN0aW5nIGl0ZW0gdG8gc2VsZWN0IGZyb20gaGlzdG9yeVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSB2YWxpZGF0aW9uQ0IgLSBjYWxsYmFjayBmdW5jdGlvbiB0byBwYXNzIGJhY2sgaWYgaXRlbSB1cmwgd2FzIHZhbGlkIG9yIG5vdFxuICAgKi9cbiAgY29uc3Qgc2V0U2NyaXB0dXJlID0gKGl0ZW0sIHZhbGlkYXRpb25DQiA9IG51bGwpID0+IHtcbiAgICBsZXQgdXJsXG4gICAgbGV0IG5ld1VybCA9IGl0ZW0/LnVybFxuXG4gICAgaWYgKG5ld1VybCkge1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcblxuICAgICAgLy8gaGFuZGxlOiBgZ2l0QGdpdC5kb29yNDMub3JnOnVuZm9sZGluZ1dvcmQvZW5fdWx0LmdpdGBcbiAgICAgIC8vICAgIGJ5IG1hcHBpbmcgdG8gaHR0cHMgZ2l0IGZldGNoIHVybCAoZS5nLiBodHRwczovL2dpdC5kb29yNDMub3JnOnVuZm9sZGluZ1dvcmQvZW5fdWx0LmdpdClcbiAgICAgIGlmIChuZXdVcmw/LmluY2x1ZGVzKCdnaXRAJykpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBuZXdVcmw/LnNwbGl0KCc6JylcbiAgICAgICAgY29uc3QgWywgaG9zdG5hbWVdID0gcGFydHNbMF0uc3BsaXQoJ0AnKVxuICAgICAgICBuZXdVcmwgPSBgaHR0cHM6Ly8ke2hvc3RuYW1lfS8ke3BhcnRzLnNsaWNlKDEpLmpvaW4oJzonKX1gXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHVybCA9IG5ldyBVUkwobmV3VXJsKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpbGxlZ2FsIHVybCcsIGl0ZW0udXJsKVxuICAgICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVVcmwoaXRlbS51cmwpXG4gICAgICAgIHNldFVybEVycm9yKElOVkFMSURfVVJMKVxuICAgICAgICB2YWxpZGF0aW9uQ0IgJiYgdmFsaWRhdGlvbkNCKGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXJsKSB7XG4gICAgICBzZXRVcmxFcnJvcihudWxsKSAvLyBjbGVhciBwcmV2aW91cyB3YXJuaW5nc1xuICAgICAgbGV0IHNlcnZlcl9cbiAgICAgIGxldCBob3N0bmFtZSA9IHVybC5ob3N0bmFtZVxuXG4gICAgICBpZiAoaG9zdG5hbWUpIHtcbiAgICAgICAgaWYgKGhvc3RuYW1lID09PSBgZG9vcjQzLm9yZ2ApIHtcbiAgICAgICAgICAvLyBoYW5kbGUgY2FzZSBvZiBsaW5rIHRvIGQ0MyByZWFkZXIgcGFnZSAoZS5nLiBodHRwczovL2Rvb3I0My5vcmcvdS91bmZvbGRpbmdXb3JkL2VuX3VsdC8pXG4gICAgICAgICAgaG9zdG5hbWUgPSAnZ2l0LicgKyBob3N0bmFtZSAvLyByZWRpcmVjdCB0byBnaXQgcmVwb1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVybC5wb3J0KSB7XG4gICAgICAgICAgaG9zdG5hbWUgKz0gJzonICsgdXJsLnBvcnRcbiAgICAgICAgfVxuICAgICAgICBzZXJ2ZXJfID0gJ2h0dHBzOi8vJyArIGhvc3RuYW1lXG4gICAgICB9XG5cbiAgICAgIGxldCB1cmxfID0gbmV3VXJsXG5cbiAgICAgIGlmICghdXJsKSB7IC8vIGlmIG5vdCBhIG5ldyByZXNvdXJjZVxuICAgICAgICBzY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MocmVzb3VyY2VJZCwgYm9va0lkLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsKSAvLyBjb252ZXJ0IGFueSBkZWZhdWx0IHNldHRpbmdzIHN0cmluZ3NcbiAgICAgICAgdXJsXyA9IHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGlua1xuICAgICAgfVxuXG4gICAgICAvLyBtYWtlIHN1cmUgaXQgZXhpc3RzXG4gICAgICBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayh7XG4gICAgICAgIHJlc291cmNlTGluazogdXJsXyxcbiAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBzZXJ2ZXI6IHNlcnZlcl8sXG4gICAgICAgICAgY2FjaGU6IHsgbWF4QWdlOiAxICogNjAgKiA2MCAqIDEwMDAgfSwgLy8gMSBoclxuICAgICAgICB9LFxuICAgICAgfSkudGhlbihyZXNvdXJjZSA9PiB7XG4gICAgICAgIGxldCBlcnJvciA9IFJFUE9fTk9UX0ZPVU5EX0VSUk9SXG4gICAgICAgIGxldCBuZXdTY3JpcHR1cmUgPSBudWxsXG5cbiAgICAgICAgaWYgKHJlc291cmNlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgc3ViamVjdCxcbiAgICAgICAgICB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICAgICAgICAgIGNvbnN0IGlzU2NyaXB0dXJlID0gaXNTY3JpcHR1cmVSZXNvdXJjZShzdWJqZWN0KVxuXG4gICAgICAgICAgaWYgKCFpc1NjcmlwdHVyZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB1c2VTY3JpcHR1cmVTZXR0aW5ncy5zZXRTY3JpcHR1cmUgLSBVUkwgaXMgbm90IGEgc2NyaXB0dXJlIHJlc291cmNlOiAke3VybF99YClcbiAgICAgICAgICAgIGVycm9yID0gUkVQT19OT1RfU0NSSVBUVVJFX0VSUk9SXG4gICAgICAgICAgfSBlbHNlIGlmICh0aXRsZSAmJiB2ZXJzaW9uKSB7XG4gICAgICAgICAgICAvLyB3ZSBzdWNjZWVkZWQgaW4gZ2V0dGluZyByZXNvdXJjZSAtIHVzZSBpdFxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlID0gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgICAgICAgICAgICBsYW5ndWFnZUlkOiByZXNvdXJjZS5sYW5ndWFnZUlkLFxuICAgICAgICAgICAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgICAgICAgICAgIG93bmVyOiByZXNvdXJjZS51c2VybmFtZSxcbiAgICAgICAgICAgICAgcmVmOiByZXNvdXJjZS5yZWYgfHwgJ21hc3RlcicsXG4gICAgICAgICAgICAgIHJlc291cmNlSWQ6IHJlc291cmNlLnJlc291cmNlSWQsXG4gICAgICAgICAgICAgIHJlc291cmNlTGluazogY2xlYW5SZXNvdXJjZUxpbmsocmVzb3VyY2U/LnJlc291cmNlTGluayksXG4gICAgICAgICAgICAgIHNlcnZlcjogc2VydmVyXyxcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlWyd1c2VyQWRkZWQnXSA9IHRydWVcbiAgICAgICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3U2NyaXB0dXJlKSAvLyBwZXJzaXN0IGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKG5ld1NjcmlwdHVyZSlcbiAgICAgICAgICAgIGVycm9yID0gbnVsbCAvLyBubyBlcnJvclxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBwYXJzaW5nIG1hbmlmZXN0JywgaXRlbS51cmwpXG4gICAgICAgICAgICBlcnJvciA9IE1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignbm90IGZvdW5kJywgaXRlbS51cmwpXG4gICAgICAgIH1cbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgIGlmIChlcnJvciA9PT0gUkVQT19OT1RfRk9VTkRfRVJST1IpIHsgLy8gaWYgZ2VuZXJpYyBlcnJvciwgdmFsaWRhdGUgdGhlIFVSTFxuICAgICAgICAgIGNvbnN0IHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfSA9IHZhbGlkYXRlRGNzVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgICAgaWYgKCF2YWxpZFVybCkge1xuICAgICAgICAgICAgZXJyb3IgPSBJTlZBTElEX1VSTFxuICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRSZXBvUGF0aCkge1xuICAgICAgICAgICAgZXJyb3IgPSBSRVBPX05PVF9GT1VORF9FUlJPUlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvciA9IElOVkFMSURfUkVQT19VUkxfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0VXJsRXJyb3IoZXJyb3IpXG4gICAgICAgIHZhbGlkYXRpb25DQiAmJiB2YWxpZGF0aW9uQ0IoIWVycm9yLCBuZXdTY3JpcHR1cmUpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7IC8vIHNlbGVjdGVkIGEgcHJldmlvdXMgc2V0dGluZ1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcbiAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKGl0ZW0pXG4gICAgICB2YWxpZGF0aW9uQ0IgJiYgdmFsaWRhdGlvbkNCKHRydWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gICAgc2V0U2NyaXB0dXJlLFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNjcmlwdHVyZVNldHRpbmdzXG4iXX0=
|
|
@@ -393,11 +393,16 @@ export function cleanupVerseObjects(verseObjects) {
|
|
|
393
393
|
for (var i = 0, l = verseObjects_.length; i < l; i++) {
|
|
394
394
|
var vo = verseObjects_[i];
|
|
395
395
|
|
|
396
|
-
if (vo.type === 'word') {
|
|
397
|
-
var word = _objectSpread(
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
396
|
+
if (vo.type === 'word' && (vo.occurrence || vo.occurrences)) {
|
|
397
|
+
var word = _objectSpread({}, vo);
|
|
398
|
+
|
|
399
|
+
if (vo.occurrence) {
|
|
400
|
+
word.occurrence = fixOccurrence(vo.occurrence);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
if (vo.occurrences) {
|
|
404
|
+
word.occurrences = fixOccurrence(vo.occurrences);
|
|
405
|
+
}
|
|
401
406
|
|
|
402
407
|
verseObjects_[i] = word;
|
|
403
408
|
} else if (vo.children) {
|
|
@@ -416,4 +421,4 @@ export function cleanupVerseObjects(verseObjects) {
|
|
|
416
421
|
|
|
417
422
|
return [];
|
|
418
423
|
}
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImxhYmVsIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJoaXN0b3J5IiwiZ2V0TGF0ZXN0IiwiaW5kZXgiLCJmaW5kSXRlbUluZGV4QnlLZXkiLCJzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsInZhbGlkYXRpb25DQiIsIml0ZW0iLCJuZXdJdGVtIiwiYWRkSXRlbVRvSGlzdG9yeSIsImdldEl0ZW1CeVRpdGxlIiwiZGVsZXRlSXRlbSIsImRlbGV0ZUluZGV4IiwicmVtb3ZlSXRlbUJ5SW5kZXgiLCJnZXRSZXBvVXJsIiwiaXNOVCIsInJlcG9VcmwiLCJzcGxpdCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsImxlbmd0aCIsInBhcnQiLCJwcm9qZWN0SWQiLCJjb25zb2xlIiwibG9nIiwiZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UiLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyIsImZpeE9jY3VycmVuY2UiLCJvY2N1cnJlbmNlIiwicGFyc2VJbnQiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsImkiLCJsIiwidm8iLCJ0eXBlIiwid29yZCIsIm9jY3VycmVu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YixHQUFtQk8sS0FBbkI7QUFDRDtBQUNGOztBQUNELFdBQU9SLGFBQVA7QUFDRDs7QUFDRCxTQUFPLEVBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHtcbiAgQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBMT0FESU5HX1JFU09VUkNFLFxuICBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TRyxcbiAgTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyxcbiAgTlRfT1JJR19MQU5HLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBUQVJHRVRfTElURVJBTCxcbiAgVEFSR0VUX1NJTVBMSUZJRUQsXG59IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgY29uc3QgRElTQUJMRV9XT1JEX1BPUE9WRVIgPSB0cnVlIC8vIGRpc2FibGUgd29yZCBwb3BvdmVyIGZvciBldmVyeSBzY3JpcHR1cmUgcGFuZSBidXQgb3JpZ2luYWwgbGFuZ3VhZ2VzXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlKSB7XG4gIGNvbnN0IHJlZiA9IHNjcmlwdHVyZS5yZWYgfHwgc2NyaXB0dXJlLmJyYW5jaFxuICByZXR1cm4gYCR7c2NyaXB0dXJlLm93bmVyfS8ke3NjcmlwdHVyZS5sYW5ndWFnZUlkfS8ke3NjcmlwdHVyZS5yZXNvdXJjZUlkfS8ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVPYmplY3Qoe1xuICB0aXRsZSxcbiAgc2VydmVyLFxuICBvd25lcixcbiAgcmVmLFxuICBsYW5ndWFnZUlkLFxuICByZXNvdXJjZUlkLFxuICByZXNvdXJjZUxpbmssXG4gIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxufSkge1xuICBjb25zdCBzY3JpcHR1cmUgPSB7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICByZWYsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICByZXNvdXJjZUxpbmssXG4gIH1cblxuICBpZiAoIXJlc291cmNlTGluaykge1xuICAgIHNjcmlwdHVyZS5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgb3duZXIsXG4gICAgICByZWYsXG4gICAgICBsYW5ndWFnZUlkLFxuICAgICAgcmVzb3VyY2VJZCxcbiAgICB9KVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVcbn1cblxuLyoqXG4gKiByZXR1cm4gdmVyc2UgZGF0YSBnaXZlbiBhIHNjcmlwdHVyZSBjb25maWcgYW5kIHZlcnNlIG51bWJlclxuICogQHBhcmFtIHNjcmlwdHVyZUNvbmZpZ1xuICogQHBhcmFtIHZlcnNlTnVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzZURhdGFGcm9tU2NyaXBDb25maWcoc2NyaXB0dXJlQ29uZmlnLCB2ZXJzZU51bSkge1xuICByZXR1cm4gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWY/LmZpbmQoXG4gICAgdmVyc2VSZWYgPT4gdmVyc2VSZWYudmVyc2UgPT09IHZlcnNlTnVtXG4gIClcbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiByZXNvdXJjZSBpcyBhbiBvcmlnaW5hbCBsYW5ndWFnZSBiaWJsZVxuICogQHBhcmFtIHJlc291cmNlSWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JpZ2luYWxCaWJsZShyZXNvdXJjZUlkKSB7XG4gIGNvbnN0IGlzT3JpZyA9ICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSlcbiAgcmV0dXJuIGlzT3JpZ1xufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSBzY3JpcHR1cmVTZXR0aW5ncyBhcmUgdXAgdG8gZGF0ZSB3aXRoIGN1cnJlbnQgb3duZXIgYW5kIGxhbmd1YWdlXG4gKiBAcGFyYW0ge29iamVjdH0gc2NyaXB0dXJlU2V0dGluZ3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3M6IGFueSwgY3VycmVudE93bmVyOiBhbnksIGN1cnJlbnRMYW5ndWFnZUlkOiBhbnkpIHtcbiAgaWYgKGN1cnJlbnRPd25lciAmJiAoY3VycmVudE93bmVyICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5vd25lcikpIHsgLy8gaWYgb3duZXIgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBjdXJyZW50T3duZXJcbiAgfVxuXG4gIGlmIChjdXJyZW50TGFuZ3VhZ2VJZCAmJiAoY3VycmVudExhbmd1YWdlSWQgIT09IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQpKSB7IC8vIGlmIGxhbmd1YWdlIGNoYW5nZWQsIHVwZGF0ZSBzY3JpcHR1cmVTZXR0aW5nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBjdXJyZW50TGFuZ3VhZ2VJZFxuICB9XG59XG5cbi8qKlxuICogc2VwYXJhdGUgVVJMIGludG8gc2VydmVyIGFuZCByZXNvdXJjZSBsaW5rXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpIHtcbiAgaWYgKG9yaWdpbmFsUmVwb1VybCkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwob3JpZ2luYWxSZXBvVXJsKVxuICAgIGNvbnN0IHNlcnZlciA9IHVybC5vcmlnaW5cbiAgICBjb25zdCByZXNvdXJjZUxpbmsgPSB1cmwucGF0aG5hbWUgKyAodXJsLnNlYXJjaCB8fCAnJylcbiAgICByZXR1cm4geyBzZXJ2ZXIsIHJlc291cmNlTGluayB9XG4gIH1cbiAgcmV0dXJuIHt9XG59XG5cbi8qKlxuICogZ2V0IHRoZSBzY3JpcHR1cmUgc2V0dGluZ3MgbmVlZGVkIGZvciBmZXRjaCAtIGZvciBPcmlnTGFuZywgVUxULCBHTFQgd2lsbCByZXBsYWNlIG93bmVyIGFuZCBsYW5ndWFnZUlkIHdpdGggY29ycmVjdCB2YWx1ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc19cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNOZXdUZXN0YW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmwgLSBvcHRpb25hbCBwYXRoIHRvIHJlcG8gZm9yIG9yaWdpbmFsIGxhbmd1YWdlXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKFxuICBib29rSWQsIHNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsUmVwb1VybD1udWxsLFxuICBjdXJyZW50TGFuZ3VhZ2VJZD1udWxsLFxuICBjdXJyZW50T3duZXI9bnVsbCxcbikge1xuICBjb25zdCBzY3JpcHR1cmVTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlU2V0dGluZ3NfIH1cbiAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gRElTQUJMRV9XT1JEX1BPUE9WRVJcbiAgY29uc3QgcmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzXy5yZXNvdXJjZUlkXG5cbiAgaWYgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkge1xuICAgIC8vIHNlbGVjdCBvcmlnaW5hbCBsYW5ndWFnZSBCaWJsZSBiYXNlZCBvbiB3aGljaCB0ZXN0YW1lbnQgdGhlIGJvb2sgYmVsb25nc1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBpc05ld1Rlc3RhbWVudCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBpc05ld1Rlc3RhbWVudFxuICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG5cbiAgICBpZiAoc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyKSB7XG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lclxuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbFJlcG9VcmwpIHsgLy8gdXNlIHRoaXMgdXJsIGlmIGRlZmluZWRcbiAgICAgIGNvbnN0IHsgc2VydmVyLCByZXNvdXJjZUxpbmsgfSA9IHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybClcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnNlcnZlciA9IHNlcnZlclxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gcmVzb3VyY2VMaW5rXG4gICAgfSBlbHNlIHsgLy8gZmFsbCBiYWNrIHRvIGFwcCBkZWZhdWx0c1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICAgIH1cbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBmYWxzZVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9MSVRFUkFMKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1bHQnIDogJ2dsdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX1NJTVBMSUZJRUQpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VzdCcgOiAnZ3N0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfVxuICByZXR1cm4gc2NyaXB0dXJlU2V0dGluZ3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gIGxhYmVsLFxuICByZXNvdXJjZUxpbmssXG4gIHNldFNjcmlwdHVyZSxcbiAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG59KSB7XG4gIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICBsZXQgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3Jlc291cmNlTGluaycsIHJlc291cmNlTGluaylcblxuICBjb25zdCBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyA9IHtcbiAgICBsYWJlbCwgLy8gbGFiZWwgZm9yIGNvbWJvYm94XG4gICAgb3B0aW9uczogaGlzdG9yeSxcbiAgICBjdXJyZW50OiBpbmRleCxcbiAgICBhbGxvd1VzZXJJbnB1dDogdHJ1ZSxcbiAgICBvbkNoYW5nZTogKHRpdGxlLCBpbmRleCwgdmFsaWRhdGlvbkNCPW51bGwpID0+IHtcbiAgICAgIGxldCBpdGVtXG5cbiAgICAgIGlmICgoaW5kZXggPCAwKSAmJiB0aXRsZSkge1xuICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgIHVybDogdGl0bGUsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5hZGRJdGVtVG9IaXN0b3J5KG5ld0l0ZW0pXG5cbiAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClbaW5kZXhdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRJdGVtQnlUaXRsZSh0aXRsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgc2V0U2NyaXB0dXJlKGl0ZW0sIHZhbGlkYXRpb25DQilcbiAgICAgIH1cbiAgICB9LFxuICAgIGRlbGV0ZUl0ZW06IHRpdGxlID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnkgPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVxuICAgICAgY29uc3QgZGVsZXRlSW5kZXggPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5maW5kSXRlbUluZGV4QnlLZXkoaGlzdG9yeSwgJ3RpdGxlJywgdGl0bGUpXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVJdGVtQnlJbmRleChkZWxldGVJbmRleClcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBvVXJsKHJlc291cmNlTGluazogc3RyaW5nLCBzZXJ2ZXI6IHN0cmluZywgaXNOVDogYm9vbGVhbik6IHN0cmluZyB7XG4gIGxldCByZXBvVXJsXG5cbiAgdHJ5IHtcbiAgICBsZXQgW293bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkXSA9IHJlc291cmNlTGluay5zcGxpdCgnLycpXG5cbiAgICBzd2l0Y2ggKHJlc291cmNlSWQpIHtcbiAgICBjYXNlIE9SSUdJTkFMX1NPVVJDRTpcbiAgICAgIGxhbmd1YWdlSWQgPSBpc05UID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgICByZXNvdXJjZUlkID0gaXNOVFxuICAgICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX0xJVEVSQUw6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VsdCcgOiAnZ2x0J1xuICAgICAgYnJlYWtcblxuICAgIGNhc2UgVEFSR0VUX1NJTVBMSUZJRUQ6XG4gICAgICByZXNvdXJjZUlkID0gKGxhbmd1YWdlSWQgPT09ICdlbicpID8gJ3VzdCcgOiAnZ3N0J1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVwb1VybCA9IGAke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cmVzb3VyY2VJZH1gXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyByZXNvdXJjZUxpbmsgd2FzIGludmFsaWRcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGAke3NlcnZlciB8fCAnJ30vJHtyZXBvVXJsfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhcbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gIHNlcnZlcjogc3RyaW5nLFxuICBlcnJvckNvZGU6IHN0cmluZyxcbiAgaXNOVDogYm9vbGVhbik6IHN0cmluZ1xue1xuICBjb25zdCByZXBvVXJsID0gZ2V0UmVwb1VybChyZXNvdXJjZUxpbmssIHNlcnZlciwgaXNOVClcbiAgY29uc3QgZXJyb3JNc2cgPSBlcnJvckNvZGUgKyByZXBvVXJsXG4gIHJldHVybiBlcnJvck1zZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEY3NVcmwodXJsKSB7XG4gIGxldCB2YWxpZFJlcG9QYXRoID0gZmFsc2VcbiAgbGV0IHZhbGlkVXJsID0gZmFsc2VcblxuICB0cnkge1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJylcbiAgICBjb25zdCBbcHJvdG9jb2wsICwgaG9zdCwgdXNlciwgcmVwb10gPSBwYXJ0c1xuICAgIHZhbGlkVXJsID0gKHByb3RvY29sID09PSAnaHR0cHM6JylcbiAgICBjb25zdCBob3N0UGFydHMgPSBob3N0ID8gaG9zdC5zcGxpdCgnLicpIDogW11cblxuICAgIGlmIChob3N0UGFydHMubGVuZ3RoID49IDIpIHtcbiAgICAgIGZvciAobGV0IHBhcnQgb2YgaG9zdFBhcnRzKSB7XG4gICAgICAgIGlmICghcGFydCkge1xuICAgICAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbGlkVXJsID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoIHByb3RvY29sICYmIGhvc3QgJiYgdXNlciAmJiByZXBvICkge1xuICAgICAgY29uc3QgW2xhbmd1YWdlSWQsIHByb2plY3RJZF0gPSByZXBvLnNwbGl0KCdfJylcbiAgICAgIHZhbGlkUmVwb1BhdGggPSBsYW5ndWFnZUlkICYmIHByb2plY3RJZFxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS5sb2coJ0ludmFsaWQgRENTIFVSTDogJyArIHVybClcbiAgfVxuICByZXR1cm4geyB2YWxpZFVybCwgdmFsaWRSZXBvUGF0aCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0KSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IEJPT0tfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBTQ1JJUFRVUkVfTk9UX0ZPVU5EX0VSUk9SX01TR1xuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZGVjb2RlIHJlc291cmNlIHN0YXR1cyBpbnRvIHN0cmluZy4gIEN1cnJlbnRseSBvbmx5IEVuZ2xpc2hcbiAqIEBwYXJhbSByZXNvdXJjZVN0YXR1cyAtIG9iamVjdCB0aGF0IGNvbnRhaW5zIHN0YXRlIGFuZCBlcnJvcnMgdGhhdCBhcmUgZGV0ZWN0ZWRcbiAqIEBwYXJhbSBzZXJ2ZXIgLSBjb250YWlucyB0aGUgc2VydmVyIGJlaW5nIHVzZWRcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmsgLSBwYXRoIHRvIHJlcG8gb24gc2VydmVyXG4gKiBAcGFyYW0gaXNOVCAtIHRydWUgaWYgTlQgYm9va1xuICogQHJldHVybiBlbXB0eSBzdHJpbmcgaWYgbm8gZXJyb3IsIGVsc2UgcmV0dXJucyB1c2VyIGVycm9yIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1czogb2JqZWN0LCBzZXJ2ZXI6IHN0cmluZywgcmVzb3VyY2VMaW5rOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tMT0FESU5HX1NUQVRFXSkge1xuICAgIG1lc3NhZ2UgPSBMT0FESU5HX1JFU09VUkNFXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9IGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzKVxuXG4gICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgIG1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIG1lc3NhZ2UsIGlzTlQpXG4gICAgfVxuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbi8qKlxuICogZ2VuZXJhdGUgcmVzb3VyY2Ugc3RyaW5nXG4gKiBAcGFyYW0gb3duZXJcbiAqIEBwYXJhbSBsYW5ndWFnZUlkXG4gKiBAcGFyYW0gcHJvamVjdElkXG4gKiBAcGFyYW0gcmVmXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyhvd25lcjogc3RyaW5nLCBsYW5ndWFnZUlkOiBzdHJpbmcsIHByb2plY3RJZDogc3RyaW5nLCByZWY6IHN0cmluZykge1xuICByZXR1cm4gYGFwaS92MS9yZXBvcy8ke293bmVyfS8ke2xhbmd1YWdlSWR9XyR7cHJvamVjdElkfS9jb250ZW50cz9yZWY9JHtyZWZ9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZml4T2NjdXJyZW5jZShvY2N1cnJlbmNlKSB7XG4gIGlmICh0eXBlb2Ygb2NjdXJyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQob2NjdXJyZW5jZSlcbiAgfVxuICByZXR1cm4gb2NjdXJyZW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cFZlcnNlT2JqZWN0cyh2ZXJzZU9iamVjdHMpIHtcbiAgaWYgKHZlcnNlT2JqZWN0cz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgdmVyc2VPYmplY3RzXyA9IFsuLi52ZXJzZU9iamVjdHNdXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHZlcnNlT2JqZWN0c18ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2byA9IHZlcnNlT2JqZWN0c19baV1cblxuICAgICAgaWYgKHZvLnR5cGUgPT09ICd3b3JkJykge1xuICAgICAgICBjb25zdCB3b3JkID0ge1xuICAgICAgICAgIC4uLnZvLFxuICAgICAgICAgIG9jY3VycmVuY2U6IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZSksXG4gICAgICAgICAgb2NjdXJyZW5jZXM6IGZpeE9jY3VycmVuY2Uodm8ub2NjdXJyZW5jZXMpLFxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSB3b3JkXG4gICAgICB9IGVsc2UgaWYgKHZvLmNoaWxkcmVuKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gY2xlYW51cFZlcnNlT2JqZWN0cyh2by5jaGlsZHJlbilcbiAgICAgICAgY29uc3QgbmV3Vm8gPSB7XG4gICAgICAgICAgLi4udm8sXG4gICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIH1cbiAgICAgICAgdmVyc2VPYmplY3RzX1tpXSA9IG5ld1ZvXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNfXG4gIH1cbiAgcmV0dXJuIFtdXG59XG4iXX0=
|
|
424
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiZ2V0VmVyc2VEYXRhRnJvbVNjcmlwQ29uZmlnIiwic2NyaXB0dXJlQ29uZmlnIiwidmVyc2VOdW0iLCJ2ZXJzZXNGb3JSZWYiLCJmaW5kIiwidmVyc2VSZWYiLCJ2ZXJzZSIsImlzT3JpZ2luYWxCaWJsZSIsImlzT3JpZyIsImNsZWFudXBBY2NvdW50U2V0dGluZ3MiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRPd25lciIsImN1cnJlbnRMYW5ndWFnZUlkIiwic3BsaXRVcmwiLCJvcmlnaW5hbFJlcG9VcmwiLCJ1cmwiLCJVUkwiLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5nc18iLCJpc05ld1Rlc3RhbWVudCIsImdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyIsImxhYmVsIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJoaXN0b3J5IiwiZ2V0TGF0ZXN0IiwiaW5kZXgiLCJmaW5kSXRlbUluZGV4QnlLZXkiLCJzY3JpcHR1cmVTZWxlY3RvckNvbmZpZyIsIm9wdGlvbnMiLCJjdXJyZW50IiwiYWxsb3dVc2VySW5wdXQiLCJvbkNoYW5nZSIsInZhbGlkYXRpb25DQiIsIml0ZW0iLCJuZXdJdGVtIiwiYWRkSXRlbVRvSGlzdG9yeSIsImdldEl0ZW1CeVRpdGxlIiwiZGVsZXRlSXRlbSIsImRlbGV0ZUluZGV4IiwicmVtb3ZlSXRlbUJ5SW5kZXgiLCJnZXRSZXBvVXJsIiwiaXNOVCIsInJlcG9VcmwiLCJzcGxpdCIsImUiLCJnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsiLCJlcnJvckNvZGUiLCJlcnJvck1zZyIsInZhbGlkYXRlRGNzVXJsIiwidmFsaWRSZXBvUGF0aCIsInZhbGlkVXJsIiwicGFydHMiLCJwcm90b2NvbCIsImhvc3QiLCJ1c2VyIiwicmVwbyIsImhvc3RQYXJ0cyIsImxlbmd0aCIsInBhcnQiLCJwcm9qZWN0SWQiLCJjb25zb2xlIiwibG9nIiwiZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UiLCJyZXNvdXJjZVN0YXR1cyIsIm1lc3NhZ2UiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRSZXNvdXJjZUxpbmtTcGVjaWZpYyIsImZpeE9jY3VycmVuY2UiLCJvY2N1cnJlbmNlIiwicGFyc2VJbnQiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsImkiLCJsIiwidm8iLCJ0eXBlIiwib2NjdXJyZW5jZXMiLCJ3b3JkIiwiY2hpbGRyZW4iLCJuZXdWbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUNFQSx1QkFERixFQUVFQyxzQkFGRixFQUdFQyxhQUhGLEVBSUVDLHlCQUpGLEVBS0VDLDBCQUxGLFFBTU8sdUJBTlA7QUFPQSxTQUNFQyx3QkFERixFQUVFQyxnQkFGRixFQUdFQywwQkFIRixFQUlFQyw0QkFKRixFQUtFQyxZQUxGLEVBTUVDLGtCQU5GLEVBT0VDLGVBUEYsRUFRRUMsWUFSRixFQVNFQyxrQkFURixFQVVFQyw2QkFWRixFQVdFQyxjQVhGLEVBWUVDLGlCQVpGLFFBYU8sVUFiUDtBQWVBLE9BQU8sSUFBTUMsb0JBQW9CLEdBQUcsSUFBN0IsQyxDQUFrQzs7QUFFekMsT0FBTyxTQUFTQyxlQUFULENBQXlCQyxTQUF6QixFQUFvQztBQUN6QyxNQUFNQyxHQUFHLEdBQUdELFNBQVMsQ0FBQ0MsR0FBVixJQUFpQkQsU0FBUyxDQUFDRSxNQUF2QztBQUNBLG1CQUFVRixTQUFTLENBQUNHLEtBQXBCLGNBQTZCSCxTQUFTLENBQUNJLFVBQXZDLGNBQXFESixTQUFTLENBQUNLLFVBQS9ELGNBQTZFSixHQUE3RTtBQUNEO0FBRUQsT0FBTyxTQUFTSyxrQkFBVCxPQVVKO0FBQUEsTUFUREMsS0FTQyxRQVREQSxLQVNDO0FBQUEsTUFSREMsTUFRQyxRQVJEQSxNQVFDO0FBQUEsTUFQREwsS0FPQyxRQVBEQSxLQU9DO0FBQUEsTUFOREYsR0FNQyxRQU5EQSxHQU1DO0FBQUEsTUFMREcsVUFLQyxRQUxEQSxVQUtDO0FBQUEsTUFKREMsVUFJQyxRQUpEQSxVQUlDO0FBQUEsTUFIREksWUFHQyxRQUhEQSxZQUdDO0FBQUEsTUFGREMsa0JBRUMsUUFGREEsa0JBRUM7QUFBQSxNQUREQyxxQkFDQyxRQUREQSxxQkFDQztBQUNELE1BQU1YLFNBQVMsR0FBRztBQUNoQk8sSUFBQUEsS0FBSyxFQUFMQSxLQURnQjtBQUVoQkMsSUFBQUEsTUFBTSxFQUFOQSxNQUZnQjtBQUdoQkwsSUFBQUEsS0FBSyxFQUFMQSxLQUhnQjtBQUloQlEsSUFBQUEscUJBQXFCLEVBQXJCQSxxQkFKZ0I7QUFLaEJWLElBQUFBLEdBQUcsRUFBSEEsR0FMZ0I7QUFNaEJHLElBQUFBLFVBQVUsRUFBVkEsVUFOZ0I7QUFPaEJDLElBQUFBLFVBQVUsRUFBVkEsVUFQZ0I7QUFRaEJLLElBQUFBLGtCQUFrQixFQUFsQkEsa0JBUmdCO0FBU2hCRCxJQUFBQSxZQUFZLEVBQVpBO0FBVGdCLEdBQWxCOztBQVlBLE1BQUksQ0FBQ0EsWUFBTCxFQUFtQjtBQUNqQlQsSUFBQUEsU0FBUyxDQUFDUyxZQUFWLEdBQXlCVixlQUFlLENBQUM7QUFDdkNJLE1BQUFBLEtBQUssRUFBTEEsS0FEdUM7QUFFdkNGLE1BQUFBLEdBQUcsRUFBSEEsR0FGdUM7QUFHdkNHLE1BQUFBLFVBQVUsRUFBVkEsVUFIdUM7QUFJdkNDLE1BQUFBLFVBQVUsRUFBVkE7QUFKdUMsS0FBRCxDQUF4QztBQU1EOztBQUNELFNBQU9MLFNBQVA7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTWSwyQkFBVCxDQUFxQ0MsZUFBckMsRUFBc0RDLFFBQXRELEVBQWdFO0FBQUE7O0FBQ3JFLFNBQU9ELGVBQVAsYUFBT0EsZUFBUCxnREFBT0EsZUFBZSxDQUFFRSxZQUF4QiwwREFBTyxzQkFBK0JDLElBQS9CLENBQ0wsVUFBQUMsUUFBUTtBQUFBLFdBQUlBLFFBQVEsQ0FBQ0MsS0FBVCxLQUFtQkosUUFBdkI7QUFBQSxHQURILENBQVA7QUFHRDtBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0ssZUFBVCxDQUF5QmQsVUFBekIsRUFBcUM7QUFDMUMsTUFBTWUsTUFBTSxHQUFLZixVQUFVLEtBQUtkLGtCQUFoQixJQUF3Q2MsVUFBVSxLQUFLWCxrQkFBdkQsSUFBK0VXLFVBQVUsS0FBS2IsZUFBOUc7QUFDQSxTQUFPNEIsTUFBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0Msc0JBQVQsQ0FBZ0NDLGlCQUFoQyxFQUF3REMsWUFBeEQsRUFBMkVDLGlCQUEzRSxFQUFtRztBQUN4RyxNQUFJRCxZQUFZLElBQUtBLFlBQVksS0FBS0QsaUJBQWlCLENBQUNuQixLQUF4RCxFQUFnRTtBQUFFO0FBQ2hFbUIsSUFBQUEsaUJBQWlCLENBQUNuQixLQUFsQixHQUEwQm9CLFlBQTFCO0FBQ0Q7O0FBRUQsTUFBSUMsaUJBQWlCLElBQUtBLGlCQUFpQixLQUFLRixpQkFBaUIsQ0FBQ2xCLFVBQWxFLEVBQStFO0FBQUU7QUFDL0VrQixJQUFBQSxpQkFBaUIsQ0FBQ2xCLFVBQWxCLEdBQStCb0IsaUJBQS9CO0FBQ0Q7QUFDRjtBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0MsUUFBVCxDQUFrQkMsZUFBbEIsRUFBbUM7QUFDeEMsTUFBSUEsZUFBSixFQUFxQjtBQUNuQixRQUFNQyxHQUFHLEdBQUcsSUFBSUMsR0FBSixDQUFRRixlQUFSLENBQVo7QUFDQSxRQUFNbEIsTUFBTSxHQUFHbUIsR0FBRyxDQUFDRSxNQUFuQjtBQUNBLFFBQU1wQixZQUFZLEdBQUdrQixHQUFHLENBQUNHLFFBQUosSUFBZ0JILEdBQUcsQ0FBQ0ksTUFBSixJQUFjLEVBQTlCLENBQXJCO0FBQ0EsV0FBTztBQUFFdkIsTUFBQUEsTUFBTSxFQUFOQSxNQUFGO0FBQVVDLE1BQUFBLFlBQVksRUFBWkE7QUFBVixLQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxFQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTdUIsNEJBQVQsQ0FDTEMsTUFESyxFQUNHQyxrQkFESCxFQUN1QkMsY0FEdkIsRUFLTDtBQUFBLE1BSEFULGVBR0EsdUVBSGdCLElBR2hCO0FBQUEsTUFGQUYsaUJBRUEsdUVBRmtCLElBRWxCO0FBQUEsTUFEQUQsWUFDQSx1RUFEYSxJQUNiOztBQUNBLE1BQU1ELGlCQUFpQixxQkFBUVksa0JBQVIsQ0FBdkI7O0FBQ0FaLEVBQUFBLGlCQUFpQixDQUFDWixrQkFBbEIsR0FBdUNaLG9CQUF2QztBQUNBLE1BQU1PLFVBQVUsR0FBRzZCLGtCQUFrQixDQUFDN0IsVUFBdEM7O0FBRUEsTUFBSUEsVUFBVSxLQUFLYixlQUFuQixFQUFvQztBQUNsQztBQUNBOEIsSUFBQUEsaUJBQWlCLENBQUNsQixVQUFsQixHQUErQitCLGNBQWMsR0FBRzdDLFlBQUgsR0FBa0JHLFlBQS9EO0FBQ0E2QixJQUFBQSxpQkFBaUIsQ0FBQ2pCLFVBQWxCLEdBQStCOEIsY0FBYyxHQUN6QzVDLGtCQUR5QyxHQUV6Q0csa0JBRko7O0FBSUEsUUFBSTRCLGlCQUFpQixDQUFDWCxxQkFBdEIsRUFBNkM7QUFDM0NXLE1BQUFBLGlCQUFpQixDQUFDbkIsS0FBbEIsR0FBMEJtQixpQkFBaUIsQ0FBQ1gscUJBQTVDO0FBQ0Q7O0FBRUQsUUFBSWUsZUFBSixFQUFxQjtBQUFFO0FBQUYsc0JBQ2NELFFBQVEsQ0FBQ0MsZUFBRCxDQUR0QjtBQUFBLFVBQ1hsQixNQURXLGFBQ1hBLE1BRFc7QUFBQSxVQUNIQyxZQURHLGFBQ0hBLFlBREc7O0FBRW5CYSxNQUFBQSxpQkFBaUIsQ0FBQ2QsTUFBbEIsR0FBMkJBLE1BQTNCO0FBQ0FjLE1BQUFBLGlCQUFpQixDQUFDYixZQUFsQixHQUFpQ0EsWUFBakM7QUFDRCxLQUpELE1BSU87QUFBRTtBQUNQYSxNQUFBQSxpQkFBaUIsQ0FBQ2IsWUFBbEIsR0FBaUNWLGVBQWUsQ0FBQ3VCLGlCQUFELENBQWhEO0FBQ0Q7O0FBQ0RBLElBQUFBLGlCQUFpQixDQUFDWixrQkFBbEIsR0FBdUMsS0FBdkM7QUFDRCxHQW5CRCxNQW1CTyxJQUFJTCxVQUFVLEtBQUtULGNBQW5CLEVBQW1DO0FBQ3hDeUIsSUFBQUEsc0JBQXNCLENBQUNDLGlCQUFELEVBQW9CQyxZQUFwQixFQUFrQ0MsaUJBQWxDLENBQXRCO0FBQ0FGLElBQUFBLGlCQUFpQixDQUFDakIsVUFBbEIsR0FBK0JpQixpQkFBaUIsQ0FBQ2xCLFVBQWxCLEtBQWlDLElBQWpDLEdBQXdDLEtBQXhDLEdBQWdELEtBQS9FO0FBQ0FrQixJQUFBQSxpQkFBaUIsQ0FBQ2IsWUFBbEIsR0FBaUNWLGVBQWUsQ0FBQ3VCLGlCQUFELENBQWhEO0FBQ0QsR0FKTSxNQUlBLElBQUlqQixVQUFVLEtBQUtSLGlCQUFuQixFQUFzQztBQUMzQ3dCLElBQUFBLHNCQUFzQixDQUFDQyxpQkFBRCxFQUFvQkMsWUFBcEIsRUFBa0NDLGlCQUFsQyxDQUF0QjtBQUNBRixJQUFBQSxpQkFBaUIsQ0FBQ2pCLFVBQWxCLEdBQStCaUIsaUJBQWlCLENBQUNsQixVQUFsQixLQUFpQyxJQUFqQyxHQUF3QyxLQUF4QyxHQUFnRCxLQUEvRTtBQUNBa0IsSUFBQUEsaUJBQWlCLENBQUNiLFlBQWxCLEdBQWlDVixlQUFlLENBQUN1QixpQkFBRCxDQUFoRDtBQUNEOztBQUNELFNBQU9BLGlCQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNjLDJCQUFULFFBS0o7QUFBQSxNQUpEQyxLQUlDLFNBSkRBLEtBSUM7QUFBQSxNQUhENUIsWUFHQyxTQUhEQSxZQUdDO0FBQUEsTUFGRDZCLFlBRUMsU0FGREEsWUFFQztBQUFBLE1BRERDLG9CQUNDLFNBRERBLG9CQUNDO0FBQ0QsTUFBTUMsT0FBTyxHQUFHRCxvQkFBb0IsQ0FBQ0UsU0FBckIsRUFBaEI7QUFDQSxNQUFJQyxLQUFLLEdBQUdILG9CQUFvQixDQUFDSSxrQkFBckIsQ0FBd0NILE9BQXhDLEVBQWlELGNBQWpELEVBQWlFL0IsWUFBakUsQ0FBWjtBQUVBLE1BQU1tQyx1QkFBdUIsR0FBRztBQUM5QlAsSUFBQUEsS0FBSyxFQUFMQSxLQUQ4QjtBQUN2QjtBQUNQUSxJQUFBQSxPQUFPLEVBQUVMLE9BRnFCO0FBRzlCTSxJQUFBQSxPQUFPLEVBQUVKLEtBSHFCO0FBSTlCSyxJQUFBQSxjQUFjLEVBQUUsSUFKYztBQUs5QkMsSUFBQUEsUUFBUSxFQUFFLGtCQUFDekMsS0FBRCxFQUFRbUMsS0FBUixFQUFxQztBQUFBLFVBQXRCTyxZQUFzQix1RUFBVCxJQUFTO0FBQzdDLFVBQUlDLElBQUo7O0FBRUEsVUFBS1IsS0FBSyxHQUFHLENBQVQsSUFBZW5DLEtBQW5CLEVBQTBCO0FBQ3hCLFlBQU00QyxPQUFPLEdBQUc7QUFDZHhCLFVBQUFBLEdBQUcsRUFBRXBCLEtBRFM7QUFFZEEsVUFBQUEsS0FBSyxFQUFMQTtBQUZjLFNBQWhCOztBQUlBLFlBQU1tQyxNQUFLLEdBQUdILG9CQUFvQixDQUFDYSxnQkFBckIsQ0FBc0NELE9BQXRDLENBQWQ7O0FBRUEsWUFBSVQsTUFBSyxJQUFJLENBQWIsRUFBZ0I7QUFDZFEsVUFBQUEsSUFBSSxHQUFHWCxvQkFBb0IsQ0FBQ0UsU0FBckIsR0FBaUNDLE1BQWpDLENBQVA7QUFDRDtBQUNGLE9BVkQsTUFVTztBQUNMUSxRQUFBQSxJQUFJLEdBQUdYLG9CQUFvQixDQUFDYyxjQUFyQixDQUFvQzlDLEtBQXBDLENBQVA7QUFDRDs7QUFFRCxVQUFJMkMsSUFBSixFQUFVO0FBQ1JaLFFBQUFBLFlBQVksQ0FBQ1ksSUFBRCxFQUFPRCxZQUFQLENBQVo7QUFDRDtBQUNGLEtBekI2QjtBQTBCOUJLLElBQUFBLFVBQVUsRUFBRSxvQkFBQS9DLEtBQUssRUFBSTtBQUNuQixVQUFNaUMsT0FBTyxHQUFHRCxvQkFBb0IsQ0FBQ0UsU0FBckIsRUFBaEI7QUFDQSxVQUFNYyxXQUFXLEdBQUdoQixvQkFBb0IsQ0FBQ0ksa0JBQXJCLENBQXdDSCxPQUF4QyxFQUFpRCxPQUFqRCxFQUEwRGpDLEtBQTFELENBQXBCO0FBQ0FnQyxNQUFBQSxvQkFBb0IsQ0FBQ2lCLGlCQUFyQixDQUF1Q0QsV0FBdkM7QUFDRDtBQTlCNkIsR0FBaEM7QUFpQ0EsU0FBT1gsdUJBQVA7QUFDRDtBQUVELE9BQU8sU0FBU2EsVUFBVCxDQUFvQmhELFlBQXBCLEVBQTBDRCxNQUExQyxFQUEwRGtELElBQTFELEVBQWlGO0FBQ3RGLE1BQUlDLE9BQUo7O0FBRUEsTUFBSTtBQUFBLDhCQUNvQ2xELFlBQVksQ0FBQ21ELEtBQWIsQ0FBbUIsR0FBbkIsQ0FEcEM7QUFBQTtBQUFBLFFBQ0d6RCxLQURIO0FBQUEsUUFDVUMsVUFEVjtBQUFBLFFBQ3NCQyxVQUR0Qjs7QUFHRixZQUFRQSxVQUFSO0FBQ0EsV0FBS2IsZUFBTDtBQUNFWSxRQUFBQSxVQUFVLEdBQUdzRCxJQUFJLEdBQUdwRSxZQUFILEdBQWtCRyxZQUFuQztBQUNBWSxRQUFBQSxVQUFVLEdBQUdxRCxJQUFJLEdBQ2JuRSxrQkFEYSxHQUViRyxrQkFGSjtBQUdBOztBQUVGLFdBQUtFLGNBQUw7QUFDRVMsUUFBQUEsVUFBVSxHQUFJRCxVQUFVLEtBQUssSUFBaEIsR0FBd0IsS0FBeEIsR0FBZ0MsS0FBN0M7QUFDQTs7QUFFRixXQUFLUCxpQkFBTDtBQUNFUSxRQUFBQSxVQUFVLEdBQUlELFVBQVUsS0FBSyxJQUFoQixHQUF3QixLQUF4QixHQUFnQyxLQUE3QztBQUNBO0FBZEY7O0FBZ0JBdUQsSUFBQUEsT0FBTyxhQUFNeEQsS0FBTixjQUFlQyxVQUFmLGNBQTZCQyxVQUE3QixDQUFQO0FBQ0QsR0FwQkQsQ0FvQkUsT0FBT3dELENBQVAsRUFBVSxDQUNWO0FBQ0QsR0F6QnFGLENBMkJ0Rjs7O0FBQ0EsbUJBQVVyRCxNQUFNLElBQUksRUFBcEIsY0FBMEJtRCxPQUExQjtBQUNEO0FBRUQsT0FBTyxTQUFTRyw4QkFBVCxDQUNMckQsWUFESyxFQUVMRCxNQUZLLEVBR0x1RCxTQUhLLEVBSUxMLElBSkssRUFLUDtBQUNFLE1BQU1DLE9BQU8sR0FBR0YsVUFBVSxDQUFDaEQsWUFBRCxFQUFlRCxNQUFmLEVBQXVCa0QsSUFBdkIsQ0FBMUI7QUFDQSxNQUFNTSxRQUFRLEdBQUdELFNBQVMsR0FBR0osT0FBN0I7QUFDQSxTQUFPSyxRQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNDLGNBQVQsQ0FBd0J0QyxHQUF4QixFQUE2QjtBQUNsQyxNQUFJdUMsYUFBYSxHQUFHLEtBQXBCO0FBQ0EsTUFBSUMsUUFBUSxHQUFHLEtBQWY7O0FBRUEsTUFBSTtBQUNGLFFBQU1DLEtBQUssR0FBR3pDLEdBQUcsQ0FBQ2lDLEtBQUosQ0FBVSxHQUFWLENBQWQ7O0FBREUsZ0NBRXFDUSxLQUZyQztBQUFBLFFBRUtDLFFBRkw7QUFBQSxRQUVpQkMsSUFGakI7QUFBQSxRQUV1QkMsSUFGdkI7QUFBQSxRQUU2QkMsSUFGN0I7O0FBR0ZMLElBQUFBLFFBQVEsR0FBSUUsUUFBUSxLQUFLLFFBQXpCO0FBQ0EsUUFBTUksU0FBUyxHQUFHSCxJQUFJLEdBQUdBLElBQUksQ0FBQ1YsS0FBTCxDQUFXLEdBQVgsQ0FBSCxHQUFxQixFQUEzQzs7QUFFQSxRQUFJYSxTQUFTLENBQUNDLE1BQVYsSUFBb0IsQ0FBeEIsRUFBMkI7QUFBQSxpREFDUkQsU0FEUTtBQUFBOztBQUFBO0FBQ3pCLDREQUE0QjtBQUFBLGNBQW5CRSxJQUFtQjs7QUFDMUIsY0FBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVFIsWUFBQUEsUUFBUSxHQUFHLEtBQVg7QUFDQTtBQUNEO0FBQ0Y7QUFOd0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU8xQixLQVBELE1BT087QUFDTEEsTUFBQUEsUUFBUSxHQUFHLEtBQVg7QUFDRDs7QUFFRCxRQUFLRSxRQUFRLElBQUlDLElBQVosSUFBb0JDLElBQXBCLElBQTRCQyxJQUFqQyxFQUF3QztBQUFBLHdCQUNOQSxJQUFJLENBQUNaLEtBQUwsQ0FBVyxHQUFYLENBRE07QUFBQTtBQUFBLFVBQy9CeEQsVUFEK0I7QUFBQSxVQUNuQndFLFNBRG1COztBQUV0Q1YsTUFBQUEsYUFBYSxHQUFHOUQsVUFBVSxJQUFJd0UsU0FBOUI7QUFDRDtBQUNGLEdBckJELENBcUJFLGdCQUFNO0FBQ05DLElBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHNCQUFzQm5ELEdBQWxDO0FBQ0Q7O0FBQ0QsU0FBTztBQUFFd0MsSUFBQUEsUUFBUSxFQUFSQSxRQUFGO0FBQVlELElBQUFBLGFBQWEsRUFBYkE7QUFBWixHQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNhLHVCQUFULENBQWlDQyxjQUFqQyxFQUF5RDtBQUM5RCxNQUFJQyxPQUFPLEdBQUcsRUFBZDs7QUFFQSxNQUFJRCxjQUFjLENBQUNoRyx5QkFBRCxDQUFsQixFQUErQztBQUM3Q2lHLElBQUFBLE9BQU8sR0FBRzVGLDRCQUFWO0FBQ0QsR0FGRCxNQUVPLElBQUkyRixjQUFjLENBQUNsRyxzQkFBRCxDQUFsQixFQUE0QztBQUNqRG1HLElBQUFBLE9BQU8sR0FBRzdGLDBCQUFWO0FBQ0QsR0FGTSxNQUVBLElBQUk0RixjQUFjLENBQUNuRyx1QkFBRCxDQUFsQixFQUE2QztBQUNsRG9HLElBQUFBLE9BQU8sR0FBRy9GLHdCQUFWO0FBQ0QsR0FGTSxNQUVBLElBQUk4RixjQUFjLENBQUMvRiwwQkFBRCxDQUFsQixFQUFnRDtBQUNyRGdHLElBQUFBLE9BQU8sR0FBR3RGLDZCQUFWO0FBQ0Q7O0FBQ0QsU0FBT3NGLE9BQVA7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTQyxrQkFBVCxDQUE0QkYsY0FBNUIsRUFBb0R4RSxNQUFwRCxFQUFvRUMsWUFBcEUsRUFBMEZpRCxJQUExRixFQUF5RztBQUM5RyxNQUFJdUIsT0FBTyxHQUFHLEVBQWQ7O0FBRUEsTUFBSUQsY0FBYyxDQUFDakcsYUFBRCxDQUFsQixFQUFtQztBQUNqQ2tHLElBQUFBLE9BQU8sR0FBRzlGLGdCQUFWO0FBQ0QsR0FGRCxNQUVPO0FBQ0w4RixJQUFBQSxPQUFPLEdBQUdGLHVCQUF1QixDQUFDQyxjQUFELENBQWpDOztBQUVBLFFBQUlDLE9BQUosRUFBYTtBQUNYQSxNQUFBQSxPQUFPLEdBQUduQiw4QkFBOEIsQ0FBQ3JELFlBQUQsRUFBZUQsTUFBZixFQUF1QnlFLE9BQXZCLEVBQWdDdkIsSUFBaEMsQ0FBeEM7QUFDRDtBQUNGOztBQUNELFNBQU91QixPQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLFNBQVNFLHVCQUFULENBQWlDaEYsS0FBakMsRUFBZ0RDLFVBQWhELEVBQW9Fd0UsU0FBcEUsRUFBdUYzRSxHQUF2RixFQUFvRztBQUN6RyxnQ0FBdUJFLEtBQXZCLGNBQWdDQyxVQUFoQyxjQUE4Q3dFLFNBQTlDLDJCQUF3RTNFLEdBQXhFO0FBQ0Q7QUFFRCxPQUFPLFNBQVNtRixhQUFULENBQXVCQyxVQUF2QixFQUFtQztBQUN4QyxNQUFJLE9BQU9BLFVBQVAsS0FBc0IsUUFBMUIsRUFBb0M7QUFDbEMsV0FBT0MsUUFBUSxDQUFDRCxVQUFELENBQWY7QUFDRDs7QUFDRCxTQUFPQSxVQUFQO0FBQ0Q7QUFFRCxPQUFPLFNBQVNFLG1CQUFULENBQTZCQyxZQUE3QixFQUEyQztBQUNoRCxNQUFJQSxZQUFKLGFBQUlBLFlBQUosZUFBSUEsWUFBWSxDQUFFZCxNQUFsQixFQUEwQjtBQUN4QixRQUFNZSxhQUFhLHNCQUFPRCxZQUFQLENBQW5COztBQUVBLFNBQUssSUFBSUUsQ0FBQyxHQUFHLENBQVIsRUFBV0MsQ0FBQyxHQUFHRixhQUFhLENBQUNmLE1BQWxDLEVBQTBDZ0IsQ0FBQyxHQUFHQyxDQUE5QyxFQUFpREQsQ0FBQyxFQUFsRCxFQUFzRDtBQUNwRCxVQUFNRSxFQUFFLEdBQUdILGFBQWEsQ0FBQ0MsQ0FBRCxDQUF4Qjs7QUFFQSxVQUFJRSxFQUFFLENBQUNDLElBQUgsS0FBWSxNQUFaLEtBQXVCRCxFQUFFLENBQUNQLFVBQUgsSUFBaUJPLEVBQUUsQ0FBQ0UsV0FBM0MsQ0FBSixFQUE2RDtBQUMzRCxZQUFNQyxJQUFJLHFCQUFRSCxFQUFSLENBQVY7O0FBRUEsWUFBSUEsRUFBRSxDQUFDUCxVQUFQLEVBQW1CO0FBQ2pCVSxVQUFBQSxJQUFJLENBQUNWLFVBQUwsR0FBa0JELGFBQWEsQ0FBQ1EsRUFBRSxDQUFDUCxVQUFKLENBQS9CO0FBQ0Q7O0FBRUQsWUFBSU8sRUFBRSxDQUFDRSxXQUFQLEVBQW9CO0FBQ2xCQyxVQUFBQSxJQUFJLENBQUNELFdBQUwsR0FBbUJWLGFBQWEsQ0FBQ1EsRUFBRSxDQUFDRSxXQUFKLENBQWhDO0FBQ0Q7O0FBQ0RMLFFBQUFBLGFBQWEsQ0FBQ0MsQ0FBRCxDQUFiLEdBQW1CSyxJQUFuQjtBQUNELE9BWEQsTUFXTyxJQUFJSCxFQUFFLENBQUNJLFFBQVAsRUFBaUI7QUFDdEIsWUFBTUEsUUFBUSxHQUFHVCxtQkFBbUIsQ0FBQ0ssRUFBRSxDQUFDSSxRQUFKLENBQXBDOztBQUNBLFlBQU1DLEtBQUssbUNBQ05MLEVBRE07QUFFVEksVUFBQUEsUUFBUSxFQUFSQTtBQUZTLFVBQVg7O0FBSUFQLFFBQUFBLGFBQWEsQ0FBQ0MsQ0FBRCxDQUFiLEdBQW1CTyxLQUFuQjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT1IsYUFBUDtBQUNEOztBQUNELFNBQU8sRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1dPUkRfUE9QT1ZFUiA9IHRydWUgLy8gZGlzYWJsZSB3b3JkIHBvcG92ZXIgZm9yIGV2ZXJ5IHNjcmlwdHVyZSBwYW5lIGJ1dCBvcmlnaW5hbCBsYW5ndWFnZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGluayhzY3JpcHR1cmUpIHtcbiAgY29uc3QgcmVmID0gc2NyaXB0dXJlLnJlZiB8fCBzY3JpcHR1cmUuYnJhbmNoXG4gIHJldHVybiBgJHtzY3JpcHR1cmUub3duZXJ9LyR7c2NyaXB0dXJlLmxhbmd1YWdlSWR9LyR7c2NyaXB0dXJlLnJlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB2ZXJzZSBkYXRhIGdpdmVuIGEgc2NyaXB0dXJlIGNvbmZpZyBhbmQgdmVyc2UgbnVtYmVyXG4gKiBAcGFyYW0gc2NyaXB0dXJlQ29uZmlnXG4gKiBAcGFyYW0gdmVyc2VOdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlRGF0YUZyb21TY3JpcENvbmZpZyhzY3JpcHR1cmVDb25maWcsIHZlcnNlTnVtKSB7XG4gIHJldHVybiBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uZmluZChcbiAgICB2ZXJzZVJlZiA9PiB2ZXJzZVJlZi52ZXJzZSA9PT0gdmVyc2VOdW1cbiAgKVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIHJlc291cmNlIGlzIGFuIG9yaWdpbmFsIGxhbmd1YWdlIGJpYmxlXG4gKiBAcGFyYW0gcmVzb3VyY2VJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcmlnaW5hbEJpYmxlKHJlc291cmNlSWQpIHtcbiAgY29uc3QgaXNPcmlnID0gKChyZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpKVxuICByZXR1cm4gaXNPcmlnXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHNjcmlwdHVyZVNldHRpbmdzIGFyZSB1cCB0byBkYXRlIHdpdGggY3VycmVudCBvd25lciBhbmQgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5nczogYW55LCBjdXJyZW50T3duZXI6IGFueSwgY3VycmVudExhbmd1YWdlSWQ6IGFueSkge1xuICBpZiAoY3VycmVudE93bmVyICYmIChjdXJyZW50T3duZXIgIT09IHNjcmlwdHVyZVNldHRpbmdzLm93bmVyKSkgeyAvLyBpZiBvd25lciBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IGN1cnJlbnRPd25lclxuICB9XG5cbiAgaWYgKGN1cnJlbnRMYW5ndWFnZUlkICYmIChjdXJyZW50TGFuZ3VhZ2VJZCAhPT0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCkpIHsgLy8gaWYgbGFuZ3VhZ2UgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGN1cnJlbnRMYW5ndWFnZUlkXG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBVUkwgaW50byBzZXJ2ZXIgYW5kIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybCkge1xuICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW5hbFJlcG9VcmwpXG4gICAgY29uc3Qgc2VydmVyID0gdXJsLm9yaWdpblxuICAgIGNvbnN0IHJlc291cmNlTGluayA9IHVybC5wYXRobmFtZSArICh1cmwuc2VhcmNoIHx8ICcnKVxuICAgIHJldHVybiB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH1cbiAgfVxuICByZXR1cm4ge31cbn1cblxuLyoqXG4gKiBnZXQgdGhlIHNjcmlwdHVyZSBzZXR0aW5ncyBuZWVkZWQgZm9yIGZldGNoIC0gZm9yIE9yaWdMYW5nLCBVTFQsIEdMVCB3aWxsIHJlcGxhY2Ugb3duZXIgYW5kIGxhbmd1YWdlSWQgd2l0aCBjb3JyZWN0IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzX1xuICogQHBhcmFtIHtib29sZWFufSBpc05ld1Rlc3RhbWVudFxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybCAtIG9wdGlvbmFsIHBhdGggdG8gcmVwbyBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gIGJvb2tJZCwgc2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxSZXBvVXJsPW51bGwsXG4gIGN1cnJlbnRMYW5ndWFnZUlkPW51bGwsXG4gIGN1cnJlbnRPd25lcj1udWxsLFxuKSB7XG4gIGNvbnN0IHNjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5nc18gfVxuICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBESVNBQkxFX1dPUkRfUE9QT1ZFUlxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3NfLnJlc291cmNlSWRcblxuICBpZiAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSB7XG4gICAgLy8gc2VsZWN0IG9yaWdpbmFsIGxhbmd1YWdlIEJpYmxlIGJhc2VkIG9uIHdoaWNoIHRlc3RhbWVudCB0aGUgYm9vayBiZWxvbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IGlzTmV3VGVzdGFtZW50XG4gICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcblxuICAgIGlmIChzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXIpIHtcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyXG4gICAgfVxuXG4gICAgaWYgKG9yaWdpbmFsUmVwb1VybCkgeyAvLyB1c2UgdGhpcyB1cmwgaWYgZGVmaW5lZFxuICAgICAgY29uc3QgeyBzZXJ2ZXIsIHJlc291cmNlTGluayB9ID0gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKVxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Muc2VydmVyID0gc2VydmVyXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmtcbiAgICB9IGVsc2UgeyAvLyBmYWxsIGJhY2sgdG8gYXBwIGRlZmF1bHRzXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IGZhbHNlXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX0xJVEVSQUwpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VsdCcgOiAnZ2x0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfU0lNUExJRklFRCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndXN0JyA6ICdnc3QnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVTZXR0aW5nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgbGFiZWwsXG4gIHJlc291cmNlTGluayxcbiAgc2V0U2NyaXB0dXJlLFxuICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbn0pIHtcbiAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gIGxldCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAncmVzb3VyY2VMaW5rJywgcmVzb3VyY2VMaW5rKVxuXG4gIGNvbnN0IHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnID0ge1xuICAgIGxhYmVsLCAvLyBsYWJlbCBmb3IgY29tYm9ib3hcbiAgICBvcHRpb25zOiBoaXN0b3J5LFxuICAgIGN1cnJlbnQ6IGluZGV4LFxuICAgIGFsbG93VXNlcklucHV0OiB0cnVlLFxuICAgIG9uQ2hhbmdlOiAodGl0bGUsIGluZGV4LCB2YWxpZGF0aW9uQ0I9bnVsbCkgPT4ge1xuICAgICAgbGV0IGl0ZW1cblxuICAgICAgaWYgKChpbmRleCA8IDApICYmIHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7XG4gICAgICAgICAgdXJsOiB0aXRsZSxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3SXRlbSlcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVtpbmRleF1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldEl0ZW1CeVRpdGxlKHRpdGxlKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzZXRTY3JpcHR1cmUoaXRlbSwgdmFsaWRhdGlvbkNCKVxuICAgICAgfVxuICAgIH0sXG4gICAgZGVsZXRlSXRlbTogdGl0bGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gICAgICBjb25zdCBkZWxldGVJbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAndGl0bGUnLCB0aXRsZSlcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW1CeUluZGV4KGRlbGV0ZUluZGV4KVxuICAgIH0sXG4gIH1cblxuICByZXR1cm4gc2NyaXB0dXJlU2VsZWN0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcG9VcmwocmVzb3VyY2VMaW5rOiBzdHJpbmcsIHNlcnZlcjogc3RyaW5nLCBpc05UOiBib29sZWFuKTogc3RyaW5nIHtcbiAgbGV0IHJlcG9VcmxcblxuICB0cnkge1xuICAgIGxldCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcblxuICAgIHN3aXRjaCAocmVzb3VyY2VJZCkge1xuICAgIGNhc2UgT1JJR0lOQUxfU09VUkNFOlxuICAgICAgbGFuZ3VhZ2VJZCA9IGlzTlQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICAgIHJlc291cmNlSWQgPSBpc05UXG4gICAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfTElURVJBTDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndWx0JyA6ICdnbHQnXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfU0lNUExJRklFRDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndXN0JyA6ICdnc3QnXG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXBvVXJsID0gYCR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtyZXNvdXJjZUlkfWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHJlc291cmNlTGluayB3YXMgaW52YWxpZFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYCR7c2VydmVyIHx8ICcnfS8ke3JlcG9Vcmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKFxuICByZXNvdXJjZUxpbms6IHN0cmluZyxcbiAgc2VydmVyOiBzdHJpbmcsXG4gIGVycm9yQ29kZTogc3RyaW5nLFxuICBpc05UOiBib29sZWFuKTogc3RyaW5nXG57XG4gIGNvbnN0IHJlcG9VcmwgPSBnZXRSZXBvVXJsKHJlc291cmNlTGluaywgc2VydmVyLCBpc05UKVxuICBjb25zdCBlcnJvck1zZyA9IGVycm9yQ29kZSArIHJlcG9VcmxcbiAgcmV0dXJuIGVycm9yTXNnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURjc1VybCh1cmwpIHtcbiAgbGV0IHZhbGlkUmVwb1BhdGggPSBmYWxzZVxuICBsZXQgdmFsaWRVcmwgPSBmYWxzZVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKVxuICAgIGNvbnN0IFtwcm90b2NvbCwgLCBob3N0LCB1c2VyLCByZXBvXSA9IHBhcnRzXG4gICAgdmFsaWRVcmwgPSAocHJvdG9jb2wgPT09ICdodHRwczonKVxuICAgIGNvbnN0IGhvc3RQYXJ0cyA9IGhvc3QgPyBob3N0LnNwbGl0KCcuJykgOiBbXVxuXG4gICAgaWYgKGhvc3RQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgZm9yIChsZXQgcGFydCBvZiBob3N0UGFydHMpIHtcbiAgICAgICAgaWYgKCFwYXJ0KSB7XG4gICAgICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICggcHJvdG9jb2wgJiYgaG9zdCAmJiB1c2VyICYmIHJlcG8gKSB7XG4gICAgICBjb25zdCBbbGFuZ3VhZ2VJZCwgcHJvamVjdElkXSA9IHJlcG8uc3BsaXQoJ18nKVxuICAgICAgdmFsaWRSZXBvUGF0aCA9IGxhbmd1YWdlSWQgJiYgcHJvamVjdElkXG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEQ1MgVVJMOiAnICsgdXJsKVxuICB9XG4gIHJldHVybiB7IHZhbGlkVXJsLCB2YWxpZFJlcG9QYXRoIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QpIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tDT05URU5UX05PVF9GT1VORF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBkZWNvZGUgcmVzb3VyY2Ugc3RhdHVzIGludG8gc3RyaW5nLiAgQ3VycmVudGx5IG9ubHkgRW5nbGlzaFxuICogQHBhcmFtIHJlc291cmNlU3RhdHVzIC0gb2JqZWN0IHRoYXQgY29udGFpbnMgc3RhdGUgYW5kIGVycm9ycyB0aGF0IGFyZSBkZXRlY3RlZFxuICogQHBhcmFtIHNlcnZlciAtIGNvbnRhaW5zIHRoZSBzZXJ2ZXIgYmVpbmcgdXNlZFxuICogQHBhcmFtIHJlc291cmNlTGluayAtIHBhdGggdG8gcmVwbyBvbiBzZXJ2ZXJcbiAqIEBwYXJhbSBpc05UIC0gdHJ1ZSBpZiBOVCBib29rXG4gKiBAcmV0dXJuIGVtcHR5IHN0cmluZyBpZiBubyBlcnJvciwgZWxzZSByZXR1cm5zIHVzZXIgZXJyb3IgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QsIHNlcnZlcjogc3RyaW5nLCByZXNvdXJjZUxpbms6IHN0cmluZywgaXNOVDogYm9vbGVhbikge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW0xPQURJTkdfU1RBVEVdKSB7XG4gICAgbWVzc2FnZSA9IExPQURJTkdfUkVTT1VSQ0VcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXMpXG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgbWVzc2FnZSA9IGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhyZXNvdXJjZUxpbmssIHNlcnZlciwgbWVzc2FnZSwgaXNOVClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBnZW5lcmF0ZSByZXNvdXJjZSBzdHJpbmdcbiAqIEBwYXJhbSBvd25lclxuICogQHBhcmFtIGxhbmd1YWdlSWRcbiAqIEBwYXJhbSBwcm9qZWN0SWRcbiAqIEBwYXJhbSByZWZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGlua1NwZWNpZmljKG93bmVyOiBzdHJpbmcsIGxhbmd1YWdlSWQ6IHN0cmluZywgcHJvamVjdElkOiBzdHJpbmcsIHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiBgYXBpL3YxL3JlcG9zLyR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtwcm9qZWN0SWR9L2NvbnRlbnRzP3JlZj0ke3JlZn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXhPY2N1cnJlbmNlKG9jY3VycmVuY2UpIHtcbiAgaWYgKHR5cGVvZiBvY2N1cnJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZUludChvY2N1cnJlbmNlKVxuICB9XG4gIHJldHVybiBvY2N1cnJlbmNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cykge1xuICBpZiAodmVyc2VPYmplY3RzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB2ZXJzZU9iamVjdHNfID0gWy4uLnZlcnNlT2JqZWN0c11cblxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdmVyc2VPYmplY3RzXy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZvID0gdmVyc2VPYmplY3RzX1tpXVxuXG4gICAgICBpZiAodm8udHlwZSA9PT0gJ3dvcmQnICYmICh2by5vY2N1cnJlbmNlIHx8IHZvLm9jY3VycmVuY2VzKSkge1xuICAgICAgICBjb25zdCB3b3JkID0geyAuLi52byB9XG5cbiAgICAgICAgaWYgKHZvLm9jY3VycmVuY2UpIHtcbiAgICAgICAgICB3b3JkLm9jY3VycmVuY2UgPSBmaXhPY2N1cnJlbmNlKHZvLm9jY3VycmVuY2UpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodm8ub2NjdXJyZW5jZXMpIHtcbiAgICAgICAgICB3b3JkLm9jY3VycmVuY2VzID0gZml4T2NjdXJyZW5jZSh2by5vY2N1cnJlbmNlcylcbiAgICAgICAgfVxuICAgICAgICB2ZXJzZU9iamVjdHNfW2ldID0gd29yZFxuICAgICAgfSBlbHNlIGlmICh2by5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGNsZWFudXBWZXJzZU9iamVjdHModm8uY2hpbGRyZW4pXG4gICAgICAgIGNvbnN0IG5ld1ZvID0ge1xuICAgICAgICAgIC4uLnZvLFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB9XG4gICAgICAgIHZlcnNlT2JqZWN0c19baV0gPSBuZXdWb1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzX1xuICB9XG4gIHJldHVybiBbXVxufVxuIl19
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './common';
|
|
2
2
|
export * from './delay';
|
|
3
|
+
export * from './maps';
|
|
3
4
|
export * from './LocalStorage';
|
|
4
5
|
export * from './ScriptureSettings';
|
|
5
6
|
export * from './ScriptureVersionHistory';
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQWQ7QUFDQSxjQUFjLFNBQWQ7QUFDQSxjQUFjLFFBQWQ7QUFDQSxjQUFjLGdCQUFkO0FBQ0EsY0FBYyxxQkFBZDtBQUNBLGNBQWMsMkJBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbidcbmV4cG9ydCAqIGZyb20gJy4vZGVsYXknXG5leHBvcnQgKiBmcm9tICcuL21hcHMnXG5leHBvcnQgKiBmcm9tICcuL0xvY2FsU3RvcmFnZSdcbmV4cG9ydCAqIGZyb20gJy4vU2NyaXB0dXJlU2V0dGluZ3MnXG5leHBvcnQgKiBmcm9tICcuL1NjcmlwdHVyZVZlcnNpb25IaXN0b3J5J1xuXG5cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import "core-js/modules/es.array.from.js";
|
|
2
|
+
import "core-js/modules/es.array.iterator.js";
|
|
3
|
+
import "core-js/modules/es.object.to-string.js";
|
|
4
|
+
import "core-js/modules/es.string.iterator.js";
|
|
5
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
6
|
+
import * as isEqual from 'deep-equal';
|
|
7
|
+
/**
|
|
8
|
+
* do quick comparison of two maps
|
|
9
|
+
* @param {Map} map1
|
|
10
|
+
* @param map2
|
|
11
|
+
* @return {boolean} - true if same
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export function areMapsTheSame(map1, map2) {
|
|
15
|
+
if (map1.size !== map2.size) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var keys1 = Array.from(map1.keys());
|
|
20
|
+
var keys2 = Array.from(map2.keys());
|
|
21
|
+
|
|
22
|
+
if (!isEqual(keys1, keys2)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var different = false;
|
|
27
|
+
|
|
28
|
+
for (var _i = 0, _keys = keys1; _i < _keys.length; _i++) {
|
|
29
|
+
var key = _keys[_i];
|
|
30
|
+
var value1 = map1.get(key);
|
|
31
|
+
var value2 = map2.get(key);
|
|
32
|
+
|
|
33
|
+
if (!isEqual(value1, value2)) {
|
|
34
|
+
different = true;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return !different;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tYXBzLnRzIl0sIm5hbWVzIjpbImlzRXF1YWwiLCJhcmVNYXBzVGhlU2FtZSIsIm1hcDEiLCJtYXAyIiwic2l6ZSIsImtleXMxIiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsImtleXMyIiwiZGlmZmVyZW50Iiwia2V5IiwidmFsdWUxIiwiZ2V0IiwidmFsdWUyIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sS0FBS0EsT0FBWixNQUF5QixZQUF6QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLFNBQVNDLGNBQVQsQ0FBeUJDLElBQXpCLEVBQStCQyxJQUEvQixFQUFzQztBQUMzQyxNQUFJRCxJQUFJLENBQUNFLElBQUwsS0FBY0QsSUFBSSxDQUFDQyxJQUF2QixFQUE2QjtBQUMzQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxNQUFNQyxLQUFLLEdBQUdDLEtBQUssQ0FBQ0MsSUFBTixDQUFZTCxJQUFJLENBQUNNLElBQUwsRUFBWixDQUFkO0FBQ0EsTUFBTUMsS0FBSyxHQUFHSCxLQUFLLENBQUNDLElBQU4sQ0FBWUosSUFBSSxDQUFDSyxJQUFMLEVBQVosQ0FBZDs7QUFFQSxNQUFJLENBQUNSLE9BQU8sQ0FBQ0ssS0FBRCxFQUFRSSxLQUFSLENBQVosRUFBNEI7QUFDMUIsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSUMsU0FBUyxHQUFHLEtBQWhCOztBQUVBLDJCQUFrQkwsS0FBbEIsMkJBQXlCO0FBQXBCLFFBQU1NLEdBQUcsWUFBVDtBQUNILFFBQU1DLE1BQU0sR0FBR1YsSUFBSSxDQUFDVyxHQUFMLENBQVNGLEdBQVQsQ0FBZjtBQUNBLFFBQU1HLE1BQU0sR0FBR1gsSUFBSSxDQUFDVSxHQUFMLENBQVNGLEdBQVQsQ0FBZjs7QUFFQSxRQUFJLENBQUNYLE9BQU8sQ0FBQ1ksTUFBRCxFQUFTRSxNQUFULENBQVosRUFBOEI7QUFDNUJKLE1BQUFBLFNBQVMsR0FBRyxJQUFaO0FBQ0E7QUFDRDtBQUNGOztBQUVELFNBQU8sQ0FBQ0EsU0FBUjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaXNFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuXG4vKipcbiAqIGRvIHF1aWNrIGNvbXBhcmlzb24gb2YgdHdvIG1hcHNcbiAqIEBwYXJhbSB7TWFwfSBtYXAxXG4gKiBAcGFyYW0gbWFwMlxuICogQHJldHVybiB7Ym9vbGVhbn0gLSB0cnVlIGlmIHNhbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyZU1hcHNUaGVTYW1lKCBtYXAxLCBtYXAyICkge1xuICBpZiAobWFwMS5zaXplICE9PSBtYXAyLnNpemUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGtleXMxID0gQXJyYXkuZnJvbSggbWFwMS5rZXlzKCkgKVxuICBjb25zdCBrZXlzMiA9IEFycmF5LmZyb20oIG1hcDIua2V5cygpIClcblxuICBpZiAoIWlzRXF1YWwoa2V5czEsIGtleXMyKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbGV0IGRpZmZlcmVudCA9IGZhbHNlXG5cbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICBjb25zdCB2YWx1ZTEgPSBtYXAxLmdldChrZXkpXG4gICAgY29uc3QgdmFsdWUyID0gbWFwMi5nZXQoa2V5KVxuXG4gICAgaWYgKCFpc0VxdWFsKHZhbHVlMSwgdmFsdWUyKSkge1xuICAgICAgZGlmZmVyZW50ID0gdHJ1ZVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gIWRpZmZlcmVudFxufVxuXG4iXX0=
|