@pie-lib/editable-html-tip-tap 2.1.20-beta.14 → 2.1.20-beta.15
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/lib/__tests__/EditableHtml.test.js +117 -1
- package/lib/__tests__/editor-attributes.test.js +158 -0
- package/lib/components/__tests__/MenuBar.test.js +91 -59
- package/lib/components/__tests__/toolbar-buttons.test.js +23 -7
- package/lib/components/respArea/__tests__/MathTemplated.test.js +2 -2
- package/lib/extensions/__tests__/math.test.js +99 -87
- package/package.json +3 -3
|
@@ -1074,6 +1074,7 @@ describe('MathNodeView', function () {
|
|
|
1074
1074
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1075
1075
|
});
|
|
1076
1076
|
case 1:
|
|
1077
|
+
_react2.fireEvent.mouseDown(document.body);
|
|
1077
1078
|
_react2.fireEvent.click(document.body);
|
|
1078
1079
|
_context16.next = 2;
|
|
1079
1080
|
return (0, _react2.waitFor)(function () {
|
|
@@ -1138,29 +1139,51 @@ describe('MathNodeView', function () {
|
|
|
1138
1139
|
}
|
|
1139
1140
|
}, _callee17);
|
|
1140
1141
|
})));
|
|
1141
|
-
it('
|
|
1142
|
-
var _render18,
|
|
1142
|
+
it('ignores the click that completes the gesture which opened the toolbar', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee18() {
|
|
1143
|
+
var _render18, queryByTestId;
|
|
1143
1144
|
return _regenerator["default"].wrap(function (_context18) {
|
|
1144
1145
|
while (1) switch (_context18.prev = _context18.next) {
|
|
1145
1146
|
case 0:
|
|
1146
1147
|
_render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1147
1148
|
selected: true
|
|
1148
|
-
}))),
|
|
1149
|
+
}))), queryByTestId = _render18.queryByTestId;
|
|
1149
1150
|
_context18.next = 1;
|
|
1150
1151
|
return (0, _react2.waitFor)(function () {
|
|
1151
1152
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1152
1153
|
});
|
|
1154
|
+
case 1:
|
|
1155
|
+
// The mousedown happened before the toolbar opened, so only the click arrives here.
|
|
1156
|
+
_react2.fireEvent.click(document.body);
|
|
1157
|
+
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1158
|
+
case 2:
|
|
1159
|
+
case "end":
|
|
1160
|
+
return _context18.stop();
|
|
1161
|
+
}
|
|
1162
|
+
}, _callee18);
|
|
1163
|
+
})));
|
|
1164
|
+
it('does not close toolbar when clicking the math node preview', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee19() {
|
|
1165
|
+
var _render19, getByTestId, queryByTestId;
|
|
1166
|
+
return _regenerator["default"].wrap(function (_context19) {
|
|
1167
|
+
while (1) switch (_context19.prev = _context19.next) {
|
|
1168
|
+
case 0:
|
|
1169
|
+
_render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1170
|
+
selected: true
|
|
1171
|
+
}))), getByTestId = _render19.getByTestId, queryByTestId = _render19.queryByTestId;
|
|
1172
|
+
_context19.next = 1;
|
|
1173
|
+
return (0, _react2.waitFor)(function () {
|
|
1174
|
+
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1175
|
+
});
|
|
1153
1176
|
case 1:
|
|
1154
1177
|
_react2.fireEvent.click(getByTestId('math-preview'));
|
|
1155
|
-
|
|
1178
|
+
_context19.next = 2;
|
|
1156
1179
|
return (0, _react2.waitFor)(function () {
|
|
1157
1180
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1158
1181
|
});
|
|
1159
1182
|
case 2:
|
|
1160
1183
|
case "end":
|
|
1161
|
-
return
|
|
1184
|
+
return _context19.stop();
|
|
1162
1185
|
}
|
|
1163
|
-
},
|
|
1186
|
+
}, _callee19);
|
|
1164
1187
|
})));
|
|
1165
1188
|
describe('unique math-node class per instance', function () {
|
|
1166
1189
|
var dateNowSpy;
|
|
@@ -1173,46 +1196,34 @@ describe('MathNodeView', function () {
|
|
|
1173
1196
|
afterEach(function () {
|
|
1174
1197
|
dateNowSpy.mockRestore();
|
|
1175
1198
|
});
|
|
1176
|
-
|
|
1177
|
-
// The wrapper is an emotion styled() component, so className also carries
|
|
1178
|
-
// emotion's generated class - assert on the math-node token, not equality.
|
|
1179
1199
|
it('assigns a timestamp-based class to NodeViewWrapper', function () {
|
|
1180
|
-
var
|
|
1181
|
-
getByTestId =
|
|
1200
|
+
var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, defaultProps)),
|
|
1201
|
+
getByTestId = _render20.getByTestId;
|
|
1182
1202
|
var wrapper = getByTestId('node-view-wrapper');
|
|
1183
|
-
expect(
|
|
1184
|
-
return /^math-node-\d+$/.test(c);
|
|
1185
|
-
})).toBe(true);
|
|
1203
|
+
expect(wrapper.className).toMatch(/^math-node-\d+$/);
|
|
1186
1204
|
});
|
|
1187
1205
|
it('assigns a different class to each MathNodeView instance', function () {
|
|
1188
|
-
var
|
|
1206
|
+
var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_math.MathNodeView, defaultProps), /*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1189
1207
|
node: {
|
|
1190
1208
|
attrs: {
|
|
1191
1209
|
latex: 'y^2'
|
|
1192
1210
|
}
|
|
1193
1211
|
}
|
|
1194
1212
|
})))),
|
|
1195
|
-
getAllByTestId =
|
|
1213
|
+
getAllByTestId = _render21.getAllByTestId;
|
|
1196
1214
|
var wrappers = getAllByTestId('node-view-wrapper');
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
return c.startsWith('math-node-');
|
|
1200
|
-
});
|
|
1201
|
-
};
|
|
1202
|
-
expect(mathNodeClass(wrappers[0])).toBe('math-node-1000');
|
|
1203
|
-
expect(mathNodeClass(wrappers[1])).toBe('math-node-1001');
|
|
1204
|
-
// and they must differ
|
|
1205
|
-
expect(mathNodeClass(wrappers[0])).not.toBe(mathNodeClass(wrappers[1]));
|
|
1215
|
+
expect(wrappers[0].className).toBe('math-node-1000');
|
|
1216
|
+
expect(wrappers[1].className).toBe('math-node-1001');
|
|
1206
1217
|
});
|
|
1207
|
-
it('closes toolbar when clicking a different math node', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1208
|
-
var updateAttributes, editorA, editorB,
|
|
1209
|
-
return _regenerator["default"].wrap(function (
|
|
1210
|
-
while (1) switch (
|
|
1218
|
+
it('closes toolbar when clicking a different math node', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee20() {
|
|
1219
|
+
var updateAttributes, editorA, editorB, _render22, getAllByTestId, queryAllByTestId, secondPreview;
|
|
1220
|
+
return _regenerator["default"].wrap(function (_context20) {
|
|
1221
|
+
while (1) switch (_context20.prev = _context20.next) {
|
|
1211
1222
|
case 0:
|
|
1212
1223
|
updateAttributes = jest.fn();
|
|
1213
1224
|
editorA = createMockEditor();
|
|
1214
1225
|
editorB = createMockEditor();
|
|
1215
|
-
|
|
1226
|
+
_render22 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1216
1227
|
editor: editorA,
|
|
1217
1228
|
updateAttributes: updateAttributes,
|
|
1218
1229
|
selected: false
|
|
@@ -1224,16 +1235,17 @@ describe('MathNodeView', function () {
|
|
|
1224
1235
|
}
|
|
1225
1236
|
},
|
|
1226
1237
|
selected: false
|
|
1227
|
-
})))), getAllByTestId =
|
|
1238
|
+
})))), getAllByTestId = _render22.getAllByTestId, queryAllByTestId = _render22.queryAllByTestId;
|
|
1228
1239
|
_react2.fireEvent.click(getAllByTestId('math-preview')[0]);
|
|
1229
|
-
|
|
1240
|
+
_context20.next = 1;
|
|
1230
1241
|
return (0, _react2.waitFor)(function () {
|
|
1231
1242
|
expect(queryAllByTestId('math-toolbar')).toHaveLength(1);
|
|
1232
1243
|
});
|
|
1233
1244
|
case 1:
|
|
1234
1245
|
secondPreview = getAllByTestId('math-preview')[1];
|
|
1246
|
+
_react2.fireEvent.mouseDown(secondPreview);
|
|
1235
1247
|
_react2.fireEvent.click(secondPreview);
|
|
1236
|
-
|
|
1248
|
+
_context20.next = 2;
|
|
1237
1249
|
return (0, _react2.waitFor)(function () {
|
|
1238
1250
|
expect(queryAllByTestId('math-toolbar')).toHaveLength(1);
|
|
1239
1251
|
expect(updateAttributes).toHaveBeenCalledWith({
|
|
@@ -1244,38 +1256,38 @@ describe('MathNodeView', function () {
|
|
|
1244
1256
|
});
|
|
1245
1257
|
case 2:
|
|
1246
1258
|
case "end":
|
|
1247
|
-
return
|
|
1259
|
+
return _context20.stop();
|
|
1248
1260
|
}
|
|
1249
|
-
},
|
|
1261
|
+
}, _callee20);
|
|
1250
1262
|
})));
|
|
1251
1263
|
});
|
|
1252
1264
|
describe('selection-based toolbar guard', function () {
|
|
1253
|
-
it('opens toolbar when selected transitions to true and the editor has a NodeSelection on math', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1254
|
-
var
|
|
1255
|
-
return _regenerator["default"].wrap(function (
|
|
1256
|
-
while (1) switch (
|
|
1265
|
+
it('opens toolbar when selected transitions to true and the editor has a NodeSelection on math', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee21() {
|
|
1266
|
+
var _render23, queryByTestId, rerender;
|
|
1267
|
+
return _regenerator["default"].wrap(function (_context21) {
|
|
1268
|
+
while (1) switch (_context21.prev = _context21.next) {
|
|
1257
1269
|
case 0:
|
|
1258
|
-
|
|
1270
|
+
_render23 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1259
1271
|
selected: false
|
|
1260
|
-
}))), queryByTestId =
|
|
1272
|
+
}))), queryByTestId = _render23.queryByTestId, rerender = _render23.rerender;
|
|
1261
1273
|
expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();
|
|
1262
1274
|
rerender(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1263
1275
|
selected: true
|
|
1264
1276
|
})));
|
|
1265
|
-
|
|
1277
|
+
_context21.next = 1;
|
|
1266
1278
|
return (0, _react2.waitFor)(function () {
|
|
1267
1279
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1268
1280
|
});
|
|
1269
1281
|
case 1:
|
|
1270
1282
|
case "end":
|
|
1271
|
-
return
|
|
1283
|
+
return _context21.stop();
|
|
1272
1284
|
}
|
|
1273
|
-
},
|
|
1285
|
+
}, _callee21);
|
|
1274
1286
|
})));
|
|
1275
|
-
it('does not open toolbar when selected briefly becomes true but editor selection has no node (Cmd+A / drag case)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1276
|
-
var editor,
|
|
1277
|
-
return _regenerator["default"].wrap(function (
|
|
1278
|
-
while (1) switch (
|
|
1287
|
+
it('does not open toolbar when selected briefly becomes true but editor selection has no node (Cmd+A / drag case)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee23() {
|
|
1288
|
+
var editor, _render24, queryByTestId, rerender;
|
|
1289
|
+
return _regenerator["default"].wrap(function (_context23) {
|
|
1290
|
+
while (1) switch (_context23.prev = _context23.next) {
|
|
1279
1291
|
case 0:
|
|
1280
1292
|
editor = _objectSpread(_objectSpread({}, defaultProps.editor), {}, {
|
|
1281
1293
|
state: _objectSpread(_objectSpread({}, defaultProps.editor.state), {}, {
|
|
@@ -1285,36 +1297,36 @@ describe('MathNodeView', function () {
|
|
|
1285
1297
|
} // no .node — TextSelection / AllSelection shape
|
|
1286
1298
|
})
|
|
1287
1299
|
});
|
|
1288
|
-
|
|
1300
|
+
_render24 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1289
1301
|
editor: editor,
|
|
1290
1302
|
selected: false
|
|
1291
|
-
}))), queryByTestId =
|
|
1303
|
+
}))), queryByTestId = _render24.queryByTestId, rerender = _render24.rerender;
|
|
1292
1304
|
rerender(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1293
1305
|
editor: editor,
|
|
1294
1306
|
selected: true
|
|
1295
1307
|
})));
|
|
1296
|
-
|
|
1297
|
-
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1298
|
-
return _regenerator["default"].wrap(function (
|
|
1299
|
-
while (1) switch (
|
|
1308
|
+
_context23.next = 1;
|
|
1309
|
+
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee22() {
|
|
1310
|
+
return _regenerator["default"].wrap(function (_context22) {
|
|
1311
|
+
while (1) switch (_context22.prev = _context22.next) {
|
|
1300
1312
|
case 0:
|
|
1301
1313
|
case "end":
|
|
1302
|
-
return
|
|
1314
|
+
return _context22.stop();
|
|
1303
1315
|
}
|
|
1304
|
-
},
|
|
1316
|
+
}, _callee22);
|
|
1305
1317
|
})));
|
|
1306
1318
|
case 1:
|
|
1307
1319
|
expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();
|
|
1308
1320
|
case 2:
|
|
1309
1321
|
case "end":
|
|
1310
|
-
return
|
|
1322
|
+
return _context23.stop();
|
|
1311
1323
|
}
|
|
1312
|
-
},
|
|
1324
|
+
}, _callee23);
|
|
1313
1325
|
})));
|
|
1314
|
-
it('does not open toolbar when selected briefly becomes true but NodeSelection targets a non-math node', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1315
|
-
var editor,
|
|
1316
|
-
return _regenerator["default"].wrap(function (
|
|
1317
|
-
while (1) switch (
|
|
1326
|
+
it('does not open toolbar when selected briefly becomes true but NodeSelection targets a non-math node', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee25() {
|
|
1327
|
+
var editor, _render25, queryByTestId, rerender;
|
|
1328
|
+
return _regenerator["default"].wrap(function (_context25) {
|
|
1329
|
+
while (1) switch (_context25.prev = _context25.next) {
|
|
1318
1330
|
case 0:
|
|
1319
1331
|
editor = _objectSpread(_objectSpread({}, defaultProps.editor), {}, {
|
|
1320
1332
|
state: _objectSpread(_objectSpread({}, defaultProps.editor.state), {}, {
|
|
@@ -1329,42 +1341,42 @@ describe('MathNodeView', function () {
|
|
|
1329
1341
|
}
|
|
1330
1342
|
})
|
|
1331
1343
|
});
|
|
1332
|
-
|
|
1344
|
+
_render25 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1333
1345
|
editor: editor,
|
|
1334
1346
|
selected: false
|
|
1335
|
-
}))), queryByTestId =
|
|
1347
|
+
}))), queryByTestId = _render25.queryByTestId, rerender = _render25.rerender;
|
|
1336
1348
|
rerender(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1337
1349
|
editor: editor,
|
|
1338
1350
|
selected: true
|
|
1339
1351
|
})));
|
|
1340
|
-
|
|
1341
|
-
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1342
|
-
return _regenerator["default"].wrap(function (
|
|
1343
|
-
while (1) switch (
|
|
1352
|
+
_context25.next = 1;
|
|
1353
|
+
return (0, _react2.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee24() {
|
|
1354
|
+
return _regenerator["default"].wrap(function (_context24) {
|
|
1355
|
+
while (1) switch (_context24.prev = _context24.next) {
|
|
1344
1356
|
case 0:
|
|
1345
1357
|
case "end":
|
|
1346
|
-
return
|
|
1358
|
+
return _context24.stop();
|
|
1347
1359
|
}
|
|
1348
|
-
},
|
|
1360
|
+
}, _callee24);
|
|
1349
1361
|
})));
|
|
1350
1362
|
case 1:
|
|
1351
1363
|
expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();
|
|
1352
1364
|
case 2:
|
|
1353
1365
|
case "end":
|
|
1354
|
-
return
|
|
1366
|
+
return _context25.stop();
|
|
1355
1367
|
}
|
|
1356
|
-
},
|
|
1368
|
+
}, _callee25);
|
|
1357
1369
|
})));
|
|
1358
1370
|
});
|
|
1359
|
-
it('does not close toolbar when clicking equation editor dropdown', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function
|
|
1360
|
-
var
|
|
1361
|
-
return _regenerator["default"].wrap(function (
|
|
1362
|
-
while (1) switch (
|
|
1371
|
+
it('does not close toolbar when clicking equation editor dropdown', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee26() {
|
|
1372
|
+
var _render26, queryByTestId, dropdown;
|
|
1373
|
+
return _regenerator["default"].wrap(function (_context26) {
|
|
1374
|
+
while (1) switch (_context26.prev = _context26.next) {
|
|
1363
1375
|
case 0:
|
|
1364
|
-
|
|
1376
|
+
_render26 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1365
1377
|
selected: true
|
|
1366
|
-
}))), queryByTestId =
|
|
1367
|
-
|
|
1378
|
+
}))), queryByTestId = _render26.queryByTestId;
|
|
1379
|
+
_context26.next = 1;
|
|
1368
1380
|
return (0, _react2.waitFor)(function () {
|
|
1369
1381
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1370
1382
|
});
|
|
@@ -1374,7 +1386,7 @@ describe('MathNodeView', function () {
|
|
|
1374
1386
|
dropdown.id = 'equation-editor-select-listbox';
|
|
1375
1387
|
document.body.appendChild(dropdown);
|
|
1376
1388
|
_react2.fireEvent.click(dropdown);
|
|
1377
|
-
|
|
1389
|
+
_context26.next = 2;
|
|
1378
1390
|
return (0, _react2.waitFor)(function () {
|
|
1379
1391
|
expect(queryByTestId('math-toolbar')).toBeInTheDocument();
|
|
1380
1392
|
});
|
|
@@ -1382,9 +1394,9 @@ describe('MathNodeView', function () {
|
|
|
1382
1394
|
document.body.removeChild(dropdown);
|
|
1383
1395
|
case 3:
|
|
1384
1396
|
case "end":
|
|
1385
|
-
return
|
|
1397
|
+
return _context26.stop();
|
|
1386
1398
|
}
|
|
1387
|
-
},
|
|
1399
|
+
}, _callee26);
|
|
1388
1400
|
})));
|
|
1389
1401
|
it('renders with empty latex', function () {
|
|
1390
1402
|
var nodeWithEmptyLatex = {
|
|
@@ -1392,15 +1404,15 @@ describe('MathNodeView', function () {
|
|
|
1392
1404
|
latex: ''
|
|
1393
1405
|
}
|
|
1394
1406
|
};
|
|
1395
|
-
var
|
|
1407
|
+
var _render27 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, (0, _extends2["default"])({}, defaultProps, {
|
|
1396
1408
|
node: nodeWithEmptyLatex
|
|
1397
1409
|
}))),
|
|
1398
|
-
getByTestId =
|
|
1410
|
+
getByTestId = _render27.getByTestId;
|
|
1399
1411
|
expect(getByTestId('math-preview')).toBeInTheDocument();
|
|
1400
1412
|
});
|
|
1401
1413
|
it('has correct styling on NodeViewWrapper', function () {
|
|
1402
|
-
var
|
|
1403
|
-
getByTestId =
|
|
1414
|
+
var _render28 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_math.MathNodeView, defaultProps)),
|
|
1415
|
+
getByTestId = _render28.getByTestId;
|
|
1404
1416
|
var wrapper = getByTestId('node-view-wrapper');
|
|
1405
1417
|
expect(wrapper).toHaveStyle({
|
|
1406
1418
|
display: 'inline-flex',
|
|
@@ -1408,4 +1420,4 @@ describe('MathNodeView', function () {
|
|
|
1408
1420
|
});
|
|
1409
1421
|
});
|
|
1410
1422
|
});
|
|
1411
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aCIsInRvb2xiYXJVdGlscyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2V4Y2x1ZGVkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJqZXN0IiwibW9jayIsIk5vZGVWaWV3V3JhcHBlciIsIl9yZWYiLCJjaGlsZHJlbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJSZWFjdE5vZGVWaWV3UmVuZGVyZXIiLCJmbiIsImNvbXBvbmVudCIsIm1vY2tDcmVhdGVQb3J0YWwiLCJub2RlIiwicmVxdWlyZUFjdHVhbCIsImNyZWF0ZVBvcnRhbCIsIlJlYWN0IiwiTWF0aFByZXZpZXciLCJfcmVmMiIsImxhdGV4IiwiTWF0aFRvb2xiYXIiLCJfcmVmMyIsIm9uQ2hhbmdlIiwib25Eb25lIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibG9jYWxMYXRleCIsInNldExvY2FsTGF0ZXgiLCJ2YWx1ZSIsInRhcmdldCIsIm9uQ2xpY2siLCJ3cmFwTWF0aCIsIndyYXBwZXIiLCJOb2RlIiwiY3JlYXRlIiwiY29uZmlnIiwiUGx1Z2luIiwiUGx1Z2luS2V5Iiwia2V5IiwiVGV4dFNlbGVjdGlvbiIsImRvYyIsInBvcyIsInR5cGUiLCJOb2RlU2VsZWN0aW9uIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsIk1hdGhOb2RlIiwibmFtZSIsInRvQmUiLCJpbmxpbmUiLCJncm91cCIsImF0b20iLCJhdHRyaWJ1dGVzIiwiYWRkQXR0cmlidXRlcyIsInRvSGF2ZVByb3BlcnR5IiwidG9FcXVhbCIsImh0bWwiLCJydWxlcyIsInBhcnNlSFRNTCIsIkFycmF5IiwiaXNBcnJheSIsInRvSGF2ZUxlbmd0aCIsInJlc3VsdCIsInJlbmRlckhUTUwiLCJIVE1MQXR0cmlidXRlcyIsImNvbW1hbmRzIiwiYWRkQ29tbWFuZHMiLCJfdHlwZW9mMiIsImluc2VydE1hdGgiLCJzZXRUb29sYmFyT3BlbmVkU3B5Iiwic3B5T24iLCJtYXRoTm9kZSIsIm5vZGVTaXplIiwidHIiLCJpbnNlcnQiLCJtb2NrUmV0dXJuVGhpcyIsInNldFNlbGVjdGlvbiIsImVkaXRvciIsInZpZXciLCJzdGF0ZSIsInNjaGVtYSIsIm5vZGVzIiwibWF0aCIsInNlbGVjdGlvbiIsIiRmcm9tIiwiZGlzcGF0Y2giLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJtb2NrUmVzdG9yZSIsImFkZE5vZGVWaWV3IiwidG9CZURlZmluZWQiLCJwbHVnaW5zIiwiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIiwiYXBwZW5kVHJhbnNhY3Rpb24iLCJoYW5kbGVLZXlEb3duIiwicGx1Z2luIiwiRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbiIsInRleHROb2RlIiwibmV3U3RhdGUiLCJ0ZXh0IiwiZGVzY2VuZGFudHMiLCJjYiIsIm5vZGVBdCIsImRvY0NoYW5nZWQiLCJhbnl0aGluZyIsIm5vdCIsInRvQmVOdWxsIiwiY3JlYXRlRG9jV2l0aE1hdGhBbmRad3NwIiwicmVzb2x2ZU92ZXJyaWRlcyIsInVuZGVmaW5lZCIsInJlc29sdmUiLCJub2RlQWZ0ZXIiLCJub2RlQmVmb3JlIiwidGV4dENvbnRlbnQiLCJjcmVhdGVEb2NXaXRoUmVndWxhclRleHRCZWZvcmVDdXJzb3IiLCJjcmVhdGVWaWV3IiwiX3JlZjQiLCJfcmVmNCRzdGF0ZSIsInN0YXRlT3ZlcnJpZGVzIiwiZnJvbSIsImVtcHR5IiwiaGFuZGxlZCIsIlplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4iLCJfcmVxdWlyZSIsIl9yZXF1aXJlMiIsImNyZWF0ZUVkaXRvckVsZW1lbnQiLCJyZWN0IiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0IiwiZWxlbWVudCIsImRvY3VtZW50IiwiY29uZmlndXJhYmxlIiwiY3JlYXRlTW9ja0VkaXRvciIsInRvIiwic2V0TWV0YSIsImNvb3Jkc0F0UG9zIiwib3B0aW9ucyIsImZvY3VzIiwiaW5zdGFuY2VJZCIsIl90b29sYmFyT3BlbmVkIiwibW9ja05vZGUiLCJhdHRycyIsImRlZmF1bHRQcm9wcyIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwibW9ja0ltcGxlbWVudGF0aW9uIiwidXBkYXRlQXR0cmlidXRlcyIsInNlbGVjdGVkIiwiZ2V0UG9zIiwiX3JlbmRlciIsInJlbmRlciIsIk1hdGhOb2RlVmlldyIsImNvbnRhaW5lciIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJnZXRCeVRlc3RJZCIsIl9yZW5kZXIzIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfcmVuZGVyNCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwid2FpdEZvciIsInN0b3AiLCJfcmVuZGVyNSIsInF1ZXJ5QnlUZXN0SWQiLCJfY2FsbGVlMiIsIl9yZW5kZXI2IiwiX2NvbnRleHQyIiwidG9vbGJhciIsInF1ZXJ5U2VsZWN0b3IiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfY2FsbGVlMyIsIl9yZW5kZXI3IiwiX2NvbnRleHQzIiwic3R5bGUiLCJfY2FsbGVlNCIsImNvbnRhaW5lckVsIiwiX3JlbmRlcjgiLCJfY29udGV4dDQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfdGlwdGFwQ29udGFpbmVyRWwiLCJfY2FsbGVlNSIsIl9yZW5kZXI5IiwiX2NvbnRleHQ1IiwicG9zaXRpb24iLCJfY2FsbGVlNiIsIl9yZW5kZXIwIiwiX2NvbnRleHQ2IiwiekluZGV4IiwiX2NhbGxlZTciLCJfcmVuZGVyMSIsIl9jb250ZXh0NyIsIl9jYWxsZWU5Iiwib3JpZ2luYWxJbm5lckhlaWdodCIsIm9yaWdpbmFsSW5uZXJXaWR0aCIsIl9yZW5kZXIxMCIsIl9jb250ZXh0OSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwiaW5uZXJXaWR0aCIsIndyaXRhYmxlIiwiYm90dG9tIiwiYWN0IiwiX2NhbGxlZTgiLCJfY29udGV4dDgiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJQcm9taXNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicGFyc2VJbnQiLCJ0b0JlTGVzc1RoYW5PckVxdWFsIiwidG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCIsIl9jYWxsZWUwIiwiYWRkU3B5IiwiX2NvbnRleHQwIiwiYW55IiwiRnVuY3Rpb24iLCJfY2FsbGVlMSIsIl9jb250ZXh0MSIsIm1vY2tDbGVhciIsImxhc3RDYWxsIiwiY2FsbHMiLCJfY2FsbGVlMTAiLCJfY29udGV4dDEwIiwiYm9keSIsIl9jYWxsZWUxMSIsIl9yZW5kZXIxMSIsIl9jb250ZXh0MTEiLCJpbnB1dCIsImZpcmVFdmVudCIsImNoYW5nZSIsIl9jYWxsZWUxMiIsIl9yZW5kZXIxMiIsImRvbmVCdXR0b24iLCJfY29udGV4dDEyIiwiY2xpY2siLCJfY2FsbGVlMTMiLCJfcmVuZGVyMTMiLCJfY29udGV4dDEzIiwiX2NhbGxlZTE0IiwiX3JlbmRlcjE0IiwiX2NvbnRleHQxNCIsIl9jYWxsZWUxNSIsIl9yZW5kZXIxNSIsIl9jb250ZXh0MTUiLCJfY2FsbGVlMTYiLCJfcmVxdWlyZTMiLCJfcmVuZGVyMTYiLCJfY29udGV4dDE2IiwiX2NhbGxlZTE3IiwiYWRkRXZlbnRMaXN0ZW5lclNweSIsInJlbW92ZUV2ZW50TGlzdGVuZXJTcHkiLCJub2RlQSIsIm5vZGVCIiwiX3JlbmRlcjE3IiwicmVyZW5kZXIiLCJpbml0aWFsQ2FsbENvdW50IiwiX2NvbnRleHQxNyIsInRvQmVHcmVhdGVyVGhhbiIsIl9jYWxsZWUxOCIsIl9yZW5kZXIxOCIsIl9jb250ZXh0MTgiLCJkYXRlTm93U3B5IiwidGltZXN0YW1wIiwiRGF0ZSIsImFmdGVyRWFjaCIsIl9yZW5kZXIxOSIsImNsYXNzTGlzdCIsInNvbWUiLCJjIiwidGVzdCIsIl9yZW5kZXIyMCIsIkZyYWdtZW50IiwiZ2V0QWxsQnlUZXN0SWQiLCJ3cmFwcGVycyIsIm1hdGhOb2RlQ2xhc3MiLCJlbCIsImZpbmQiLCJzdGFydHNXaXRoIiwiX2NhbGxlZTE5IiwiZWRpdG9yQSIsImVkaXRvckIiLCJfcmVuZGVyMjEiLCJxdWVyeUFsbEJ5VGVzdElkIiwic2Vjb25kUHJldmlldyIsIl9jb250ZXh0MTkiLCJ0b0hhdmVWYWx1ZSIsIl9jYWxsZWUyMCIsIl9yZW5kZXIyMiIsIl9jb250ZXh0MjAiLCJfY2FsbGVlMjIiLCJfcmVuZGVyMjMiLCJfY29udGV4dDIyIiwiX2NhbGxlZTIxIiwiX2NvbnRleHQyMSIsIl9jYWxsZWUyNCIsIl9yZW5kZXIyNCIsIl9jb250ZXh0MjQiLCJfY2FsbGVlMjMiLCJfY29udGV4dDIzIiwiX2NhbGxlZTI1IiwiX3JlbmRlcjI1IiwiZHJvcGRvd24iLCJfY29udGV4dDI1IiwiaWQiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwibm9kZVdpdGhFbXB0eUxhdGV4IiwiX3JlbmRlcjI2IiwiX3JlbmRlcjI3IiwidG9IYXZlU3R5bGUiLCJkaXNwbGF5IiwiY3Vyc29yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4dGVuc2lvbnMvX190ZXN0c19fL21hdGgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCB3YWl0Rm9yLCBmaXJlRXZlbnQsIGFjdCB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbiwgTWF0aE5vZGUsIE1hdGhOb2RlVmlldywgWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbiB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0ICogYXMgdG9vbGJhclV0aWxzIGZyb20gJy4uLy4uL3V0aWxzL3Rvb2xiYXInO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBOb2RlVmlld1dyYXBwZXI6ICh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCIgey4uLnByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbiAgUmVhY3ROb2RlVmlld1JlbmRlcmVyOiBqZXN0LmZuKChjb21wb25lbnQpID0+IGNvbXBvbmVudCksXG59KSk7XG5cbmNvbnN0IG1vY2tDcmVhdGVQb3J0YWwgPSBqZXN0LmZuKChub2RlKSA9PiBub2RlKTtcbmplc3QubW9jaygncmVhY3QtZG9tJywgKCkgPT4gKHtcbiAgLi4uamVzdC5yZXF1aXJlQWN0dWFsKCdyZWFjdC1kb20nKSxcbiAgY3JlYXRlUG9ydGFsOiAoLi4uYXJncykgPT4gbW9ja0NyZWF0ZVBvcnRhbCguLi5hcmdzKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXRvb2xiYXInLCAoKSA9PiB7XG4gIGNvbnN0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbiAgcmV0dXJuIHtcbiAgICBNYXRoUHJldmlldzogKHsgbGF0ZXggfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1hdGgtcHJldmlld1wiPntsYXRleH08L2Rpdj4sXG4gICAgTWF0aFRvb2xiYXI6ICh7IGxhdGV4LCBvbkNoYW5nZSwgb25Eb25lIH0pID0+IHtcbiAgICAgIGNvbnN0IFtsb2NhbExhdGV4LCBzZXRMb2NhbExhdGV4XSA9IFJlYWN0LnVzZVN0YXRlKGxhdGV4KTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJtYXRoLXRvb2xiYXJcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibWF0aC1pbnB1dFwiXG4gICAgICAgICAgICB2YWx1ZT17bG9jYWxMYXRleH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRMb2NhbExhdGV4KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJkb25lLWJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG9uRG9uZShsb2NhbExhdGV4KX0+XG4gICAgICAgICAgICBEb25lXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9LFxuICB9O1xufSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnLCAoKSA9PiAoe1xuICB3cmFwTWF0aDogKGxhdGV4LCB3cmFwcGVyKSA9PiBsYXRleCxcbn0pKTtcblxuamVzdC5tb2NrKCdAdGlwdGFwL2NvcmUnLCAoKSA9PiAoe1xuICBOb2RlOiB7XG4gICAgY3JlYXRlOiBqZXN0LmZuKChjb25maWcpID0+IGNvbmZpZyksXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygncHJvc2VtaXJyb3Itc3RhdGUnLCAoKSA9PiAoe1xuICBQbHVnaW46IGplc3QuZm4oZnVuY3Rpb24gKGNvbmZpZykge1xuICAgIHJldHVybiBjb25maWc7XG4gIH0pLFxuICBQbHVnaW5LZXk6IGplc3QuZm4oZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICB9KSxcbiAgVGV4dFNlbGVjdGlvbjoge1xuICAgIGNyZWF0ZTogamVzdC5mbigoZG9jLCBwb3MpID0+ICh7IHR5cGU6ICd0ZXh0JywgcG9zIH0pKSxcbiAgfSxcbiAgTm9kZVNlbGVjdGlvbjoge1xuICAgIGNyZWF0ZTogamVzdC5mbigoZG9jLCBwb3MpID0+ICh7IHR5cGU6ICdub2RlJywgcG9zIH0pKSxcbiAgfSxcbn0pKTtcblxuZGVzY3JpYmUoJ01hdGhOb2RlJywgKCkgPT4ge1xuICBkZXNjcmliZSgnY29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgICBpdCgnaGFzIGNvcnJlY3QgbmFtZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChNYXRoTm9kZS5uYW1lKS50b0JlKCdtYXRoJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaXMgaW5saW5lJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KE1hdGhOb2RlLmlubGluZSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdpcyBpbiBpbmxpbmUgZ3JvdXAnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoTWF0aE5vZGUuZ3JvdXApLnRvQmUoJ2lubGluZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIGF0b21pYycsICgpID0+IHtcbiAgICAgIGV4cGVjdChNYXRoTm9kZS5hdG9tKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkQXR0cmlidXRlcycsICgpID0+IHtcbiAgICBpdCgncmV0dXJucyByZXF1aXJlZCBhdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IE1hdGhOb2RlLmFkZEF0dHJpYnV0ZXMoKTtcblxuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMpLnRvSGF2ZVByb3BlcnR5KCdsYXRleCcpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMpLnRvSGF2ZVByb3BlcnR5KCd3cmFwcGVyJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlcykudG9IYXZlUHJvcGVydHkoJ2h0bWwnKTtcblxuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMubGF0ZXgpLnRvRXF1YWwoeyBkZWZhdWx0OiAnJyB9KTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzLndyYXBwZXIpLnRvRXF1YWwoeyBkZWZhdWx0OiBudWxsIH0pO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMuaHRtbCkudG9FcXVhbCh7IGRlZmF1bHQ6IG51bGwgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzZUhUTUwnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgcGFyc2luZyBydWxlcyBmb3IgbGF0ZXgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBydWxlcyA9IE1hdGhOb2RlLnBhcnNlSFRNTCgpO1xuXG4gICAgICBleHBlY3QoQXJyYXkuaXNBcnJheShydWxlcykpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QocnVsZXMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICAgIGV4cGVjdChydWxlc1swXSkudG9IYXZlUHJvcGVydHkoJ3RhZycsICdzcGFuW2RhdGEtbGF0ZXhdJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBwYXJzaW5nIHJ1bGVzIGZvciBtYXRobWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBydWxlcyA9IE1hdGhOb2RlLnBhcnNlSFRNTCgpO1xuICAgICAgZXhwZWN0KHJ1bGVzWzFdKS50b0hhdmVQcm9wZXJ0eSgndGFnJywgJ3NwYW5bZGF0YS10eXBlPVwibWF0aG1sXCJdJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJIVE1MJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIG1hdGhtbCB3aGVuIGh0bWwgYXR0cmlidXRlIGlzIHByZXNlbnQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBNYXRoTm9kZS5yZW5kZXJIVE1MKHtcbiAgICAgICAgSFRNTEF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBodG1sOiAnPG1hdGg+PG1pPng8L21pPjwvbWF0aD4nLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHRbMF0pLnRvQmUoJ3NwYW4nKTtcbiAgICAgIGV4cGVjdChyZXN1bHRbMV0pLnRvSGF2ZVByb3BlcnR5KCdkYXRhLXR5cGUnLCAnbWF0aG1sJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBsYXRleCB3aGVuIGh0bWwgYXR0cmlidXRlIGlzIG5vdCBwcmVzZW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gTWF0aE5vZGUucmVuZGVySFRNTCh7XG4gICAgICAgIEhUTUxBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgbGF0ZXg6ICd4XjInLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHRbMF0pLnRvQmUoJ3NwYW4nKTtcbiAgICAgIGV4cGVjdChyZXN1bHRbMV0pLnRvSGF2ZVByb3BlcnR5KCdkYXRhLWxhdGV4JywgJycpO1xuICAgICAgZXhwZWN0KHJlc3VsdFsxXSkudG9IYXZlUHJvcGVydHkoJ2RhdGEtcmF3JywgJ3heMicpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkQ29tbWFuZHMnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgaW5zZXJ0TWF0aCBjb21tYW5kJywgKCkgPT4ge1xuICAgICAgY29uc3QgY29tbWFuZHMgPSBNYXRoTm9kZS5hZGRDb21tYW5kcygpO1xuXG4gICAgICBleHBlY3QoY29tbWFuZHMpLnRvSGF2ZVByb3BlcnR5KCdpbnNlcnRNYXRoJyk7XG4gICAgICBleHBlY3QodHlwZW9mIGNvbW1hbmRzLmluc2VydE1hdGgpLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5zZXJ0TWF0aCBvcGVucyB0aGUgdG9vbGJhciBhZnRlciBpbnNlcnRpbmcgYSBtYXRoIG5vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZXRUb29sYmFyT3BlbmVkU3B5ID0gamVzdC5zcHlPbih0b29sYmFyVXRpbHMsICdzZXRUb29sYmFyT3BlbmVkJyk7XG4gICAgICBjb25zdCBtYXRoTm9kZSA9IHsgdHlwZTogeyBuYW1lOiAnbWF0aCcgfSwgbm9kZVNpemU6IDEgfTtcbiAgICAgIGNvbnN0IHRyID0ge1xuICAgICAgICBpbnNlcnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgICBzZXRTZWxlY3Rpb246IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgICBkb2M6IHt9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICBzY2hlbWE6IHsgbm9kZXM6IHsgbWF0aDogeyBjcmVhdGU6IGplc3QuZm4oKCkgPT4gbWF0aE5vZGUpIH0gfSB9LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB7ICRmcm9tOiB7IHBvczogMSB9IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBkaXNwYXRjaCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGluc2VydE1hdGggPSBNYXRoTm9kZS5hZGRDb21tYW5kcygpLmluc2VydE1hdGgoJ3heMicpO1xuXG4gICAgICBpbnNlcnRNYXRoKHsgdHIsIGVkaXRvciwgZGlzcGF0Y2ggfSk7XG5cbiAgICAgIGV4cGVjdCh0ci5pbnNlcnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDEsIG1hdGhOb2RlKTtcbiAgICAgIGV4cGVjdCh0ci5zZXRTZWxlY3Rpb24pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChkaXNwYXRjaCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodHIpO1xuICAgICAgZXhwZWN0KHNldFRvb2xiYXJPcGVuZWRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVkaXRvciwgdHJ1ZSk7XG5cbiAgICAgIHNldFRvb2xiYXJPcGVuZWRTcHkubW9ja1Jlc3RvcmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2FkZE5vZGVWaWV3JywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIFJlYWN0Tm9kZVZpZXdSZW5kZXJlciByZXN1bHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBNYXRoTm9kZS5hZGROb2RlVmlldygpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkUHJvc2VNaXJyb3JQbHVnaW5zJywgKCkgPT4ge1xuICAgIGl0KCdyZWdpc3RlcnMgZW5zdXJlLXRleHQtYWZ0ZXItbWF0aCBhbmQgemVyby13aWR0aC1zcGFjZSBwbHVnaW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgcGx1Z2lucyA9IE1hdGhOb2RlLmFkZFByb3NlTWlycm9yUGx1Z2lucygpO1xuXG4gICAgICBleHBlY3QocGx1Z2lucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KHBsdWdpbnNbMF0uYXBwZW5kVHJhbnNhY3Rpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocGx1Z2luc1sxXS5wcm9wcy5oYW5kbGVLZXlEb3duKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbicsICgpID0+IHtcbiAgaXQoJ2luc2VydHMgYSB6ZXJvLXdpZHRoIHNwYWNlIGFmdGVyIGEgbWF0aCBub2RlIHdoZW4gbm8gdGV4dCBmb2xsb3dzJywgKCkgPT4ge1xuICAgIGNvbnN0IHBsdWdpbiA9IEVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4oJ21hdGgnKTtcbiAgICBjb25zdCB0ZXh0Tm9kZSA9IHsgdHlwZTogeyBuYW1lOiAndGV4dCcgfSB9O1xuICAgIGNvbnN0IG1hdGhOb2RlID0geyB0eXBlOiB7IG5hbWU6ICdtYXRoJyB9LCBub2RlU2l6ZTogMyB9O1xuICAgIGNvbnN0IHRyID0geyBpbnNlcnQ6IGplc3QuZm4oKSB9O1xuXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICBzY2hlbWE6IHsgdGV4dDogamVzdC5mbigodmFsdWUpID0+ICh7IHR5cGU6IHRleHROb2RlLnR5cGUsIHRleHQ6IHZhbHVlIH0pKSB9LFxuICAgICAgdHIsXG4gICAgICBkb2M6IHtcbiAgICAgICAgZGVzY2VuZGFudHM6IChjYikgPT4gY2IobWF0aE5vZGUsIDUpLFxuICAgICAgICBub2RlQXQ6IGplc3QuZm4oKCkgPT4gbnVsbCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQgPSBwbHVnaW4uYXBwZW5kVHJhbnNhY3Rpb24oW3sgZG9jQ2hhbmdlZDogdHJ1ZSB9XSwge30sIG5ld1N0YXRlKTtcblxuICAgIGV4cGVjdCh0ci5pbnNlcnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDgsIGV4cGVjdC5hbnl0aGluZygpKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlKHRyKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGluc2VydCB3aGVuIHRleHQgYWxyZWFkeSBmb2xsb3dzIHRoZSBtYXRoIG5vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgcGx1Z2luID0gRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbignbWF0aCcpO1xuICAgIGNvbnN0IHRyID0geyBpbnNlcnQ6IGplc3QuZm4oKSB9O1xuICAgIGNvbnN0IG1hdGhOb2RlID0geyB0eXBlOiB7IG5hbWU6ICdtYXRoJyB9LCBub2RlU2l6ZTogMyB9O1xuXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICBzY2hlbWE6IHsgdGV4dDogamVzdC5mbigpIH0sXG4gICAgICB0cixcbiAgICAgIGRvYzoge1xuICAgICAgICBkZXNjZW5kYW50czogKGNiKSA9PiBjYihtYXRoTm9kZSwgNSksXG4gICAgICAgIG5vZGVBdDogamVzdC5mbigoKSA9PiAoeyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9IH0pKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBsdWdpbi5hcHBlbmRUcmFuc2FjdGlvbihbeyBkb2NDaGFuZ2VkOiB0cnVlIH1dLCB7fSwgbmV3U3RhdGUpO1xuXG4gICAgZXhwZWN0KHRyLmluc2VydCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBudWxsIHdoZW4gdGhlIGRvY3VtZW50IGRpZCBub3QgY2hhbmdlJywgKCkgPT4ge1xuICAgIGNvbnN0IHBsdWdpbiA9IEVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4oJ21hdGgnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBsdWdpbi5hcHBlbmRUcmFuc2FjdGlvbihbeyBkb2NDaGFuZ2VkOiBmYWxzZSB9XSwge30sIHt9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbicsICgpID0+IHtcbiAgY29uc3QgY3JlYXRlRG9jV2l0aE1hdGhBbmRad3NwID0gKHJlc29sdmVPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgICByZXNvbHZlOiBqZXN0LmZuKChwb3MpID0+ICh7XG4gICAgICBub2RlQWZ0ZXI6IG51bGwsXG4gICAgICBub2RlQmVmb3JlOiBudWxsLFxuICAgICAgcG9zLFxuICAgICAgLi4ucmVzb2x2ZU92ZXJyaWRlc1twb3NdLFxuICAgIH0pKSxcbiAgICBub2RlQXQ6IGplc3QuZm4oKHBvcykgPT4ge1xuICAgICAgaWYgKHBvcyA9PT0gMSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9LCB0ZXh0Q29udGVudDogJ1xcdTIwMGInIH07XG4gICAgICB9XG4gICAgICBpZiAocG9zID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IHsgbmFtZTogJ21hdGgnIH0sIG5vZGVTaXplOiAxIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KSxcbiAgfSk7XG5cbiAgY29uc3QgY3JlYXRlRG9jV2l0aFJlZ3VsYXJUZXh0QmVmb3JlQ3Vyc29yID0gKCkgPT4gKHtcbiAgICByZXNvbHZlOiBqZXN0LmZuKChwb3MpID0+ICh7IG5vZGVBZnRlcjogbnVsbCwgbm9kZUJlZm9yZTogbnVsbCwgcG9zIH0pKSxcbiAgICBub2RlQXQ6IGplc3QuZm4oKHBvcykgPT4ge1xuICAgICAgaWYgKHBvcyA9PT0gMSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9LCB0ZXh0Q29udGVudDogJ2EnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KSxcbiAgfSk7XG5cbiAgY29uc3QgY3JlYXRlVmlldyA9ICh7IHN0YXRlOiBzdGF0ZU92ZXJyaWRlcyA9IHt9IH0gPSB7fSkgPT4ge1xuICAgIGNvbnN0IGRpc3BhdGNoID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHRyID0ge1xuICAgICAgZGVsZXRlOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIHNldFNlbGVjdGlvbjogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdGF0ZToge1xuICAgICAgICBzZWxlY3Rpb246IHsgZnJvbTogMiwgZW1wdHk6IHRydWUgfSxcbiAgICAgICAgZG9jOiBjcmVhdGVEb2NXaXRoTWF0aEFuZFp3c3AoKSxcbiAgICAgICAgdHIsXG4gICAgICAgIC4uLnN0YXRlT3ZlcnJpZGVzLFxuICAgICAgfSxcbiAgICAgIGRpc3BhdGNoLFxuICAgIH07XG4gIH07XG5cbiAgZGVzY3JpYmUoJ0JhY2tzcGFjZScsICgpID0+IHtcbiAgICBpdCgnZGVsZXRlcyB0aGUgaW5saW5lIG5vZGUgYW5kIHplcm8td2lkdGggc3BhY2UgYmVmb3JlIHRoZSBjdXJzb3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldygpO1xuICAgICAgY29uc3QgaGFuZGxlZCA9IFplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4ucHJvcHMuaGFuZGxlS2V5RG93bih2aWV3LCB7IGtleTogJ0JhY2tzcGFjZScgfSk7XG5cbiAgICAgIGV4cGVjdChoYW5kbGVkKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KHZpZXcuc3RhdGUudHIuZGVsZXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgwLCAyKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2aWV3LnN0YXRlLnRyKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGZhbHNlIHdoZW4gcmVndWxhciB0ZXh0IHByZWNlZGVzIHRoZSBjdXJzb3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldyh7XG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgZG9jOiBjcmVhdGVEb2NXaXRoUmVndWxhclRleHRCZWZvcmVDdXJzb3IoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBoYW5kbGVkID0gWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbi5wcm9wcy5oYW5kbGVLZXlEb3duKHZpZXcsIHsga2V5OiAnQmFja3NwYWNlJyB9KTtcblxuICAgICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUoZmFsc2UpO1xuICAgICAgZXhwZWN0KHZpZXcuc3RhdGUudHIuZGVsZXRlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHZpZXcuZGlzcGF0Y2gpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBcnJvd0xlZnQnLCAoKSA9PiB7XG4gICAgaXQoJ3NlbGVjdHMgdGhlIGlubGluZSBub2RlIGJlZm9yZSBhIHplcm8td2lkdGggc3BhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRoTm9kZSA9IHsgbm9kZVNpemU6IDMgfTtcbiAgICAgIGNvbnN0IHZpZXcgPSBjcmVhdGVWaWV3KHtcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICBkb2M6IGNyZWF0ZURvY1dpdGhNYXRoQW5kWndzcCh7XG4gICAgICAgICAgICAwOiB7IG5vZGVBZnRlcjogbWF0aE5vZGUsIG5vZGVCZWZvcmU6IG51bGwsIHBvczogMCB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCB7IE5vZGVTZWxlY3Rpb24gfSA9IHJlcXVpcmUoJ3Byb3NlbWlycm9yLXN0YXRlJyk7XG5cbiAgICAgIGNvbnN0IGhhbmRsZWQgPSBaZXJvV2lkdGhTcGFjZUhhbmRsaW5nUGx1Z2luLnByb3BzLmhhbmRsZUtleURvd24odmlldywgeyBrZXk6ICdBcnJvd0xlZnQnIH0pO1xuXG4gICAgICBleHBlY3QoaGFuZGxlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2aWV3LnN0YXRlLmRvYy5yZXNvbHZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgwKTtcbiAgICAgIGV4cGVjdChOb2RlU2VsZWN0aW9uLmNyZWF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmlldy5zdGF0ZS5kb2MsIDApO1xuICAgICAgZXhwZWN0KHZpZXcuZGlzcGF0Y2gpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdtb3ZlcyB0aGUgdGV4dCBjdXJzb3IgYmVmb3JlIHRoZSB6ZXJvLXdpZHRoIHNwYWNlIHdoZW4gbm8gaW5saW5lIG5vZGUgcHJlY2VkZXMgaXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldygpO1xuICAgICAgY29uc3QgeyBUZXh0U2VsZWN0aW9uIH0gPSByZXF1aXJlKCdwcm9zZW1pcnJvci1zdGF0ZScpO1xuXG4gICAgICBjb25zdCBoYW5kbGVkID0gWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbi5wcm9wcy5oYW5kbGVLZXlEb3duKHZpZXcsIHsga2V5OiAnQXJyb3dMZWZ0JyB9KTtcblxuICAgICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3Qodmlldy5zdGF0ZS5kb2MucmVzb2x2ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMCk7XG4gICAgICBleHBlY3QoVGV4dFNlbGVjdGlvbi5jcmVhdGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZpZXcuc3RhdGUuZG9jLCAwKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBmYWxzZSB3aGVuIHJlZ3VsYXIgdGV4dCBwcmVjZWRlcyB0aGUgY3Vyc29yJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZVZpZXcoe1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRvYzogY3JlYXRlRG9jV2l0aFJlZ3VsYXJUZXh0QmVmb3JlQ3Vyc29yKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgaGFuZGxlZCA9IFplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4ucHJvcHMuaGFuZGxlS2V5RG93bih2aWV3LCB7IGtleTogJ0Fycm93TGVmdCcgfSk7XG5cbiAgICAgIGV4cGVjdChoYW5kbGVkKS50b0JlKGZhbHNlKTtcbiAgICAgIGV4cGVjdCh2aWV3LnN0YXRlLnRyLnNldFNlbGVjdGlvbikubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBmYWxzZSBmb3IgdW5yZWxhdGVkIGtleXMnLCAoKSA9PiB7XG4gICAgY29uc3QgdmlldyA9IGNyZWF0ZVZpZXcoKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBaZXJvV2lkdGhTcGFjZUhhbmRsaW5nUGx1Z2luLnByb3BzLmhhbmRsZUtleURvd24odmlldywgeyBrZXk6ICdFbnRlcicgfSk7XG4gICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUoZmFsc2UpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnTWF0aE5vZGVWaWV3JywgKCkgPT4ge1xuICBjb25zdCBjcmVhdGVFZGl0b3JFbGVtZW50ID0gKHJlY3QgPSB7IHRvcDogMCwgbGVmdDogMCwgd2lkdGg6IDYwMCwgaGVpZ2h0OiA0MDAgfSkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ2dldEJvdW5kaW5nQ2xpZW50UmVjdCcsIHtcbiAgICAgIHZhbHVlOiBqZXN0LmZuKCgpID0+IHJlY3QpLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU1vY2tFZGl0b3IgPSAoKSA9PiAoe1xuICAgIHN0YXRlOiB7XG4gICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgZnJvbTogMCxcbiAgICAgICAgdG86IDEsXG4gICAgICAgIG5vZGU6IHsgdHlwZTogeyBuYW1lOiAnbWF0aCcgfSB9LFxuICAgICAgfSxcbiAgICAgIHRyOiB7XG4gICAgICAgIHNldFNlbGVjdGlvbjogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgICAgIHNldE1ldGE6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgfSxcbiAgICAgIGRvYzoge30sXG4gICAgfSxcbiAgICB2aWV3OiB7XG4gICAgICBjb29yZHNBdFBvczogamVzdC5mbigoKSA9PiAoeyB0b3A6IDEwMCwgbGVmdDogNTAgfSkpLFxuICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICB9LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGVsZW1lbnQ6IGNyZWF0ZUVkaXRvckVsZW1lbnQoKSxcbiAgICB9LFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBmb2N1czogamVzdC5mbigpLFxuICAgIH0sXG4gICAgaW5zdGFuY2VJZDogJ2VkaXRvci0xMjMnLFxuICAgIF90b29sYmFyT3BlbmVkOiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3QgbW9ja05vZGUgPSB7XG4gICAgYXR0cnM6IHtcbiAgICAgIGxhdGV4OiAneF4yJyxcbiAgICB9LFxuICAgIG5vZGVTaXplOiAxLFxuICB9O1xuXG4gIGxldCBkZWZhdWx0UHJvcHM7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gICAgbW9ja0NyZWF0ZVBvcnRhbC5tb2NrSW1wbGVtZW50YXRpb24oKG5vZGUpID0+IG5vZGUpO1xuICAgIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIG5vZGU6IG1vY2tOb2RlLFxuICAgICAgdXBkYXRlQXR0cmlidXRlczogamVzdC5mbigpLFxuICAgICAgZWRpdG9yOiBjcmVhdGVNb2NrRWRpdG9yKCksXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICAgIGdldFBvczogamVzdC5mbigoKSA9PiAwKSxcbiAgICB9O1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ25vZGUtdmlldy13cmFwcGVyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBtYXRoIHByZXZpZXcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyB0b29sYmFyIHdoZW4gc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBzaG93IHRvb2xiYXIgd2hlbiBub3Qgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYWRkcyBkYXRhLXRvb2xiYXItZm9yIGF0dHJpYnV0ZSB3aXRoIGVkaXRvciBpbnN0YW5jZUlkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgIGV4cGVjdCh0b29sYmFyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtdG9vbGJhci1mb3InLCAnZWRpdG9yLTEyMycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9vbGJhciBwb3NpdGlvbmluZycsICgpID0+IHtcbiAgICBpdCgncG9zaXRpb25zIHJlbGF0aXZlIHRvIHBvcnRhbCBjb250YWluZXIgdXNpbmcgY29vcmRzQXRQb3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcxMDBweCcpO1xuICAgICAgICBleHBlY3QodG9vbGJhci5zdHlsZS5sZWZ0KS50b0JlKCc1MHB4Jyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdvZmZzZXRzIHBvc2l0aW9uIGJ5IHBvcnRhbCBjb250YWluZXIgZ2V0Qm91bmRpbmdDbGllbnRSZWN0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnRhaW5lckVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9IGplc3QuZm4oKCkgPT4gKHsgdG9wOiAxMDAsIGxlZnQ6IDUwLCB3aWR0aDogNjAwLCBoZWlnaHQ6IDQwMCB9KSk7XG5cbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvcixcbiAgICAgICAgX3RpcHRhcENvbnRhaW5lckVsOiBjb250YWluZXJFbCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcwcHgnKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUubGVmdCkudG9CZSgnMHB4Jyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhcHBsaWVzIGFic29sdXRlIHBvc2l0aW9uaW5nIHN0eWxlIHRvIHRvb2xiYXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUucG9zaXRpb24pLnRvQmUoJ2Fic29sdXRlJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFib3ZlIG90aGVyIGVkaXRvciBvdmVybGF5cyB3aXRoIGEgaGlnaCB6LWluZGV4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAgIGV4cGVjdCh0b29sYmFyLnN0eWxlLnpJbmRleCkudG9CZSgnMTAwMCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndXBkYXRlcyBwb3NpdGlvbiBmcm9tIGNvb3Jkc0F0UG9zIHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLnZpZXcsXG4gICAgICAgICAgY29vcmRzQXRQb3M6IGplc3QuZm4oKCkgPT4gKHsgdG9wOiAyMDAsIGxlZnQ6IDE1MCB9KSksXG4gICAgICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcyMDBweCcpO1xuICAgICAgICBleHBlY3QodG9vbGJhci5zdHlsZS5sZWZ0KS50b0JlKCcxNTBweCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2xhbXBzIHRvb2xiYXIgcG9zaXRpb24gdG8gdmlld3BvcnQgbWFyZ2lucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsSW5uZXJIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCBvcmlnaW5hbElubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2lubmVySGVpZ2h0JywgeyBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogMjAwIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2lubmVyV2lkdGgnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiAzMDAgfSk7XG5cbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvcixcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IudmlldyxcbiAgICAgICAgICBjb29yZHNBdFBvczogamVzdC5mbigoKSA9PiAoeyB0b3A6IDE5MCwgbGVmdDogMjgwLCBib3R0b206IDE5NSB9KSksXG4gICAgICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgICAgbGV0IHRvb2xiYXI7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICB9KTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvb2xiYXIsICdvZmZzZXRIZWlnaHQnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IDEwMCB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0b29sYmFyLCAnb2Zmc2V0V2lkdGgnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IDE1MCB9KTtcblxuICAgICAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QocGFyc2VJbnQodG9vbGJhci5zdHlsZS50b3AsIDEwKSkudG9CZUxlc3NUaGFuT3JFcXVhbCgyMDAgLSAxMDAgLSA4KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlSW50KHRvb2xiYXIuc3R5bGUubGVmdCwgMTApKS50b0JlTGVzc1RoYW5PckVxdWFsKDMwMCAtIDE1MCAtIDgpO1xuICAgICAgICBleHBlY3QocGFyc2VJbnQodG9vbGJhci5zdHlsZS50b3AsIDEwKSkudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCg4KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlSW50KHRvb2xiYXIuc3R5bGUubGVmdCwgMTApKS50b0JlR3JlYXRlclRoYW5PckVxdWFsKDgpO1xuICAgICAgfSk7XG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpbm5lckhlaWdodCcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG9yaWdpbmFsSW5uZXJIZWlnaHQgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnaW5uZXJXaWR0aCcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG9yaWdpbmFsSW5uZXJXaWR0aCB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhdHRhY2hlcyBzY3JvbGwgYW5kIHJlc2l6ZSBsaXN0ZW5lcnMgd2hpbGUgdG9vbGJhciBpcyBvcGVuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYWRkU3B5ID0gamVzdC5zcHlPbih3aW5kb3csICdhZGRFdmVudExpc3RlbmVyJyk7XG4gICAgICByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAgIGV4cGVjdChhZGRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdzY3JvbGwnLCBleHBlY3QuYW55KEZ1bmN0aW9uKSwgdHJ1ZSk7XG4gICAgICAgIGV4cGVjdChhZGRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdyZXNpemUnLCBleHBlY3QuYW55KEZ1bmN0aW9uKSk7XG4gICAgICB9KTtcbiAgICAgIGFkZFNweS5tb2NrUmVzdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3BvcnRhbHMgdG9vbGJhciBpbnRvIF90aXB0YXBDb250YWluZXJFbCB3aGVuIGF2YWlsYWJsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBjb250YWluZXJFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+ICh7IHRvcDogMCwgbGVmdDogMCwgd2lkdGg6IDYwMCwgaGVpZ2h0OiA0MDAgfSkpO1xuXG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIF90aXB0YXBDb250YWluZXJFbDogY29udGFpbmVyRWwsXG4gICAgICB9O1xuXG4gICAgICBtb2NrQ3JlYXRlUG9ydGFsLm1vY2tDbGVhcigpO1xuICAgICAgcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gZWRpdG9yPXtlZGl0b3J9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgZXhwZWN0KG1vY2tDcmVhdGVQb3J0YWwpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgY29uc3QgbGFzdENhbGwgPSBtb2NrQ3JlYXRlUG9ydGFsLm1vY2suY2FsbHNbbW9ja0NyZWF0ZVBvcnRhbC5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdO1xuICAgICAgICBleHBlY3QobGFzdENhbGxbMV0pLnRvQmUoY29udGFpbmVyRWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncG9ydGFscyB0b29sYmFyIGludG8gZG9jdW1lbnQuYm9keSB3aGVuIF90aXB0YXBDb250YWluZXJFbCBpcyBub3Qgc2V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLFxuICAgICAgICBfdGlwdGFwQ29udGFpbmVyRWw6IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIG1vY2tDcmVhdGVQb3J0YWwubW9ja0NsZWFyKCk7XG4gICAgICByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QobW9ja0NyZWF0ZVBvcnRhbCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBjb25zdCBsYXN0Q2FsbCA9IG1vY2tDcmVhdGVQb3J0YWwubW9jay5jYWxsc1ttb2NrQ3JlYXRlUG9ydGFsLm1vY2suY2FsbHMubGVuZ3RoIC0gMV07XG4gICAgICAgIGV4cGVjdChsYXN0Q2FsbFsxXSkudG9CZShkb2N1bWVudC5ib2R5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgnY2FsbHMgdXBkYXRlQXR0cmlidXRlcyB3aGVuIGxhdGV4IGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gZ2V0QnlUZXN0SWQoJ21hdGgtaW5wdXQnKTtcbiAgICAgIGZpcmVFdmVudC5jaGFuZ2UoaW5wdXQsIHsgdGFyZ2V0OiB7IHZhbHVlOiAneV4yJyB9IH0pO1xuICAgIH0pO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMudXBkYXRlQXR0cmlidXRlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBsYXRleDogJ3leMicgfSk7XG4gIH0pO1xuXG4gIGl0KCdjbG9zZXMgdG9vbGJhciBhbmQgdXBkYXRlcyBhdHRyaWJ1dGVzIHdoZW4gZG9uZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVBdHRyaWJ1dGVzID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcihcbiAgICAgIDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gdXBkYXRlQXR0cmlidXRlcz17dXBkYXRlQXR0cmlidXRlc30gc2VsZWN0ZWQ9e3RydWV9IC8+LFxuICAgICk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRvbmVCdXR0b24gPSBnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soZG9uZUJ1dHRvbik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdCh1cGRhdGVBdHRyaWJ1dGVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IGxhdGV4OiAneF4yJyB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3NldHMgZWRpdG9yLl90b29sYmFyT3BlbmVkIHdoZW4gdG9vbGJhciBpcyBzaG93bicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChkZWZhdWx0UHJvcHMuZWRpdG9yLl90b29sYmFyT3BlbmVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgndW5zZXRzIGVkaXRvci5fdG9vbGJhck9wZW5lZCB3aGVuIHRvb2xiYXIgaXMgY2xvc2VkIGFuZCBub2RlIGlzIG5vdCBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcblxuICAgIGZpcmVFdmVudC5jbGljayhnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5lZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZGVmYXVsdFByb3BzLmVkaXRvci5fdG9vbGJhck9wZW5lZCkudG9CZShmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdrZWVwcyBlZGl0b3IuX3Rvb2xiYXJPcGVuZWQgdHJ1ZSB3aGlsZSB0aGUgbWF0aCBub2RlIHJlbWFpbnMgc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEJ5VGVzdElkKCdkb25lLWJ1dHRvbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5lZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZGVmYXVsdFByb3BzLmVkaXRvci5fdG9vbGJhck9wZW5lZCkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2Nsb3NlcyB0b29sYmFyIG9uIG91dHNpZGUgY2xpY2sgYW5kIHJ1bnMgaGFuZGxlRG9uZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVBdHRyaWJ1dGVzID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGVkaXRvciA9IGNyZWF0ZU1vY2tFZGl0b3IoKTtcbiAgICBjb25zdCB7IFRleHRTZWxlY3Rpb24gfSA9IHJlcXVpcmUoJ3Byb3NlbWlycm9yLXN0YXRlJyk7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICA8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IGVkaXRvcj17ZWRpdG9yfSB1cGRhdGVBdHRyaWJ1dGVzPXt1cGRhdGVBdHRyaWJ1dGVzfSBzZWxlY3RlZD17dHJ1ZX0gLz4sXG4gICAgKTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgZmlyZUV2ZW50LmNsaWNrKGRvY3VtZW50LmJvZHkpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHVwZGF0ZUF0dHJpYnV0ZXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgbGF0ZXg6ICd4XjInIH0pO1xuICAgICAgZXhwZWN0KFRleHRTZWxlY3Rpb24uY3JlYXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChlZGl0b3Iuc3RhdGUuZG9jLCAxKTtcbiAgICAgIGV4cGVjdChlZGl0b3Iuc3RhdGUudHIuc2V0U2VsZWN0aW9uKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QoZWRpdG9yLnZpZXcuZGlzcGF0Y2gpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVkaXRvci5zdGF0ZS50cik7XG4gICAgICBleHBlY3QoZWRpdG9yLmNvbW1hbmRzLmZvY3VzKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QoZWRpdG9yLl90b29sYmFyT3BlbmVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgncmUtcmVnaXN0ZXJzIGNsaWNrIGxpc3RlbmVyIHdoZW4gbm9kZSBjaGFuZ2VzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGFkZEV2ZW50TGlzdGVuZXJTcHkgPSBqZXN0LnNweU9uKGRvY3VtZW50LCAnYWRkRXZlbnRMaXN0ZW5lcicpO1xuICAgIGNvbnN0IHJlbW92ZUV2ZW50TGlzdGVuZXJTcHkgPSBqZXN0LnNweU9uKGRvY3VtZW50LCAncmVtb3ZlRXZlbnRMaXN0ZW5lcicpO1xuICAgIGNvbnN0IG5vZGVBID0geyBhdHRyczogeyBsYXRleDogJ3heMicgfSB9O1xuICAgIGNvbnN0IG5vZGVCID0geyBhdHRyczogeyBsYXRleDogJ3leMicgfSB9O1xuXG4gICAgY29uc3QgeyByZXJlbmRlciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9kZUF9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChhZGRFdmVudExpc3RlbmVyU3B5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnY2xpY2snLCBleHBlY3QuYW55KEZ1bmN0aW9uKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBpbml0aWFsQ2FsbENvdW50ID0gYWRkRXZlbnRMaXN0ZW5lclNweS5tb2NrLmNhbGxzLmxlbmd0aDtcblxuICAgIHJlcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17bm9kZUJ9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChyZW1vdmVFdmVudExpc3RlbmVyU3B5KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgICBleHBlY3QoYWRkRXZlbnRMaXN0ZW5lclNweS5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKGluaXRpYWxDYWxsQ291bnQpO1xuICAgIH0pO1xuXG4gICAgYWRkRXZlbnRMaXN0ZW5lclNweS5tb2NrUmVzdG9yZSgpO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJTcHkubW9ja1Jlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGNsb3NlIHRvb2xiYXIgd2hlbiBjbGlja2luZyB0aGUgbWF0aCBub2RlIHByZXZpZXcnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCwgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgZmlyZUV2ZW50LmNsaWNrKGdldEJ5VGVzdElkKCdtYXRoLXByZXZpZXcnKSk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3VuaXF1ZSBtYXRoLW5vZGUgY2xhc3MgcGVyIGluc3RhbmNlJywgKCkgPT4ge1xuICAgIGxldCBkYXRlTm93U3B5O1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBsZXQgdGltZXN0YW1wID0gMTAwMDtcbiAgICAgIGRhdGVOb3dTcHkgPSBqZXN0LnNweU9uKERhdGUsICdub3cnKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gdGltZXN0YW1wKyspO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgIGRhdGVOb3dTcHkubW9ja1Jlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIC8vIFRoZSB3cmFwcGVyIGlzIGFuIGVtb3Rpb24gc3R5bGVkKCkgY29tcG9uZW50LCBzbyBjbGFzc05hbWUgYWxzbyBjYXJyaWVzXG4gICAgLy8gZW1vdGlvbidzIGdlbmVyYXRlZCBjbGFzcyAtIGFzc2VydCBvbiB0aGUgbWF0aC1ub2RlIHRva2VuLCBub3QgZXF1YWxpdHkuXG4gICAgaXQoJ2Fzc2lnbnMgYSB0aW1lc3RhbXAtYmFzZWQgY2xhc3MgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuXG4gICAgICBleHBlY3QoQXJyYXkuZnJvbSh3cmFwcGVyLmNsYXNzTGlzdCkuc29tZSgoYykgPT4gL15tYXRoLW5vZGUtXFxkKyQvLnRlc3QoYykpKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Fzc2lnbnMgYSBkaWZmZXJlbnQgY2xhc3MgdG8gZWFjaCBNYXRoTm9kZVZpZXcgaW5zdGFuY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEFsbEJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSAvPlxuICAgICAgICAgIDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gbm9kZT17eyBhdHRyczogeyBsYXRleDogJ3leMicgfSB9fSAvPlxuICAgICAgICA8Lz4sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB3cmFwcGVycyA9IGdldEFsbEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgICAgY29uc3QgbWF0aE5vZGVDbGFzcyA9IChlbCkgPT4gQXJyYXkuZnJvbShlbC5jbGFzc0xpc3QpLmZpbmQoKGMpID0+IGMuc3RhcnRzV2l0aCgnbWF0aC1ub2RlLScpKTtcblxuICAgICAgZXhwZWN0KG1hdGhOb2RlQ2xhc3Mod3JhcHBlcnNbMF0pKS50b0JlKCdtYXRoLW5vZGUtMTAwMCcpO1xuICAgICAgZXhwZWN0KG1hdGhOb2RlQ2xhc3Mod3JhcHBlcnNbMV0pKS50b0JlKCdtYXRoLW5vZGUtMTAwMScpO1xuICAgICAgLy8gYW5kIHRoZXkgbXVzdCBkaWZmZXJcbiAgICAgIGV4cGVjdChtYXRoTm9kZUNsYXNzKHdyYXBwZXJzWzBdKSkubm90LnRvQmUobWF0aE5vZGVDbGFzcyh3cmFwcGVyc1sxXSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Nsb3NlcyB0b29sYmFyIHdoZW4gY2xpY2tpbmcgYSBkaWZmZXJlbnQgbWF0aCBub2RlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlQXR0cmlidXRlcyA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGVkaXRvckEgPSBjcmVhdGVNb2NrRWRpdG9yKCk7XG4gICAgICBjb25zdCBlZGl0b3JCID0gY3JlYXRlTW9ja0VkaXRvcigpO1xuXG4gICAgICBjb25zdCB7IGdldEFsbEJ5VGVzdElkLCBxdWVyeUFsbEJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvckF9IHVwZGF0ZUF0dHJpYnV0ZXM9e3VwZGF0ZUF0dHJpYnV0ZXN9IHNlbGVjdGVkPXtmYWxzZX0gLz5cbiAgICAgICAgICA8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IGVkaXRvcj17ZWRpdG9yQn0gbm9kZT17eyBhdHRyczogeyBsYXRleDogJ3leMicgfSB9fSBzZWxlY3RlZD17ZmFsc2V9IC8+XG4gICAgICAgIDwvPixcbiAgICAgICk7XG5cbiAgICAgIGZpcmVFdmVudC5jbGljayhnZXRBbGxCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JylbMF0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgZXhwZWN0KHF1ZXJ5QWxsQnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2Vjb25kUHJldmlldyA9IGdldEFsbEJ5VGVzdElkKCdtYXRoLXByZXZpZXcnKVsxXTtcbiAgICAgIGZpcmVFdmVudC5jbGljayhzZWNvbmRQcmV2aWV3KTtcblxuICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAgIGV4cGVjdChxdWVyeUFsbEJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9IYXZlTGVuZ3RoKDEpO1xuICAgICAgICBleHBlY3QodXBkYXRlQXR0cmlidXRlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBsYXRleDogJ3heMicgfSk7XG4gICAgICAgIGV4cGVjdChlZGl0b3JBLl90b29sYmFyT3BlbmVkKS50b0JlKGZhbHNlKTtcbiAgICAgICAgZXhwZWN0KGdldEFsbEJ5VGVzdElkKCdtYXRoLWlucHV0JylbMF0pLnRvSGF2ZVZhbHVlKCd5XjInKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2VsZWN0aW9uLWJhc2VkIHRvb2xiYXIgZ3VhcmQnLCAoKSA9PiB7XG4gICAgaXQoJ29wZW5zIHRvb2xiYXIgd2hlbiBzZWxlY3RlZCB0cmFuc2l0aW9ucyB0byB0cnVlIGFuZCB0aGUgZWRpdG9yIGhhcyBhIE5vZGVTZWxlY3Rpb24gb24gbWF0aCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCwgcmVyZW5kZXIgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkPXtmYWxzZX0gLz4pO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgcmVyZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IG9wZW4gdG9vbGJhciB3aGVuIHNlbGVjdGVkIGJyaWVmbHkgYmVjb21lcyB0cnVlIGJ1dCBlZGl0b3Igc2VsZWN0aW9uIGhhcyBubyBub2RlIChDbWQrQSAvIGRyYWcgY2FzZSknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvci5zdGF0ZSxcbiAgICAgICAgICBzZWxlY3Rpb246IHsgZnJvbTogMCwgdG86IDEwMCB9LCAvLyBubyAubm9kZSDigJQgVGV4dFNlbGVjdGlvbiAvIEFsbFNlbGVjdGlvbiBzaGFwZVxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkLCByZXJlbmRlciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gZWRpdG9yPXtlZGl0b3J9IHNlbGVjdGVkPXtmYWxzZX0gLz4pO1xuICAgICAgcmVyZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgICAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHt9KTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3Qgb3BlbiB0b29sYmFyIHdoZW4gc2VsZWN0ZWQgYnJpZWZseSBiZWNvbWVzIHRydWUgYnV0IE5vZGVTZWxlY3Rpb24gdGFyZ2V0cyBhIG5vbi1tYXRoIG5vZGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvci5zdGF0ZSxcbiAgICAgICAgICBzZWxlY3Rpb246IHsgZnJvbTogMCwgdG86IDEsIG5vZGU6IHsgdHlwZTogeyBuYW1lOiAnaW1hZ2UnIH0gfSB9LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkLCByZXJlbmRlciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gZWRpdG9yPXtlZGl0b3J9IHNlbGVjdGVkPXtmYWxzZX0gLz4pO1xuICAgICAgcmVyZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgICAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHt9KTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBjbG9zZSB0b29sYmFyIHdoZW4gY2xpY2tpbmcgZXF1YXRpb24gZWRpdG9yIGRyb3Bkb3duJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgLy8gU2ltdWxhdGUgTVVJIFNlbGVjdCdzIHBvcnRhbCBkcm9wZG93biBjb250YWluZXIuXG4gICAgY29uc3QgZHJvcGRvd24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkcm9wZG93bi5pZCA9ICdlcXVhdGlvbi1lZGl0b3Itc2VsZWN0LWxpc3Rib3gnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZHJvcGRvd24pO1xuXG4gICAgZmlyZUV2ZW50LmNsaWNrKGRyb3Bkb3duKTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkcm9wZG93bik7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIHdpdGggZW1wdHkgbGF0ZXgnLCAoKSA9PiB7XG4gICAgY29uc3Qgbm9kZVdpdGhFbXB0eUxhdGV4ID0geyBhdHRyczogeyBsYXRleDogJycgfSB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e25vZGVXaXRoRW1wdHlMYXRleH0gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCBzdHlsaW5nIG9uIE5vZGVWaWV3V3JhcHBlcicsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVTdHlsZSh7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsIGN1cnNvcjogJ3BvaW50ZXInIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FB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
|
|
1423
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aCIsInRvb2xiYXJVdGlscyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2V4Y2x1ZGVkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJqZXN0IiwibW9jayIsIk5vZGVWaWV3V3JhcHBlciIsIl9yZWYiLCJjaGlsZHJlbiIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJSZWFjdE5vZGVWaWV3UmVuZGVyZXIiLCJmbiIsImNvbXBvbmVudCIsIm1vY2tDcmVhdGVQb3J0YWwiLCJub2RlIiwicmVxdWlyZUFjdHVhbCIsImNyZWF0ZVBvcnRhbCIsIlJlYWN0IiwiTWF0aFByZXZpZXciLCJfcmVmMiIsImxhdGV4IiwiTWF0aFRvb2xiYXIiLCJfcmVmMyIsIm9uQ2hhbmdlIiwib25Eb25lIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibG9jYWxMYXRleCIsInNldExvY2FsTGF0ZXgiLCJ2YWx1ZSIsInRhcmdldCIsIm9uQ2xpY2siLCJ3cmFwTWF0aCIsIndyYXBwZXIiLCJOb2RlIiwiY3JlYXRlIiwiY29uZmlnIiwiUGx1Z2luIiwiUGx1Z2luS2V5Iiwia2V5IiwiVGV4dFNlbGVjdGlvbiIsImRvYyIsInBvcyIsInR5cGUiLCJOb2RlU2VsZWN0aW9uIiwiZGVzY3JpYmUiLCJpdCIsImV4cGVjdCIsIk1hdGhOb2RlIiwibmFtZSIsInRvQmUiLCJpbmxpbmUiLCJncm91cCIsImF0b20iLCJhdHRyaWJ1dGVzIiwiYWRkQXR0cmlidXRlcyIsInRvSGF2ZVByb3BlcnR5IiwidG9FcXVhbCIsImh0bWwiLCJydWxlcyIsInBhcnNlSFRNTCIsIkFycmF5IiwiaXNBcnJheSIsInRvSGF2ZUxlbmd0aCIsInJlc3VsdCIsInJlbmRlckhUTUwiLCJIVE1MQXR0cmlidXRlcyIsImNvbW1hbmRzIiwiYWRkQ29tbWFuZHMiLCJfdHlwZW9mMiIsImluc2VydE1hdGgiLCJzZXRUb29sYmFyT3BlbmVkU3B5Iiwic3B5T24iLCJtYXRoTm9kZSIsIm5vZGVTaXplIiwidHIiLCJpbnNlcnQiLCJtb2NrUmV0dXJuVGhpcyIsInNldFNlbGVjdGlvbiIsImVkaXRvciIsInZpZXciLCJzdGF0ZSIsInNjaGVtYSIsIm5vZGVzIiwibWF0aCIsInNlbGVjdGlvbiIsIiRmcm9tIiwiZGlzcGF0Y2giLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJtb2NrUmVzdG9yZSIsImFkZE5vZGVWaWV3IiwidG9CZURlZmluZWQiLCJwbHVnaW5zIiwiYWRkUHJvc2VNaXJyb3JQbHVnaW5zIiwiYXBwZW5kVHJhbnNhY3Rpb24iLCJoYW5kbGVLZXlEb3duIiwicGx1Z2luIiwiRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbiIsInRleHROb2RlIiwibmV3U3RhdGUiLCJ0ZXh0IiwiZGVzY2VuZGFudHMiLCJjYiIsIm5vZGVBdCIsImRvY0NoYW5nZWQiLCJhbnl0aGluZyIsIm5vdCIsInRvQmVOdWxsIiwiY3JlYXRlRG9jV2l0aE1hdGhBbmRad3NwIiwicmVzb2x2ZU92ZXJyaWRlcyIsInVuZGVmaW5lZCIsInJlc29sdmUiLCJub2RlQWZ0ZXIiLCJub2RlQmVmb3JlIiwidGV4dENvbnRlbnQiLCJjcmVhdGVEb2NXaXRoUmVndWxhclRleHRCZWZvcmVDdXJzb3IiLCJjcmVhdGVWaWV3IiwiX3JlZjQiLCJfcmVmNCRzdGF0ZSIsInN0YXRlT3ZlcnJpZGVzIiwiZnJvbSIsImVtcHR5IiwiaGFuZGxlZCIsIlplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4iLCJfcmVxdWlyZSIsIl9yZXF1aXJlMiIsImNyZWF0ZUVkaXRvckVsZW1lbnQiLCJyZWN0IiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0IiwiZWxlbWVudCIsImRvY3VtZW50IiwiY29uZmlndXJhYmxlIiwiY3JlYXRlTW9ja0VkaXRvciIsInRvIiwic2V0TWV0YSIsImNvb3Jkc0F0UG9zIiwib3B0aW9ucyIsImZvY3VzIiwiaW5zdGFuY2VJZCIsIl90b29sYmFyT3BlbmVkIiwibW9ja05vZGUiLCJhdHRycyIsImRlZmF1bHRQcm9wcyIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwibW9ja0ltcGxlbWVudGF0aW9uIiwidXBkYXRlQXR0cmlidXRlcyIsInNlbGVjdGVkIiwiZ2V0UG9zIiwiX3JlbmRlciIsInJlbmRlciIsIk1hdGhOb2RlVmlldyIsImNvbnRhaW5lciIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJnZXRCeVRlc3RJZCIsIl9yZW5kZXIzIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJfcmVuZGVyNCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwid2FpdEZvciIsInN0b3AiLCJfcmVuZGVyNSIsInF1ZXJ5QnlUZXN0SWQiLCJfY2FsbGVlMiIsIl9yZW5kZXI2IiwiX2NvbnRleHQyIiwidG9vbGJhciIsInF1ZXJ5U2VsZWN0b3IiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfY2FsbGVlMyIsIl9yZW5kZXI3IiwiX2NvbnRleHQzIiwic3R5bGUiLCJfY2FsbGVlNCIsImNvbnRhaW5lckVsIiwiX3JlbmRlcjgiLCJfY29udGV4dDQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJfdGlwdGFwQ29udGFpbmVyRWwiLCJfY2FsbGVlNSIsIl9yZW5kZXI5IiwiX2NvbnRleHQ1IiwicG9zaXRpb24iLCJfY2FsbGVlNiIsIl9yZW5kZXIwIiwiX2NvbnRleHQ2IiwiekluZGV4IiwiX2NhbGxlZTciLCJfcmVuZGVyMSIsIl9jb250ZXh0NyIsIl9jYWxsZWU5Iiwib3JpZ2luYWxJbm5lckhlaWdodCIsIm9yaWdpbmFsSW5uZXJXaWR0aCIsIl9yZW5kZXIxMCIsIl9jb250ZXh0OSIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwiaW5uZXJXaWR0aCIsIndyaXRhYmxlIiwiYm90dG9tIiwiYWN0IiwiX2NhbGxlZTgiLCJfY29udGV4dDgiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJQcm9taXNlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicGFyc2VJbnQiLCJ0b0JlTGVzc1RoYW5PckVxdWFsIiwidG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCIsIl9jYWxsZWUwIiwiYWRkU3B5IiwiX2NvbnRleHQwIiwiYW55IiwiRnVuY3Rpb24iLCJfY2FsbGVlMSIsIl9jb250ZXh0MSIsIm1vY2tDbGVhciIsImxhc3RDYWxsIiwiY2FsbHMiLCJfY2FsbGVlMTAiLCJfY29udGV4dDEwIiwiYm9keSIsIl9jYWxsZWUxMSIsIl9yZW5kZXIxMSIsIl9jb250ZXh0MTEiLCJpbnB1dCIsImZpcmVFdmVudCIsImNoYW5nZSIsIl9jYWxsZWUxMiIsIl9yZW5kZXIxMiIsImRvbmVCdXR0b24iLCJfY29udGV4dDEyIiwiY2xpY2siLCJfY2FsbGVlMTMiLCJfcmVuZGVyMTMiLCJfY29udGV4dDEzIiwiX2NhbGxlZTE0IiwiX3JlbmRlcjE0IiwiX2NvbnRleHQxNCIsIl9jYWxsZWUxNSIsIl9yZW5kZXIxNSIsIl9jb250ZXh0MTUiLCJfY2FsbGVlMTYiLCJfcmVxdWlyZTMiLCJfcmVuZGVyMTYiLCJfY29udGV4dDE2IiwibW91c2VEb3duIiwiX2NhbGxlZTE3IiwiYWRkRXZlbnRMaXN0ZW5lclNweSIsInJlbW92ZUV2ZW50TGlzdGVuZXJTcHkiLCJub2RlQSIsIm5vZGVCIiwiX3JlbmRlcjE3IiwicmVyZW5kZXIiLCJpbml0aWFsQ2FsbENvdW50IiwiX2NvbnRleHQxNyIsInRvQmVHcmVhdGVyVGhhbiIsIl9jYWxsZWUxOCIsIl9yZW5kZXIxOCIsIl9jb250ZXh0MTgiLCJfY2FsbGVlMTkiLCJfcmVuZGVyMTkiLCJfY29udGV4dDE5IiwiZGF0ZU5vd1NweSIsInRpbWVzdGFtcCIsIkRhdGUiLCJhZnRlckVhY2giLCJfcmVuZGVyMjAiLCJjbGFzc05hbWUiLCJ0b01hdGNoIiwiX3JlbmRlcjIxIiwiRnJhZ21lbnQiLCJnZXRBbGxCeVRlc3RJZCIsIndyYXBwZXJzIiwiX2NhbGxlZTIwIiwiZWRpdG9yQSIsImVkaXRvckIiLCJfcmVuZGVyMjIiLCJxdWVyeUFsbEJ5VGVzdElkIiwic2Vjb25kUHJldmlldyIsIl9jb250ZXh0MjAiLCJ0b0hhdmVWYWx1ZSIsIl9jYWxsZWUyMSIsIl9yZW5kZXIyMyIsIl9jb250ZXh0MjEiLCJfY2FsbGVlMjMiLCJfcmVuZGVyMjQiLCJfY29udGV4dDIzIiwiX2NhbGxlZTIyIiwiX2NvbnRleHQyMiIsIl9jYWxsZWUyNSIsIl9yZW5kZXIyNSIsIl9jb250ZXh0MjUiLCJfY2FsbGVlMjQiLCJfY29udGV4dDI0IiwiX2NhbGxlZTI2IiwiX3JlbmRlcjI2IiwiZHJvcGRvd24iLCJfY29udGV4dDI2IiwiaWQiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwibm9kZVdpdGhFbXB0eUxhdGV4IiwiX3JlbmRlcjI3IiwiX3JlbmRlcjI4IiwidG9IYXZlU3R5bGUiLCJkaXNwbGF5IiwiY3Vyc29yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4dGVuc2lvbnMvX190ZXN0c19fL21hdGgudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCB3YWl0Rm9yLCBmaXJlRXZlbnQsIGFjdCB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbiwgTWF0aE5vZGUsIE1hdGhOb2RlVmlldywgWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbiB9IGZyb20gJy4uL21hdGgnO1xuaW1wb3J0ICogYXMgdG9vbGJhclV0aWxzIGZyb20gJy4uLy4uL3V0aWxzL3Rvb2xiYXInO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBOb2RlVmlld1dyYXBwZXI6ICh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCIgey4uLnByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbiAgUmVhY3ROb2RlVmlld1JlbmRlcmVyOiBqZXN0LmZuKChjb21wb25lbnQpID0+IGNvbXBvbmVudCksXG59KSk7XG5cbmNvbnN0IG1vY2tDcmVhdGVQb3J0YWwgPSBqZXN0LmZuKChub2RlKSA9PiBub2RlKTtcbmplc3QubW9jaygncmVhY3QtZG9tJywgKCkgPT4gKHtcbiAgLi4uamVzdC5yZXF1aXJlQWN0dWFsKCdyZWFjdC1kb20nKSxcbiAgY3JlYXRlUG9ydGFsOiAoLi4uYXJncykgPT4gbW9ja0NyZWF0ZVBvcnRhbCguLi5hcmdzKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXRvb2xiYXInLCAoKSA9PiB7XG4gIGNvbnN0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbiAgcmV0dXJuIHtcbiAgICBNYXRoUHJldmlldzogKHsgbGF0ZXggfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1hdGgtcHJldmlld1wiPntsYXRleH08L2Rpdj4sXG4gICAgTWF0aFRvb2xiYXI6ICh7IGxhdGV4LCBvbkNoYW5nZSwgb25Eb25lIH0pID0+IHtcbiAgICAgIGNvbnN0IFtsb2NhbExhdGV4LCBzZXRMb2NhbExhdGV4XSA9IFJlYWN0LnVzZVN0YXRlKGxhdGV4KTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJtYXRoLXRvb2xiYXJcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibWF0aC1pbnB1dFwiXG4gICAgICAgICAgICB2YWx1ZT17bG9jYWxMYXRleH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICBzZXRMb2NhbExhdGV4KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgb25DaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJkb25lLWJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG9uRG9uZShsb2NhbExhdGV4KX0+XG4gICAgICAgICAgICBEb25lXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9LFxuICB9O1xufSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnLCAoKSA9PiAoe1xuICB3cmFwTWF0aDogKGxhdGV4LCB3cmFwcGVyKSA9PiBsYXRleCxcbn0pKTtcblxuamVzdC5tb2NrKCdAdGlwdGFwL2NvcmUnLCAoKSA9PiAoe1xuICBOb2RlOiB7XG4gICAgY3JlYXRlOiBqZXN0LmZuKChjb25maWcpID0+IGNvbmZpZyksXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygncHJvc2VtaXJyb3Itc3RhdGUnLCAoKSA9PiAoe1xuICBQbHVnaW46IGplc3QuZm4oZnVuY3Rpb24gKGNvbmZpZykge1xuICAgIHJldHVybiBjb25maWc7XG4gIH0pLFxuICBQbHVnaW5LZXk6IGplc3QuZm4oZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICB9KSxcbiAgVGV4dFNlbGVjdGlvbjoge1xuICAgIGNyZWF0ZTogamVzdC5mbigoZG9jLCBwb3MpID0+ICh7IHR5cGU6ICd0ZXh0JywgcG9zIH0pKSxcbiAgfSxcbiAgTm9kZVNlbGVjdGlvbjoge1xuICAgIGNyZWF0ZTogamVzdC5mbigoZG9jLCBwb3MpID0+ICh7IHR5cGU6ICdub2RlJywgcG9zIH0pKSxcbiAgfSxcbn0pKTtcblxuZGVzY3JpYmUoJ01hdGhOb2RlJywgKCkgPT4ge1xuICBkZXNjcmliZSgnY29uZmlndXJhdGlvbicsICgpID0+IHtcbiAgICBpdCgnaGFzIGNvcnJlY3QgbmFtZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChNYXRoTm9kZS5uYW1lKS50b0JlKCdtYXRoJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaXMgaW5saW5lJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KE1hdGhOb2RlLmlubGluZSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdpcyBpbiBpbmxpbmUgZ3JvdXAnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoTWF0aE5vZGUuZ3JvdXApLnRvQmUoJ2lubGluZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2lzIGF0b21pYycsICgpID0+IHtcbiAgICAgIGV4cGVjdChNYXRoTm9kZS5hdG9tKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkQXR0cmlidXRlcycsICgpID0+IHtcbiAgICBpdCgncmV0dXJucyByZXF1aXJlZCBhdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IE1hdGhOb2RlLmFkZEF0dHJpYnV0ZXMoKTtcblxuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMpLnRvSGF2ZVByb3BlcnR5KCdsYXRleCcpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMpLnRvSGF2ZVByb3BlcnR5KCd3cmFwcGVyJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlcykudG9IYXZlUHJvcGVydHkoJ2h0bWwnKTtcblxuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMubGF0ZXgpLnRvRXF1YWwoeyBkZWZhdWx0OiAnJyB9KTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzLndyYXBwZXIpLnRvRXF1YWwoeyBkZWZhdWx0OiBudWxsIH0pO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXMuaHRtbCkudG9FcXVhbCh7IGRlZmF1bHQ6IG51bGwgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwYXJzZUhUTUwnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgcGFyc2luZyBydWxlcyBmb3IgbGF0ZXgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBydWxlcyA9IE1hdGhOb2RlLnBhcnNlSFRNTCgpO1xuXG4gICAgICBleHBlY3QoQXJyYXkuaXNBcnJheShydWxlcykpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QocnVsZXMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICAgIGV4cGVjdChydWxlc1swXSkudG9IYXZlUHJvcGVydHkoJ3RhZycsICdzcGFuW2RhdGEtbGF0ZXhdJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBwYXJzaW5nIHJ1bGVzIGZvciBtYXRobWwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBydWxlcyA9IE1hdGhOb2RlLnBhcnNlSFRNTCgpO1xuICAgICAgZXhwZWN0KHJ1bGVzWzFdKS50b0hhdmVQcm9wZXJ0eSgndGFnJywgJ3NwYW5bZGF0YS10eXBlPVwibWF0aG1sXCJdJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJIVE1MJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIG1hdGhtbCB3aGVuIGh0bWwgYXR0cmlidXRlIGlzIHByZXNlbnQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBNYXRoTm9kZS5yZW5kZXJIVE1MKHtcbiAgICAgICAgSFRNTEF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBodG1sOiAnPG1hdGg+PG1pPng8L21pPjwvbWF0aD4nLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHRbMF0pLnRvQmUoJ3NwYW4nKTtcbiAgICAgIGV4cGVjdChyZXN1bHRbMV0pLnRvSGF2ZVByb3BlcnR5KCdkYXRhLXR5cGUnLCAnbWF0aG1sJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyBsYXRleCB3aGVuIGh0bWwgYXR0cmlidXRlIGlzIG5vdCBwcmVzZW50JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gTWF0aE5vZGUucmVuZGVySFRNTCh7XG4gICAgICAgIEhUTUxBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgbGF0ZXg6ICd4XjInLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHRbMF0pLnRvQmUoJ3NwYW4nKTtcbiAgICAgIGV4cGVjdChyZXN1bHRbMV0pLnRvSGF2ZVByb3BlcnR5KCdkYXRhLWxhdGV4JywgJycpO1xuICAgICAgZXhwZWN0KHJlc3VsdFsxXSkudG9IYXZlUHJvcGVydHkoJ2RhdGEtcmF3JywgJ3heMicpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkQ29tbWFuZHMnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgaW5zZXJ0TWF0aCBjb21tYW5kJywgKCkgPT4ge1xuICAgICAgY29uc3QgY29tbWFuZHMgPSBNYXRoTm9kZS5hZGRDb21tYW5kcygpO1xuXG4gICAgICBleHBlY3QoY29tbWFuZHMpLnRvSGF2ZVByb3BlcnR5KCdpbnNlcnRNYXRoJyk7XG4gICAgICBleHBlY3QodHlwZW9mIGNvbW1hbmRzLmluc2VydE1hdGgpLnRvQmUoJ2Z1bmN0aW9uJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5zZXJ0TWF0aCBvcGVucyB0aGUgdG9vbGJhciBhZnRlciBpbnNlcnRpbmcgYSBtYXRoIG5vZGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZXRUb29sYmFyT3BlbmVkU3B5ID0gamVzdC5zcHlPbih0b29sYmFyVXRpbHMsICdzZXRUb29sYmFyT3BlbmVkJyk7XG4gICAgICBjb25zdCBtYXRoTm9kZSA9IHsgdHlwZTogeyBuYW1lOiAnbWF0aCcgfSwgbm9kZVNpemU6IDEgfTtcbiAgICAgIGNvbnN0IHRyID0ge1xuICAgICAgICBpbnNlcnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgICBzZXRTZWxlY3Rpb246IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgICBkb2M6IHt9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICBzY2hlbWE6IHsgbm9kZXM6IHsgbWF0aDogeyBjcmVhdGU6IGplc3QuZm4oKCkgPT4gbWF0aE5vZGUpIH0gfSB9LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB7ICRmcm9tOiB7IHBvczogMSB9IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBjb25zdCBkaXNwYXRjaCA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGluc2VydE1hdGggPSBNYXRoTm9kZS5hZGRDb21tYW5kcygpLmluc2VydE1hdGgoJ3heMicpO1xuXG4gICAgICBpbnNlcnRNYXRoKHsgdHIsIGVkaXRvciwgZGlzcGF0Y2ggfSk7XG5cbiAgICAgIGV4cGVjdCh0ci5pbnNlcnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDEsIG1hdGhOb2RlKTtcbiAgICAgIGV4cGVjdCh0ci5zZXRTZWxlY3Rpb24pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChkaXNwYXRjaCkudG9IYXZlQmVlbkNhbGxlZFdpdGgodHIpO1xuICAgICAgZXhwZWN0KHNldFRvb2xiYXJPcGVuZWRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVkaXRvciwgdHJ1ZSk7XG5cbiAgICAgIHNldFRvb2xiYXJPcGVuZWRTcHkubW9ja1Jlc3RvcmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2FkZE5vZGVWaWV3JywgKCkgPT4ge1xuICAgIGl0KCdyZXR1cm5zIFJlYWN0Tm9kZVZpZXdSZW5kZXJlciByZXN1bHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBNYXRoTm9kZS5hZGROb2RlVmlldygpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYWRkUHJvc2VNaXJyb3JQbHVnaW5zJywgKCkgPT4ge1xuICAgIGl0KCdyZWdpc3RlcnMgZW5zdXJlLXRleHQtYWZ0ZXItbWF0aCBhbmQgemVyby13aWR0aC1zcGFjZSBwbHVnaW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgcGx1Z2lucyA9IE1hdGhOb2RlLmFkZFByb3NlTWlycm9yUGx1Z2lucygpO1xuXG4gICAgICBleHBlY3QocGx1Z2lucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KHBsdWdpbnNbMF0uYXBwZW5kVHJhbnNhY3Rpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocGx1Z2luc1sxXS5wcm9wcy5oYW5kbGVLZXlEb3duKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbicsICgpID0+IHtcbiAgaXQoJ2luc2VydHMgYSB6ZXJvLXdpZHRoIHNwYWNlIGFmdGVyIGEgbWF0aCBub2RlIHdoZW4gbm8gdGV4dCBmb2xsb3dzJywgKCkgPT4ge1xuICAgIGNvbnN0IHBsdWdpbiA9IEVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4oJ21hdGgnKTtcbiAgICBjb25zdCB0ZXh0Tm9kZSA9IHsgdHlwZTogeyBuYW1lOiAndGV4dCcgfSB9O1xuICAgIGNvbnN0IG1hdGhOb2RlID0geyB0eXBlOiB7IG5hbWU6ICdtYXRoJyB9LCBub2RlU2l6ZTogMyB9O1xuICAgIGNvbnN0IHRyID0geyBpbnNlcnQ6IGplc3QuZm4oKSB9O1xuXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICBzY2hlbWE6IHsgdGV4dDogamVzdC5mbigodmFsdWUpID0+ICh7IHR5cGU6IHRleHROb2RlLnR5cGUsIHRleHQ6IHZhbHVlIH0pKSB9LFxuICAgICAgdHIsXG4gICAgICBkb2M6IHtcbiAgICAgICAgZGVzY2VuZGFudHM6IChjYikgPT4gY2IobWF0aE5vZGUsIDUpLFxuICAgICAgICBub2RlQXQ6IGplc3QuZm4oKCkgPT4gbnVsbCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQgPSBwbHVnaW4uYXBwZW5kVHJhbnNhY3Rpb24oW3sgZG9jQ2hhbmdlZDogdHJ1ZSB9XSwge30sIG5ld1N0YXRlKTtcblxuICAgIGV4cGVjdCh0ci5pbnNlcnQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDgsIGV4cGVjdC5hbnl0aGluZygpKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlKHRyKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGluc2VydCB3aGVuIHRleHQgYWxyZWFkeSBmb2xsb3dzIHRoZSBtYXRoIG5vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgcGx1Z2luID0gRW5zdXJlVGV4dEFmdGVyTWF0aFBsdWdpbignbWF0aCcpO1xuICAgIGNvbnN0IHRyID0geyBpbnNlcnQ6IGplc3QuZm4oKSB9O1xuICAgIGNvbnN0IG1hdGhOb2RlID0geyB0eXBlOiB7IG5hbWU6ICdtYXRoJyB9LCBub2RlU2l6ZTogMyB9O1xuXG4gICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICBzY2hlbWE6IHsgdGV4dDogamVzdC5mbigpIH0sXG4gICAgICB0cixcbiAgICAgIGRvYzoge1xuICAgICAgICBkZXNjZW5kYW50czogKGNiKSA9PiBjYihtYXRoTm9kZSwgNSksXG4gICAgICAgIG5vZGVBdDogamVzdC5mbigoKSA9PiAoeyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9IH0pKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBsdWdpbi5hcHBlbmRUcmFuc2FjdGlvbihbeyBkb2NDaGFuZ2VkOiB0cnVlIH1dLCB7fSwgbmV3U3RhdGUpO1xuXG4gICAgZXhwZWN0KHRyLmluc2VydCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBudWxsIHdoZW4gdGhlIGRvY3VtZW50IGRpZCBub3QgY2hhbmdlJywgKCkgPT4ge1xuICAgIGNvbnN0IHBsdWdpbiA9IEVuc3VyZVRleHRBZnRlck1hdGhQbHVnaW4oJ21hdGgnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHBsdWdpbi5hcHBlbmRUcmFuc2FjdGlvbihbeyBkb2NDaGFuZ2VkOiBmYWxzZSB9XSwge30sIHt9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbicsICgpID0+IHtcbiAgY29uc3QgY3JlYXRlRG9jV2l0aE1hdGhBbmRad3NwID0gKHJlc29sdmVPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgICByZXNvbHZlOiBqZXN0LmZuKChwb3MpID0+ICh7XG4gICAgICBub2RlQWZ0ZXI6IG51bGwsXG4gICAgICBub2RlQmVmb3JlOiBudWxsLFxuICAgICAgcG9zLFxuICAgICAgLi4ucmVzb2x2ZU92ZXJyaWRlc1twb3NdLFxuICAgIH0pKSxcbiAgICBub2RlQXQ6IGplc3QuZm4oKHBvcykgPT4ge1xuICAgICAgaWYgKHBvcyA9PT0gMSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9LCB0ZXh0Q29udGVudDogJ1xcdTIwMGInIH07XG4gICAgICB9XG4gICAgICBpZiAocG9zID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IHsgbmFtZTogJ21hdGgnIH0sIG5vZGVTaXplOiAxIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KSxcbiAgfSk7XG5cbiAgY29uc3QgY3JlYXRlRG9jV2l0aFJlZ3VsYXJUZXh0QmVmb3JlQ3Vyc29yID0gKCkgPT4gKHtcbiAgICByZXNvbHZlOiBqZXN0LmZuKChwb3MpID0+ICh7IG5vZGVBZnRlcjogbnVsbCwgbm9kZUJlZm9yZTogbnVsbCwgcG9zIH0pKSxcbiAgICBub2RlQXQ6IGplc3QuZm4oKHBvcykgPT4ge1xuICAgICAgaWYgKHBvcyA9PT0gMSkge1xuICAgICAgICByZXR1cm4geyB0eXBlOiB7IG5hbWU6ICd0ZXh0JyB9LCB0ZXh0Q29udGVudDogJ2EnIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KSxcbiAgfSk7XG5cbiAgY29uc3QgY3JlYXRlVmlldyA9ICh7IHN0YXRlOiBzdGF0ZU92ZXJyaWRlcyA9IHt9IH0gPSB7fSkgPT4ge1xuICAgIGNvbnN0IGRpc3BhdGNoID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHRyID0ge1xuICAgICAgZGVsZXRlOiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICAgIHNldFNlbGVjdGlvbjogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdGF0ZToge1xuICAgICAgICBzZWxlY3Rpb246IHsgZnJvbTogMiwgZW1wdHk6IHRydWUgfSxcbiAgICAgICAgZG9jOiBjcmVhdGVEb2NXaXRoTWF0aEFuZFp3c3AoKSxcbiAgICAgICAgdHIsXG4gICAgICAgIC4uLnN0YXRlT3ZlcnJpZGVzLFxuICAgICAgfSxcbiAgICAgIGRpc3BhdGNoLFxuICAgIH07XG4gIH07XG5cbiAgZGVzY3JpYmUoJ0JhY2tzcGFjZScsICgpID0+IHtcbiAgICBpdCgnZGVsZXRlcyB0aGUgaW5saW5lIG5vZGUgYW5kIHplcm8td2lkdGggc3BhY2UgYmVmb3JlIHRoZSBjdXJzb3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldygpO1xuICAgICAgY29uc3QgaGFuZGxlZCA9IFplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4ucHJvcHMuaGFuZGxlS2V5RG93bih2aWV3LCB7IGtleTogJ0JhY2tzcGFjZScgfSk7XG5cbiAgICAgIGV4cGVjdChoYW5kbGVkKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KHZpZXcuc3RhdGUudHIuZGVsZXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgwLCAyKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh2aWV3LnN0YXRlLnRyKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGZhbHNlIHdoZW4gcmVndWxhciB0ZXh0IHByZWNlZGVzIHRoZSBjdXJzb3InLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldyh7XG4gICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgZG9jOiBjcmVhdGVEb2NXaXRoUmVndWxhclRleHRCZWZvcmVDdXJzb3IoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBoYW5kbGVkID0gWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbi5wcm9wcy5oYW5kbGVLZXlEb3duKHZpZXcsIHsga2V5OiAnQmFja3NwYWNlJyB9KTtcblxuICAgICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUoZmFsc2UpO1xuICAgICAgZXhwZWN0KHZpZXcuc3RhdGUudHIuZGVsZXRlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHZpZXcuZGlzcGF0Y2gpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBcnJvd0xlZnQnLCAoKSA9PiB7XG4gICAgaXQoJ3NlbGVjdHMgdGhlIGlubGluZSBub2RlIGJlZm9yZSBhIHplcm8td2lkdGggc3BhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtYXRoTm9kZSA9IHsgbm9kZVNpemU6IDMgfTtcbiAgICAgIGNvbnN0IHZpZXcgPSBjcmVhdGVWaWV3KHtcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICBkb2M6IGNyZWF0ZURvY1dpdGhNYXRoQW5kWndzcCh7XG4gICAgICAgICAgICAwOiB7IG5vZGVBZnRlcjogbWF0aE5vZGUsIG5vZGVCZWZvcmU6IG51bGwsIHBvczogMCB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCB7IE5vZGVTZWxlY3Rpb24gfSA9IHJlcXVpcmUoJ3Byb3NlbWlycm9yLXN0YXRlJyk7XG5cbiAgICAgIGNvbnN0IGhhbmRsZWQgPSBaZXJvV2lkdGhTcGFjZUhhbmRsaW5nUGx1Z2luLnByb3BzLmhhbmRsZUtleURvd24odmlldywgeyBrZXk6ICdBcnJvd0xlZnQnIH0pO1xuXG4gICAgICBleHBlY3QoaGFuZGxlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdCh2aWV3LnN0YXRlLmRvYy5yZXNvbHZlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgwKTtcbiAgICAgIGV4cGVjdChOb2RlU2VsZWN0aW9uLmNyZWF0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgodmlldy5zdGF0ZS5kb2MsIDApO1xuICAgICAgZXhwZWN0KHZpZXcuZGlzcGF0Y2gpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdtb3ZlcyB0aGUgdGV4dCBjdXJzb3IgYmVmb3JlIHRoZSB6ZXJvLXdpZHRoIHNwYWNlIHdoZW4gbm8gaW5saW5lIG5vZGUgcHJlY2VkZXMgaXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3ID0gY3JlYXRlVmlldygpO1xuICAgICAgY29uc3QgeyBUZXh0U2VsZWN0aW9uIH0gPSByZXF1aXJlKCdwcm9zZW1pcnJvci1zdGF0ZScpO1xuXG4gICAgICBjb25zdCBoYW5kbGVkID0gWmVyb1dpZHRoU3BhY2VIYW5kbGluZ1BsdWdpbi5wcm9wcy5oYW5kbGVLZXlEb3duKHZpZXcsIHsga2V5OiAnQXJyb3dMZWZ0JyB9KTtcblxuICAgICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3Qodmlldy5zdGF0ZS5kb2MucmVzb2x2ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMCk7XG4gICAgICBleHBlY3QoVGV4dFNlbGVjdGlvbi5jcmVhdGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHZpZXcuc3RhdGUuZG9jLCAwKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBmYWxzZSB3aGVuIHJlZ3VsYXIgdGV4dCBwcmVjZWRlcyB0aGUgY3Vyc29yJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmlldyA9IGNyZWF0ZVZpZXcoe1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRvYzogY3JlYXRlRG9jV2l0aFJlZ3VsYXJUZXh0QmVmb3JlQ3Vyc29yKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgaGFuZGxlZCA9IFplcm9XaWR0aFNwYWNlSGFuZGxpbmdQbHVnaW4ucHJvcHMuaGFuZGxlS2V5RG93bih2aWV3LCB7IGtleTogJ0Fycm93TGVmdCcgfSk7XG5cbiAgICAgIGV4cGVjdChoYW5kbGVkKS50b0JlKGZhbHNlKTtcbiAgICAgIGV4cGVjdCh2aWV3LnN0YXRlLnRyLnNldFNlbGVjdGlvbikubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdCh2aWV3LmRpc3BhdGNoKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBmYWxzZSBmb3IgdW5yZWxhdGVkIGtleXMnLCAoKSA9PiB7XG4gICAgY29uc3QgdmlldyA9IGNyZWF0ZVZpZXcoKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBaZXJvV2lkdGhTcGFjZUhhbmRsaW5nUGx1Z2luLnByb3BzLmhhbmRsZUtleURvd24odmlldywgeyBrZXk6ICdFbnRlcicgfSk7XG4gICAgZXhwZWN0KGhhbmRsZWQpLnRvQmUoZmFsc2UpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnTWF0aE5vZGVWaWV3JywgKCkgPT4ge1xuICBjb25zdCBjcmVhdGVFZGl0b3JFbGVtZW50ID0gKHJlY3QgPSB7IHRvcDogMCwgbGVmdDogMCwgd2lkdGg6IDYwMCwgaGVpZ2h0OiA0MDAgfSkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ2dldEJvdW5kaW5nQ2xpZW50UmVjdCcsIHtcbiAgICAgIHZhbHVlOiBqZXN0LmZuKCgpID0+IHJlY3QpLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZU1vY2tFZGl0b3IgPSAoKSA9PiAoe1xuICAgIHN0YXRlOiB7XG4gICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgZnJvbTogMCxcbiAgICAgICAgdG86IDEsXG4gICAgICAgIG5vZGU6IHsgdHlwZTogeyBuYW1lOiAnbWF0aCcgfSB9LFxuICAgICAgfSxcbiAgICAgIHRyOiB7XG4gICAgICAgIHNldFNlbGVjdGlvbjogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgICAgIHNldE1ldGE6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgfSxcbiAgICAgIGRvYzoge30sXG4gICAgfSxcbiAgICB2aWV3OiB7XG4gICAgICBjb29yZHNBdFBvczogamVzdC5mbigoKSA9PiAoeyB0b3A6IDEwMCwgbGVmdDogNTAgfSkpLFxuICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICB9LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGVsZW1lbnQ6IGNyZWF0ZUVkaXRvckVsZW1lbnQoKSxcbiAgICB9LFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBmb2N1czogamVzdC5mbigpLFxuICAgIH0sXG4gICAgaW5zdGFuY2VJZDogJ2VkaXRvci0xMjMnLFxuICAgIF90b29sYmFyT3BlbmVkOiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3QgbW9ja05vZGUgPSB7XG4gICAgYXR0cnM6IHtcbiAgICAgIGxhdGV4OiAneF4yJyxcbiAgICB9LFxuICAgIG5vZGVTaXplOiAxLFxuICB9O1xuXG4gIGxldCBkZWZhdWx0UHJvcHM7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gICAgbW9ja0NyZWF0ZVBvcnRhbC5tb2NrSW1wbGVtZW50YXRpb24oKG5vZGUpID0+IG5vZGUpO1xuICAgIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIG5vZGU6IG1vY2tOb2RlLFxuICAgICAgdXBkYXRlQXR0cmlidXRlczogamVzdC5mbigpLFxuICAgICAgZWRpdG9yOiBjcmVhdGVNb2NrRWRpdG9yKCksXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICAgIGdldFBvczogamVzdC5mbigoKSA9PiAwKSxcbiAgICB9O1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ25vZGUtdmlldy13cmFwcGVyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBtYXRoIHByZXZpZXcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyB0b29sYmFyIHdoZW4gc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBzaG93IHRvb2xiYXIgd2hlbiBub3Qgc2VsZWN0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYWRkcyBkYXRhLXRvb2xiYXItZm9yIGF0dHJpYnV0ZSB3aXRoIGVkaXRvciBpbnN0YW5jZUlkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgIGV4cGVjdCh0b29sYmFyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtdG9vbGJhci1mb3InLCAnZWRpdG9yLTEyMycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9vbGJhciBwb3NpdGlvbmluZycsICgpID0+IHtcbiAgICBpdCgncG9zaXRpb25zIHJlbGF0aXZlIHRvIHBvcnRhbCBjb250YWluZXIgdXNpbmcgY29vcmRzQXRQb3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcxMDBweCcpO1xuICAgICAgICBleHBlY3QodG9vbGJhci5zdHlsZS5sZWZ0KS50b0JlKCc1MHB4Jyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdvZmZzZXRzIHBvc2l0aW9uIGJ5IHBvcnRhbCBjb250YWluZXIgZ2V0Qm91bmRpbmdDbGllbnRSZWN0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnRhaW5lckVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9IGplc3QuZm4oKCkgPT4gKHsgdG9wOiAxMDAsIGxlZnQ6IDUwLCB3aWR0aDogNjAwLCBoZWlnaHQ6IDQwMCB9KSk7XG5cbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvcixcbiAgICAgICAgX3RpcHRhcENvbnRhaW5lckVsOiBjb250YWluZXJFbCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcwcHgnKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUubGVmdCkudG9CZSgnMHB4Jyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhcHBsaWVzIGFic29sdXRlIHBvc2l0aW9uaW5nIHN0eWxlIHRvIHRvb2xiYXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUucG9zaXRpb24pLnRvQmUoJ2Fic29sdXRlJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGFib3ZlIG90aGVyIGVkaXRvciBvdmVybGF5cyB3aXRoIGEgaGlnaCB6LWluZGV4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICAgIGV4cGVjdCh0b29sYmFyLnN0eWxlLnpJbmRleCkudG9CZSgnMTAwMCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgndXBkYXRlcyBwb3NpdGlvbiBmcm9tIGNvb3Jkc0F0UG9zIHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLnZpZXcsXG4gICAgICAgICAgY29vcmRzQXRQb3M6IGplc3QuZm4oKCkgPT4gKHsgdG9wOiAyMDAsIGxlZnQ6IDE1MCB9KSksXG4gICAgICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRvb2xiYXItZm9yXScpO1xuICAgICAgICBleHBlY3QodG9vbGJhcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIuc3R5bGUudG9wKS50b0JlKCcyMDBweCcpO1xuICAgICAgICBleHBlY3QodG9vbGJhci5zdHlsZS5sZWZ0KS50b0JlKCcxNTBweCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2xhbXBzIHRvb2xiYXIgcG9zaXRpb24gdG8gdmlld3BvcnQgbWFyZ2lucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsSW5uZXJIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICBjb25zdCBvcmlnaW5hbElubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2lubmVySGVpZ2h0JywgeyBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogMjAwIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgJ2lubmVyV2lkdGgnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiAzMDAgfSk7XG5cbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvcixcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IudmlldyxcbiAgICAgICAgICBjb29yZHNBdFBvczogamVzdC5mbigoKSA9PiAoeyB0b3A6IDE5MCwgbGVmdDogMjgwLCBib3R0b206IDE5NSB9KSksXG4gICAgICAgICAgZGlzcGF0Y2g6IGplc3QuZm4oKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgICAgbGV0IHRvb2xiYXI7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sYmFyLWZvcl0nKTtcbiAgICAgICAgZXhwZWN0KHRvb2xiYXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICB9KTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvb2xiYXIsICdvZmZzZXRIZWlnaHQnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IDEwMCB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0b29sYmFyLCAnb2Zmc2V0V2lkdGgnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IDE1MCB9KTtcblxuICAgICAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QocGFyc2VJbnQodG9vbGJhci5zdHlsZS50b3AsIDEwKSkudG9CZUxlc3NUaGFuT3JFcXVhbCgyMDAgLSAxMDAgLSA4KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlSW50KHRvb2xiYXIuc3R5bGUubGVmdCwgMTApKS50b0JlTGVzc1RoYW5PckVxdWFsKDMwMCAtIDE1MCAtIDgpO1xuICAgICAgICBleHBlY3QocGFyc2VJbnQodG9vbGJhci5zdHlsZS50b3AsIDEwKSkudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCg4KTtcbiAgICAgICAgZXhwZWN0KHBhcnNlSW50KHRvb2xiYXIuc3R5bGUubGVmdCwgMTApKS50b0JlR3JlYXRlclRoYW5PckVxdWFsKDgpO1xuICAgICAgfSk7XG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdpbm5lckhlaWdodCcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG9yaWdpbmFsSW5uZXJIZWlnaHQgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnaW5uZXJXaWR0aCcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG9yaWdpbmFsSW5uZXJXaWR0aCB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhdHRhY2hlcyBzY3JvbGwgYW5kIHJlc2l6ZSBsaXN0ZW5lcnMgd2hpbGUgdG9vbGJhciBpcyBvcGVuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYWRkU3B5ID0gamVzdC5zcHlPbih3aW5kb3csICdhZGRFdmVudExpc3RlbmVyJyk7XG4gICAgICByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICAgIGV4cGVjdChhZGRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdzY3JvbGwnLCBleHBlY3QuYW55KEZ1bmN0aW9uKSwgdHJ1ZSk7XG4gICAgICAgIGV4cGVjdChhZGRTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdyZXNpemUnLCBleHBlY3QuYW55KEZ1bmN0aW9uKSk7XG4gICAgICB9KTtcbiAgICAgIGFkZFNweS5tb2NrUmVzdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3BvcnRhbHMgdG9vbGJhciBpbnRvIF90aXB0YXBDb250YWluZXJFbCB3aGVuIGF2YWlsYWJsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBjb250YWluZXJFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+ICh7IHRvcDogMCwgbGVmdDogMCwgd2lkdGg6IDYwMCwgaGVpZ2h0OiA0MDAgfSkpO1xuXG4gICAgICBjb25zdCBlZGl0b3IgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3IsXG4gICAgICAgIF90aXB0YXBDb250YWluZXJFbDogY29udGFpbmVyRWwsXG4gICAgICB9O1xuXG4gICAgICBtb2NrQ3JlYXRlUG9ydGFsLm1vY2tDbGVhcigpO1xuICAgICAgcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gZWRpdG9yPXtlZGl0b3J9IHNlbGVjdGVkPXt0cnVlfSAvPik7XG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgZXhwZWN0KG1vY2tDcmVhdGVQb3J0YWwpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgICAgY29uc3QgbGFzdENhbGwgPSBtb2NrQ3JlYXRlUG9ydGFsLm1vY2suY2FsbHNbbW9ja0NyZWF0ZVBvcnRhbC5tb2NrLmNhbGxzLmxlbmd0aCAtIDFdO1xuICAgICAgICBleHBlY3QobGFzdENhbGxbMV0pLnRvQmUoY29udGFpbmVyRWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncG9ydGFscyB0b29sYmFyIGludG8gZG9jdW1lbnQuYm9keSB3aGVuIF90aXB0YXBDb250YWluZXJFbCBpcyBub3Qgc2V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLFxuICAgICAgICBfdGlwdGFwQ29udGFpbmVyRWw6IHVuZGVmaW5lZCxcbiAgICAgIH07XG5cbiAgICAgIG1vY2tDcmVhdGVQb3J0YWwubW9ja0NsZWFyKCk7XG4gICAgICByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QobW9ja0NyZWF0ZVBvcnRhbCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgICBjb25zdCBsYXN0Q2FsbCA9IG1vY2tDcmVhdGVQb3J0YWwubW9jay5jYWxsc1ttb2NrQ3JlYXRlUG9ydGFsLm1vY2suY2FsbHMubGVuZ3RoIC0gMV07XG4gICAgICAgIGV4cGVjdChsYXN0Q2FsbFsxXSkudG9CZShkb2N1bWVudC5ib2R5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgnY2FsbHMgdXBkYXRlQXR0cmlidXRlcyB3aGVuIGxhdGV4IGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gZ2V0QnlUZXN0SWQoJ21hdGgtaW5wdXQnKTtcbiAgICAgIGZpcmVFdmVudC5jaGFuZ2UoaW5wdXQsIHsgdGFyZ2V0OiB7IHZhbHVlOiAneV4yJyB9IH0pO1xuICAgIH0pO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMudXBkYXRlQXR0cmlidXRlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBsYXRleDogJ3leMicgfSk7XG4gIH0pO1xuXG4gIGl0KCdjbG9zZXMgdG9vbGJhciBhbmQgdXBkYXRlcyBhdHRyaWJ1dGVzIHdoZW4gZG9uZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVBdHRyaWJ1dGVzID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcihcbiAgICAgIDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gdXBkYXRlQXR0cmlidXRlcz17dXBkYXRlQXR0cmlidXRlc30gc2VsZWN0ZWQ9e3RydWV9IC8+LFxuICAgICk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRvbmVCdXR0b24gPSBnZXRCeVRlc3RJZCgnZG9uZS1idXR0b24nKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soZG9uZUJ1dHRvbik7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdCh1cGRhdGVBdHRyaWJ1dGVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IGxhdGV4OiAneF4yJyB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3NldHMgZWRpdG9yLl90b29sYmFyT3BlbmVkIHdoZW4gdG9vbGJhciBpcyBzaG93bicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChkZWZhdWx0UHJvcHMuZWRpdG9yLl90b29sYmFyT3BlbmVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBpdCgndW5zZXRzIGVkaXRvci5fdG9vbGJhck9wZW5lZCB3aGVuIHRvb2xiYXIgaXMgY2xvc2VkIGFuZCBub2RlIGlzIG5vdCBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcblxuICAgIGZpcmVFdmVudC5jbGljayhnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5lZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZGVmYXVsdFByb3BzLmVkaXRvci5fdG9vbGJhck9wZW5lZCkudG9CZShmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdrZWVwcyBlZGl0b3IuX3Rvb2xiYXJPcGVuZWQgdHJ1ZSB3aGlsZSB0aGUgbWF0aCBub2RlIHJlbWFpbnMgc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEJ5VGVzdElkKCdkb25lLWJ1dHRvbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5lZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZGVmYXVsdFByb3BzLmVkaXRvci5fdG9vbGJhck9wZW5lZCkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2Nsb3NlcyB0b29sYmFyIG9uIG91dHNpZGUgY2xpY2sgYW5kIHJ1bnMgaGFuZGxlRG9uZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1cGRhdGVBdHRyaWJ1dGVzID0gamVzdC5mbigpO1xuICAgIGNvbnN0IGVkaXRvciA9IGNyZWF0ZU1vY2tFZGl0b3IoKTtcbiAgICBjb25zdCB7IFRleHRTZWxlY3Rpb24gfSA9IHJlcXVpcmUoJ3Byb3NlbWlycm9yLXN0YXRlJyk7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICA8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IGVkaXRvcj17ZWRpdG9yfSB1cGRhdGVBdHRyaWJ1dGVzPXt1cGRhdGVBdHRyaWJ1dGVzfSBzZWxlY3RlZD17dHJ1ZX0gLz4sXG4gICAgKTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgZmlyZUV2ZW50Lm1vdXNlRG93bihkb2N1bWVudC5ib2R5KTtcbiAgICBmaXJlRXZlbnQuY2xpY2soZG9jdW1lbnQuYm9keSk7XG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QodXBkYXRlQXR0cmlidXRlcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoeyBsYXRleDogJ3heMicgfSk7XG4gICAgICBleHBlY3QoVGV4dFNlbGVjdGlvbi5jcmVhdGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVkaXRvci5zdGF0ZS5kb2MsIDEpO1xuICAgICAgZXhwZWN0KGVkaXRvci5zdGF0ZS50ci5zZXRTZWxlY3Rpb24pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChlZGl0b3Iudmlldy5kaXNwYXRjaCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZWRpdG9yLnN0YXRlLnRyKTtcbiAgICAgIGV4cGVjdChlZGl0b3IuY29tbWFuZHMuZm9jdXMpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChlZGl0b3IuX3Rvb2xiYXJPcGVuZWQpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdyZS1yZWdpc3RlcnMgY2xpY2sgbGlzdGVuZXIgd2hlbiBub2RlIGNoYW5nZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYWRkRXZlbnRMaXN0ZW5lclNweSA9IGplc3Quc3B5T24oZG9jdW1lbnQsICdhZGRFdmVudExpc3RlbmVyJyk7XG4gICAgY29uc3QgcmVtb3ZlRXZlbnRMaXN0ZW5lclNweSA9IGplc3Quc3B5T24oZG9jdW1lbnQsICdyZW1vdmVFdmVudExpc3RlbmVyJyk7XG4gICAgY29uc3Qgbm9kZUEgPSB7IGF0dHJzOiB7IGxhdGV4OiAneF4yJyB9IH07XG4gICAgY29uc3Qgbm9kZUIgPSB7IGF0dHJzOiB7IGxhdGV4OiAneV4yJyB9IH07XG5cbiAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtub2RlQX0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KGFkZEV2ZW50TGlzdGVuZXJTcHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdjbGljaycsIGV4cGVjdC5hbnkoRnVuY3Rpb24pKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGluaXRpYWxDYWxsQ291bnQgPSBhZGRFdmVudExpc3RlbmVyU3B5Lm1vY2suY2FsbHMubGVuZ3RoO1xuXG4gICAgcmVyZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBub2RlPXtub2RlQn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlbW92ZUV2ZW50TGlzdGVuZXJTcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChhZGRFdmVudExpc3RlbmVyU3B5Lm1vY2suY2FsbHMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oaW5pdGlhbENhbGxDb3VudCk7XG4gICAgfSk7XG5cbiAgICBhZGRFdmVudExpc3RlbmVyU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lclNweS5tb2NrUmVzdG9yZSgpO1xuICB9KTtcblxuICBpdCgnaWdub3JlcyB0aGUgY2xpY2sgdGhhdCBjb21wbGV0ZXMgdGhlIGdlc3R1cmUgd2hpY2ggb3BlbmVkIHRoZSB0b29sYmFyJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgLy8gVGhlIG1vdXNlZG93biBoYXBwZW5lZCBiZWZvcmUgdGhlIHRvb2xiYXIgb3BlbmVkLCBzbyBvbmx5IHRoZSBjbGljayBhcnJpdmVzIGhlcmUuXG4gICAgZmlyZUV2ZW50LmNsaWNrKGRvY3VtZW50LmJvZHkpO1xuXG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgY2xvc2UgdG9vbGJhciB3aGVuIGNsaWNraW5nIHRoZSBtYXRoIG5vZGUgcHJldmlldycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkLCBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuXG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ21hdGgtcHJldmlldycpKTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndW5pcXVlIG1hdGgtbm9kZSBjbGFzcyBwZXIgaW5zdGFuY2UnLCAoKSA9PiB7XG4gICAgbGV0IGRhdGVOb3dTcHk7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGxldCB0aW1lc3RhbXAgPSAxMDAwO1xuICAgICAgZGF0ZU5vd1NweSA9IGplc3Quc3B5T24oRGF0ZSwgJ25vdycpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB0aW1lc3RhbXArKyk7XG4gICAgfSk7XG5cbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgZGF0ZU5vd1NweS5tb2NrUmVzdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Fzc2lnbnMgYSB0aW1lc3RhbXAtYmFzZWQgY2xhc3MgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuXG4gICAgICBleHBlY3Qod3JhcHBlci5jbGFzc05hbWUpLnRvTWF0Y2goL15tYXRoLW5vZGUtXFxkKyQvKTtcbiAgICB9KTtcblxuICAgIGl0KCdhc3NpZ25zIGEgZGlmZmVyZW50IGNsYXNzIHRvIGVhY2ggTWF0aE5vZGVWaWV3IGluc3RhbmNlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRBbGxCeVRlc3RJZCB9ID0gcmVuZGVyKFxuICAgICAgICA8PlxuICAgICAgICAgIDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gLz5cbiAgICAgICAgICA8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e3sgYXR0cnM6IHsgbGF0ZXg6ICd5XjInIH0gfX0gLz5cbiAgICAgICAgPC8+LFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgd3JhcHBlcnMgPSBnZXRBbGxCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKTtcbiAgICAgIGV4cGVjdCh3cmFwcGVyc1swXS5jbGFzc05hbWUpLnRvQmUoJ21hdGgtbm9kZS0xMDAwJyk7XG4gICAgICBleHBlY3Qod3JhcHBlcnNbMV0uY2xhc3NOYW1lKS50b0JlKCdtYXRoLW5vZGUtMTAwMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Nsb3NlcyB0b29sYmFyIHdoZW4gY2xpY2tpbmcgYSBkaWZmZXJlbnQgbWF0aCBub2RlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlQXR0cmlidXRlcyA9IGplc3QuZm4oKTtcbiAgICAgIGNvbnN0IGVkaXRvckEgPSBjcmVhdGVNb2NrRWRpdG9yKCk7XG4gICAgICBjb25zdCBlZGl0b3JCID0gY3JlYXRlTW9ja0VkaXRvcigpO1xuXG4gICAgICBjb25zdCB7IGdldEFsbEJ5VGVzdElkLCBxdWVyeUFsbEJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvckF9IHVwZGF0ZUF0dHJpYnV0ZXM9e3VwZGF0ZUF0dHJpYnV0ZXN9IHNlbGVjdGVkPXtmYWxzZX0gLz5cbiAgICAgICAgICA8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IGVkaXRvcj17ZWRpdG9yQn0gbm9kZT17eyBhdHRyczogeyBsYXRleDogJ3leMicgfSB9fSBzZWxlY3RlZD17ZmFsc2V9IC8+XG4gICAgICAgIDwvPixcbiAgICAgICk7XG5cbiAgICAgIGZpcmVFdmVudC5jbGljayhnZXRBbGxCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JylbMF0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgICAgZXhwZWN0KHF1ZXJ5QWxsQnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2Vjb25kUHJldmlldyA9IGdldEFsbEJ5VGVzdElkKCdtYXRoLXByZXZpZXcnKVsxXTtcbiAgICAgIGZpcmVFdmVudC5tb3VzZURvd24oc2Vjb25kUHJldmlldyk7XG4gICAgICBmaXJlRXZlbnQuY2xpY2soc2Vjb25kUHJldmlldyk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QocXVlcnlBbGxCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgICAgZXhwZWN0KHVwZGF0ZUF0dHJpYnV0ZXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgbGF0ZXg6ICd4XjInIH0pO1xuICAgICAgICBleHBlY3QoZWRpdG9yQS5fdG9vbGJhck9wZW5lZCkudG9CZShmYWxzZSk7XG4gICAgICAgIGV4cGVjdChnZXRBbGxCeVRlc3RJZCgnbWF0aC1pbnB1dCcpWzBdKS50b0hhdmVWYWx1ZSgneV4yJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NlbGVjdGlvbi1iYXNlZCB0b29sYmFyIGd1YXJkJywgKCkgPT4ge1xuICAgIGl0KCdvcGVucyB0b29sYmFyIHdoZW4gc2VsZWN0ZWQgdHJhbnNpdGlvbnMgdG8gdHJ1ZSBhbmQgdGhlIGVkaXRvciBoYXMgYSBOb2RlU2VsZWN0aW9uIG9uIG1hdGgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQsIHJlcmVuZGVyIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBzZWxlY3RlZD17ZmFsc2V9IC8+KTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG5cbiAgICAgIHJlcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcbiAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBvcGVuIHRvb2xiYXIgd2hlbiBzZWxlY3RlZCBicmllZmx5IGJlY29tZXMgdHJ1ZSBidXQgZWRpdG9yIHNlbGVjdGlvbiBoYXMgbm8gbm9kZSAoQ21kK0EgLyBkcmFnIGNhc2UpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcy5lZGl0b3Iuc3RhdGUsXG4gICAgICAgICAgc2VsZWN0aW9uOiB7IGZyb206IDAsIHRvOiAxMDAgfSwgLy8gbm8gLm5vZGUg4oCUIFRleHRTZWxlY3Rpb24gLyBBbGxTZWxlY3Rpb24gc2hhcGVcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCwgcmVyZW5kZXIgfSA9IHJlbmRlcihcbiAgICAgICAgPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e2ZhbHNlfSAvPixcbiAgICAgICk7XG4gICAgICByZXJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IGVkaXRvcj17ZWRpdG9yfSBzZWxlY3RlZD17dHJ1ZX0gLz4pO1xuXG4gICAgICBhd2FpdCBhY3QoYXN5bmMgKCkgPT4ge30pO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBvcGVuIHRvb2xiYXIgd2hlbiBzZWxlY3RlZCBicmllZmx5IGJlY29tZXMgdHJ1ZSBidXQgTm9kZVNlbGVjdGlvbiB0YXJnZXRzIGEgbm9uLW1hdGggbm9kZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVkaXRvciA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLmVkaXRvcixcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMuZWRpdG9yLnN0YXRlLFxuICAgICAgICAgIHNlbGVjdGlvbjogeyBmcm9tOiAwLCB0bzogMSwgbm9kZTogeyB0eXBlOiB7IG5hbWU6ICdpbWFnZScgfSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQsIHJlcmVuZGVyIH0gPSByZW5kZXIoXG4gICAgICAgIDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gZWRpdG9yPXtlZGl0b3J9IHNlbGVjdGVkPXtmYWxzZX0gLz4sXG4gICAgICApO1xuICAgICAgcmVyZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSBlZGl0b3I9e2VkaXRvcn0gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgICAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHt9KTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBjbG9zZSB0b29sYmFyIHdoZW4gY2xpY2tpbmcgZXF1YXRpb24gZWRpdG9yIGRyb3Bkb3duJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoTm9kZVZpZXcgey4uLmRlZmF1bHRQcm9wc30gc2VsZWN0ZWQ9e3RydWV9IC8+KTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgLy8gU2ltdWxhdGUgTVVJIFNlbGVjdCdzIHBvcnRhbCBkcm9wZG93biBjb250YWluZXIuXG4gICAgY29uc3QgZHJvcGRvd24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkcm9wZG93bi5pZCA9ICdlcXVhdGlvbi1lZGl0b3Itc2VsZWN0LWxpc3Rib3gnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZHJvcGRvd24pO1xuXG4gICAgZmlyZUV2ZW50LmNsaWNrKGRyb3Bkb3duKTtcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkcm9wZG93bik7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIHdpdGggZW1wdHkgbGF0ZXgnLCAoKSA9PiB7XG4gICAgY29uc3Qgbm9kZVdpdGhFbXB0eUxhdGV4ID0geyBhdHRyczogeyBsYXRleDogJycgfSB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aE5vZGVWaWV3IHsuLi5kZWZhdWx0UHJvcHN9IG5vZGU9e25vZGVXaXRoRW1wdHlMYXRleH0gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnbWF0aC1wcmV2aWV3JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCBzdHlsaW5nIG9uIE5vZGVWaWV3V3JhcHBlcicsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhOb2RlVmlldyB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVTdHlsZSh7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsIGN1cnNvcjogJ3BvaW50ZXInIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUFvRCxJQUFBSyxTQUFBO0FBQUEsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLFFBQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFM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
|