@pie-element/math-inline 12.4.0-beta.3 → 12.4.0-beta.4

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.
@@ -42,7 +42,7 @@ jest.mock('@pie-lib/correct-answer-toggle', () => props => /*#__PURE__*/React.cr
42
42
  jest.mock('../simple-question-block', () => props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
43
43
  "data-testid": "simple-question-block"
44
44
  }, props)));
45
- jest.mock('@pie-lib/math-input', () => ({
45
+ jest.mock('@pie-lib/math-input-mathlive', () => ({
46
46
  mq: {
47
47
  Static: props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
48
48
  "data-testid": "mq-static"
@@ -66,7 +66,7 @@ jest.mock('@pie-lib/translator', () => ({
66
66
  }));
67
67
  const {
68
68
  registerEmbed
69
- } = require('@pie-lib/math-input');
69
+ } = require('@pie-lib/math-input-mathlive');
70
70
  describe('Math-Inline Main', () => {
71
71
  const defaultProps = {
72
72
  onSessionChange: jest.fn(),
@@ -513,4 +513,4 @@ describe('Math-Inline Main', () => {
513
513
  });
514
514
  });
515
515
  });
516
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWFpbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVuZGVyVWkiLCJfY29ycmVjdEFuc3dlclRvZ2dsZSIsIl9zaW1wbGVRdWVzdGlvbkJsb2NrIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJjb2xvciIsInRleHQiLCJiYWNrZ3JvdW5kIiwicHJpbWFyeUxpZ2h0IiwiY29ycmVjdCIsImluY29ycmVjdCIsInNlY29uZGFyeSIsIkZlZWRiYWNrIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiUHJldmlld1Byb21wdCIsImNoaWxkcmVuIiwiVWlMYXlvdXQiLCJSZWFkYWJsZSIsImhhc1RleHQiLCJmbiIsImhhc01lZGlhIiwiQ29sbGFwc2libGUiLCJtcSIsIlN0YXRpYyIsIkhvcml6b250YWxLZXlwYWQiLCJ1cGRhdGVTcGFucyIsInJlZ2lzdGVyRW1iZWQiLCJhcHBseVN0YXRpY01hdGgiLCJyZW5kZXJNYXRoIiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJvblNlc3Npb25DaGFuZ2UiLCJzZXNzaW9uIiwibW9kZWwiLCJpZCIsImVsZW1lbnQiLCJjb3JyZWN0bmVzcyIsImNvbmZpZyIsInJlc3BvbnNlVHlwZSIsInF1ZXN0aW9uIiwiZXhwcmVzc2lvbiIsImVxdWF0aW9uRWRpdG9yIiwicmVzcG9uc2VzIiwidmFsaWRhdGlvbiIsImFuc3dlciIsImFsdGVybmF0ZXMiLCJmZWVkYmFjayIsInR5cGUiLCJwYXJ0aWFsIiwibm90ZSIsImN1c3RvbUtleXMiLCJ3cmFwcGVyIiwicmVuZGVyIiwiY3JlYXRlSW5zdGFuY2UiLCJpbnN0YW5jZVByb3BzIiwiaW5zdGFuY2UiLCJNYWluIiwic2V0U3RhdGUiLCJzdGF0ZSIsImFzc2lnbiIsIml0IiwicXVlcnlCeVRlc3RJZCIsImV4cGVjdCIsIm5vdCIsInRvQmVJblRoZURvY3VtZW50IiwidG9FcXVhbCIsImFjdGl2ZUFuc3dlckJsb2NrIiwiYW5zd2VycyIsInIxIiwidmFsdWUiLCJyMiIsInIzIiwicjQiLCJzaG93Q29ycmVjdCIsInRvb2x0aXBDb250YWluZXJSZWYiLCJhbnkiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwidGV4dGFyZWEiLCJiZWZvcmVFYWNoIiwiZG9jdW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJmb2N1cyIsImFmdGVyRWFjaCIsImlubmVySFRNTCIsImhhbmRsZUtleURvd24iLCJ0b0JlSW5zdGFuY2VPZiIsIkZ1bmN0aW9uIiwiZXZlbnQiLCJrZXkiLCJ0YXJnZXQiLCJhY3RpdmVFbGVtZW50IiwiY2xpY2tFdmVudCIsInRvdWNoRXZlbnQiLCJvbkJsdXIiLCJ0b0hhdmVQcm9wZXJ0eSIsInVubW91bnQiLCJzaW1wbGVQcm9wcyIsInF1ZXJ5U2ltcGxlIiwic3ViRmllbGRDaGFuZ2VkIiwibmV3UHJvcHMiLCJuZXdJbnN0YW5jZSIsInI1IiwibW9ja1Jvb3QiLCJyb290IiwiaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUiLCJxdWVyeVNlbGVjdG9yIiwidGV4dENvbnRlbnQiLCJjb3VudCIsImNvdW50UmVzcG9uc2VPY2N1cnJlbmNlcyIsInVwZGF0ZUFyaWEiLCJ0ZXh0YXJlYUVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJlbGVtIiwiaW5kZXgiLCJnZXRBdHRyaWJ1dGUiLCJ0b0JlTnVsbCIsImRlc2NyaWJlZEJ5SWQiLCJkZXNjcmliZWRCeUVsZW1lbnQiLCJ1c2VGYWtlVGltZXJzIiwiZm9jdXNGaXJzdEtleXBhZEVsZW1lbnQiLCJydW5BbGxUaW1lcnMiLCJmb2N1c2VkRWxlbWVudCIsInJlbW92ZUNoaWxkIiwidXNlUmVhbFRpbWVycyIsIm1vY2tSZWxhdGVkVGFyZ2V0IiwicGFyZW50V2l0aFRvb2x0aXAiLCJjaGlsZFdpdGhLZXlwYWQiLCJyZWxhdGVkVGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImNhbGxPblNlc3Npb25DaGFuZ2UiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvZ2dsZVNob3dDb3JyZWN0IiwiZmllbGRzIiwiZmllbGROYW1lIiwiZ2V0RmllbGROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYWluLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgTWFpbiBmcm9tICcuLi9tYWluJztcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IENvcnJlY3RBbnN3ZXJUb2dnbGUgfSBmcm9tICdAcGllLWxpYi9jb3JyZWN0LWFuc3dlci10b2dnbGUnO1xuaW1wb3J0IFNpbXBsZVF1ZXN0aW9uQmxvY2sgZnJvbSAnLi4vc2ltcGxlLXF1ZXN0aW9uLWJsb2NrJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9yZW5kZXItdWknLCAoKSA9PiAoe1xuICBjb2xvcjoge1xuICAgIHRleHQ6ICgpID0+ICcjMDAwJyxcbiAgICBiYWNrZ3JvdW5kOiAoKSA9PiAnI2ZmZicsXG4gICAgcHJpbWFyeUxpZ2h0OiAoKSA9PiAnI2NjYycsXG4gICAgY29ycmVjdDogKCkgPT4gJyMwMGZmMDAnLFxuICAgIGluY29ycmVjdDogKCkgPT4gJyNmZjAwMDAnLFxuICAgIHNlY29uZGFyeTogKCkgPT4gJyM4ODgnLFxuICB9LFxuICBGZWVkYmFjazogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZmVlZGJhY2tcIiB7Li4ucHJvcHN9IC8+LFxuICBQcmV2aWV3UHJvbXB0OiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJwcmV2aWV3LXByb21wdFwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIFVpTGF5b3V0OiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJ1aS1sYXlvdXRcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBSZWFkYWJsZTogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwicmVhZGFibGVcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBoYXNUZXh0OiBqZXN0LmZuKCksXG4gIGhhc01lZGlhOiBqZXN0LmZuKCksXG4gIENvbGxhcHNpYmxlOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJjb2xsYXBzaWJsZVwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29ycmVjdC1hbnN3ZXItdG9nZ2xlJywgKCkgPT4gKHByb3BzKSA9PiAoXG4gIDxkaXYgZGF0YS10ZXN0aWQ9XCJjb3JyZWN0LWFuc3dlci10b2dnbGVcIiB7Li4ucHJvcHN9IC8+XG4pKTtcblxuamVzdC5tb2NrKCcuLi9zaW1wbGUtcXVlc3Rpb24tYmxvY2snLCAoKSA9PiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJzaW1wbGUtcXVlc3Rpb24tYmxvY2tcIiB7Li4ucHJvcHN9IC8+KTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLWlucHV0JywgKCkgPT4gKHtcbiAgbXE6IHtcbiAgICBTdGF0aWM6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1xLXN0YXRpY1wiIHsuLi5wcm9wc30gLz4sXG4gIH0sXG4gIEhvcml6b250YWxLZXlwYWQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImhvcml6b250YWwta2V5cGFkXCIgey4uLnByb3BzfSAvPixcbiAgdXBkYXRlU3BhbnM6IGplc3QuZm4oKSxcbiAgcmVnaXN0ZXJFbWJlZDogamVzdC5mbigpLFxuICBhcHBseVN0YXRpY01hdGg6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXJlbmRlcmluZycsICgpID0+ICh7XG4gIHJlbmRlck1hdGg6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi90cmFuc2xhdG9yJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwidHJhbnNsYXRvclwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmNvbnN0IHsgcmVnaXN0ZXJFbWJlZCB9ID0gcmVxdWlyZSgnQHBpZS1saWIvbWF0aC1pbnB1dCcpO1xuXG5kZXNjcmliZSgnTWF0aC1JbmxpbmUgTWFpbicsICgpID0+IHtcbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uU2Vzc2lvbkNoYW5nZTogamVzdC5mbigpLFxuICAgIHNlc3Npb246IHt9LFxuICAgIG1vZGVsOiB7XG4gICAgICBpZDogJzEnLFxuICAgICAgZWxlbWVudDogJ21hdGgtaW5saW5lJyxcbiAgICAgIGNvcnJlY3RuZXNzOiB7fSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICByZXNwb25zZVR5cGU6ICdBZHZhbmNlZCBNdWx0aScsXG4gICAgICAgIGVsZW1lbnQ6ICdtYXRoLWlubGluZScsXG4gICAgICAgIHF1ZXN0aW9uOlxuICAgICAgICAgICc8cD5UaGUgYmlub21pYWwgPG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI+IDxtaT54PC9taT48bW8+JiM4NzIyOzwvbW8+PG1uPjI8L21uPiA8L21hdGg+IGlzIGEgZmFjdG9yIG9mIHRoZSBwb2x5bm9taWFsIGJlbG93LjwvcD48cD48c3BhbiBjbGFzcz1cImVxdWF0aW9uLWJsb2NrXCI+PG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI+IDxtaT5mPC9taT48bW8gc3RyZXRjaHk9XCJmYWxzZVwiPig8L21vPjxtaT54PC9taT48bW8gc3RyZXRjaHk9XCJmYWxzZVwiPik8L21vPjxtbz49PC9tbz48bXN1cD4gPG1pPng8L21pPiA8bW4+MzwvbW4+IDwvbXN1cD4gPG1vPis8L21vPjxtc3VwPiA8bWk+eDwvbWk+IDxtbj4yPC9tbj4gPC9tc3VwPiA8bW8+KzwvbW8+PG1pPm48L21pPjxtaT54PC9taT48bW8+KzwvbW8+PG1uPjEwPC9tbj4gPC9tYXRoPiA8L3NwYW4+PC9wPjxwPldoYXQgaXMgdGhlIHZhbHVlIG9mIDxzcGFuIGNsYXNzPVwidmFyaWFibGVcIj5uPC9zcGFuPj8gVXNlIHRoZSBvbi1zY3JlZW4ga2V5Ym9hcmQmIzE2MDt0byB0eXBlIHRoZSBjb3JyZWN0IGFuc3dlciBpbiB0aGUgYm94LjwvcD4nLFxuICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICdcXFxcdGV4dHtBIGZhbWlseSBzaXplZCBib3ggY29udGFpbnN9IHt7cmVzcG9uc2V9fSBcXFxcdGV4dHtsZXNzIHRoYW59IHt7cmVzcG9uc2V9fSBcXFxcdGV4dHt0aW1lcyB0aGUgbnVtYmVyICB9JyArXG4gICAgICAgICAgJyAgXFxcXGZyYWN7M317Nn09XFxcXGZyYWN7IHt7cmVzcG9uc2V9fSB9ezR9ICsgXFxcXGZyYWN7IHt7cmVzcG9uc2V9fSB9ezR9JyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6ICdtaXNjZWxsYW5lb3VzJyxcbiAgICAgICAgcmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgYW5zd2VyOiAnXFxcXGZyYWN7M317Nn09XFxcXGZyYWN7MX17Mn0nLFxuICAgICAgICAgICAgYWx0ZXJuYXRlczoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICBkZWZhdWx0OiAnQ29ycmVjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJ0aWFsOiB7XG4gICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgICAgZGVmYXVsdDogJ0luY29ycmVjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbm90ZTogJ1RoZSBhbnN3ZXIgc2hvd24gYWJvdmUgaXMgdGhlIHByaW1hcnkgY29ycmVjdCBhbnN3ZXIgc3BlY2lmaWVkIGJ5IHRoZSBhdXRob3IgZm9yIHRoaXMgaXRlbSwgYnV0IG90aGVyIGFuc3dlcnMgbWF5IGFsc28gYmUgcmVjb2duaXplZCBhcyBjb3JyZWN0LicsXG4gICAgICAgIGN1c3RvbUtleXM6IFsnXFxcXGxlZnQoXFxcXHJpZ2h0KScsICdcXFxcZnJhY3t9e30nLCAneFxcXFxmcmFje317fSddLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHdyYXBwZXIgPSAocHJvcHMgPSB7fSkgPT4ge1xuICAgIHJldHVybiByZW5kZXIoPE1haW4gey4uLmRlZmF1bHRQcm9wc30gey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlSW5zdGFuY2UgPSAocHJvcHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IE1haW4oaW5zdGFuY2VQcm9wcyk7XG4gICAgaW5zdGFuY2Uuc2V0U3RhdGUgPSBqZXN0LmZuKChzdGF0ZSkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZS5zdGF0ZSwgdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUoaW5zdGFuY2Uuc3RhdGUpIDogc3RhdGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ2NvcnJlY3QtYW5zd2VyLXRvZ2dsZScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdmZWVkYmFjaycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlKS50b0VxdWFsKHtcbiAgICAgICAgYWN0aXZlQW5zd2VyQmxvY2s6ICcnLFxuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVnaXN0ZXJFbWJlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaGFuZGxlS2V5RG93bicsICgpID0+IHtcbiAgICBsZXQgaW5zdGFuY2U7XG4gICAgbGV0IHRleHRhcmVhO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIHRleHRhcmVhLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdFbnRlciBhbnN3ZXIuJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGF2ZSBoYW5kbGVLZXlEb3duIG1ldGhvZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5oYW5kbGVLZXlEb3duKS50b0JlSW5zdGFuY2VPZihGdW5jdGlvbik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjdGl2YXRlIHRoZSBrZXlwYWQgd2hlbiBBcnJvd0Rvd24gaXMgcHJlc3NlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50ID0geyBrZXk6ICdBcnJvd0Rvd24nLCB0YXJnZXQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfTtcbiAgICAgIGluc3RhbmNlLmhhbmRsZUtleURvd24oZXZlbnQsICdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCcnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWN0aXZhdGUgdGhlIGtleXBhZCBvbiBjbGljayBvciB0b3VjaCBldmVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWNrRXZlbnQgPSB7IHR5cGU6ICdjbGljaycsIHRhcmdldDogZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB9O1xuICAgICAgaW5zdGFuY2UuaGFuZGxlS2V5RG93bihjbGlja0V2ZW50LCAncjEnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5hY3RpdmVBbnN3ZXJCbG9jaykudG9FcXVhbCgnJyk7XG5cbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHsgYWN0aXZlQW5zd2VyQmxvY2s6ICcnIH0pO1xuICAgICAgY29uc3QgdG91Y2hFdmVudCA9IHsgdHlwZTogJ3RvdWNoc3RhcnQnLCB0YXJnZXQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfTtcbiAgICAgIGluc3RhbmNlLmhhbmRsZUtleURvd24odG91Y2hFdmVudCwgJ3IxJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuYWN0aXZlQW5zd2VyQmxvY2spLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZWFjdGl2YXRlIHRoZSBrZXlwYWQgb24gRXNjYXBlIGtleSBwcmVzcycsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHsgYWN0aXZlQW5zd2VyQmxvY2s6ICdyMScgfSk7XG4gICAgICBpbnN0YW5jZS5oYW5kbGVLZXlEb3duKHsga2V5OiAnRXNjYXBlJywgdGFyZ2V0OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50IH0sICdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCcnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVhY3RpdmF0ZSB0aGUga2V5cGFkIGlmIHRoZSBpbnB1dCBpcyBub3QgZm9jdXNlZCBhbmQgYSBjbGljayBvciB0b3VjaCBldmVudCBvY2N1cnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHsga2V5OiAnQXJyb3dEb3duJywgdGFyZ2V0OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50IH07XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAncjEnIH0pO1xuXG4gICAgICBpbnN0YW5jZS5vbkJsdXIoZXZlbnQpO1xuXG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuYWN0aXZlQW5zd2VyQmxvY2spLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgaXQoJ3ByZXBhcmVzIGxhdGV4IGNvcnJlY3RseSBhbmQgYW5zd2VyIGJsb2NrcyBhbmQgdHVybnMgdGhlbSBpbnRvIGlucHV0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgIC8vIFRoZSBsYXRleCBwcmVwYXJhdGlvbiBoYXBwZW5zIGluIHRoZSByZW5kZXIgbWV0aG9kXG4gICAgICAvLyBXZSBjYW4ndCBlYXNpbHkgdGVzdCB0aGUgZXhhY3QgbGF0ZXggb3V0cHV0IHdpdGhvdXQgcmVuZGVyaW5nLCBidXQgd2UgY2FuIHZlcmlmeSB0aGUgc3RydWN0dXJlIGlzIHNldCB1cCBjb3JyZWN0bHlcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMpLnRvSGF2ZVByb3BlcnR5KCdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLnNlc3Npb24uYW5zd2VycykudG9IYXZlUHJvcGVydHkoJ3IyJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuc2Vzc2lvbi5hbnN3ZXJzKS50b0hhdmVQcm9wZXJ0eSgncjMnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMpLnRvSGF2ZVByb3BlcnR5KCdyNCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSByZW5kZXJzIHNpbXBsZSBpbnRlcmFjdGlvbiBpbiBjYXNlIG9mIHNpbXBsZSBtb2RlJywgKCkgPT4ge1xuICAgICAgLy8gRmlyc3QgdmVyaWZ5IGFkdmFuY2VkIG1vZGUgcmVuZGVycyBtcS1zdGF0aWNcbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCwgdW5tb3VudCB9ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21xLXN0YXRpYycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ3NpbXBsZS1xdWVzdGlvbi1ibG9jaycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIHVubW91bnQoKTtcblxuICAgICAgLy8gVGhlbiB2ZXJpZnkgc2ltcGxlIG1vZGUgcmVuZGVycyBzaW1wbGUtcXVlc3Rpb24tYmxvY2tcbiAgICAgIGNvbnN0IHNpbXBsZVByb3BzID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLm1vZGVsLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFByb3BzLm1vZGVsLmNvbmZpZyxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ1NpbXBsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZDogcXVlcnlTaW1wbGUgfSA9IHJlbmRlcig8TWFpbiB7Li4uc2ltcGxlUHJvcHN9IC8+KTtcblxuICAgICAgZXhwZWN0KHF1ZXJ5U2ltcGxlKCdtcS1zdGF0aWMnKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QocXVlcnlTaW1wbGUoJ3NpbXBsZS1xdWVzdGlvbi1ibG9jaycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSBwcmUtcG9wdWxhdGVzIGFuc3dlcnMgZnJvbSBzZXNzaW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICBhbnN3ZXJzOiB7XG4gICAgICAgICAgICByMToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ1xcXFxmcmFje24tNX17Nn0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUpLnRvRXF1YWwoe1xuICAgICAgICBhY3RpdmVBbnN3ZXJCbG9jazogJycsXG4gICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICBhbnN3ZXJzOiB7XG4gICAgICAgICAgICByMToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ1xcXFxmcmFje24tNX17Nn0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSB1cGRhdGVzIHNlc3Npb24gaW4gY2FzZSBvZiBtb2RlbCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIGluc3RhbmNlLnN1YkZpZWxkQ2hhbmdlZCgncjEnLCAndmFsdWUnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICAgIGFjdGl2ZUFuc3dlckJsb2NrOiAnJyxcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAndmFsdWUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSB1cGRhdGVzIHNlc3Npb24gaW4gY2FzZSBvZiBzdWJmaWVsZCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICAgIGFjdGl2ZUFuc3dlckJsb2NrOiAnJyxcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMjoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHI0OiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICB0b29sdGlwQ29udGFpbmVyUmVmOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmV3UHJvcHMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMubW9kZWwsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMubW9kZWwuY29uZmlnLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZGVmYXVsdFByb3BzLm1vZGVsLmNvbmZpZy5leHByZXNzaW9uICsgJyB7e3Jlc3BvbnNlfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuZXdJbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKG5ld1Byb3BzKTtcblxuICAgICAgZXhwZWN0KG5ld0luc3RhbmNlLnN0YXRlKS50b0VxdWFsKHtcbiAgICAgICAgYWN0aXZlQW5zd2VyQmxvY2s6ICcnLFxuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHI1OiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICB0b29sdGlwQ29udGFpbmVyUmVmOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ01haW4gY29tcG9uZW50IGFkZGl0aW9uYWwgZnVuY3Rpb25zJywgKCkgPT4ge1xuICAgIGxldCBpbnN0YW5jZTtcbiAgICBsZXQgdGV4dGFyZWE7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcblxuICAgICAgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgdGV4dGFyZWEuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0VudGVyIGFuc3dlci4nKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO1xuICAgICAgdGV4dGFyZWEuZm9jdXMoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICcnO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW5zd2VyIGJsb2NrIERPTSB1cGRhdGUgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9ja1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIG1vY2tSb290LmlubmVySFRNTCA9IGBcbiAgICAgICAgPGRpdiBpZD1cInIxXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJyMUluZGV4XCI+PC9kaXY+XG4gICAgICBgO1xuICAgICAgaW5zdGFuY2Uucm9vdCA9IG1vY2tSb290O1xuXG4gICAgICBpbnN0YW5jZS5oYW5kbGVBbnN3ZXJCbG9ja0RvbVVwZGF0ZSgpO1xuXG4gICAgICBleHBlY3QobW9ja1Jvb3QucXVlcnlTZWxlY3RvcignI3IxJykudGV4dENvbnRlbnQpLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb3VudCByZXNwb25zZSBvY2N1cnJlbmNlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gJ3t7cmVzcG9uc2V9fSArIHt7cmVzcG9uc2V9fSA9IHt7cmVzcG9uc2V9fSc7XG4gICAgICBjb25zdCBjb3VudCA9IGluc3RhbmNlLmNvdW50UmVzcG9uc2VPY2N1cnJlbmNlcyhleHByZXNzaW9uKTtcbiAgICAgIGV4cGVjdChjb3VudCkudG9FcXVhbCgzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdXBkYXRlIGFyaWEgYXR0cmlidXRlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2NrUm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgbW9ja1Jvb3QuaW5uZXJIVE1MID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtc2VsZWN0YWJsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtc2VsZWN0YWJsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtdGV4dGFyZWFcIj5cbiAgICAgICAgICA8dGV4dGFyZWE+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgICAgaW5zdGFuY2Uucm9vdCA9IG1vY2tSb290O1xuXG4gICAgICBpbnN0YW5jZS51cGRhdGVBcmlhKCk7XG5cbiAgICAgIGNvbnN0IHRleHRhcmVhRWxlbWVudHMgPSBtb2NrUm9vdC5xdWVyeVNlbGVjdG9yQWxsKCd0ZXh0YXJlYScpO1xuICAgICAgdGV4dGFyZWFFbGVtZW50cy5mb3JFYWNoKChlbGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBleHBlY3QoZWxlbS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkudG9FcXVhbCgnRW50ZXIgYW5zd2VyLicpO1xuICAgICAgICBleHBlY3QoZWxlbS5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKSkubm90LnRvQmVOdWxsKCk7XG4gICAgICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWQgPSBlbGVtLmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgICAgICBjb25zdCBkZXNjcmliZWRCeUVsZW1lbnQgPSBtb2NrUm9vdC5xdWVyeVNlbGVjdG9yKGAjJHtkZXNjcmliZWRCeUlkfWApO1xuICAgICAgICBleHBlY3QoZGVzY3JpYmVkQnlFbGVtZW50KS5ub3QudG9CZU51bGwoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmb2N1cyBmaXJzdCBrZXlwYWQgZWxlbWVudCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBqZXN0LnVzZUZha2VUaW1lcnMoKTtcblxuICAgICAgY29uc3QgbW9ja1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIG1vY2tSb290LmlubmVySFRNTCA9IGBcbiAgICAgICAgPGRpdiBkYXRhLWtleXBhZD1cInRydWVcIj5cbiAgICAgICAgICA8YnV0dG9uPkJ1dHRvbiAxPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbj5CdXR0b24gMjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG5cbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9ja1Jvb3QpO1xuXG4gICAgICBpbnN0YW5jZS5yb290ID0gbW9ja1Jvb3Q7XG5cbiAgICAgIGluc3RhbmNlLmZvY3VzRmlyc3RLZXlwYWRFbGVtZW50KCk7XG5cbiAgICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgIGV4cGVjdChmb2N1c2VkRWxlbWVudC50ZXh0Q29udGVudCkudG9FcXVhbCgnQnV0dG9uIDEnKTtcblxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChtb2NrUm9vdCk7XG5cbiAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYmx1ciBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAncjEnIH0pO1xuXG4gICAgICBjb25zdCBtb2NrUmVsYXRlZFRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY29uc3QgcGFyZW50V2l0aFRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHBhcmVudFdpdGhUb29sdGlwLnNldEF0dHJpYnV0ZSgncm9sZScsICd0b29sdGlwJyk7XG5cbiAgICAgIGNvbnN0IGNoaWxkV2l0aEtleXBhZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY2hpbGRXaXRoS2V5cGFkLnNldEF0dHJpYnV0ZSgnZGF0YS1rZXlwYWQnLCAndHJ1ZScpO1xuXG4gICAgICBwYXJlbnRXaXRoVG9vbHRpcC5hcHBlbmRDaGlsZChjaGlsZFdpdGhLZXlwYWQpO1xuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobW9ja1JlbGF0ZWRUYXJnZXQsICdvZmZzZXRQYXJlbnQnLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwYXJlbnRXaXRoVG9vbHRpcDtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogbW9ja1JlbGF0ZWRUYXJnZXQsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxuICAgICAgfTtcblxuICAgICAgaW5zdGFuY2Uub25CbHVyKGV2ZW50KTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCdyMScpO1xuXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID0gbnVsbDtcbiAgICAgIGluc3RhbmNlLm9uQmx1cihldmVudCk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5hY3RpdmVBbnN3ZXJCbG9jaykudG9FcXVhbCgnJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgb25TZXNzaW9uQ2hhbmdlIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHtcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7IHZhbHVlOiAndGVzdCcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGluc3RhbmNlLmNhbGxPblNlc3Npb25DaGFuZ2UoKTtcblxuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5vblNlc3Npb25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgIHIxOiB7IHZhbHVlOiAndGVzdCcgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0b2dnbGUgc2hvdyBjb3JyZWN0IHN0YXRlIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnRvZ2dsZVNob3dDb3JyZWN0KHRydWUpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLnNob3dDb3JyZWN0KS50b0VxdWFsKHRydWUpO1xuXG4gICAgICBpbnN0YW5jZS50b2dnbGVTaG93Q29ycmVjdChmYWxzZSk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuc2hvd0NvcnJlY3QpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgc3ViRmllbGRDaGFuZ2VkIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnN1YkZpZWxkQ2hhbmdlZCgncjEnLCAnbmV3IHZhbHVlJyk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMucjEudmFsdWUpLnRvRXF1YWwoJ25ldyB2YWx1ZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgdGhlIGNvcnJlY3QgZmllbGQgbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHsgcjE6IHsgaWQ6IDEgfSwgcjI6IHsgaWQ6IDIgfSB9O1xuICAgICAgaW5zdGFuY2Uuc2V0U3RhdGUoe1xuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHsgdmFsdWU6ICd0ZXN0JyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZmllbGROYW1lID0gaW5zdGFuY2UuZ2V0RmllbGROYW1lKHsgaWQ6IDEgfSwgZmllbGRzKTtcbiAgICAgIGV4cGVjdChmaWVsZE5hbWUpLnRvRXF1YWwoJ3IxJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxvQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sb0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUEyRCxTQUFBRCx3QkFBQVEsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVYsdUJBQUEsWUFBQUEsQ0FBQVEsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFB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RUFBRTtVQUNQQyxFQUFFLEVBQUU7WUFBRUMsS0FBSyxFQUFFO1VBQU87UUFDdEI7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRlQsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLE1BQU07TUFDckRMLFFBQVEsQ0FBQytFLGlCQUFpQixDQUFDLElBQUksQ0FBQztNQUNoQ3hFLE1BQU0sQ0FBQ1AsUUFBUSxDQUFDRyxLQUFLLENBQUNlLFdBQVcsQ0FBQyxDQUFDUixPQUFPLENBQUMsSUFBSSxDQUFDO01BRWhEVixRQUFRLENBQUMrRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7TUFDakN4RSxNQUFNLENBQUNQLFFBQVEsQ0FBQ0csS0FBSyxDQUFDZSxXQUFXLENBQUMsQ0FBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLE1BQU07TUFDbERMLFFBQVEsQ0FBQzZDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO01BRTNDdEMsTUFBTSxDQUFDUCxRQUFRLENBQUNHLEtBQUssQ0FBQzFCLE9BQU8sQ0FBQ21DLE9BQU8sQ0FBQ0MsRUFBRSxDQUFDQyxLQUFLLENBQUMsQ0FBQ0osT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN0RSxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLE1BQU07TUFDNUMsTUFBTTJFLE1BQU0sR0FBRztRQUFFbkUsRUFBRSxFQUFFO1VBQUVsQyxFQUFFLEVBQUU7UUFBRSxDQUFDO1FBQUVvQyxFQUFFLEVBQUU7VUFBRXBDLEVBQUUsRUFBRTtRQUFFO01BQUUsQ0FBQztNQUMvQ3FCLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDO1FBQ2hCekIsT0FBTyxFQUFFO1VBQ1BtQyxPQUFPLEVBQUU7WUFDUEMsRUFBRSxFQUFFO2NBQUVDLEtBQUssRUFBRTtZQUFPO1VBQ3RCO1FBQ0Y7TUFDRixDQUFDLENBQUM7TUFFRixNQUFNbUUsU0FBUyxHQUFHakYsUUFBUSxDQUFDa0YsWUFBWSxDQUFDO1FBQUV2RyxFQUFFLEVBQUU7TUFBRSxDQUFDLEVBQUVxRyxNQUFNLENBQUM7TUFDMUR6RSxNQUFNLENBQUMwRSxTQUFTLENBQUMsQ0FBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
516
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWFpbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVuZGVyVWkiLCJfY29ycmVjdEFuc3dlclRvZ2dsZSIsIl9zaW1wbGVRdWVzdGlvbkJsb2NrIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJjb2xvciIsInRleHQiLCJiYWNrZ3JvdW5kIiwicHJpbWFyeUxpZ2h0IiwiY29ycmVjdCIsImluY29ycmVjdCIsInNlY29uZGFyeSIsIkZlZWRiYWNrIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiUHJldmlld1Byb21wdCIsImNoaWxkcmVuIiwiVWlMYXlvdXQiLCJSZWFkYWJsZSIsImhhc1RleHQiLCJmbiIsImhhc01lZGlhIiwiQ29sbGFwc2libGUiLCJtcSIsIlN0YXRpYyIsIkhvcml6b250YWxLZXlwYWQiLCJ1cGRhdGVTcGFucyIsInJlZ2lzdGVyRW1iZWQiLCJhcHBseVN0YXRpY01hdGgiLCJyZW5kZXJNYXRoIiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJvblNlc3Npb25DaGFuZ2UiLCJzZXNzaW9uIiwibW9kZWwiLCJpZCIsImVsZW1lbnQiLCJjb3JyZWN0bmVzcyIsImNvbmZpZyIsInJlc3BvbnNlVHlwZSIsInF1ZXN0aW9uIiwiZXhwcmVzc2lvbiIsImVxdWF0aW9uRWRpdG9yIiwicmVzcG9uc2VzIiwidmFsaWRhdGlvbiIsImFuc3dlciIsImFsdGVybmF0ZXMiLCJmZWVkYmFjayIsInR5cGUiLCJwYXJ0aWFsIiwibm90ZSIsImN1c3RvbUtleXMiLCJ3cmFwcGVyIiwicmVuZGVyIiwiY3JlYXRlSW5zdGFuY2UiLCJpbnN0YW5jZVByb3BzIiwiaW5zdGFuY2UiLCJNYWluIiwic2V0U3RhdGUiLCJzdGF0ZSIsImFzc2lnbiIsIml0IiwicXVlcnlCeVRlc3RJZCIsImV4cGVjdCIsIm5vdCIsInRvQmVJblRoZURvY3VtZW50IiwidG9FcXVhbCIsImFjdGl2ZUFuc3dlckJsb2NrIiwiYW5zd2VycyIsInIxIiwidmFsdWUiLCJyMiIsInIzIiwicjQiLCJzaG93Q29ycmVjdCIsInRvb2x0aXBDb250YWluZXJSZWYiLCJhbnkiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwidGV4dGFyZWEiLCJiZWZvcmVFYWNoIiwiZG9jdW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJmb2N1cyIsImFmdGVyRWFjaCIsImlubmVySFRNTCIsImhhbmRsZUtleURvd24iLCJ0b0JlSW5zdGFuY2VPZiIsIkZ1bmN0aW9uIiwiZXZlbnQiLCJrZXkiLCJ0YXJnZXQiLCJhY3RpdmVFbGVtZW50IiwiY2xpY2tFdmVudCIsInRvdWNoRXZlbnQiLCJvbkJsdXIiLCJ0b0hhdmVQcm9wZXJ0eSIsInVubW91bnQiLCJzaW1wbGVQcm9wcyIsInF1ZXJ5U2ltcGxlIiwic3ViRmllbGRDaGFuZ2VkIiwibmV3UHJvcHMiLCJuZXdJbnN0YW5jZSIsInI1IiwibW9ja1Jvb3QiLCJyb290IiwiaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUiLCJxdWVyeVNlbGVjdG9yIiwidGV4dENvbnRlbnQiLCJjb3VudCIsImNvdW50UmVzcG9uc2VPY2N1cnJlbmNlcyIsInVwZGF0ZUFyaWEiLCJ0ZXh0YXJlYUVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJlbGVtIiwiaW5kZXgiLCJnZXRBdHRyaWJ1dGUiLCJ0b0JlTnVsbCIsImRlc2NyaWJlZEJ5SWQiLCJkZXNjcmliZWRCeUVsZW1lbnQiLCJ1c2VGYWtlVGltZXJzIiwiZm9jdXNGaXJzdEtleXBhZEVsZW1lbnQiLCJydW5BbGxUaW1lcnMiLCJmb2N1c2VkRWxlbWVudCIsInJlbW92ZUNoaWxkIiwidXNlUmVhbFRpbWVycyIsIm1vY2tSZWxhdGVkVGFyZ2V0IiwicGFyZW50V2l0aFRvb2x0aXAiLCJjaGlsZFdpdGhLZXlwYWQiLCJyZWxhdGVkVGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImNhbGxPblNlc3Npb25DaGFuZ2UiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvZ2dsZVNob3dDb3JyZWN0IiwiZmllbGRzIiwiZmllbGROYW1lIiwiZ2V0RmllbGROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYWluLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgTWFpbiBmcm9tICcuLi9tYWluJztcbmltcG9ydCB7IEZlZWRiYWNrIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IENvcnJlY3RBbnN3ZXJUb2dnbGUgfSBmcm9tICdAcGllLWxpYi9jb3JyZWN0LWFuc3dlci10b2dnbGUnO1xuaW1wb3J0IFNpbXBsZVF1ZXN0aW9uQmxvY2sgZnJvbSAnLi4vc2ltcGxlLXF1ZXN0aW9uLWJsb2NrJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9yZW5kZXItdWknLCAoKSA9PiAoe1xuICBjb2xvcjoge1xuICAgIHRleHQ6ICgpID0+ICcjMDAwJyxcbiAgICBiYWNrZ3JvdW5kOiAoKSA9PiAnI2ZmZicsXG4gICAgcHJpbWFyeUxpZ2h0OiAoKSA9PiAnI2NjYycsXG4gICAgY29ycmVjdDogKCkgPT4gJyMwMGZmMDAnLFxuICAgIGluY29ycmVjdDogKCkgPT4gJyNmZjAwMDAnLFxuICAgIHNlY29uZGFyeTogKCkgPT4gJyM4ODgnLFxuICB9LFxuICBGZWVkYmFjazogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZmVlZGJhY2tcIiB7Li4ucHJvcHN9IC8+LFxuICBQcmV2aWV3UHJvbXB0OiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJwcmV2aWV3LXByb21wdFwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG4gIFVpTGF5b3V0OiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJ1aS1sYXlvdXRcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBSZWFkYWJsZTogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwicmVhZGFibGVcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBoYXNUZXh0OiBqZXN0LmZuKCksXG4gIGhhc01lZGlhOiBqZXN0LmZuKCksXG4gIENvbGxhcHNpYmxlOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJjb2xsYXBzaWJsZVwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29ycmVjdC1hbnN3ZXItdG9nZ2xlJywgKCkgPT4gKHByb3BzKSA9PiAoXG4gIDxkaXYgZGF0YS10ZXN0aWQ9XCJjb3JyZWN0LWFuc3dlci10b2dnbGVcIiB7Li4ucHJvcHN9IC8+XG4pKTtcblxuamVzdC5tb2NrKCcuLi9zaW1wbGUtcXVlc3Rpb24tYmxvY2snLCAoKSA9PiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJzaW1wbGUtcXVlc3Rpb24tYmxvY2tcIiB7Li4ucHJvcHN9IC8+KTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLWlucHV0LW1hdGhsaXZlJywgKCkgPT4gKHtcbiAgbXE6IHtcbiAgICBTdGF0aWM6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1xLXN0YXRpY1wiIHsuLi5wcm9wc30gLz4sXG4gIH0sXG4gIEhvcml6b250YWxLZXlwYWQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImhvcml6b250YWwta2V5cGFkXCIgey4uLnByb3BzfSAvPixcbiAgdXBkYXRlU3BhbnM6IGplc3QuZm4oKSxcbiAgcmVnaXN0ZXJFbWJlZDogamVzdC5mbigpLFxuICBhcHBseVN0YXRpY01hdGg6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXJlbmRlcmluZycsICgpID0+ICh7XG4gIHJlbmRlck1hdGg6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi90cmFuc2xhdG9yJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwidHJhbnNsYXRvclwiPntwcm9wcy5jaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmNvbnN0IHsgcmVnaXN0ZXJFbWJlZCB9ID0gcmVxdWlyZSgnQHBpZS1saWIvbWF0aC1pbnB1dC1tYXRobGl2ZScpO1xuXG5kZXNjcmliZSgnTWF0aC1JbmxpbmUgTWFpbicsICgpID0+IHtcbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIG9uU2Vzc2lvbkNoYW5nZTogamVzdC5mbigpLFxuICAgIHNlc3Npb246IHt9LFxuICAgIG1vZGVsOiB7XG4gICAgICBpZDogJzEnLFxuICAgICAgZWxlbWVudDogJ21hdGgtaW5saW5lJyxcbiAgICAgIGNvcnJlY3RuZXNzOiB7fSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICByZXNwb25zZVR5cGU6ICdBZHZhbmNlZCBNdWx0aScsXG4gICAgICAgIGVsZW1lbnQ6ICdtYXRoLWlubGluZScsXG4gICAgICAgIHF1ZXN0aW9uOlxuICAgICAgICAgICc8cD5UaGUgYmlub21pYWwgPG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI+IDxtaT54PC9taT48bW8+JiM4NzIyOzwvbW8+PG1uPjI8L21uPiA8L21hdGg+IGlzIGEgZmFjdG9yIG9mIHRoZSBwb2x5bm9taWFsIGJlbG93LjwvcD48cD48c3BhbiBjbGFzcz1cImVxdWF0aW9uLWJsb2NrXCI+PG1hdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI+IDxtaT5mPC9taT48bW8gc3RyZXRjaHk9XCJmYWxzZVwiPig8L21vPjxtaT54PC9taT48bW8gc3RyZXRjaHk9XCJmYWxzZVwiPik8L21vPjxtbz49PC9tbz48bXN1cD4gPG1pPng8L21pPiA8bW4+MzwvbW4+IDwvbXN1cD4gPG1vPis8L21vPjxtc3VwPiA8bWk+eDwvbWk+IDxtbj4yPC9tbj4gPC9tc3VwPiA8bW8+KzwvbW8+PG1pPm48L21pPjxtaT54PC9taT48bW8+KzwvbW8+PG1uPjEwPC9tbj4gPC9tYXRoPiA8L3NwYW4+PC9wPjxwPldoYXQgaXMgdGhlIHZhbHVlIG9mIDxzcGFuIGNsYXNzPVwidmFyaWFibGVcIj5uPC9zcGFuPj8gVXNlIHRoZSBvbi1zY3JlZW4ga2V5Ym9hcmQmIzE2MDt0byB0eXBlIHRoZSBjb3JyZWN0IGFuc3dlciBpbiB0aGUgYm94LjwvcD4nLFxuICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICdcXFxcdGV4dHtBIGZhbWlseSBzaXplZCBib3ggY29udGFpbnN9IHt7cmVzcG9uc2V9fSBcXFxcdGV4dHtsZXNzIHRoYW59IHt7cmVzcG9uc2V9fSBcXFxcdGV4dHt0aW1lcyB0aGUgbnVtYmVyICB9JyArXG4gICAgICAgICAgJyAgXFxcXGZyYWN7M317Nn09XFxcXGZyYWN7IHt7cmVzcG9uc2V9fSB9ezR9ICsgXFxcXGZyYWN7IHt7cmVzcG9uc2V9fSB9ezR9JyxcbiAgICAgICAgZXF1YXRpb25FZGl0b3I6ICdtaXNjZWxsYW5lb3VzJyxcbiAgICAgICAgcmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgYW5zd2VyOiAnXFxcXGZyYWN7M317Nn09XFxcXGZyYWN7MX17Mn0nLFxuICAgICAgICAgICAgYWx0ZXJuYXRlczoge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICBkZWZhdWx0OiAnQ29ycmVjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJ0aWFsOiB7XG4gICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgICAgZGVmYXVsdDogJ0luY29ycmVjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbm90ZTogJ1RoZSBhbnN3ZXIgc2hvd24gYWJvdmUgaXMgdGhlIHByaW1hcnkgY29ycmVjdCBhbnN3ZXIgc3BlY2lmaWVkIGJ5IHRoZSBhdXRob3IgZm9yIHRoaXMgaXRlbSwgYnV0IG90aGVyIGFuc3dlcnMgbWF5IGFsc28gYmUgcmVjb2duaXplZCBhcyBjb3JyZWN0LicsXG4gICAgICAgIGN1c3RvbUtleXM6IFsnXFxcXGxlZnQoXFxcXHJpZ2h0KScsICdcXFxcZnJhY3t9e30nLCAneFxcXFxmcmFje317fSddLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHdyYXBwZXIgPSAocHJvcHMgPSB7fSkgPT4ge1xuICAgIHJldHVybiByZW5kZXIoPE1haW4gey4uLmRlZmF1bHRQcm9wc30gey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlSW5zdGFuY2UgPSAocHJvcHMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAuLi5wcm9wcyxcbiAgICB9O1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IE1haW4oaW5zdGFuY2VQcm9wcyk7XG4gICAgaW5zdGFuY2Uuc2V0U3RhdGUgPSBqZXN0LmZuKChzdGF0ZSkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZS5zdGF0ZSwgdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUoaW5zdGFuY2Uuc3RhdGUpIDogc3RhdGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ2NvcnJlY3QtYW5zd2VyLXRvZ2dsZScpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdmZWVkYmFjaycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlKS50b0VxdWFsKHtcbiAgICAgICAgYWN0aXZlQW5zd2VyQmxvY2s6ICcnLFxuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVnaXN0ZXJFbWJlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaGFuZGxlS2V5RG93bicsICgpID0+IHtcbiAgICBsZXQgaW5zdGFuY2U7XG4gICAgbGV0IHRleHRhcmVhO1xuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcbiAgICAgIHRleHRhcmVhLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsICdFbnRlciBhbnN3ZXIuJyk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKTtcbiAgICAgIHRleHRhcmVhLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGF2ZSBoYW5kbGVLZXlEb3duIG1ldGhvZCcsICgpID0+IHtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5oYW5kbGVLZXlEb3duKS50b0JlSW5zdGFuY2VPZihGdW5jdGlvbik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjdGl2YXRlIHRoZSBrZXlwYWQgd2hlbiBBcnJvd0Rvd24gaXMgcHJlc3NlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50ID0geyBrZXk6ICdBcnJvd0Rvd24nLCB0YXJnZXQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfTtcbiAgICAgIGluc3RhbmNlLmhhbmRsZUtleURvd24oZXZlbnQsICdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCcnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWN0aXZhdGUgdGhlIGtleXBhZCBvbiBjbGljayBvciB0b3VjaCBldmVudCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWNrRXZlbnQgPSB7IHR5cGU6ICdjbGljaycsIHRhcmdldDogZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB9O1xuICAgICAgaW5zdGFuY2UuaGFuZGxlS2V5RG93bihjbGlja0V2ZW50LCAncjEnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5hY3RpdmVBbnN3ZXJCbG9jaykudG9FcXVhbCgnJyk7XG5cbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHsgYWN0aXZlQW5zd2VyQmxvY2s6ICcnIH0pO1xuICAgICAgY29uc3QgdG91Y2hFdmVudCA9IHsgdHlwZTogJ3RvdWNoc3RhcnQnLCB0YXJnZXQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfTtcbiAgICAgIGluc3RhbmNlLmhhbmRsZUtleURvd24odG91Y2hFdmVudCwgJ3IxJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuYWN0aXZlQW5zd2VyQmxvY2spLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZWFjdGl2YXRlIHRoZSBrZXlwYWQgb24gRXNjYXBlIGtleSBwcmVzcycsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHsgYWN0aXZlQW5zd2VyQmxvY2s6ICdyMScgfSk7XG4gICAgICBpbnN0YW5jZS5oYW5kbGVLZXlEb3duKHsga2V5OiAnRXNjYXBlJywgdGFyZ2V0OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50IH0sICdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCcnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVhY3RpdmF0ZSB0aGUga2V5cGFkIGlmIHRoZSBpbnB1dCBpcyBub3QgZm9jdXNlZCBhbmQgYSBjbGljayBvciB0b3VjaCBldmVudCBvY2N1cnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBldmVudCA9IHsga2V5OiAnQXJyb3dEb3duJywgdGFyZ2V0OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50IH07XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAncjEnIH0pO1xuXG4gICAgICBpbnN0YW5jZS5vbkJsdXIoZXZlbnQpO1xuXG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuYWN0aXZlQW5zd2VyQmxvY2spLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9naWMnLCAoKSA9PiB7XG4gICAgaXQoJ3ByZXBhcmVzIGxhdGV4IGNvcnJlY3RseSBhbmQgYW5zd2VyIGJsb2NrcyBhbmQgdHVybnMgdGhlbSBpbnRvIGlucHV0cycsICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgIC8vIFRoZSBsYXRleCBwcmVwYXJhdGlvbiBoYXBwZW5zIGluIHRoZSByZW5kZXIgbWV0aG9kXG4gICAgICAvLyBXZSBjYW4ndCBlYXNpbHkgdGVzdCB0aGUgZXhhY3QgbGF0ZXggb3V0cHV0IHdpdGhvdXQgcmVuZGVyaW5nLCBidXQgd2UgY2FuIHZlcmlmeSB0aGUgc3RydWN0dXJlIGlzIHNldCB1cCBjb3JyZWN0bHlcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMpLnRvSGF2ZVByb3BlcnR5KCdyMScpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLnNlc3Npb24uYW5zd2VycykudG9IYXZlUHJvcGVydHkoJ3IyJyk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuc2Vzc2lvbi5hbnN3ZXJzKS50b0hhdmVQcm9wZXJ0eSgncjMnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMpLnRvSGF2ZVByb3BlcnR5KCdyNCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSByZW5kZXJzIHNpbXBsZSBpbnRlcmFjdGlvbiBpbiBjYXNlIG9mIHNpbXBsZSBtb2RlJywgKCkgPT4ge1xuICAgICAgLy8gRmlyc3QgdmVyaWZ5IGFkdmFuY2VkIG1vZGUgcmVuZGVycyBtcS1zdGF0aWNcbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCwgdW5tb3VudCB9ID0gd3JhcHBlcigpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21xLXN0YXRpYycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ3NpbXBsZS1xdWVzdGlvbi1ibG9jaycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIHVubW91bnQoKTtcblxuICAgICAgLy8gVGhlbiB2ZXJpZnkgc2ltcGxlIG1vZGUgcmVuZGVycyBzaW1wbGUtcXVlc3Rpb24tYmxvY2tcbiAgICAgIGNvbnN0IHNpbXBsZVByb3BzID0ge1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgLi4uZGVmYXVsdFByb3BzLm1vZGVsLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgLi4uZGVmYXVsdFByb3BzLm1vZGVsLmNvbmZpZyxcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ1NpbXBsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZDogcXVlcnlTaW1wbGUgfSA9IHJlbmRlcig8TWFpbiB7Li4uc2ltcGxlUHJvcHN9IC8+KTtcblxuICAgICAgZXhwZWN0KHF1ZXJ5U2ltcGxlKCdtcS1zdGF0aWMnKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3QocXVlcnlTaW1wbGUoJ3NpbXBsZS1xdWVzdGlvbi1ibG9jaycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSBwcmUtcG9wdWxhdGVzIGFuc3dlcnMgZnJvbSBzZXNzaW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7XG4gICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICBhbnN3ZXJzOiB7XG4gICAgICAgICAgICByMToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ1xcXFxmcmFje24tNX17Nn0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUpLnRvRXF1YWwoe1xuICAgICAgICBhY3RpdmVBbnN3ZXJCbG9jazogJycsXG4gICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICBhbnN3ZXJzOiB7XG4gICAgICAgICAgICByMToge1xuICAgICAgICAgICAgICB2YWx1ZTogJ1xcXFxmcmFje24tNX17Nn0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSB1cGRhdGVzIHNlc3Npb24gaW4gY2FzZSBvZiBtb2RlbCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIGluc3RhbmNlLnN1YkZpZWxkQ2hhbmdlZCgncjEnLCAndmFsdWUnKTtcbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICAgIGFjdGl2ZUFuc3dlckJsb2NrOiAnJyxcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAndmFsdWUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgICAgIHRvb2x0aXBDb250YWluZXJSZWY6IGV4cGVjdC5hbnkoT2JqZWN0KSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvcnJlY3RseSB1cGRhdGVzIHNlc3Npb24gaW4gY2FzZSBvZiBzdWJmaWVsZCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZSkudG9FcXVhbCh7XG4gICAgICAgIGFjdGl2ZUFuc3dlckJsb2NrOiAnJyxcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMjoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHI0OiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICB0b29sdGlwQ29udGFpbmVyUmVmOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmV3UHJvcHMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMubW9kZWwsXG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMubW9kZWwuY29uZmlnLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZGVmYXVsdFByb3BzLm1vZGVsLmNvbmZpZy5leHByZXNzaW9uICsgJyB7e3Jlc3BvbnNlfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuZXdJbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKG5ld1Byb3BzKTtcblxuICAgICAgZXhwZWN0KG5ld0luc3RhbmNlLnN0YXRlKS50b0VxdWFsKHtcbiAgICAgICAgYWN0aXZlQW5zd2VyQmxvY2s6ICcnLFxuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHIyOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcjQ6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHI1OiB7XG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2hvd0NvcnJlY3Q6IGZhbHNlLFxuICAgICAgICB0b29sdGlwQ29udGFpbmVyUmVmOiBleHBlY3QuYW55KE9iamVjdCksXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ01haW4gY29tcG9uZW50IGFkZGl0aW9uYWwgZnVuY3Rpb25zJywgKCkgPT4ge1xuICAgIGxldCBpbnN0YW5jZTtcbiAgICBsZXQgdGV4dGFyZWE7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcblxuICAgICAgdGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgdGV4dGFyZWEuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0VudGVyIGFuc3dlci4nKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dGFyZWEpO1xuICAgICAgdGV4dGFyZWEuZm9jdXMoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICcnO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW5zd2VyIGJsb2NrIERPTSB1cGRhdGUgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9ja1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIG1vY2tSb290LmlubmVySFRNTCA9IGBcbiAgICAgICAgPGRpdiBpZD1cInIxXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJyMUluZGV4XCI+PC9kaXY+XG4gICAgICBgO1xuICAgICAgaW5zdGFuY2Uucm9vdCA9IG1vY2tSb290O1xuXG4gICAgICBpbnN0YW5jZS5oYW5kbGVBbnN3ZXJCbG9ja0RvbVVwZGF0ZSgpO1xuXG4gICAgICBleHBlY3QobW9ja1Jvb3QucXVlcnlTZWxlY3RvcignI3IxJykudGV4dENvbnRlbnQpLnRvRXF1YWwoJycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb3VudCByZXNwb25zZSBvY2N1cnJlbmNlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gJ3t7cmVzcG9uc2V9fSArIHt7cmVzcG9uc2V9fSA9IHt7cmVzcG9uc2V9fSc7XG4gICAgICBjb25zdCBjb3VudCA9IGluc3RhbmNlLmNvdW50UmVzcG9uc2VPY2N1cnJlbmNlcyhleHByZXNzaW9uKTtcbiAgICAgIGV4cGVjdChjb3VudCkudG9FcXVhbCgzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdXBkYXRlIGFyaWEgYXR0cmlidXRlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2NrUm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgbW9ja1Jvb3QuaW5uZXJIVE1MID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtc2VsZWN0YWJsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtc2VsZWN0YWJsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXEtdGV4dGFyZWFcIj5cbiAgICAgICAgICA8dGV4dGFyZWE+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgICAgaW5zdGFuY2Uucm9vdCA9IG1vY2tSb290O1xuXG4gICAgICBpbnN0YW5jZS51cGRhdGVBcmlhKCk7XG5cbiAgICAgIGNvbnN0IHRleHRhcmVhRWxlbWVudHMgPSBtb2NrUm9vdC5xdWVyeVNlbGVjdG9yQWxsKCd0ZXh0YXJlYScpO1xuICAgICAgdGV4dGFyZWFFbGVtZW50cy5mb3JFYWNoKChlbGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBleHBlY3QoZWxlbS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkudG9FcXVhbCgnRW50ZXIgYW5zd2VyLicpO1xuICAgICAgICBleHBlY3QoZWxlbS5nZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKSkubm90LnRvQmVOdWxsKCk7XG4gICAgICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWQgPSBlbGVtLmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgICAgICBjb25zdCBkZXNjcmliZWRCeUVsZW1lbnQgPSBtb2NrUm9vdC5xdWVyeVNlbGVjdG9yKGAjJHtkZXNjcmliZWRCeUlkfWApO1xuICAgICAgICBleHBlY3QoZGVzY3JpYmVkQnlFbGVtZW50KS5ub3QudG9CZU51bGwoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmb2N1cyBmaXJzdCBrZXlwYWQgZWxlbWVudCBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBqZXN0LnVzZUZha2VUaW1lcnMoKTtcblxuICAgICAgY29uc3QgbW9ja1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIG1vY2tSb290LmlubmVySFRNTCA9IGBcbiAgICAgICAgPGRpdiBkYXRhLWtleXBhZD1cInRydWVcIj5cbiAgICAgICAgICA8YnV0dG9uPkJ1dHRvbiAxPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbj5CdXR0b24gMjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG5cbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9ja1Jvb3QpO1xuXG4gICAgICBpbnN0YW5jZS5yb290ID0gbW9ja1Jvb3Q7XG5cbiAgICAgIGluc3RhbmNlLmZvY3VzRmlyc3RLZXlwYWRFbGVtZW50KCk7XG5cbiAgICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG5cbiAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgIGV4cGVjdChmb2N1c2VkRWxlbWVudC50ZXh0Q29udGVudCkudG9FcXVhbCgnQnV0dG9uIDEnKTtcblxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChtb2NrUm9vdCk7XG5cbiAgICAgIGplc3QudXNlUmVhbFRpbWVycygpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgYmx1ciBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICBpbnN0YW5jZS5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAncjEnIH0pO1xuXG4gICAgICBjb25zdCBtb2NrUmVsYXRlZFRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY29uc3QgcGFyZW50V2l0aFRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHBhcmVudFdpdGhUb29sdGlwLnNldEF0dHJpYnV0ZSgncm9sZScsICd0b29sdGlwJyk7XG5cbiAgICAgIGNvbnN0IGNoaWxkV2l0aEtleXBhZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgY2hpbGRXaXRoS2V5cGFkLnNldEF0dHJpYnV0ZSgnZGF0YS1rZXlwYWQnLCAndHJ1ZScpO1xuXG4gICAgICBwYXJlbnRXaXRoVG9vbHRpcC5hcHBlbmRDaGlsZChjaGlsZFdpdGhLZXlwYWQpO1xuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobW9ja1JlbGF0ZWRUYXJnZXQsICdvZmZzZXRQYXJlbnQnLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwYXJlbnRXaXRoVG9vbHRpcDtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogbW9ja1JlbGF0ZWRUYXJnZXQsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxuICAgICAgfTtcblxuICAgICAgaW5zdGFuY2Uub25CbHVyKGV2ZW50KTtcblxuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLmFjdGl2ZUFuc3dlckJsb2NrKS50b0VxdWFsKCdyMScpO1xuXG4gICAgICBldmVudC5yZWxhdGVkVGFyZ2V0ID0gbnVsbDtcbiAgICAgIGluc3RhbmNlLm9uQmx1cihldmVudCk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5hY3RpdmVBbnN3ZXJCbG9jaykudG9FcXVhbCgnJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNhbGwgb25TZXNzaW9uQ2hhbmdlIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnNldFN0YXRlKHtcbiAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgIGFuc3dlcnM6IHtcbiAgICAgICAgICAgIHIxOiB7IHZhbHVlOiAndGVzdCcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGluc3RhbmNlLmNhbGxPblNlc3Npb25DaGFuZ2UoKTtcblxuICAgICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5vblNlc3Npb25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgIHIxOiB7IHZhbHVlOiAndGVzdCcgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0b2dnbGUgc2hvdyBjb3JyZWN0IHN0YXRlIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnRvZ2dsZVNob3dDb3JyZWN0KHRydWUpO1xuICAgICAgZXhwZWN0KGluc3RhbmNlLnN0YXRlLnNob3dDb3JyZWN0KS50b0VxdWFsKHRydWUpO1xuXG4gICAgICBpbnN0YW5jZS50b2dnbGVTaG93Q29ycmVjdChmYWxzZSk7XG4gICAgICBleHBlY3QoaW5zdGFuY2Uuc3RhdGUuc2hvd0NvcnJlY3QpLnRvRXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgc3ViRmllbGRDaGFuZ2VkIGNvcnJlY3RseScsICgpID0+IHtcbiAgICAgIGluc3RhbmNlLnN1YkZpZWxkQ2hhbmdlZCgncjEnLCAnbmV3IHZhbHVlJyk7XG5cbiAgICAgIGV4cGVjdChpbnN0YW5jZS5zdGF0ZS5zZXNzaW9uLmFuc3dlcnMucjEudmFsdWUpLnRvRXF1YWwoJ25ldyB2YWx1ZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgdGhlIGNvcnJlY3QgZmllbGQgbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHsgcjE6IHsgaWQ6IDEgfSwgcjI6IHsgaWQ6IDIgfSB9O1xuICAgICAgaW5zdGFuY2Uuc2V0U3RhdGUoe1xuICAgICAgICBzZXNzaW9uOiB7XG4gICAgICAgICAgYW5zd2Vyczoge1xuICAgICAgICAgICAgcjE6IHsgdmFsdWU6ICd0ZXN0JyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZmllbGROYW1lID0gaW5zdGFuY2UuZ2V0RmllbGROYW1lKHsgaWQ6IDEgfSwgZmllbGRzKTtcbiAgICAgIGV4cGVjdChmaWVsZE5hbWUpLnRvRXF1YWwoJ3IxJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxvQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sb0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUEyRCxTQUFBRCx3QkFBQVEsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVYsdUJBQUEsWUFBQUEsQ0FBQVEsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFB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Q0FBQztRQUN4RGxFLE9BQU8sRUFBRTtVQUNQQyxFQUFFLEVBQUU7WUFBRUMsS0FBSyxFQUFFO1VBQU87UUFDdEI7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRlQsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLE1BQU07TUFDckRMLFFBQVEsQ0FBQytFLGlCQUFpQixDQUFDLElBQUksQ0FBQztNQUNoQ3hFLE1BQU0sQ0FBQ1AsUUFBUSxDQUFDRyxLQUFLLENBQUNlLFdBQVcsQ0FBQyxDQUFDUixPQUFPLENBQUMsSUFBSSxDQUFDO01BRWhEVixRQUFRLENBQUMrRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7TUFDakN4RSxNQUFNLENBQUNQLFFBQVEsQ0FBQ0csS0FBSyxDQUFDZSxXQUFXLENBQUMsQ0FBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLE1BQU07TUFDbERMLFFBQVEsQ0FBQzZDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO01BRTNDdEMsTUFBTSxDQUFDUCxRQUFRLENBQUNHLEtBQUssQ0FBQzFCLE9BQU8sQ0FBQ21DLE9BQU8sQ0FBQ0MsRUFBRSxDQUFDQyxLQUFLLENBQUMsQ0FBQ0osT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUN0RSxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLE1BQU07TUFDNUMsTUFBTTJFLE1BQU0sR0FBRztRQUFFbkUsRUFBRSxFQUFFO1VBQUVsQyxFQUFFLEVBQUU7UUFBRSxDQUFDO1FBQUVvQyxFQUFFLEVBQUU7VUFBRXBDLEVBQUUsRUFBRTtRQUFFO01BQUUsQ0FBQztNQUMvQ3FCLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDO1FBQ2hCekIsT0FBTyxFQUFFO1VBQ1BtQyxPQUFPLEVBQUU7WUFDUEMsRUFBRSxFQUFFO2NBQUVDLEtBQUssRUFBRTtZQUFPO1VBQ3RCO1FBQ0Y7TUFDRixDQUFDLENBQUM7TUFFRixNQUFNbUUsU0FBUyxHQUFHakYsUUFBUSxDQUFDa0YsWUFBWSxDQUFDO1FBQUV2RyxFQUFFLEVBQUU7TUFBRSxDQUFDLEVBQUVxRyxNQUFNLENBQUM7TUFDMUR6RSxNQUFNLENBQUMwRSxTQUFTLENBQUMsQ0FBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
5
  var React = _interopRequireWildcard(require("react"));
6
6
  var _react2 = require("@testing-library/react");
7
- var _mathInput = require("@pie-lib/math-input");
7
+ var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
8
8
  var _mathToolbar = require("@pie-lib/math-toolbar");
9
9
  var _simpleQuestionBlock = _interopRequireDefault(require("../simple-question-block"));
10
10
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- jest.mock('@pie-lib/math-input', () => ({
11
+ jest.mock('@pie-lib/math-input-mathlive', () => ({
12
12
  mq: {
13
13
  Static: props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
14
14
  "data-testid": "mq-static"
@@ -126,4 +126,4 @@ describe('SimpleQuestionBlock', () => {
126
126
  expect(defaultProps.onSimpleResponseChange).not.toHaveBeenCalled();
127
127
  });
128
128
  });
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aElucHV0IiwiX21hdGhUb29sYmFyIiwiX3NpbXBsZVF1ZXN0aW9uQmxvY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiamVzdCIsIm1vY2siLCJtcSIsIlN0YXRpYyIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsIk1hdGhUb29sYmFyIiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJtb2RlbCIsImNvbmZpZyIsIm1vZGUiLCJmZWVkYmFjayIsImNvcnJlY3QiLCJ0eXBlIiwiaW5jb3JyZWN0IiwicGFydGlhbCIsImVxdWF0aW9uRWRpdG9yIiwiZXhwcmVzc2lvbiIsInF1ZXN0aW9uIiwibm90ZSIsInJlc3BvbnNlcyIsImFuc3dlciIsImlkIiwiYWx0ZXJuYXRlcyIsInZhbGlkYXRpb24iLCJyZXNwb25zZSIsImNvcnJlY3RuZXNzIiwic2hvd0NvcnJlY3QiLCJzZXNzaW9uIiwib25TaW1wbGVSZXNwb25zZUNoYW5nZSIsImZuIiwib25TdWJGaWVsZEZvY3VzIiwic2hvd0tleXBhZCIsIndyYXBwZXIiLCJyZW5kZXIiLCJjcmVhdGVJbnN0YW5jZSIsImluc3RhbmNlUHJvcHMiLCJpbnN0YW5jZSIsIlNpbXBsZVF1ZXN0aW9uQmxvY2siLCJzZXRTdGF0ZSIsInN0YXRlIiwiYXNzaWduIiwiaXQiLCJxdWVyeUJ5VGVzdElkIiwiZXhwZWN0Iiwibm90IiwidG9CZUluVGhlRG9jdW1lbnQiLCJvbkZvY3VzIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJtYXRoVG9vbEJhcklkIiwidG9FcXVhbCIsIm1hdGhUb29sQmFyQ29udGFpbnNUYXJnZXQiLCJoYW5kbGVDbGljayIsIm5ld0luc3RhbmNlIiwidG9IYXZlQmVlbkNhbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vc2ltcGxlLXF1ZXN0aW9uLWJsb2NrLnRlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBtcSB9IGZyb20gJ0BwaWUtbGliL21hdGgtaW5wdXQnO1xuaW1wb3J0IHsgTWF0aFRvb2xiYXIgfSBmcm9tICdAcGllLWxpYi9tYXRoLXRvb2xiYXInO1xuaW1wb3J0IFNpbXBsZVF1ZXN0aW9uQmxvY2sgZnJvbSAnLi4vc2ltcGxlLXF1ZXN0aW9uLWJsb2NrJztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLWlucHV0JywgKCkgPT4gKHtcbiAgbXE6IHtcbiAgICBTdGF0aWM6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1xLXN0YXRpY1wiIHsuLi5wcm9wc30gLz4sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvbWF0aC10b29sYmFyJywgKCkgPT4gKHtcbiAgTWF0aFRvb2xiYXI6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cIm1hdGgtdG9vbGJhclwiIHsuLi5wcm9wc30gLz4sXG59KSk7XG5cbmRlc2NyaWJlKCdTaW1wbGVRdWVzdGlvbkJsb2NrJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbW9kZWw6IHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBtb2RlOiAnYWR2YW5jZWQnLFxuICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6ICdDb3JyZWN0JyxcbiAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgZGVmYXVsdDogJ0luY29ycmVjdCcsXG4gICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJ0aWFsOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBlcXVhdGlvbkVkaXRvcjogJ21pc2NlbGxhbmVvdXMnLFxuICAgICAgICBleHByZXNzaW9uOiAnbiA9IHtcXFxcZW1iZWR7YW5zd2VyQmxvY2t9W2Fuc3dlckJsb2NrMV19JyxcbiAgICAgICAgcXVlc3Rpb246XG4gICAgICAgICAgJzxwPlRoZSBiaW5vbWlhbCA8bWF0aCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIj4gPG1pPng8L21pPjxtbz4mIzg3MjI7PC9tbz48bW4+MjwvbW4+IDwvbWF0aD4gaXMgYSBmYWN0b3Igb2YgdGhlIHBvbHlub21pYWwgYmVsb3cuPC9wPjxwPjxzcGFuIGNsYXNzPVwiZXF1YXRpb24tYmxvY2tcIj48bWF0aCB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIj4gPG1pPmY8L21pPjxtbyBzdHJldGNoeT1cImZhbHNlXCI+KDwvbW8+PG1pPng8L21pPjxtbyBzdHJldGNoeT1cImZhbHNlXCI+KTwvbW8+PG1vPj08L21vPjxtc3VwPiA8bWk+eDwvbWk+IDxtbj4zPC9tbj4gPC9tc3VwPiA8bW8+KzwvbW8+PG1zdXA+IDxtaT54PC9taT4gPG1uPjI8L21uPiA8L21zdXA+IDxtbz4rPC9tbz48bWk+bjwvbWk+PG1pPng8L21pPjxtbz4rPC9tbz48bW4+MTA8L21uPiA8L21hdGg+IDwvc3Bhbj48L3A+PHA+V2hhdCBpcyB0aGUgdmFsdWUgb2YgPHNwYW4gY2xhc3M9XCJ2YXJpYWJsZVwiPm48L3NwYW4+PyBVc2UgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCYjMTYwO3RvIHR5cGUgdGhlIGNvcnJlY3QgYW5zd2VyIGluIHRoZSBib3guPC9wPicsXG4gICAgICAgIG5vdGU6ICdUaGUgYW5zd2VyIHNob3duIGFib3ZlIGlzIHRoZSBwcmltYXJ5IGNvcnJlY3QgYW5zd2VyIHNwZWNpZmllZCBieSB0aGUgYXV0aG9yIGZvciB0aGlzIGl0ZW0sIGJ1dCBvdGhlciBhbnN3ZXJzIG1heSBhbHNvIGJlIHJlY29nbml6ZWQgYXMgY29ycmVjdC4nLFxuICAgICAgICByZXNwb25zZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbnN3ZXI6ICduPS0xMScsXG4gICAgICAgICAgICBpZDogJ2Fuc3dlckJsb2NrMScsXG4gICAgICAgICAgICBhbHRlcm5hdGVzOiB7fSxcbiAgICAgICAgICAgIHZhbGlkYXRpb246ICdsaXRlcmFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICByZXNwb25zZToge1xuICAgICAgICAgIGFuc3dlcjogJ249LTExJyxcbiAgICAgICAgICBpZDogJ2Fuc3dlckJsb2NrMScsXG4gICAgICAgICAgYWx0ZXJuYXRlczoge30sXG4gICAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvcnJlY3RuZXNzOiB7fSxcbiAgICBzaG93Q29ycmVjdDogZmFsc2UsXG4gICAgc2Vzc2lvbjoge1xuICAgICAgcmVzcG9uc2U6ICdzZXNzaW9uUmVzcG9uc2UnLFxuICAgIH0sXG4gICAgb25TaW1wbGVSZXNwb25zZUNoYW5nZTogamVzdC5mbigpLFxuICAgIG9uU3ViRmllbGRGb2N1czogamVzdC5mbigpLFxuICAgIHNob3dLZXlwYWQ6IHRydWUsXG4gIH07XG5cbiAgY29uc3Qgd3JhcHBlciA9IChwcm9wcyA9IHt9KSA9PiB7XG4gICAgcmV0dXJuIHJlbmRlcig8U2ltcGxlUXVlc3Rpb25CbG9jayB7Li4uZGVmYXVsdFByb3BzfSB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBjb25zdCBjcmVhdGVJbnN0YW5jZSA9IChwcm9wcyA9IHt9KSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2VQcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgU2ltcGxlUXVlc3Rpb25CbG9jayhpbnN0YW5jZVByb3BzKTtcbiAgICBpbnN0YW5jZS5zZXRTdGF0ZSA9IGplc3QuZm4oKHN0YXRlKSA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLnN0YXRlLCB0eXBlb2Ygc3RhdGUgPT09ICdmdW5jdGlvbicgPyBzdGF0ZShpbnN0YW5jZS5zdGF0ZSkgOiBzdGF0ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xuXG4gIGl0KCdyZW5kZXJzIGNvcnJlY3RseSBmb3Igbm90IHNob3dpbmcgY29ycmVjdCBtb2RlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gd3JhcHBlcigpO1xuXG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21xLXN0YXRpYycpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGNvcnJlY3RseSBmb3Igc2hvd2luZyBjb3JyZWN0IG1vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSB3cmFwcGVyKHsgc2hvd0NvcnJlY3Q6IHRydWUgfSk7XG5cbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbXEtc3RhdGljJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ21hdGgtdG9vbGJhcicpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NvcnJlY3RseSBrZWVwcyB0aGUga2V5cGFkIG9wZW4nLCAoKSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuXG4gICAgaW5zdGFuY2Uub25Gb2N1cygpO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMub25TdWJGaWVsZEZvY3VzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChpbnN0YW5jZS5tYXRoVG9vbEJhcklkKTtcbiAgICBleHBlY3QoaW5zdGFuY2UucHJvcHMuc2hvd0tleXBhZCkudG9FcXVhbCh0cnVlKTtcblxuICAgIGluc3RhbmNlLm1hdGhUb29sQmFyQ29udGFpbnNUYXJnZXQgPSAoKSA9PiB0cnVlO1xuICAgIGluc3RhbmNlLmhhbmRsZUNsaWNrKCk7XG5cbiAgICBleHBlY3QoaW5zdGFuY2UucHJvcHMuc2hvd0tleXBhZCkudG9FcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ2NvcnJlY3RseSBoaWRlcyB0aGUga2V5cGFkJywgKCkgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcblxuICAgIGluc3RhbmNlLm9uRm9jdXMoKTtcbiAgICBleHBlY3QoZGVmYXVsdFByb3BzLm9uU3ViRmllbGRGb2N1cykudG9IYXZlQmVlbkNhbGxlZFdpdGgoaW5zdGFuY2UubWF0aFRvb2xCYXJJZCk7XG4gICAgZXhwZWN0KGluc3RhbmNlLnByb3BzLnNob3dLZXlwYWQpLnRvRXF1YWwodHJ1ZSk7XG5cbiAgICAvLyBTaW11bGF0ZSBjbGlja2luZyBvdXRzaWRlIHRoZSB0b29sYmFyICh0byBoaWRlIHRoZSBrZXlwYWQpXG4gICAgaW5zdGFuY2UubWF0aFRvb2xCYXJDb250YWluc1RhcmdldCA9ICgpID0+IGZhbHNlO1xuICAgIGluc3RhbmNlLmhhbmRsZUNsaWNrKCk7XG5cbiAgICAvLyBDcmVhdGUgbmV3IGluc3RhbmNlIHdpdGggc2hvd0tleXBhZDogZmFsc2UgdG8gc2ltdWxhdGUgcGFyZW50IGNvbXBvbmVudCByZWFjdGlvblxuICAgIGNvbnN0IG5ld0luc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoeyBzaG93S2V5cGFkOiBmYWxzZSB9KTtcblxuICAgIGV4cGVjdChuZXdJbnN0YW5jZS5wcm9wcy5zaG93S2V5cGFkKS50b0VxdWFsKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGNhbGwgc2Vzc2lvbiBjaGFuZ2Ugb24gcmVuZGVyJywgKCkgPT4ge1xuICAgIHdyYXBwZXIoKTtcbiAgICBleHBlY3QoZGVmYXVsdFByb3BzLm9uU2ltcGxlUmVzcG9uc2VDaGFuZ2UpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQTJELFNBQUFELHdCQUFBTyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBVCx1QkFBQSxZQUFBQSxDQUFBTyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFB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
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aElucHV0TWF0aGxpdmUiLCJfbWF0aFRvb2xiYXIiLCJfc2ltcGxlUXVlc3Rpb25CbG9jayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsIm1xIiwiU3RhdGljIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiTWF0aFRvb2xiYXIiLCJkZXNjcmliZSIsImRlZmF1bHRQcm9wcyIsIm1vZGVsIiwiY29uZmlnIiwibW9kZSIsImZlZWRiYWNrIiwiY29ycmVjdCIsInR5cGUiLCJpbmNvcnJlY3QiLCJwYXJ0aWFsIiwiZXF1YXRpb25FZGl0b3IiLCJleHByZXNzaW9uIiwicXVlc3Rpb24iLCJub3RlIiwicmVzcG9uc2VzIiwiYW5zd2VyIiwiaWQiLCJhbHRlcm5hdGVzIiwidmFsaWRhdGlvbiIsInJlc3BvbnNlIiwiY29ycmVjdG5lc3MiLCJzaG93Q29ycmVjdCIsInNlc3Npb24iLCJvblNpbXBsZVJlc3BvbnNlQ2hhbmdlIiwiZm4iLCJvblN1YkZpZWxkRm9jdXMiLCJzaG93S2V5cGFkIiwid3JhcHBlciIsInJlbmRlciIsImNyZWF0ZUluc3RhbmNlIiwiaW5zdGFuY2VQcm9wcyIsImluc3RhbmNlIiwiU2ltcGxlUXVlc3Rpb25CbG9jayIsInNldFN0YXRlIiwic3RhdGUiLCJhc3NpZ24iLCJpdCIsInF1ZXJ5QnlUZXN0SWQiLCJleHBlY3QiLCJub3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIm9uRm9jdXMiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIm1hdGhUb29sQmFySWQiLCJ0b0VxdWFsIiwibWF0aFRvb2xCYXJDb250YWluc1RhcmdldCIsImhhbmRsZUNsaWNrIiwibmV3SW5zdGFuY2UiLCJ0b0hhdmVCZWVuQ2FsbGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9zaW1wbGUtcXVlc3Rpb24tYmxvY2sudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IG1xIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1pbnB1dC1tYXRobGl2ZSc7XG5pbXBvcnQgeyBNYXRoVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL21hdGgtdG9vbGJhcic7XG5pbXBvcnQgU2ltcGxlUXVlc3Rpb25CbG9jayBmcm9tICcuLi9zaW1wbGUtcXVlc3Rpb24tYmxvY2snO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtaW5wdXQtbWF0aGxpdmUnLCAoKSA9PiAoe1xuICBtcToge1xuICAgIFN0YXRpYzogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwibXEtc3RhdGljXCIgey4uLnByb3BzfSAvPixcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXRvb2xiYXInLCAoKSA9PiAoe1xuICBNYXRoVG9vbGJhcjogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwibWF0aC10b29sYmFyXCIgey4uLnByb3BzfSAvPixcbn0pKTtcblxuZGVzY3JpYmUoJ1NpbXBsZVF1ZXN0aW9uQmxvY2snLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtb2RlbDoge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIG1vZGU6ICdhZHZhbmNlZCcsXG4gICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgZGVmYXVsdDogJ0NvcnJlY3QnLFxuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICBkZWZhdWx0OiAnSW5jb3JyZWN0JyxcbiAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcnRpYWw6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6ICdOZWFybHknLFxuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGVxdWF0aW9uRWRpdG9yOiAnbWlzY2VsbGFuZW91cycsXG4gICAgICAgIGV4cHJlc3Npb246ICduID0ge1xcXFxlbWJlZHthbnN3ZXJCbG9ja31bYW5zd2VyQmxvY2sxXX0nLFxuICAgICAgICBxdWVzdGlvbjpcbiAgICAgICAgICAnPHA+VGhlIGJpbm9taWFsIDxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiPiA8bWk+eDwvbWk+PG1vPiYjODcyMjs8L21vPjxtbj4yPC9tbj4gPC9tYXRoPiBpcyBhIGZhY3RvciBvZiB0aGUgcG9seW5vbWlhbCBiZWxvdy48L3A+PHA+PHNwYW4gY2xhc3M9XCJlcXVhdGlvbi1ibG9ja1wiPjxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiPiA8bWk+ZjwvbWk+PG1vIHN0cmV0Y2h5PVwiZmFsc2VcIj4oPC9tbz48bWk+eDwvbWk+PG1vIHN0cmV0Y2h5PVwiZmFsc2VcIj4pPC9tbz48bW8+PTwvbW8+PG1zdXA+IDxtaT54PC9taT4gPG1uPjM8L21uPiA8L21zdXA+IDxtbz4rPC9tbz48bXN1cD4gPG1pPng8L21pPiA8bW4+MjwvbW4+IDwvbXN1cD4gPG1vPis8L21vPjxtaT5uPC9taT48bWk+eDwvbWk+PG1vPis8L21vPjxtbj4xMDwvbW4+IDwvbWF0aD4gPC9zcGFuPjwvcD48cD5XaGF0IGlzIHRoZSB2YWx1ZSBvZiA8c3BhbiBjbGFzcz1cInZhcmlhYmxlXCI+bjwvc3Bhbj4/IFVzZSB0aGUgb24tc2NyZWVuIGtleWJvYXJkJiMxNjA7dG8gdHlwZSB0aGUgY29ycmVjdCBhbnN3ZXIgaW4gdGhlIGJveC48L3A+JyxcbiAgICAgICAgbm90ZTogJ1RoZSBhbnN3ZXIgc2hvd24gYWJvdmUgaXMgdGhlIHByaW1hcnkgY29ycmVjdCBhbnN3ZXIgc3BlY2lmaWVkIGJ5IHRoZSBhdXRob3IgZm9yIHRoaXMgaXRlbSwgYnV0IG90aGVyIGFuc3dlcnMgbWF5IGFsc28gYmUgcmVjb2duaXplZCBhcyBjb3JyZWN0LicsXG4gICAgICAgIHJlc3BvbnNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFuc3dlcjogJ249LTExJyxcbiAgICAgICAgICAgIGlkOiAnYW5zd2VyQmxvY2sxJyxcbiAgICAgICAgICAgIGFsdGVybmF0ZXM6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgYW5zd2VyOiAnbj0tMTEnLFxuICAgICAgICAgIGlkOiAnYW5zd2VyQmxvY2sxJyxcbiAgICAgICAgICBhbHRlcm5hdGVzOiB7fSxcbiAgICAgICAgICB2YWxpZGF0aW9uOiAnbGl0ZXJhbCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29ycmVjdG5lc3M6IHt9LFxuICAgIHNob3dDb3JyZWN0OiBmYWxzZSxcbiAgICBzZXNzaW9uOiB7XG4gICAgICByZXNwb25zZTogJ3Nlc3Npb25SZXNwb25zZScsXG4gICAgfSxcbiAgICBvblNpbXBsZVJlc3BvbnNlQ2hhbmdlOiBqZXN0LmZuKCksXG4gICAgb25TdWJGaWVsZEZvY3VzOiBqZXN0LmZuKCksXG4gICAgc2hvd0tleXBhZDogdHJ1ZSxcbiAgfTtcblxuICBjb25zdCB3cmFwcGVyID0gKHByb3BzID0ge30pID0+IHtcbiAgICByZXR1cm4gcmVuZGVyKDxTaW1wbGVRdWVzdGlvbkJsb2NrIHsuLi5kZWZhdWx0UHJvcHN9IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUluc3RhbmNlID0gKHByb3BzID0ge30pID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZVByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTaW1wbGVRdWVzdGlvbkJsb2NrKGluc3RhbmNlUHJvcHMpO1xuICAgIGluc3RhbmNlLnNldFN0YXRlID0gamVzdC5mbigoc3RhdGUpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2Uuc3RhdGUsIHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlKGluc3RhbmNlLnN0YXRlKSA6IHN0YXRlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IGZvciBub3Qgc2hvd2luZyBjb3JyZWN0IG1vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSB3cmFwcGVyKCk7XG5cbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbXEtc3RhdGljJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IGZvciBzaG93aW5nIGNvcnJlY3QgbW9kZScsICgpID0+IHtcbiAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQgfSA9IHdyYXBwZXIoeyBzaG93Q29ycmVjdDogdHJ1ZSB9KTtcblxuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtcS1zdGF0aWMnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnY29ycmVjdGx5IGtlZXBzIHRoZSBrZXlwYWQgb3BlbicsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICBpbnN0YW5jZS5vbkZvY3VzKCk7XG4gICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5vblN1YkZpZWxkRm9jdXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGluc3RhbmNlLm1hdGhUb29sQmFySWQpO1xuICAgIGV4cGVjdChpbnN0YW5jZS5wcm9wcy5zaG93S2V5cGFkKS50b0VxdWFsKHRydWUpO1xuXG4gICAgaW5zdGFuY2UubWF0aFRvb2xCYXJDb250YWluc1RhcmdldCA9ICgpID0+IHRydWU7XG4gICAgaW5zdGFuY2UuaGFuZGxlQ2xpY2soKTtcblxuICAgIGV4cGVjdChpbnN0YW5jZS5wcm9wcy5zaG93S2V5cGFkKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgnY29ycmVjdGx5IGhpZGVzIHRoZSBrZXlwYWQnLCAoKSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuXG4gICAgaW5zdGFuY2Uub25Gb2N1cygpO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMub25TdWJGaWVsZEZvY3VzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChpbnN0YW5jZS5tYXRoVG9vbEJhcklkKTtcbiAgICBleHBlY3QoaW5zdGFuY2UucHJvcHMuc2hvd0tleXBhZCkudG9FcXVhbCh0cnVlKTtcblxuICAgIC8vIFNpbXVsYXRlIGNsaWNraW5nIG91dHNpZGUgdGhlIHRvb2xiYXIgKHRvIGhpZGUgdGhlIGtleXBhZClcbiAgICBpbnN0YW5jZS5tYXRoVG9vbEJhckNvbnRhaW5zVGFyZ2V0ID0gKCkgPT4gZmFsc2U7XG4gICAgaW5zdGFuY2UuaGFuZGxlQ2xpY2soKTtcblxuICAgIC8vIENyZWF0ZSBuZXcgaW5zdGFuY2Ugd2l0aCBzaG93S2V5cGFkOiBmYWxzZSB0byBzaW11bGF0ZSBwYXJlbnQgY29tcG9uZW50IHJlYWN0aW9uXG4gICAgY29uc3QgbmV3SW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7IHNob3dLZXlwYWQ6IGZhbHNlIH0pO1xuXG4gICAgZXhwZWN0KG5ld0luc3RhbmNlLnByb3BzLnNob3dLZXlwYWQpLnRvRXF1YWwoZmFsc2UpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgY2FsbCBzZXNzaW9uIGNoYW5nZSBvbiByZW5kZXInLCAoKSA9PiB7XG4gICAgd3JhcHBlcigpO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMub25TaW1wbGVSZXNwb25zZUNoYW5nZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQTJELFNBQUFELHdCQUFBTyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBVCx1QkFBQSxZQUFBQSxDQUFBTyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFL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
package/lib/index.js CHANGED
@@ -91,4 +91,4 @@ class MathInline extends HTMLElement {
91
91
  }
92
92
  }
93
93
  exports.default = MathInline;
94
- //# sourceMappingURL=index.js.map
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGllbnQiLCJfZGVidWciLCJfbG9kYXNoRXMiLCJfcGllUGxheWVyRXZlbnRzIiwiX2RlZmF1bHRzIiwiX21haW4iLCJsb2ciLCJkZWJ1ZyIsIk1hdGhJbmxpbmUiLCJIVE1MRWxlbWVudCIsImNvbnN0cnVjdG9yIiwiX3Jvb3QiLCJfY29uZmlndXJhdGlvbiIsImRlZmF1bHRzIiwiY29uZmlndXJhdGlvbiIsInNlc3Npb25DaGFuZ2VkRXZlbnRDYWxsZXIiLCJkZWJvdW5jZSIsImRpc3BhdGNoRXZlbnQiLCJTZXNzaW9uQ2hhbmdlZEV2ZW50IiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwic2V0TGFuZ0F0dHJpYnV0ZSIsImxhbmd1YWdlIiwiX21vZGVsIiwibGFuZyIsInNsaWNlIiwic2V0QXR0cmlidXRlIiwicGxheWVyQ29udGFpbmVyIiwiY2xvc2VzdCIsIm1vZGVsIiwibSIsIk1vZGVsU2V0RXZlbnQiLCJfcmVuZGVyIiwic2Vzc2lvbiIsInMiLCJfc2Vzc2lvbiIsImMiLCJzZXNzaW9uQ2hhbmdlZCIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJjb25uZWN0ZWRDYWxsYmFjayIsImVsIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiTWFpbiIsIm9uU2Vzc2lvbkNoYW5nZSIsImJpbmQiLCJjcmVhdGVSb290IiwicmVuZGVyIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJ1bm1vdW50IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNb2RlbFNldEV2ZW50LCBTZXNzaW9uQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHBpZS1mcmFtZXdvcmsvcGllLXBsYXllci1ldmVudHMnO1xuXG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vY29uZmlndXJlL2xpYi9kZWZhdWx0cyc7XG5pbXBvcnQgTWFpbiBmcm9tICcuL21haW4nO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygncGllLXVpOm1hdGgtaW5saW5lJyk7XG5cbmV4cG9ydCB7IE1haW4gYXMgQ29tcG9uZW50IH07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hdGhJbmxpbmUgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fcm9vdCA9IG51bGw7XG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IGRlZmF1bHRzLmNvbmZpZ3VyYXRpb247XG4gICAgdGhpcy5zZXNzaW9uQ2hhbmdlZEV2ZW50Q2FsbGVyID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTZXNzaW9uQ2hhbmdlZEV2ZW50KHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpLCB0cnVlKSk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBzZXRMYW5nQXR0cmlidXRlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5fbW9kZWwgJiYgdHlwZW9mIHRoaXMuX21vZGVsLmxhbmd1YWdlID8gdGhpcy5fbW9kZWwubGFuZ3VhZ2UgOiAnJztcbiAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2UgPyBsYW5ndWFnZS5zbGljZSgwLCAyKSA6ICdlbic7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCBsYW5nKTtcblxuICAgIC8vIHNldCB0aGUgbGFuZyBhdHRyaWJ1dGUgZm9yIHRoZSBuZWFyZXN0IHBhcmVudCBkaXYgd2l0aCBjbGFzcyAncGxheWVyLWNvbnRhaW5lcicgZm9yIE1QSSBpdGVtcyBhcyBwZXIgUEQtMjQ4M1xuICAgIGNvbnN0IHBsYXllckNvbnRhaW5lciA9IHRoaXMuY2xvc2VzdCgnLnBsYXllci1jb250YWluZXInKTtcbiAgICBpZiAocGxheWVyQ29udGFpbmVyKSB7XG4gICAgICBwbGF5ZXJDb250YWluZXIuc2V0QXR0cmlidXRlKCdsYW5nJywgbGFuZyk7XG4gICAgfVxuICB9XG5cbiAgc2V0IG1vZGVsKG0pIHtcbiAgICB0aGlzLl9tb2RlbCA9IG07XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBNb2RlbFNldEV2ZW50KHRoaXMuX21vZGVsLCB0cnVlLCAhIXRoaXMuX21vZGVsKSk7XG4gICAgdGhpcy5zZXRMYW5nQXR0cmlidXRlKCk7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBzZXQgc2Vzc2lvbihzKSB7XG4gICAgdGhpcy5fc2Vzc2lvbiA9IHM7XG4gICAgdGhpcy5fcmVuZGVyKCk7XG4gIH1cblxuICBnZXQgc2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbjtcbiAgfVxuXG4gIHNldCBjb25maWd1cmF0aW9uKGMpIHtcbiAgICB0aGlzLl9jb25maWd1cmF0aW9uID0gYztcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIHNlc3Npb25DaGFuZ2VkKHMpIHtcbiAgICBPYmplY3Qua2V5cyhzKS5tYXAoKGtleSkgPT4ge1xuICAgICAgdGhpcy5fc2Vzc2lvbltrZXldID0gc1trZXldO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXNzaW9uQ2hhbmdlZEV2ZW50Q2FsbGVyKCk7XG4gICAgbG9nKCdzZXNzaW9uOiAnLCB0aGlzLl9zZXNzaW9uKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ01hdGggUmVzcG9uc2UgUXVlc3Rpb24nKTtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgncm9sZScsICdyZWdpb24nKTtcblxuICAgIHRoaXMuX3JlbmRlcigpO1xuICB9XG5cbiAgX3JlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuX21vZGVsIHx8ICF0aGlzLl9zZXNzaW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgIG1vZGVsOiB0aGlzLl9tb2RlbCxcbiAgICAgIHNlc3Npb246IHRoaXMuX3Nlc3Npb24sXG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLl9jb25maWd1cmF0aW9uLFxuICAgICAgb25TZXNzaW9uQ2hhbmdlOiB0aGlzLnNlc3Npb25DaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMuX3Jvb3QpIHtcbiAgICAgIHRoaXMuX3Jvb3QgPSBjcmVhdGVSb290KHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLl9yb290LnJlbmRlcihlbCk7XG4gIH1cblxuICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBpZiAodGhpcy5fcm9vdCkge1xuICAgICAgdGhpcy5fcm9vdC51bm1vdW50KCk7XG4gICAgICB0aGlzLl9yb290ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxTQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNTyxHQUFHLEdBQUcsSUFBQUMsY0FBSyxFQUFDLG9CQUFvQixDQUFDO0FBSXhCLE1BQU1DLFVBQVUsU0FBU0MsV0FBVyxDQUFDO0VBQ2xEQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixLQUFL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
package/lib/main.js CHANGED
@@ -1027,4 +1027,4 @@ const StyledCorrectAnswerToggle = (0, _styles.styled)(_correctAnswerToggle.defau
1027
1027
  marginBottom: theme.spacing(2)
1028
1028
  }));
1029
1029
  var _default = exports.default = Main;
1030
- //# sourceMappingURL=main.js.map
1030
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfY29ycmVjdEFuc3dlclRvZ2dsZSIsIl9tYXRoSW5wdXRNYXRobGl2ZSIsIl9yZW5kZXJVaSIsIl9tYXRoUmVuZGVyaW5nIiwiX3N0eWxlcyIsIl9Ub29sdGlwIiwiX3V0aWxzIiwiX2xvZGFzaEVzIiwiX3NpbXBsZVF1ZXN0aW9uQmxvY2siLCJfdHJhbnNsYXRvciIsIl9yZWFjdERvbSIsInRyYW5zbGF0b3IiLCJUcmFuc2xhdG9yIiwicmVnaXN0ZXJlZCIsIk5FV0xJTkVfTEFURVgiLCJSRUdFWCIsIkRFRkFVTFRfS0VZUEFEX1ZBUklBTlQiLCJJU19TQUZBUkkiLCJ0ZXN0IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiZ2VuZXJhdGVBZGRpdGlvbmFsS2V5cyIsImtleURhdGEiLCJtYXAiLCJrZXkiLCJuYW1lIiwibGF0ZXgiLCJ3cml0ZSIsImxhYmVsIiwiaXNDaGlsZE9mQ3VycmVudFBpZUVsZW1lbnQiLCJjaGlsZCIsInBhcmVudCIsIm5vZGUiLCJwYXJlbnROb2RlIiwiZ2V0S2V5UGFkV2lkdGgiLCJhZGRpdGlvbmFsS2V5cyIsImVxdWF0aW9uRWRpdG9yIiwiTWF0aCIsImZsb29yIiwibGVuZ3RoIiwicHJlcGFyZUZvclN0YXRpYyIsIm1vZGVsIiwic3RhdGUiLCJjb25maWciLCJkaXNhYmxlZCIsImV4cHJlc3Npb24iLCJyZXNwb25zZXMiLCJwcmludE1vZGUiLCJhbHdheXNTaG93Q29ycmVjdCIsIm1vZGVsRXhwcmVzc2lvbiIsInNob3dDb3JyZWN0IiwiYW5zd2VyIiwiYW5zd2VyQmxvY2tzIiwicmVwbGFjZSIsInNlc3Npb24iLCJhbnN3ZXJzIiwiYmxhbmtTcGFjZSIsInJlcGVhdCIsInZhbHVlIiwicGFyc2VBbnN3ZXJzIiwiTWFpbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJwcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0Iiwicm9vdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiYW5zd2VySWQiLCJlbCIsInF1ZXJ5U2VsZWN0b3IiLCJpbmRleEVsIiwiYXBwbHlTdGF0aWNNYXRoIiwidmlldyIsInBhcmVudEVsZW1lbnQiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJ0ZXh0Q29udGVudCIsInJlbmRlck1hdGgiLCJzZWxlY3RhYmxlRWxlbWVudHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZWxlbSIsInNldEF0dHJpYnV0ZSIsInRleHRhcmVhRWxlbWVudHMiLCJpbmRleCIsImluc3RydWN0aW9uc0lkIiwiY2xvc2VzdCIsImluc3RydWN0aW9uc0VsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsImNsYXNzTmFtZSIsImluc2VydEJlZm9yZSIsInNldFRpbWVvdXQiLCJrZXlwYWRFbGVtZW50IiwiZmlyc3RCdXR0b24iLCJmb2N1cyIsImV2ZW50IiwiaXNUcmlnZXJyZWRGcm9tQWN0dWFsUGllRWxlbWVudCIsInRhcmdldCIsImlzQW5zd2VySW5wdXRGb2N1c2VkIiwibXFTdGF0aWMiLCJpbnB1dFJlZiIsImN1cnJlbnQiLCJjb250YWlucyIsImFjdGl2ZUVsZW1lbnQiLCJnZXRBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNDbGlja09yVG91Y2hFdmVudCIsImFjdGl2ZUFuc3dlckJsb2NrIiwiY2xlYW51cEtleURvd25MaXN0ZW5lciIsInNldFN0YXRlIiwib25TdWJGaWVsZEZvY3VzIiwiZm9jdXNGaXJzdEtleXBhZEVsZW1lbnQiLCJoYW5kbGVFdmVudCIsImhhbmRsZUtleURvd24iLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlc3BvbnNlIiwiY2FsbE9uU2Vzc2lvbkNoYW5nZSIsImRhdGEiLCJpbnB1dCIsInNjcm9sbFgiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYyIsInRvTm9kZURhdGEiLCJjbGVhciIsIkFycmF5IiwiaXNBcnJheSIsInZ2IiwiY21kIiwia2V5c3Ryb2tlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwic2Nyb2xsVG8iLCJvblNlc3Npb25DaGFuZ2UiLCJzaG93IiwiaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUiLCJzdWJmaWVsZFZhbHVlIiwidXBkYXRlU3BhbnMiLCJjb21wbGV0ZUFuc3dlciIsIm1hdGhGaWVsZCIsImNoYW5nZUZpZWxkIiwiZmllbGRzIiwiZmluZCIsImsiLCJ0ZiIsImUiLCJyZWxhdGVkVGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImlzS2V5cGFkT3BlbiIsImdldFBhcmVudFdpdGhSb2xlVG9vbHRpcCIsImVsZW1lbnQiLCJkZXB0aCIsIm9mZnNldFBhcmVudCIsImdldERlZXBDaGlsZERhdGFLZXlwYWQiLCJjaGlsZHJlbiIsImF0dHJpYnV0ZXMiLCJwYXJlbnRXaXRoVG9vbHRpcFJvbGUiLCJjaGlsZFdpdGhEYXRhS2V5cGFkIiwidG9vbHRpcENvbnRhaW5lclJlZiIsImNyZWF0ZVJlZiIsIlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQiLCJyZWdpc3RlckVtYmVkIiwiY2xhc3NOYW1lcyIsImdldEJsb2NrQ2xhc3NOYW1lcyIsImh0bWxTdHJpbmciLCJibG9ja0NvbnRhaW5lciIsImJsb2NrUmVzcG9uc2UiLCJibG9ja01hdGgiLCJ0ZXh0IiwiY291bnRSZXNwb25zZU9jY3VycmVuY2VzIiwicGF0dGVybiIsIm1hdGNoZXMiLCJtYXRjaCIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwibmV4dFByb3BzIiwibmV4dENvbmZpZyIsIm5leHRTZXNzaW9uIiwiaXNFcXVhbCIsIm5vdGUiLCJsYW5ndWFnZSIsInQiLCJsbmciLCJlbnYiLCJtb2RlIiwidXBkYXRlQXJpYSIsIm5ld0Fuc3dlcnMiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJuZXh0U3RhdGUiLCJzYW1lTW9kZWwiLCJzYW1lU3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInByZXZSZXNwb25zZVR5cGUiLCJyZXNwb25zZVR5cGUiLCJjdXJyZW50UmVzcG9uc2VUeXBlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJzZXRUb29sdGlwUmVmIiwicmVmIiwiZGl2IiwiZmlyc3RDaGlsZCIsInJlbmRlciIsImNvcnJlY3RuZXNzIiwiZXh0cmFDU1NSdWxlcyIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJyYXRpb25hbGUiLCJmZWVkYmFjayIsImFuaW1hdGlvbnNEaXNhYmxlZCIsInNob3dOb3RlIiwicHJvbXB0IiwiY3VzdG9tS2V5cyIsInJvbGUiLCJkaXNwbGF5Tm90ZSIsImVtcHR5UmVzcG9uc2UiLCJpc0VtcHR5Iiwic2hvd0NvcnJlY3RBbnN3ZXJUb2dnbGUiLCJ0b29sdGlwTW9kZUVuYWJsZWQiLCJjb3JyZWN0Iiwic3RhdGljTGF0ZXgiLCJ2aWV3TW9kZSIsInN0dWRlbnRQcmludE1vZGUiLCJzaG93UmF0aW9uYWxlIiwiaGFzVGV4dCIsImhhc01lZGlhIiwic2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMiLCJwcmludFZpZXciLCJQcmludENvbnRhaW5lciIsIm1xIiwiU3RhdGljIiwib25TdWJGaWVsZENoYW5nZSIsInN1YkZpZWxkQ2hhbmdlZCIsImdldEZpZWxkTmFtZSIsInNldElucHV0Iiwib25CbHVyIiwibWlkQ29udGVudCIsIk1haW5Db250ZW50IiwiU3JPbmx5IiwiU3R5bGVkQ29sbGFwc2libGUiLCJsYWJlbHMiLCJoaWRkZW4iLCJ2aXNpYmxlIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJQcm9tcHRDb250YWluZXIiLCJQcmV2aWV3UHJvbXB0IiwiUmVhZGFibGUiLCJmYWxzZSIsIklucHV0QW5kS2V5cGFkQ29udGFpbmVyIiwidGFiSW5kZXgiLCJSZXNwb25zZVR5cGVzIiwic2ltcGxlIiwib25TaW1wbGVSZXNwb25zZUNoYW5nZSIsInNob3dLZXlwYWQiLCJhZHZhbmNlZCIsIkV4cHJlc3Npb24iLCJpc0luY29ycmVjdCIsImlzQ29ycmVjdCIsInNob3dDb3JyZWN0bmVzcyIsImNvcnJlY3RBbnN3ZXJTaG93biIsInByaW50Q29ycmVjdCIsImVudGVyVG91Y2hEZWxheSIsImludGVyYWN0aXZlIiwib3BlbiIsInNsb3RQcm9wcyIsInBvcHBlciIsImNvbnRhaW5lciIsInVuZGVmaW5lZCIsInBsYWNlbWVudCIsInN4IiwiYmFja2dyb3VuZENvbG9yIiwid2lkdGgiLCJvcGFjaXR5IiwiZGlzcGxheSIsIm1vZGlmaWVycyIsIm9wdGlvbnMiLCJvZmZzZXQiLCJlbmFibGVkIiwiYm91bmRhcnkiLCJwYWRkaW5nIiwiYWRhcHRpdmUiLCJncHVBY2NlbGVyYXRpb24iLCJ0b29sdGlwIiwiZm9udFNpemUiLCJtYXJnaW5Ub3AiLCJwYWRkaW5nVG9wIiwiYm94U2hhZG93IiwidGl0bGUiLCJSZXNwb25zZUNvbnRhaW5lciIsInN0eWxlIiwiSG9yaXpvbnRhbEtleXBhZCIsIm9uQ2xpY2siLCJOb3RlIiwiQ29sbGFwc2libGUiLCJTdHlsZWRVaUxheW91dCIsInIiLCJkb21Ob2RlIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsIlN0eWxlZFRvb2x0aXAiLCJ0aGVtZSIsImJhY2tncm91bmQiLCJjb2xvciIsInByaW1hcnlMaWdodCIsInNwYWNpbmciLCJib3JkZXIiLCJzZWNvbmRhcnkiLCJTdHlsZWRDb3JyZWN0QW5zd2VyVG9nZ2xlIiwidG9nZ2xlZCIsIm9uVG9nZ2xlIiwidG9nZ2xlU2hvd0NvcnJlY3QiLCJGZWVkYmFjayIsImV4cG9ydHMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsInN0eWxlSWQiLCJnZXRFbGVtZW50QnlJZCIsImhlYWQiLCJhcHBlbmRDaGlsZCIsInN0eWxlZCIsIlVpTGF5b3V0IiwiVG9vbHRpcCIsIm1hcmdpbkJvdHRvbSIsInBvc2l0aW9uIiwicGFkZGluZ0JvdHRvbSIsInpJbmRleCIsIm1pbldpZHRoIiwic2hvdWxkRm9yd2FyZFByb3AiLCJwcm9wIiwiaW5jbHVkZXMiLCJib3JkZXJDb2xvciIsImluY29ycmVjdCIsIm1heFdpZHRoIiwibGV0dGVyU3BhY2luZyIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdMZWZ0IiwidG9wIiwibGluZUhlaWdodCIsImxlZnQiLCJyaWdodCIsImJvcmRlclRvcCIsInBvaW50ZXJFdmVudHMiLCJoZWlnaHQiLCJvdmVyZmxvdyIsIkNvcnJlY3RBbnN3ZXJUb2dnbGUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBDb3JyZWN0QW5zd2VyVG9nZ2xlIGZyb20gJ0BwaWUtbGliL2NvcnJlY3QtYW5zd2VyLXRvZ2dsZSc7XG5pbXBvcnQgeyBtcSwgSG9yaXpvbnRhbEtleXBhZCwgdXBkYXRlU3BhbnMsIHJlZ2lzdGVyRW1iZWQsIGFwcGx5U3RhdGljTWF0aCB9IGZyb20gJ0BwaWUtbGliL21hdGgtaW5wdXQtbWF0aGxpdmUnO1xuaW1wb3J0IHsgRmVlZGJhY2ssIENvbGxhcHNpYmxlLCBSZWFkYWJsZSwgaGFzVGV4dCwgaGFzTWVkaWEsIFByZXZpZXdQcm9tcHQsIFVpTGF5b3V0IH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgVG9vbHRpcCBmcm9tICdAbXVpL21hdGVyaWFsL1Rvb2x0aXAnO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgU2ltcGxlUXVlc3Rpb25CbG9jayBmcm9tICcuL3NpbXBsZS1xdWVzdGlvbi1ibG9jayc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICdAcGllLWxpYi90cmFuc2xhdG9yJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuY29uc3QgeyB0cmFuc2xhdG9yIH0gPSBUcmFuc2xhdG9yO1xubGV0IHJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuY29uc3QgTkVXTElORV9MQVRFWCA9IC9cXFxcbmV3bGluZS9nO1xuY29uc3QgUkVHRVggPSAve3tyZXNwb25zZX19L2dtO1xuY29uc3QgREVGQVVMVF9LRVlQQURfVkFSSUFOVCA9IDY7XG5cbi8vICEhISBJZiB5b3UncmUgdXNpbmcgQ2hyb21lIGJ1dCBoYXZlIHNlbGVjdGVkIHRoZSBcImlQYWRcIiBkZXZpY2UgaW4gQ2hyb21lIERldmVsb3BlciBUb29scywgdGhlIG5hdmlnYXRvci51c2VyQWdlbnQgc3RyaW5nIG1heSBzdGlsbCByZXBvcnQgYXNcbi8vICBTYWZhcmkgYmVjYXVzZSBDaHJvbWUgb24gaU9TIGFjdHVhbGx5IHVzZXMgdGhlIFNhZmFyaSByZW5kZXJpbmcgZW5naW5lIHVuZGVyIHRoZSBob29kIGR1ZSB0byBBcHBsZSdzIHJlc3RyaWN0aW9ucyBvbiB0aGlyZC1wYXJ0eSBicm93c2VyIGVuZ2luZXMuXG4vLyBXaGVuIHlvdSBzZWxlY3QgdGhlIFwiaVBhZFwiIGRldmljZSBpbiBDaHJvbWUgRGV2ZWxvcGVyIFRvb2xzLCB5b3UncmUgZXNzZW50aWFsbHkgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZiBTYWZhcmkgb24gYW4gaVBhZCwgaW5jbHVkaW5nIHRoZSB1c2VyIGFnZW50IHN0cmluZy5cbi8vICBUaGVyZWZvcmUsIGV2ZW4gdGhvdWdoIHlvdSdyZSB1c2luZyBDaHJvbWUsIHRoZSB1c2VyIGFnZW50IHN0cmluZyB3aWxsIHJlc2VtYmxlIHRoYXQgb2YgU2FmYXJpIG9uIGFuIGlQYWQuXG4vLyBTaW5jZSB0aGUgcmVndWxhciBleHByZXNzaW9uIC9eKCg/IWNocm9tZXxhbmRyb2lkKS4pKnNhZmFyaS9pIGNoZWNrcyBmb3IgdGhlIHByZXNlbmNlIG9mIFwic2FmYXJpXCIgaW4gdGhlIHVzZXIgYWdlbnQgc3RyaW5nIHdoaWxlIGV4Y2x1ZGluZyBcImNocm9tZVwiIGFuZCBcImFuZHJvaWRcIixcbi8vICBpdCB3aWxsIHJldHVybiB0cnVlIGluIHRoaXMgY2FzZSBiZWNhdXNlIFwic2FmYXJpXCIgaXMgcHJlc2VudCBpbiB0aGUgdXNlciBhZ2VudCBzdHJpbmcgZW11bGF0ZWQgYnkgQ2hyb21lIHdoZW4gaW4gaVBhZCBtb2RlLlxuY29uc3QgSVNfU0FGQVJJID0gL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVBZGRpdGlvbmFsS2V5cyhrZXlEYXRhID0gW10pIHtcbiAgcmV0dXJuIGtleURhdGEubWFwKChrZXkpID0+ICh7XG4gICAgbmFtZToga2V5LFxuICAgIGxhdGV4OiBrZXksXG4gICAgd3JpdGU6IGtleSxcbiAgICBsYWJlbDoga2V5LFxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIGlzQ2hpbGRPZkN1cnJlbnRQaWVFbGVtZW50KGNoaWxkLCBwYXJlbnQpIHtcbiAgbGV0IG5vZGUgPSBjaGlsZDtcbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAocGFyZW50ICYmIG5vZGUgPT09IHBhcmVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRLZXlQYWRXaWR0aChhZGRpdGlvbmFsS2V5cyA9IFtdLCBlcXVhdGlvbkVkaXRvcikge1xuICByZXR1cm4gTWF0aC5mbG9vcihhZGRpdGlvbmFsS2V5cy5sZW5ndGggLyA1KSAqIDMwICsgKGVxdWF0aW9uRWRpdG9yID09PSAnbWlzY2VsbGFuZW91cycgPyA2MDAgOiA1MDApO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRm9yU3RhdGljKG1vZGVsLCBzdGF0ZSkge1xuICBjb25zdCB7IGNvbmZpZywgZGlzYWJsZWQgfSA9IG1vZGVsIHx8IHt9O1xuICBjb25zdCB7IGV4cHJlc3Npb24sIHJlc3BvbnNlcywgcHJpbnRNb2RlLCBhbHdheXNTaG93Q29ycmVjdCB9ID0gY29uZmlnIHx8IHt9O1xuXG4gIGlmIChjb25maWcgJiYgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IG1vZGVsRXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG5cbiAgICBpZiAoc3RhdGUuc2hvd0NvcnJlY3QpIHtcbiAgICAgIHJldHVybiByZXNwb25zZXMgJiYgcmVzcG9uc2VzLmxlbmd0aCAmJiByZXNwb25zZXNbMF0uYW5zd2VyO1xuICAgIH1cblxuICAgIGxldCBhbnN3ZXJCbG9ja3MgPSAxOyAvLyBhc3N1bWUgb25lIGF0IGxlYXN0XG4gICAgLy8gYnVpbGQgb3V0IGxvY2FsIHN0YXRlIG1vZGVsIHVzaW5nIHJlc3BvbnNlcyBkZWNsYXJlZCBpbiBleHByZXNzaW9uXG5cbiAgICByZXR1cm4gKG1vZGVsRXhwcmVzc2lvbiB8fCAnJylcbiAgICAgIC5yZXBsYWNlKFJFR0VYLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGFuc3dlciA9IHN0YXRlLnNlc3Npb24uYW5zd2Vyc1tgciR7YW5zd2VyQmxvY2tzfWBdO1xuXG4gICAgICAgIGlmIChwcmludE1vZGUgJiYgIWFsd2F5c1Nob3dDb3JyZWN0KSB7XG4gICAgICAgICAgY29uc3QgYmxhbmtTcGFjZSA9ICdcXFxcIFxcXFwgJy5yZXBlYXQoMzApICsgJ1xcXFxuZXdsaW5lICc7XG5cbiAgICAgICAgICByZXR1cm4gYFxcXFxNYXRoUXVpbGxNYXRoRmllbGRbciR7YW5zd2VyQmxvY2tzKyt9XXske2JsYW5rU3BhY2UucmVwZWF0KDMpfX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuIGBcXFxcZW1iZWR7YW5zd2VyQmxvY2t9W3Ike2Fuc3dlckJsb2NrcysrfV1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGBcXFxcTWF0aFF1aWxsTWF0aEZpZWxkW3Ike2Fuc3dlckJsb2NrcysrfV17JHsoYW5zd2VyICYmIGFuc3dlci52YWx1ZSkgfHwgJyd9fWA7XG4gICAgICB9KVxuICAgICAgLnJlcGxhY2UoTkVXTElORV9MQVRFWCwgJ1xcXFxlbWJlZHtuZXdMaW5lfVtdJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VBbnN3ZXJzKHNlc3Npb24sIG1vZGVsKSB7XG4gIGNvbnN0IGFuc3dlcnMgPSB7fTtcblxuICBpZiAobW9kZWwuY29uZmlnICYmIG1vZGVsLmNvbmZpZy5leHByZXNzaW9uKSB7XG4gICAgbGV0IGFuc3dlckJsb2NrcyA9IDE7IC8vIGFzc3VtZSBvbmUgYXQgbGVhc3RcbiAgICAvLyBidWlsZCBvdXQgbG9jYWwgc3RhdGUgbW9kZWwgdXNpbmcgcmVzcG9uc2VzIGRlY2xhcmVkIGluIGV4cHJlc3Npb25cblxuICAgIChtb2RlbC5jb25maWcuZXhwcmVzc2lvbiB8fCAnJykucmVwbGFjZShSRUdFWCwgKCkgPT4ge1xuICAgICAgYW5zd2Vyc1tgciR7YW5zd2VyQmxvY2tzfWBdID0ge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAoc2Vzc2lvbiAmJlxuICAgICAgICAgICAgc2Vzc2lvbi5hbnN3ZXJzICYmXG4gICAgICAgICAgICBzZXNzaW9uLmFuc3dlcnNbYHIke2Fuc3dlckJsb2Nrc31gXSAmJlxuICAgICAgICAgICAgc2Vzc2lvbi5hbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0udmFsdWUpIHx8XG4gICAgICAgICAgJycsXG4gICAgICB9O1xuXG4gICAgICBhbnN3ZXJCbG9ja3MgKz0gMTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gYW5zd2Vycztcbn1cblxuZXhwb3J0IGNsYXNzIE1haW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNlc3Npb246IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvblNlc3Npb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgY29uc3QgeyBtb2RlbCwgc2Vzc2lvbiB9ID0gcHJvcHM7XG4gICAgY29uc3QgYW5zd2VycyA9IHBhcnNlQW5zd2VycyhzZXNzaW9uLCBtb2RlbCk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc2Vzc2lvbjogeyAuLi5wcm9wcy5zZXNzaW9uLCBhbnN3ZXJzIH0sXG4gICAgICBhY3RpdmVBbnN3ZXJCbG9jazogJycsXG4gICAgICBzaG93Q29ycmVjdDogdGhpcy5wcm9wcy5tb2RlbC5jb25maWcuYWx3YXlzU2hvd0NvcnJlY3QgfHwgZmFsc2UsXG4gICAgICB0b29sdGlwQ29udGFpbmVyUmVmOiBSZWFjdC5jcmVhdGVSZWYoKSxcbiAgICB9O1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmICghcmVnaXN0ZXJlZCkge1xuICAgICAgICByZWdpc3RlckVtYmVkKCdhbnN3ZXJCbG9jaycsIChkYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2xhc3NOYW1lcyA9IGdldEJsb2NrQ2xhc3NOYW1lcygpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBodG1sU3RyaW5nOiBgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lcy5ibG9ja0NvbnRhaW5lcn1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc05hbWVzLmJsb2NrUmVzcG9uc2V9XCIgaWQ9XCIke2RhdGF9SW5kZXhcIj5SPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lcy5ibG9ja01hdGh9XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpZD1cIiR7ZGF0YX1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICB0ZXh0OiAoKSA9PiAndGV4dCcsXG4gICAgICAgICAgICBsYXRleDogKCkgPT4gYFxcXFxlbWJlZHthbnN3ZXJCbG9ja31bJHtkYXRhfV1gLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlZ2lzdGVyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUFuc3dlckJsb2NrRG9tVXBkYXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBzZXNzaW9uLCBzaG93Q29ycmVjdCB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBhbnN3ZXJzID0gc2Vzc2lvbi5hbnN3ZXJzO1xuXG4gICAgaWYgKHRoaXMucm9vdCAmJiBtb2RlbC5kaXNhYmxlZCAmJiAhc2hvd0NvcnJlY3QpIHtcbiAgICAgIE9iamVjdC5rZXlzKGFuc3dlcnMpLmZvckVhY2goKGFuc3dlcklkKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IoYCMke2Fuc3dlcklkfWApO1xuICAgICAgICBjb25zdCBpbmRleEVsID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IoYCMke2Fuc3dlcklkfUluZGV4YCk7XG4gICAgICAgIC8vIGNvbnN0IGNvcnJlY3QgPSBtb2RlbC5jb3JyZWN0bmVzcyAmJiBtb2RlbC5jb3JyZWN0bmVzcy5jb3JyZWN0O1xuXG4gICAgICAgIGlmIChlbCkge1xuICAgICAgICAgIGNvbnN0IGFuc3dlciA9IGFuc3dlcnNbYW5zd2VySWRdO1xuXG4gICAgICAgICAgYXBwbHlTdGF0aWNNYXRoKGVsLCAoYW5zd2VyICYmIGFuc3dlci52YWx1ZSkgfHwgJycpO1xuXG4gICAgICAgICAgaWYgKCFtb2RlbC52aWV3KSB7XG4gICAgICAgICAgICAvLyBmb3Igbm93LCB3ZSdyZSBub3QgZ29pbmcgdG8gYmUgc2hvd2luZyBpbmRpdmlkdWFsIHJlc3BvbnNlIGNvcnJlY3RuZXNzXG4gICAgICAgICAgICAvLyBUT0RPIHJlLWF0dGFjaCB0aGUgY2xhc3NlcyBvbmNlIHdlIGFyZVxuICAgICAgICAgICAgLy8gZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXG4gICAgICAgICAgICAvLyAgIGNvcnJlY3QgPyAnY29ycmVjdCcgOiAnaW5jb3JyZWN0J1xuICAgICAgICAgICAgLy8gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2NvcnJlY3QnKTtcbiAgICAgICAgICAgIGVsLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdpbmNvcnJlY3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGb3Igbm93LCB3ZSdyZSBub3QgZ29pbmcgdG8gYmUgaW5kZXhpbmcgcmVzcG9uc2UgYmxvY2tzXG4gICAgICAgICAgLy8gVE9ETyBnbyBiYWNrIHRvIGluZGV4aW5nIG9uY2Ugd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIHJlc3BvbnNlIGNvcnJlY3RuZXNzXG4gICAgICAgICAgLy8gaW5kZXhFbC50ZXh0Q29udGVudCA9IGBSJHtpZHggKyAxfWA7XG4gICAgICAgICAgaW5kZXhFbC50ZXh0Q29udGVudCA9ICdSJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyTWF0aCh0aGlzLnJvb3QpO1xuICB9O1xuXG4gIGNvdW50UmVzcG9uc2VPY2N1cnJlbmNlcyhleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IC9cXHtcXHtyZXNwb25zZVxcfVxcfS9nO1xuICAgIGNvbnN0IG1hdGNoZXMgPSBleHByZXNzaW9uPy5tYXRjaChwYXR0ZXJuKTtcblxuICAgIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiAwO1xuICB9XG5cbiAgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXMucHJvcHMubW9kZWw7XG4gICAgY29uc3QgeyBjb25maWc6IG5leHRDb25maWcgPSB7fSB9ID0gbmV4dFByb3BzLm1vZGVsIHx8IHt9O1xuXG4gICAgY29uc3QgeyBzZXNzaW9uIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgc2Vzc2lvbjogbmV4dFNlc3Npb24gPSB7fSB9ID0gbmV4dFByb3BzIHx8IHt9O1xuXG4gICAgLy8gaW4gY2FzZSBzZXNzaW9uIHByb3BzIGNoYW5nZWQgaW4gcGFyZW50LCB3ZSBuZWVkIHRvIGNhdGNoIHRoaXMgYW5kIHVwZGF0ZSBsb2NhbCBzdGF0ZVxuICAgIC8vIGV4YW1wbGU6IHdoZW4gZW52IGlzIGNoYW5naW5nIGluIHBpZW9uZWVyXG4gICAgaWYgKHNlc3Npb24gJiYgbmV4dFNlc3Npb24gJiYgIWlzRXF1YWwoc2Vzc2lvbi5hbnN3ZXJzLCBuZXh0U2Vzc2lvbi5hbnN3ZXJzKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHNlc3Npb246IHsgLi4ubmV4dFNlc3Npb24sIGFuc3dlcnM6IHBhcnNlQW5zd2VycyhuZXh0U2Vzc2lvbiwgdGhpcy5wcm9wcy5tb2RlbCkgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIHRoZSBub3RlIGlzIHRoZSBkZWZhdWx0IG9uZSBmb3IgcHJldiBsYW5ndWFnZSBhbmQgY2hhbmdlIHRvIHRoZSBkZWZhdWx0IG9uZSBmb3IgbmV3IGxhbmd1YWdlXG4gICAgLy8gdGhpcyBjaGVjayBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gZGlmZXJhbmNpYXRlIGJldHdlZW4gZGVmYXVsdCBhbmQgYXV0aG91ciBkZWZpbmVkIG5vdGVcbiAgICAvLyBhbmQgb25seSBjaGFuZ2UgYmV0d2VlbiBsYW5ndWFnZXMgZm9yIGRlZmF1bHQgb25lc1xuICAgIGlmIChcbiAgICAgIGNvbmZpZy5ub3RlICYmXG4gICAgICBjb25maWcubGFuZ3VhZ2UgJiZcbiAgICAgIGNvbmZpZy5sYW5ndWFnZSAhPT0gbmV4dENvbmZpZy5sYW5ndWFnZSAmJlxuICAgICAgY29uZmlnLm5vdGUgPT09IHRyYW5zbGF0b3IudCgnbWF0aElubGluZS5wcmltYXJ5Q29ycmVjdFdpdGhBbHRlcm5hdGVzJywgeyBsbmc6IGNvbmZpZy5sYW5ndWFnZSB9KVxuICAgICkge1xuICAgICAgY29uZmlnLm5vdGUgPSB0cmFuc2xhdG9yLnQoJ21hdGhJbmxpbmUucHJpbWFyeUNvcnJlY3RXaXRoQWx0ZXJuYXRlcycsIHsgbG5nOiBuZXh0Q29uZmlnLmxhbmd1YWdlIH0pO1xuICAgIH1cblxuICAgIGlmICgoY29uZmlnLmVudiAmJiBjb25maWcuZW52Lm1vZGUgIT09ICdldmFsdWF0ZScpIHx8IChuZXh0Q29uZmlnLmVudiAmJiBuZXh0Q29uZmlnLmVudi5tb2RlICE9PSAnZXZhbHVhdGUnKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IC4uLnRoaXMuc3RhdGUuc2Vzc2lvbiwgc2hvd0NvcnJlY3Q6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIGlmIChuZXh0Q29uZmlnLmFsd2F5c1Nob3dDb3JyZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd0NvcnJlY3Q6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY291bnRSZXNwb25zZU9jY3VycmVuY2VzKGNvbmZpZy5leHByZXNzaW9uKSA8IHRoaXMuY291bnRSZXNwb25zZU9jY3VycmVuY2VzKG5leHRDb25maWcuZXhwcmVzc2lvbikpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVBcmlhKCksIDEwMCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgKGNvbmZpZyAmJiBjb25maWcucmVzcG9uc2VzICYmIGNvbmZpZy5yZXNwb25zZXMubGVuZ3RoICE9PSBuZXh0Q29uZmlnLnJlc3BvbnNlcy5sZW5ndGgpIHx8XG4gICAgICAoIWNvbmZpZyAmJiBuZXh0Q29uZmlnICYmIG5leHRDb25maWcucmVzcG9uc2VzKSB8fFxuICAgICAgKGNvbmZpZyAmJiBuZXh0Q29uZmlnICYmIGNvbmZpZy5leHByZXNzaW9uICE9PSBuZXh0Q29uZmlnLmV4cHJlc3Npb24pXG4gICAgKSB7XG4gICAgICBjb25zdCBuZXdBbnN3ZXJzID0ge307XG4gICAgICBjb25zdCBhbnN3ZXJzID0gdGhpcy5zdGF0ZS5zZXNzaW9uLmFuc3dlcnM7XG5cbiAgICAgIGxldCBhbnN3ZXJCbG9ja3MgPSAxOyAvLyBhc3N1bWUgb25lIGF0IGxlYXN0XG5cbiAgICAgIC8vIGJ1aWxkIG91dCBsb2NhbCBzdGF0ZSBtb2RlbCB1c2luZyByZXNwb25zZXMgZGVjbGFyZWQgaW4gZXhwcmVzc2lvblxuICAgICAgKG5leHRDb25maWcuZXhwcmVzc2lvbiB8fCAnJykucmVwbGFjZShSRUdFWCwgKCkgPT4ge1xuICAgICAgICBuZXdBbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0gPSB7XG4gICAgICAgICAgdmFsdWU6IChhbnN3ZXJzICYmIGFuc3dlcnNbYHIke2Fuc3dlckJsb2Nrc31gXSAmJiBhbnN3ZXJzW2ByJHthbnN3ZXJCbG9ja3N9YF0udmFsdWUpIHx8ICcnLFxuICAgICAgICB9O1xuICAgICAgICBhbnN3ZXJCbG9ja3MrKztcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgICAoc3RhdGUpID0+ICh7XG4gICAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgICAgLi4uc3RhdGUuc2Vzc2lvbixcbiAgICAgICAgICAgIGNvbXBsZXRlQW5zd2VyOiB0aGlzLm1xU3RhdGljICYmIHRoaXMubXFTdGF0aWMubWF0aEZpZWxkLmxhdGV4KCksXG4gICAgICAgICAgICBhbnN3ZXJzOiBuZXdBbnN3ZXJzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICB0aGlzLmhhbmRsZUFuc3dlckJsb2NrRG9tVXBkYXRlLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUpIHtcbiAgICBjb25zdCBzYW1lTW9kZWwgPSBpc0VxdWFsKHRoaXMucHJvcHMubW9kZWwsIG5leHRQcm9wcy5tb2RlbCk7XG4gICAgY29uc3Qgc2FtZVN0YXRlID0gaXNFcXVhbCh0aGlzLnN0YXRlLCBuZXh0U3RhdGUpO1xuXG4gICAgcmV0dXJuICFzYW1lTW9kZWwgfHwgIXNhbWVTdGF0ZTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZUFyaWEoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHJlbmRlck1hdGgodGhpcy5yb290KSwgMTAwKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgIHRoaXMuaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUoKTtcblxuICAgIGNvbnN0IHByZXZSZXNwb25zZVR5cGUgPSBwcmV2UHJvcHMubW9kZWw/LmNvbmZpZz8ucmVzcG9uc2VUeXBlO1xuICAgIGNvbnN0IGN1cnJlbnRSZXNwb25zZVR5cGUgPSB0aGlzLnByb3BzLm1vZGVsPy5jb25maWc/LnJlc3BvbnNlVHlwZTtcblxuICAgIGlmIChwcmV2UmVzcG9uc2VUeXBlICE9PSBjdXJyZW50UmVzcG9uc2VUeXBlKSB7XG4gICAgICB0aGlzLnVwZGF0ZUFyaWEoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVBcmlhID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnJvb3QpIHtcbiAgICAgIC8vIFVwZGF0ZSBhcmlhLWhpZGRlbiBmb3IgLm1xLXNlbGVjdGFibGUgZWxlbWVudHNcbiAgICAgIGNvbnN0IHNlbGVjdGFibGVFbGVtZW50cyA9IHRoaXMucm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcubXEtc2VsZWN0YWJsZScpO1xuICAgICAgc2VsZWN0YWJsZUVsZW1lbnRzLmZvckVhY2goKGVsZW0pID0+IGVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJykpO1xuXG4gICAgICAvLyBVcGRhdGUgYXJpYS1sYWJlbCBmb3IgdGV4dGFyZWEgZWxlbWVudHMgYW5kIGFkZCBhcmlhLWRlc2NyaWJlZGJ5XG4gICAgICBjb25zdCB0ZXh0YXJlYUVsZW1lbnRzID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RleHRhcmVhJyk7XG4gICAgICB0ZXh0YXJlYUVsZW1lbnRzLmZvckVhY2goKGVsZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIGVsZW0uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ0VudGVyIGFuc3dlci4nKTtcblxuICAgICAgICAvLyBDcmVhdGUgYSB1bmlxdWUgaWQgZm9yIGVhY2ggaW5zdHJ1Y3Rpb25zIGVsZW1lbnRcbiAgICAgICAgY29uc3QgaW5zdHJ1Y3Rpb25zSWQgPSBgaW5zdHJ1Y3Rpb25zLSR7aW5kZXh9YDtcblxuICAgICAgICAvLyBGaW5kIHRoZSBwYXJlbnQgZWxlbWVudCB0aGF0IGNvbnRhaW5zIHRoZSB0ZXh0YXJlYVxuICAgICAgICBjb25zdCBwYXJlbnQgPSBlbGVtLmNsb3Nlc3QoJy5tcS10ZXh0YXJlYScpO1xuXG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgb3IgZmluZCB0aGUgaW5zdHJ1Y3Rpb25zIGVsZW1lbnQgd2l0aGluIHRoZSBwYXJlbnRcbiAgICAgICAgICBsZXQgaW5zdHJ1Y3Rpb25zRWxlbWVudCA9IHBhcmVudC5xdWVyeVNlbGVjdG9yKGAjJHtpbnN0cnVjdGlvbnNJZH1gKTtcblxuICAgICAgICAgIGlmICghaW5zdHJ1Y3Rpb25zRWxlbWVudCkge1xuICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgIGluc3RydWN0aW9uc0VsZW1lbnQuaWQgPSBpbnN0cnVjdGlvbnNJZDtcbiAgICAgICAgICAgIGluc3RydWN0aW9uc0VsZW1lbnQuY2xhc3NOYW1lID0gJ3NyLW9ubHknO1xuICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zRWxlbWVudC50ZXh0Q29udGVudCA9XG4gICAgICAgICAgICAgICdUaGlzIGZpZWxkIHN1cHBvcnRzIGJvdGgga2V5cGFkIGFuZCBrZXlib2FyZCBpbnB1dC4gVXNlIHRoZSBrZXlib2FyZCB0byBhY2Nlc3MgYW5kIGludGVyYWN0IHdpdGggdGhlIG9uLXNjcmVlbiBtYXRoIGtleXBhZCwgd2hpY2ggYWNjZXB0cyBMYVRlWCBtYXJrdXAuIFVzZSB0aGUgZG93biBhcnJvdyBrZXkgdG8gb3BlbiB0aGUga2V5cGFkIGFuZCBuYXZpZ2F0ZSBpdHMgYnV0dG9ucy4gVXNlIHRoZSBlc2NhcGUga2V5IHRvIGNsb3NlIHRoZSBrZXlwYWQgYW5kIHJldHVybiB0byB0aGUgaW5wdXQgZmllbGQuJztcbiAgICAgICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoaW5zdHJ1Y3Rpb25zRWxlbWVudCwgZWxlbSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZWxlbS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBpbnN0cnVjdGlvbnNJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBmb2N1c0ZpcnN0S2V5cGFkRWxlbWVudCA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGtleXBhZEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1rZXlwYWRdJyk7XG5cbiAgICAgIGlmIChrZXlwYWRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QnV0dG9uID0ga2V5cGFkRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiYnV0dG9uLCBbcm9sZT0nYnV0dG9uJ11cIik7XG5cbiAgICAgICAgaWYgKGZpcnN0QnV0dG9uKSB7XG4gICAgICAgICAgZmlyc3RCdXR0b24uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDApO1xuICB9O1xuXG4gIGhhbmRsZUtleURvd24gPSAoZXZlbnQsIGlkKSA9PiB7XG4gICAgY29uc3QgaXNUcmlnZXJyZWRGcm9tQWN0dWFsUGllRWxlbWVudCA9IGlzQ2hpbGRPZkN1cnJlbnRQaWVFbGVtZW50KGV2ZW50LnRhcmdldCwgdGhpcy5yb290KTtcbiAgICBjb25zdCBpc0Fuc3dlcklucHV0Rm9jdXNlZCA9XG4gICAgICB0aGlzLm1xU3RhdGljICYmIHRoaXMubXFTdGF0aWMuaW5wdXRSZWY/LmN1cnJlbnRcbiAgICAgICAgPyB0aGlzLm1xU3RhdGljLmlucHV0UmVmPy5jdXJyZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG4gICAgICAgIDogZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgPT09ICdFbnRlciBhbnN3ZXIuJztcbiAgICBjb25zdCB7IGtleSwgdHlwZSB9ID0gZXZlbnQ7XG4gICAgY29uc3QgaXNDbGlja09yVG91Y2hFdmVudCA9IHR5cGUgPT09ICdjbGljaycgfHwgdHlwZSA9PT0gJ3RvdWNoc3RhcnQnO1xuXG4gICAgaWYgKGlzQW5zd2VySW5wdXRGb2N1c2VkICYmIChrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGlzQ2xpY2tPclRvdWNoRXZlbnQpKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5hY3RpdmVBbnN3ZXJCbG9jayAhPT0gaWQgJiYgaXNUcmlnZXJyZWRGcm9tQWN0dWFsUGllRWxlbWVudCkge1xuICAgICAgICB0aGlzLmNsZWFudXBLZXlEb3duTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiBpZCB9LCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vblN1YkZpZWxkRm9jdXMoaWQpO1xuICAgICAgICAgIGlmIChrZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzRmlyc3RLZXlwYWRFbGVtZW50KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBhY3RpdmVBbnN3ZXJCbG9jazogJycgfSk7XG4gICAgfVxuICB9O1xuXG4gIG9uU3ViRmllbGRGb2N1cyA9IChpZCkgPT4ge1xuICAgIGlmICghdGhpcy5oYW5kbGVFdmVudCkge1xuICAgICAgdGhpcy5oYW5kbGVFdmVudCA9IChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUtleURvd24oZXZlbnQsIGlkKTtcbiAgICAgIH07XG5cbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUV2ZW50KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVFdmVudCk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVFdmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGNsZWFudXBLZXlEb3duTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuaGFuZGxlRXZlbnQpIHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZUV2ZW50KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVFdmVudCk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVFdmVudCk7XG4gICAgICB0aGlzLmhhbmRsZUV2ZW50ID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMuY2xlYW51cEtleURvd25MaXN0ZW5lcikge1xuICAgICAgdGhpcy5jbGVhbnVwS2V5RG93bkxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25Eb25lID0gKCkgPT4ge307XG5cbiAgb25TaW1wbGVSZXNwb25zZUNoYW5nZSA9IChyZXNwb25zZSkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlKSA9PiAoeyBzZXNzaW9uOiB7IC4uLnN0YXRlLnNlc3Npb24sIHJlc3BvbnNlIH0gfSksIHRoaXMuY2FsbE9uU2Vzc2lvbkNoYW5nZSk7XG4gIH07XG5cbiAgdG9Ob2RlRGF0YSA9IChkYXRhKSA9PiB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyB0eXBlLCB2YWx1ZSB9ID0gZGF0YTtcblxuICAgIGlmICh0eXBlID09PSAnY29tbWFuZCcgfHwgdHlwZSA9PT0gJ2N1cnNvcicpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Fuc3dlcicpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdhbnN3ZXInLCAuLi5kYXRhIH07XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJ2NsZWFyJykge1xuICAgICAgcmV0dXJuIHsgdHlwZTogJ2NsZWFyJyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnd3JpdGUnLCB2YWx1ZSB9O1xuICAgIH1cbiAgfTtcblxuICBzZXRJbnB1dCA9IChpbnB1dCkgPT4ge1xuICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgfTtcblxuICBvbkNsaWNrID0gKGRhdGEpID0+IHtcbiAgICBjb25zdCBzY3JvbGxYID0gd2luZG93LnNjcm9sbFg7XG4gICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGMgPSB0aGlzLnRvTm9kZURhdGEoZGF0YSk7XG5cbiAgICBpZiAoYy50eXBlID09PSAnY2xlYXInKSB7XG4gICAgICB0aGlzLmlucHV0LmNsZWFyKCk7XG4gICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdjb21tYW5kJykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYy52YWx1ZSkpIHtcbiAgICAgICAgYy52YWx1ZS5mb3JFYWNoKCh2dikgPT4ge1xuICAgICAgICAgIHRoaXMuaW5wdXQuY21kKHZ2KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlucHV0LmNtZChjLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2N1cnNvcicpIHtcbiAgICAgIHRoaXMuaW5wdXQua2V5c3Ryb2tlKGMudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0LndyaXRlKGMudmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2luZG93LnNjcm9sbFRvKHNjcm9sbFgsIHNjcm9sbFkpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxYLCBzY3JvbGxZKSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY2FsbE9uU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IG9uU2Vzc2lvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChvblNlc3Npb25DaGFuZ2UpIHtcbiAgICAgIG9uU2Vzc2lvbkNoYW5nZSh0aGlzLnN0YXRlLnNlc3Npb24pO1xuICAgIH1cbiAgfTtcblxuICB0b2dnbGVTaG93Q29ycmVjdCA9IChzaG93KSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dDb3JyZWN0OiBzaG93IH0sIHRoaXMuaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUpO1xuICB9O1xuXG4gIHN1YkZpZWxkQ2hhbmdlZCA9IChuYW1lLCBzdWJmaWVsZFZhbHVlKSA9PiB7XG4gICAgdXBkYXRlU3BhbnMoKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICBjb25zdCBzY3JvbGxYID0gd2luZG93LnNjcm9sbFg7XG4gICAgICBjb25zdCBzY3JvbGxZID0gd2luZG93LnNjcm9sbFk7XG4gICAgICB0aGlzLnNldFN0YXRlKFxuICAgICAgICAoc3RhdGUpID0+ICh7XG4gICAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgICAgLi4uc3RhdGUuc2Vzc2lvbixcbiAgICAgICAgICAgIGNvbXBsZXRlQW5zd2VyOiB0aGlzLm1xU3RhdGljICYmIHRoaXMubXFTdGF0aWMubWF0aEZpZWxkLmxhdGV4KCksXG4gICAgICAgICAgICBhbnN3ZXJzOiB7XG4gICAgICAgICAgICAgIC4uLnN0YXRlLnNlc3Npb24uYW5zd2VycyxcbiAgICAgICAgICAgICAgW25hbWVdOiB7IHZhbHVlOiBzdWJmaWVsZFZhbHVlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWxsT25TZXNzaW9uQ2hhbmdlKCk7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxYLCBzY3JvbGxZKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIGdldEZpZWxkTmFtZSA9IChjaGFuZ2VGaWVsZCwgZmllbGRzKSA9PiB7XG4gICAgY29uc3QgeyBhbnN3ZXJzIH0gPSB0aGlzLnN0YXRlLnNlc3Npb247XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoYW5zd2VycyB8fCB7fSkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYW5zd2Vycyk7XG5cbiAgICAgIHJldHVybiBrZXlzLmZpbmQoKGspID0+IHtcbiAgICAgICAgY29uc3QgdGYgPSBmaWVsZHNba107XG5cbiAgICAgICAgcmV0dXJuIHRmICYmIHRmLmlkID09IGNoYW5nZUZpZWxkLmlkO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIG9uQmx1ciA9IChlKSA9PiB7XG4gICAgY29uc3QgeyByZWxhdGVkVGFyZ2V0LCBjdXJyZW50VGFyZ2V0IH0gPSBlIHx8IHt9O1xuXG4gICAgLy8gb3VyIGtleXBhZCBpcyBpbiB0b29sdGlwXG4gICAgLy8gaW4gdGhpcyB3YXkgd2Ugc2VlIGlmIGV2ZW50IHdhcyB0cmlnZ2VyZWQgZnJvbSB0aGUga2V5cGFkXG4gICAgY29uc3QgaXNLZXlwYWRPcGVuID0gY3VycmVudFRhcmdldCAmJiBjdXJyZW50VGFyZ2V0LmNsb3Nlc3QoJ1tyb2xlPXRvb2x0aXBdJyk7XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJlbnRXaXRoUm9sZVRvb2x0aXAoZWxlbWVudCwgZGVwdGggPSAwKSB7XG4gICAgICAvLyBvbmx5IHJ1biB0aGlzIG1heCAxNiB0aW1lc1xuICAgICAgaWYgKCFlbGVtZW50IHx8IGRlcHRoID49IDE2KSByZXR1cm4gbnVsbDtcblxuICAgICAgY29uc3QgcGFyZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG5cbiAgICAgIGlmICghcGFyZW50KSByZXR1cm4gbnVsbDtcblxuICAgICAgaWYgKHBhcmVudC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ3Rvb2x0aXAnKSB7XG4gICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBnZXRQYXJlbnRXaXRoUm9sZVRvb2x0aXAocGFyZW50LCBkZXB0aCArIDEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERlZXBDaGlsZERhdGFLZXlwYWQoZWxlbWVudCwgZGVwdGggPSAwKSB7XG4gICAgICAvLyBvbmx5IHJ1biB0aGlzIG1heCA0IHRpbWVzXG4gICAgICBpZiAoIWVsZW1lbnQgfHwgZGVwdGggPj0gNCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGNvbnN0IGNoaWxkID0gZWxlbWVudD8uY2hpbGRyZW4/LlswXTtcblxuICAgICAgaWYgKCFjaGlsZCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIGlmIChjaGlsZC5hdHRyaWJ1dGVzICYmIGNoaWxkLmF0dHJpYnV0ZXNbJ2RhdGEta2V5cGFkJ10pIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZ2V0RGVlcENoaWxkRGF0YUtleXBhZChjaGlsZCwgZGVwdGggKyAxKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRXaXRoVG9vbHRpcFJvbGUgPSBnZXRQYXJlbnRXaXRoUm9sZVRvb2x0aXAocmVsYXRlZFRhcmdldCk7XG4gICAgY29uc3QgY2hpbGRXaXRoRGF0YUtleXBhZCA9IHBhcmVudFdpdGhUb29sdGlwUm9sZSA/IGdldERlZXBDaGlsZERhdGFLZXlwYWQocGFyZW50V2l0aFRvb2x0aXBSb2xlKSA6IG51bGw7XG5cbiAgICBpZiAoIXJlbGF0ZWRUYXJnZXQgfHwgIWN1cnJlbnRUYXJnZXQgfHwgIWNoaWxkV2l0aERhdGFLZXlwYWQ/LmF0dHJpYnV0ZXNbJ2RhdGEta2V5cGFkJ10pIHtcbiAgICAgIC8vIGlmIGV2ZW50IHdhcyB0cmlnZXJlZCBmcm9tIHRoZSBrZXlwYWQsIGF2b2lkIGNsb3NpbmcgdGhlIGtleXBhZFxuICAgICAgaWYgKCFpc0tleXBhZE9wZW4pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUFuc3dlckJsb2NrOiAnJyB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZWxzZSB7XG4gICAgLy8gICAgIC8vIEp1c3QgZm9yIGRlYnVnZ2luZyBwdXJwb3NlOlxuICAgIC8vICAgICBjb25zb2xlLmxvZygnXFxuXFxuTmV3IGNoaWxkV2l0aERhdGFLZXlwYWQnLCBjaGlsZFdpdGhEYXRhS2V5cGFkKTtcbiAgICAvL1xuICAgIC8vICAgICBpZiAoSVNfU0FGQVJJKSB7XG4gICAgLy8gICAgICAgICAvLyAoSVNfU0FGQVJJICYmICFyZWxhdGVkVGFyZ2V0Py5vZmZzZXRQYXJlbnQ/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uYXR0cmlidXRlcz8uWydkYXRhLWtleXBhZCddKVxuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ1doYXQgd2FzIGJlaW5nIHVzZWQnLCByZWxhdGVkVGFyZ2V0Py5vZmZzZXRQYXJlbnQ/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXSk7XG4gICAgLy8gICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAvLyAoIUlTX1NBRkFSSSAmJiAhcmVsYXRlZFRhcmdldD8ub2Zmc2V0UGFyZW50Py5jaGlsZHJlblswXT8uYXR0cmlidXRlcz8uWydkYXRhLWtleXBhZCddKSB8fFxuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ1doYXQgd2FzIGJlaW5nIHVzZWQnLCByZWxhdGVkVGFyZ2V0Py5vZmZzZXRQYXJlbnQ/LmNoaWxkcmVuWzBdKTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgfTtcblxuICBzZXRUb29sdGlwUmVmKHJlZikge1xuICAgIC8vIFNhZmFyaSBIYWNrOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDI3NjQ0OTUvNTc1NzYzNVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHJlZiAmJiBJU19TQUZBUkkpIHtcbiAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltyb2xlPSd0b29sdGlwJ11cIik7XG5cbiAgICAgICAgaWYgKGRpdikge1xuICAgICAgICAgIGNvbnN0IGVsID0gZGl2LmZpcnN0Q2hpbGQ7XG4gICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBtb2RlbCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGFjdGl2ZUFuc3dlckJsb2NrLCBzaG93Q29ycmVjdCwgc2Vzc2lvbiwgdG9vbHRpcENvbnRhaW5lclJlZiB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7XG4gICAgICBjb25maWcsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZXh0cmFDU1NSdWxlcyxcbiAgICAgIHZpZXcsXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgZmVlZGJhY2ssXG4gICAgICBhbmltYXRpb25zRGlzYWJsZWQsXG4gICAgICBwcmludE1vZGUsXG4gICAgICBhbHdheXNTaG93Q29ycmVjdCxcbiAgICAgIGxhbmd1YWdlLFxuICAgIH0gPSBtb2RlbCB8fCB7fTtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBzaG93Tm90ZSxcbiAgICAgIG5vdGUsXG4gICAgICBwcm9tcHQsXG4gICAgICByZXNwb25zZXMsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgICBlcXVhdGlvbkVkaXRvcixcbiAgICAgIGN1c3RvbUtleXMsXG4gICAgICBpZCxcbiAgICAgIGVudjogeyBtb2RlLCByb2xlIH0gPSB7fSxcbiAgICB9ID0gY29uZmlnIHx8IHt9O1xuICAgIGNvbnN0IGRpc3BsYXlOb3RlID0gKHNob3dDb3JyZWN0IHx8IChtb2RlID09PSAndmlldycgJiYgcm9sZSA9PT0gJ2luc3RydWN0b3InKSkgJiYgc2hvd05vdGUgJiYgbm90ZTtcbiAgICBjb25zdCBlbXB0eVJlc3BvbnNlID0gaXNFbXB0eShyZXNwb25zZXMpO1xuICAgIGNvbnN0IHNob3dDb3JyZWN0QW5zd2VyVG9nZ2xlID0gIWVtcHR5UmVzcG9uc2UgJiYgY29ycmVjdG5lc3MgJiYgY29ycmVjdG5lc3MuY29ycmVjdG5lc3MgIT09ICdjb3JyZWN0JztcbiAgICBjb25zdCB0b29sdGlwTW9kZUVuYWJsZWQgPSBkaXNhYmxlZCAmJiBjb3JyZWN0bmVzcztcbiAgICBjb25zdCBhZGRpdGlvbmFsS2V5cyA9IGdlbmVyYXRlQWRkaXRpb25hbEtleXMoY3VzdG9tS2V5cyk7XG4gICAgY29uc3QgY29ycmVjdCA9IGNvcnJlY3RuZXNzICYmIGNvcnJlY3RuZXNzLmNvcnJlY3Q7XG4gICAgY29uc3Qgc3RhdGljTGF0ZXggPSBwcmVwYXJlRm9yU3RhdGljKG1vZGVsLCB0aGlzLnN0YXRlKSB8fCAnJztcbiAgICBjb25zdCB2aWV3TW9kZSA9IGRpc2FibGVkICYmICFjb3JyZWN0bmVzcztcbiAgICBjb25zdCBzdHVkZW50UHJpbnRNb2RlID0gcHJpbnRNb2RlICYmICFhbHdheXNTaG93Q29ycmVjdDtcbiAgICBjb25zdCBzaG93UmF0aW9uYWxlID0gcmF0aW9uYWxlICYmIChoYXNUZXh0KHJhdGlvbmFsZSkgfHwgaGFzTWVkaWEocmF0aW9uYWxlKSk7XG4gICAgY29uc3Qgc2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMgPVxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyAmJiAoaGFzVGV4dCh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBoYXNNZWRpYSh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSk7XG5cbiAgICBjb25zdCBwcmludFZpZXcgPSAoXG4gICAgICA8UHJpbnRDb250YWluZXI+XG4gICAgICAgIDxtcS5TdGF0aWNcbiAgICAgICAgICBjbGFzc05hbWU9XCJzdGF0aWMtbWF0aFwiXG4gICAgICAgICAgcmVmPXsobXFTdGF0aWMpID0+IHtcbiAgICAgICAgICAgIGlmIChtcVN0YXRpYykgdGhpcy5tcVN0YXRpYyA9IG1xU3RhdGljO1xuICAgICAgICAgIH19XG4gICAgICAgICAgbGF0ZXg9e3N0YXRpY0xhdGV4fVxuICAgICAgICAgIG9uU3ViRmllbGRDaGFuZ2U9e3RoaXMuc3ViRmllbGRDaGFuZ2VkfVxuICAgICAgICAgIGdldEZpZWxkTmFtZT17dGhpcy5nZXRGaWVsZE5hbWV9XG4gICAgICAgICAgc2V0SW5wdXQ9e3RoaXMuc2V0SW5wdXR9XG4gICAgICAgICAgb25TdWJGaWVsZEZvY3VzPXt0aGlzLm9uU3ViRmllbGRGb2N1c31cbiAgICAgICAgICBvbkJsdXI9e3RoaXMub25CbHVyfVxuICAgICAgICAvPlxuICAgICAgPC9QcmludENvbnRhaW5lcj5cbiAgICApO1xuXG4gICAgY29uc3QgbWlkQ29udGVudCA9IChcbiAgICAgIDxNYWluQ29udGVudD5cbiAgICAgICAge21vZGUgPT09ICdnYXRoZXInICYmIDxTck9ubHk+TWF0aCBFcXVhdGlvbiBSZXNwb25zZSBRdWVzdGlvbjwvU3JPbmx5Pn1cblxuICAgICAgICB7dmlld01vZGUgJiZcbiAgICAgICAgICBzaG93VGVhY2hlckluc3RydWN0aW9ucyAmJlxuICAgICAgICAgICghYW5pbWF0aW9uc0Rpc2FibGVkID8gKFxuICAgICAgICAgICAgPFN0eWxlZENvbGxhcHNpYmxlIGxhYmVscz17eyBoaWRkZW46ICdTaG93IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJywgdmlzaWJsZTogJ0hpZGUgVGVhY2hlciBJbnN0cnVjdGlvbnMnIH19PlxuICAgICAgICAgICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogdGVhY2hlckluc3RydWN0aW9ucyB9fSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRDb2xsYXBzaWJsZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHRlYWNoZXJJbnN0cnVjdGlvbnMgfX0gLz5cbiAgICAgICAgICApKX1cblxuICAgICAgICB7cHJvbXB0ICYmIChcbiAgICAgICAgICA8UHJvbXB0Q29udGFpbmVyPlxuICAgICAgICAgICAgPFByZXZpZXdQcm9tcHQgcHJvbXB0PXtwcm9tcHR9IC8+XG4gICAgICAgICAgPC9Qcm9tcHRDb250YWluZXI+XG4gICAgICAgICl9XG5cbiAgICAgICAge3N0dWRlbnRQcmludE1vZGUgPyAoXG4gICAgICAgICAgcHJpbnRWaWV3XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFJlYWRhYmxlIGZhbHNlPlxuICAgICAgICAgICAgPElucHV0QW5kS2V5cGFkQ29udGFpbmVyIHRhYkluZGV4PXswfT5cbiAgICAgICAgICAgICAge3Jlc3BvbnNlVHlwZSA9PT0gUmVzcG9uc2VUeXBlcy5zaW1wbGUgJiYgKFxuICAgICAgICAgICAgICAgIDxTaW1wbGVRdWVzdGlvbkJsb2NrXG4gICAgICAgICAgICAgICAgICBvblNpbXBsZVJlc3BvbnNlQ2hhbmdlPXt0aGlzLm9uU2ltcGxlUmVzcG9uc2VDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICBzaG93Q29ycmVjdD17c2hvd0NvcnJlY3R9XG4gICAgICAgICAgICAgICAgICBlbXB0eVJlc3BvbnNlPXtlbXB0eVJlc3BvbnNlfVxuICAgICAgICAgICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgICAgICAgICAgc2Vzc2lvbj17c2Vzc2lvbn1cbiAgICAgICAgICAgICAgICAgIG9uU3ViRmllbGRGb2N1cz17dGhpcy5vblN1YkZpZWxkRm9jdXN9XG4gICAgICAgICAgICAgICAgICBzaG93S2V5cGFkPXshIWFjdGl2ZUFuc3dlckJsb2NrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAge3Jlc3BvbnNlVHlwZSA9PT0gUmVzcG9uc2VUeXBlcy5hZHZhbmNlZCAmJiAoXG4gICAgICAgICAgICAgICAgPEV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgIHJlZj17dG9vbHRpcENvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgIGlzSW5jb3JyZWN0PXshZW1wdHlSZXNwb25zZSAmJiAhY29ycmVjdCAmJiAhc2hvd0NvcnJlY3R9XG4gICAgICAgICAgICAgICAgICBpc0NvcnJlY3Q9eyFlbXB0eVJlc3BvbnNlICYmIChjb3JyZWN0IHx8IHNob3dDb3JyZWN0KX1cbiAgICAgICAgICAgICAgICAgIHNob3dDb3JyZWN0bmVzcz17IWVtcHR5UmVzcG9uc2UgJiYgZGlzYWJsZWQgJiYgY29ycmVjdG5lc3MgJiYgIXZpZXd9XG4gICAgICAgICAgICAgICAgICBjb3JyZWN0QW5zd2VyU2hvd249e3Nob3dDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgcHJpbnRDb3JyZWN0PXtwcmludE1vZGUgJiYgYWx3YXlzU2hvd0NvcnJlY3R9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgcmVmPXsocmVmKSA9PiB0aGlzLnNldFRvb2x0aXBSZWYocmVmKX1cbiAgICAgICAgICAgICAgICAgICAgZW50ZXJUb3VjaERlbGF5PXswfVxuICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICBvcGVuPXshIWFjdGl2ZUFuc3dlckJsb2NrfVxuICAgICAgICAgICAgICAgICAgICBzbG90UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICBwb3BwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcjogdG9vbHRpcENvbnRhaW5lclJlZj8uY3VycmVudCB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b20tc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzY1MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aVRvb2x0aXAtYXJyb3cnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ29mZnNldCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBbMCwgOF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRhcnk6ICd2aWV3cG9ydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnY29tcHV0ZVN0eWxlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRhcHRpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHVBY2NlbGVyYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJ2luaXRpYWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICB0aXRsZT17T2JqZWN0LmtleXMoc2Vzc2lvbi5hbnN3ZXJzKS5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgKGFuc3dlcklkKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgKGFuc3dlcklkID09PSBhY3RpdmVBbnN3ZXJCbG9jayAmJiAhKHNob3dDb3JyZWN0IHx8IGRpc2FibGVkKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxSZXNwb25zZUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEta2V5cGFkPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YW5zd2VySWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogdGhpcy5tcVN0YXRpYyAmJiB0aGlzLm1xU3RhdGljLmlucHV0Lm9mZnNldEhlaWdodCAtIDIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGdldEtleVBhZFdpZHRoKGFkZGl0aW9uYWxLZXlzLCBlcXVhdGlvbkVkaXRvciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIb3Jpem9udGFsS2V5cGFkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsS2V5cz17YWRkaXRpb25hbEtleXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlPXtlcXVhdGlvbkVkaXRvciB8fCBERUZBVUxUX0tFWVBBRF9WQVJJQU5UfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvUmVzcG9uc2VDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICApKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8bXEuU3RhdGljXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzdGF0aWMtbWF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9eyhtcVN0YXRpYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXFTdGF0aWMpIHRoaXMubXFTdGF0aWMgPSBtcVN0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXRleD17c3RhdGljTGF0ZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1YkZpZWxkQ2hhbmdlPXt0aGlzLnN1YkZpZWxkQ2hhbmdlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldEZpZWxkTmFtZT17dGhpcy5nZXRGaWVsZE5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJbnB1dD17dGhpcy5zZXRJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3ViRmllbGRGb2N1cz17dGhpcy5vblN1YkZpZWxkRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMub25CbHVyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgIDwvRXhwcmVzc2lvbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5wdXRBbmRLZXlwYWRDb250YWluZXI+XG4gICAgICAgICAgPC9SZWFkYWJsZT5cbiAgICAgICAgKX1cblxuICAgICAgICB7dmlld01vZGUgJiYgZGlzcGxheU5vdGUgJiYgPE5vdGUgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAke25vdGV9YCB9fSAvPn1cblxuICAgICAgICB7dmlld01vZGUgJiZcbiAgICAgICAgICBzaG93UmF0aW9uYWxlICYmXG4gICAgICAgICAgKCFhbmltYXRpb25zRGlzYWJsZWQgPyAoXG4gICAgICAgICAgICA8Q29sbGFwc2libGUgbGFiZWxzPXt7IGhpZGRlbjogJ1Nob3cgUmF0aW9uYWxlJywgdmlzaWJsZTogJ0hpZGUgUmF0aW9uYWxlJyB9fT5cbiAgICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhdGlvbmFsZSB9fSAvPlxuICAgICAgICAgICAgPC9Db2xsYXBzaWJsZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhdGlvbmFsZSB9fSAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9NYWluQ29udGVudD5cbiAgICApO1xuXG4gICAgaWYgKHRvb2x0aXBNb2RlRW5hYmxlZCAmJiAoc2hvd0NvcnJlY3RBbnN3ZXJUb2dnbGUgfHwgc2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMgfHwgc2hvd1JhdGlvbmFsZSB8fCBmZWVkYmFjaykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRVaUxheW91dFxuICAgICAgICAgIGV4dHJhQ1NTUnVsZXM9e2V4dHJhQ1NTUnVsZXN9XG4gICAgICAgICAgcmVmPXsocikgPT4ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWZpbmQtZG9tLW5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRvbU5vZGUgPSBSZWFjdERPTS5maW5kRE9NTm9kZShyKTtcblxuICAgICAgICAgICAgdGhpcy5yb290ID0gZG9tTm9kZSB8fCB0aGlzLnJvb3Q7XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdHlsZWRUb29sdGlwXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgZW50ZXJUb3VjaERlbGF5PXswfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICAgICAgc3g6ICh0aGVtZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGAke2NvbG9yLnByaW1hcnlMaWdodCgpfSAhaW1wb3J0YW50YCxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDIpLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7Y29sb3Iuc2Vjb25kYXJ5KCl9YCxcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAnJiA6bm90KC5NYXRoSmF4KSA+IHRhYmxlIHRyJzoge1xuICAgICAgICAgICAgICAgICAgICAnJjpudGgtY2hpbGQoMm4pJzoge1xuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3Vuc2V0ICFpbXBvcnRhbnQnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcG9wcGVyOiB7XG4gICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ29mZnNldCcsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IFswLCAyXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPE1haW5Db250ZW50PlxuICAgICAgICAgICAgICAgICAge3Nob3dDb3JyZWN0QW5zd2VyVG9nZ2xlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZENvcnJlY3RBbnN3ZXJUb2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZT17bGFuZ3VhZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgc2hvd1xuICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZWQ9e3Nob3dDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlPXt0aGlzLnRvZ2dsZVNob3dDb3JyZWN0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L01haW5Db250ZW50PlxuXG4gICAgICAgICAgICAgICAge3Nob3dUZWFjaGVySW5zdHJ1Y3Rpb25zICYmIChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb2xsYXBzaWJsZVxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJjb2xsYXBzaWJsZS10ZWFjaGVyLWluc3RydWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVscz17e1xuICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbjogJ1Nob3cgVGVhY2hlciBJbnN0cnVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6ICdIaWRlIFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFByZXZpZXdQcm9tcHQgcHJvbXB0PXt0ZWFjaGVySW5zdHJ1Y3Rpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtkaXNwbGF5Tm90ZSAmJiBoYXNUZXh0KG5vdGUpICYmIChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRDb2xsYXBzaWJsZVxuICAgICAgICAgICAgICAgICAgICBrZXk9XCJjb2xsYXBzaWJsZS1ub3RlXCJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWxzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpzaG93Tm90ZScsIHsgbG5nOiBsYW5ndWFnZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiB0cmFuc2xhdG9yLnQoJ2NvbW1vbjpoaWRlTm90ZScsIHsgbG5nOiBsYW5ndWFnZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFByZXZpZXdQcm9tcHQgcHJvbXB0PXtub3RlfSAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAge3Nob3dSYXRpb25hbGUgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZENvbGxhcHNpYmxlXG4gICAgICAgICAgICAgICAgICAgIGtleT1cImNvbGxhcHNpYmxlLXJhdGlvbmFsZVwiXG4gICAgICAgICAgICAgICAgICAgIGxhYmVscz17e1xuICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbjogJ1Nob3cgUmF0aW9uYWxlJyxcbiAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiAnSGlkZSBSYXRpb25hbGUnLFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UHJldmlld1Byb21wdCBwcm9tcHQ9e3JhdGlvbmFsZX0gLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkQ29sbGFwc2libGU+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHtmZWVkYmFjayAmJiA8RmVlZGJhY2sgY29ycmVjdG5lc3M9e2NvcnJlY3RuZXNzLmNvcnJlY3RuZXNzfSBmZWVkYmFjaz17ZmVlZGJhY2t9IC8+fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bWlkQ29udGVudH1cbiAgICAgICAgICA8L1N0eWxlZFRvb2x0aXA+XG4gICAgICAgIDwvU3R5bGVkVWlMYXlvdXQ+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkVWlMYXlvdXRcbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBleHRyYUNTU1J1bGVzPXtleHRyYUNTU1J1bGVzfVxuICAgICAgICByZWY9eyhyKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWZpbmQtZG9tLW5vZGVcbiAgICAgICAgICBjb25zdCBkb21Ob2RlID0gUmVhY3RET00uZmluZERPTU5vZGUocik7XG5cbiAgICAgICAgICB0aGlzLnJvb3QgPSBkb21Ob2RlIHx8IHRoaXMucm9vdDtcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAge21pZENvbnRlbnR9XG4gICAgICA8L1N0eWxlZFVpTGF5b3V0PlxuICAgICk7XG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCBjbGFzcyBuYW1lcyBmb3IgSFRNTCBzdHJpbmcgZ2VuZXJhdGlvblxuY29uc3QgZ2V0QmxvY2tDbGFzc05hbWVzID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGJsb2NrQ29udGFpbmVyOiAnYmxvY2stY29udGFpbmVyJyxcbiAgICBibG9ja1Jlc3BvbnNlOiAnYmxvY2stcmVzcG9uc2UnLFxuICAgIGJsb2NrTWF0aDogJ2Jsb2NrLW1hdGgnLFxuICB9O1xufTtcblxuLy8gQ1NTIGZvciBibG9jayBjbGFzc2VzIHVzZWQgaW4gSFRNTCBzdHJpbmcgZ2VuZXJhdGlvblxuaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgY29uc3Qgc3R5bGVJZCA9ICdtYXRoLWlubGluZS1ibG9jay1zdHlsZXMnO1xuICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHN0eWxlSWQpKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlLmlkID0gc3R5bGVJZDtcbiAgICBzdHlsZS50ZXh0Q29udGVudCA9IGBcbiAgICAgIC5ibG9jay1jb250YWluZXIge1xuICAgICAgICBtYXJnaW46IDhweCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgZ3JleSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLmJsb2NrLXJlc3BvbnNlIHtcbiAgICAgICAgY29sb3I6IGdyZXk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2JkYmRiZCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgICAgLmJsb2NrLW1hdGgge1xuICAgICAgICBjb2xvcjogJHtjb2xvci50ZXh0KCl9O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9yLmJhY2tncm91bmQoKX07XG4gICAgICAgIHBhZGRpbmc6IDRweCAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgfVxuICAgICAgLmJsb2NrLW1hdGggPiAubXEtbWF0aC1tb2RlID4gLm1xLWhhc0N1cnNvciA+IC5tcS1jdXJzb3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLnNyLW9ubHkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xMDAwMHB4O1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgLnN0YXRpYy1tYXRoID4gLm1xLXJvb3QtYmxvY2sgPiAubXEtZWRpdGFibGUtZmllbGQge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Y29sb3IudGV4dCgpfTtcbiAgICAgIH1cbiAgICBgO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICB9XG59XG5cbmNvbnN0IFN0eWxlZFVpTGF5b3V0ID0gc3R5bGVkKFVpTGF5b3V0KSgoKSA9PiAoe1xuICBjb2xvcjogY29sb3IudGV4dCgpLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRvb2x0aXAgPSBzdHlsZWQoVG9vbHRpcCkoe1xuICAvLyBTdHlsZXMgYXBwbGllZCB2aWEgc2xvdFByb3BzLnN4IGJlbG93XG59KTtcblxuY29uc3QgUHJvbXB0Q29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMiksXG59KSk7XG5cbmNvbnN0IE1haW5Db250ZW50ID0gc3R5bGVkKCdkaXYnKSh7XG4gIHdpZHRoOiAnMTAwJScsXG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmJhY2tncm91bmQoKSxcbiAgY29sb3I6IGNvbG9yLnRleHQoKSxcbn0pO1xuXG5jb25zdCBOb3RlID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxufSkpO1xuXG5jb25zdCBTdHlsZWRDb2xsYXBzaWJsZSA9IHN0eWxlZChDb2xsYXBzaWJsZSkoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxufSkpO1xuXG5jb25zdCBSZXNwb25zZUNvbnRhaW5lciA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgekluZGV4OiAxMCxcbiAgbWluV2lkdGg6ICc0MDBweCcsXG4gIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZygyKSxcbn0pKTtcblxuY29uc3QgRXhwcmVzc2lvbiA9IHN0eWxlZCgnZGl2Jywge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+XG4gICAgIVsnaXNJbmNvcnJlY3QnLCAnaXNDb3JyZWN0JywgJ3Nob3dDb3JyZWN0bmVzcycsICdjb3JyZWN0QW5zd2VyU2hvd24nLCAncHJpbnRDb3JyZWN0J10uaW5jbHVkZXMocHJvcCksXG59KSgoeyB0aGVtZSwgaXNJbmNvcnJlY3QsIGlzQ29ycmVjdCwgc2hvd0NvcnJlY3RuZXNzLCBjb3JyZWN0QW5zd2VyU2hvd24sIHByaW50Q29ycmVjdCB9KSA9PiB7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gaXNJbmNvcnJlY3QgPyBjb2xvci5pbmNvcnJlY3QoKSA6IGlzQ29ycmVjdCA/IGNvbG9yLmNvcnJlY3QoKSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIG1heFdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC4yNSksXG4gICAgLi4uKHNob3dDb3JyZWN0bmVzcyAmJiB7XG4gICAgICBib3JkZXI6IGJvcmRlckNvbG9yID8gYDJweCBzb2xpZCAke2JvcmRlckNvbG9yfSAhaW1wb3J0YW50YCA6ICcycHggc29saWQnLFxuICAgIH0pLFxuICAgIC4uLighc2hvd0NvcnJlY3RuZXNzICYmXG4gICAgICBib3JkZXJDb2xvciAmJiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBgJHtib3JkZXJDb2xvcn0gIWltcG9ydGFudGAsXG4gICAgICB9KSxcbiAgICAuLi4oY29ycmVjdEFuc3dlclNob3duICYmIHtcbiAgICAgIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgICBsZXR0ZXJTcGFjaW5nOiAnMC41cHgnLFxuICAgIH0pLFxuICAgIC4uLihwcmludENvcnJlY3QgJiYge1xuICAgICAgYm9yZGVyOiBgMnB4IHNvbGlkICR7Y29sb3IuY29ycmVjdCgpfSAhaW1wb3J0YW50YCxcbiAgICB9KSxcbiAgICAnJiAubXEtbWF0aC1tb2RlJzoge1xuICAgICAgJyYgLm1xLXJvb3QtYmxvY2snOiB7XG4gICAgICAgIHBhZGRpbmdSaWdodDogJzAgIWltcG9ydGFudCcsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiAnMCAhaW1wb3J0YW50JyxcbiAgICAgICAgJyYgLm1xLWVkaXRhYmxlLWZpZWxkJzoge1xuICAgICAgICAgIG1pbldpZHRoOiAnMTBweCcsXG4gICAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjQpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgICcmIHN1cCc6IHtcbiAgICAgICAgdG9wOiAwLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IElucHV0QW5kS2V5cGFkQ29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSh7XG4gIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAnJiAubXEtb3ZlcmFycm93LWlubmVyJzoge1xuICAgIGJvcmRlcjogJ25vbmUgIWltcG9ydGFudCcsXG4gICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gIH0sXG4gICcmIC5tcS1vdmVyYXJyb3ctaW5uZXItcmlnaHQnOiB7XG4gICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCcsXG4gIH0sXG4gICcmIC5tcS1vdmVyYXJyb3ctaW5uZXItbGVmdCc6IHtcbiAgICBkaXNwbGF5OiAnbm9uZSAhaW1wb3J0YW50JyxcbiAgfSxcbiAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1ib3RoJzoge1xuICAgIG1pbldpZHRoOiAnMS4yM2VtJyxcbiAgICAnJiAqJzoge1xuICAgICAgbGluZUhlaWdodDogJzEgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJjpiZWZvcmUnOiB7XG4gICAgICB0b3A6ICctMC40ZW0nLFxuICAgICAgbGVmdDogJy0xcHgnLFxuICAgIH0sXG4gICAgJyY6YWZ0ZXInOiB7XG4gICAgICB0b3A6ICctMi40ZW0nLFxuICAgICAgcmlnaHQ6ICctMXB4JyxcbiAgICB9LFxuICAgICcmLm1xLWVtcHR5OmFmdGVyJzoge1xuICAgICAgdG9wOiAnLTAuNDVlbScsXG4gICAgfSxcbiAgfSxcbiAgJyYgLm1xLW92ZXJhcnJvdy5tcS1hcnJvdy1yaWdodCc6IHtcbiAgICAnJjpiZWZvcmUnOiB7XG4gICAgICB0b3A6ICctMC40ZW0nLFxuICAgICAgcmlnaHQ6ICctMXB4JyxcbiAgICB9LFxuICB9LFxuICAnJiAubXEtbG9uZ2Rpdi1pbm5lcic6IHtcbiAgICBib3JkZXJUb3A6ICcxcHggc29saWQgIWltcG9ydGFudCcsXG4gICAgcGFkZGluZ1RvcDogJzEuNXB4ICFpbXBvcnRhbnQnLFxuICB9LFxuICAnJiAubXEtcGFyYWxsZWxvZ3JhbSc6IHtcbiAgICBsaW5lSGVpZ2h0OiAwLjg1LFxuICB9LFxufSk7XG5cbmNvbnN0IFByaW50Q29udGFpbmVyID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMSksXG4gIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbn0pKTtcblxuY29uc3QgU3JPbmx5ID0gc3R5bGVkKCdoMicpKHtcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIGxlZnQ6ICctMTAwMDBweCcsXG4gIHRvcDogJ2F1dG8nLFxuICB3aWR0aDogJzFweCcsXG4gIGhlaWdodDogJzFweCcsXG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbn0pO1xuXG5jb25zdCBTdHlsZWRDb3JyZWN0QW5zd2VyVG9nZ2xlID0gc3R5bGVkKENvcnJlY3RBbnN3ZXJUb2dnbGUpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygyKSxcbn0pKTtcblxuZXhwb3J0IGRlZmF1bHQgTWFpbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxvQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsa0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLG9CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBVyxXQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxTQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxNQUFNO0VBQUVhO0FB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
package/lib/print.js CHANGED
@@ -89,4 +89,4 @@ class MathInlinePrint extends HTMLElement {
89
89
  }
90
90
  }
91
91
  exports.default = MathInlinePrint;
92
- //# sourceMappingURL=print.js.map
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGllbnQiLCJfbG9kYXNoRXMiLCJfbWFpbiIsIl9tYXRoUmVuZGVyaW5nIiwiX2RlYnVnIiwibG9nIiwiZGVidWciLCJwcmVwYXJlUHJpbnRNb2RlbCIsIm1vZGVsIiwib3B0cyIsImluc3RyIiwicm9sZSIsInByb21wdCIsInByb21wdEVuYWJsZWQiLCJ1bmRlZmluZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJyYXRpb25hbGUiLCJyYXRpb25hbGVFbmFibGVkIiwic2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMiLCJhbHdheXNTaG93Q29ycmVjdCIsInByaW50TW9kZSIsImZlZWRiYWNrIiwiZXhwcmVzc2lvbiIsImFuaW1hdGlvbnNEaXNhYmxlZCIsImRpc2FibGVkIiwiY29uZmlnIiwiZW52IiwibW9kZSIsIk1hdGhJbmxpbmVQcmludCIsIkhUTUxFbGVtZW50IiwiY29uc3RydWN0b3IiLCJfb3B0aW9ucyIsIl9tb2RlbCIsIl9zZXNzaW9uIiwiX3Jvb3QiLCJfcmVyZW5kZXIiLCJkZWJvdW5jZSIsInByaW50TW9kZWwiLCJlbGVtZW50IiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiTWFpbiIsInNlc3Npb24iLCJjcmVhdGVSb290IiwicmVuZGVyIiwicXVldWVNaWNyb3Rhc2siLCJyZW5kZXJNYXRoIiwibGVhZGluZyIsInRyYWlsaW5nIiwib3B0aW9ucyIsIm8iLCJzIiwiY29ubmVjdGVkQ2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsInVubW91bnQiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IE1haW4gZnJvbSAnLi9tYWluJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygncGllLWVsZW1lbnQ6bWF0aC1pbmxpbmU6cHJpbnQnKTtcblxuLyoqXG4gKiBMaXZlIGluIHNhbWUgcGFja2FnZSBhcyBtYWluIGVsZW1lbnQgLSBzbyB3ZSBjYW4gYWNjZXNzIHNvbWUgb2YgdGhlIHNoYXJlZCBjb21wcyFcbiAqXG4gKiAtIHVwZGF0ZSBwc2xiIHRvIGJ1aWxkIHByaW50IGlmIHNyYy9wcmludC5qcyBpcyB0aGVyZVxuICogLSB1cGRhdGUgZGVtbyBlbFxuICogLSBnZXQgY29uZmlndXJlL2NvbnRyb2xsZXIgYnVpbGRpbmdcbiAqL1xuXG5jb25zdCBwcmVwYXJlUHJpbnRNb2RlbCA9IChtb2RlbCwgb3B0cykgPT4ge1xuICBjb25zdCBpbnN0ciA9IG9wdHMucm9sZSA9PT0gJ2luc3RydWN0b3InO1xuXG4gIG1vZGVsLnByb21wdCA9IG1vZGVsLnByb21wdEVuYWJsZWQgIT09IGZhbHNlID8gbW9kZWwucHJvbXB0IDogdW5kZWZpbmVkO1xuICBtb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zID1cbiAgICBpbnN0ciAmJiBtb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAhPT0gZmFsc2UgPyBtb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIDogdW5kZWZpbmVkO1xuICBtb2RlbC5yYXRpb25hbGUgPSBpbnN0ciAmJiBtb2RlbC5yYXRpb25hbGVFbmFibGVkICE9PSBmYWxzZSA/IG1vZGVsLnJhdGlvbmFsZSA6IHVuZGVmaW5lZDtcbiAgbW9kZWwuc2hvd1RlYWNoZXJJbnN0cnVjdGlvbnMgPSBpbnN0cjtcbiAgbW9kZWwuYWx3YXlzU2hvd0NvcnJlY3QgPSBpbnN0cjtcbiAgbW9kZWwucHJpbnRNb2RlID0gdHJ1ZTtcbiAgbW9kZWwuZmVlZGJhY2sgPSB1bmRlZmluZWQ7XG4gIG1vZGVsLmV4cHJlc3Npb24gPSBtb2RlbC5leHByZXNzaW9uIHx8ICd7e3Jlc3BvbnNlfX0nO1xuXG4gIG1vZGVsLmFuaW1hdGlvbnNEaXNhYmxlZCA9IHRydWU7XG4gIHJldHVybiB7XG4gICAgLi4ubW9kZWwsXG4gICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgY29uZmlnOiB7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGVudjogeyBtb2RlOiBpbnN0ciA/ICdldmFsdWF0ZScgOiBtb2RlbC5tb2RlLCByb2xlOiBvcHRzLnJvbGUgfSxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWF0aElubGluZVByaW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX29wdGlvbnMgPSBudWxsO1xuICAgIHRoaXMuX21vZGVsID0gbnVsbDtcbiAgICB0aGlzLl9zZXNzaW9uID0gW107XG4gICAgdGhpcy5fcm9vdCA9IG51bGw7XG4gICAgdGhpcy5fcmVyZW5kZXIgPSBkZWJvdW5jZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsICYmIHRoaXMuX3Nlc3Npb24pIHtcbiAgICAgICAgICBjb25zdCBwcmludE1vZGVsID0gcHJlcGFyZVByaW50TW9kZWwodGhpcy5fbW9kZWwsIHRoaXMuX29wdGlvbnMpO1xuXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICB0aGlzLl9vcHRpb25zICYmXG4gICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KE1haW4sIHtcbiAgICAgICAgICAgICAgbW9kZWw6IHByaW50TW9kZWwsXG4gICAgICAgICAgICAgIHNlc3Npb246IHt9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuX3Jvb3QpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3QgPSBjcmVhdGVSb290KHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9yb290LnJlbmRlcihlbGVtZW50KTtcbiAgICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgICAgICBsb2coJ3JlbmRlciBjb21wbGV0ZSAtIHJlbmRlciBtYXRoJyk7XG4gICAgICAgICAgICByZW5kZXJNYXRoKHRoaXMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZygnc2tpcCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgNTAsXG4gICAgICB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9LFxuICAgICk7XG4gIH1cbiAgc2V0IG9wdGlvbnMobykge1xuICAgIHRoaXMuX29wdGlvbnMgPSBvO1xuICB9XG5cbiAgc2V0IG1vZGVsKHMpIHtcbiAgICB0aGlzLl9tb2RlbCA9IHM7XG4gICAgdGhpcy5fcmVyZW5kZXIoKTtcbiAgfVxuXG4gIGNvbm5lY3RlZENhbGxiYWNrKCkge31cblxuICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICBpZiAodGhpcy5fcm9vdCkge1xuICAgICAgdGhpcy5fcm9vdC51bm1vdW50KCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxNQUFNTSxHQUFHLEdBQUcsSUFBQUMsY0FBSyxFQUFDLCtCQUErQixDQUFDOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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