@gravitee/ui-components 3.24.4 → 3.24.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,9 +18,6 @@
18
18
  "empty": "No data to display",
19
19
  "error": "An error has occurred"
20
20
  },
21
- "gv-code": {
22
- "copy": "Copy to clipboard"
23
- },
24
21
  "gv-confirm": {
25
22
  "cancel": "No",
26
23
  "ok": "Yes"
@@ -18,9 +18,6 @@
18
18
  "empty": "Aucune donnée à afficher ici",
19
19
  "error": "Une erreur est survenue pendant le chargement"
20
20
  },
21
- "gv-code": {
22
- "copy": "Copier dans le presse papier"
23
- },
24
21
  "gv-confirm": {
25
22
  "cancel": "Non",
26
23
  "ok": "Oui"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravitee/ui-components",
3
- "version": "3.24.4",
3
+ "version": "3.24.5",
4
4
  "description": "Gravitee.io UI Components library, based on Web Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,10 +49,13 @@
49
49
  "package.json": "npm run lint:package"
50
50
  },
51
51
  "dependencies": {
52
+ "@codemirror/basic-setup": "^0.19.1",
53
+ "@codemirror/language-data": "^0.19.1",
54
+ "@codemirror/stream-parser": "^0.19.3",
52
55
  "@formatjs/intl-locale": "^2.4.40",
53
56
  "@formatjs/intl-relativetimeformat": "^9.3.2",
54
57
  "clipboard-copy": "^4.0.0",
55
- "codemirror": "^5.63.2",
58
+ "codemirror-asciidoc": "^2.0.0",
56
59
  "date-fns": "^2.26.0",
57
60
  "jdenticon": "^3.1.0",
58
61
  "jsonschema": "^1.4.0",
@@ -64,30 +67,29 @@
64
67
  },
65
68
  "devDependencies": {
66
69
  "@asciidoctor/core": "2.2.5",
67
- "@babel/core": "7.16.0",
70
+ "@babel/core": "7.16.5",
68
71
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
69
- "@babel/preset-env": "7.16.4",
72
+ "@babel/preset-env": "7.16.5",
70
73
  "@commitlint/cli": "15.0.0",
71
74
  "@commitlint/config-conventional": "15.0.0",
72
- "@highcharts/map-collection": "1.1.3",
75
+ "@highcharts/map-collection": "1.1.4",
73
76
  "@semantic-release/changelog": "6.0.1",
74
77
  "@semantic-release/git": "10.0.1",
75
- "@storybook/addon-a11y": "6.4.8",
76
- "@storybook/addon-essentials": "6.4.8",
77
- "@storybook/components": "6.4.8",
78
- "@storybook/theming": "6.4.8",
79
- "@storybook/web-components": "6.4.8",
78
+ "@storybook/addon-a11y": "6.4.9",
79
+ "@storybook/addon-essentials": "6.4.9",
80
+ "@storybook/components": "6.4.9",
81
+ "@storybook/theming": "6.4.9",
82
+ "@storybook/web-components": "6.4.9",
80
83
  "asciidoctor": "2.2.5",
81
84
  "asciidoctor-highlight.js": "0.4.0",
82
- "babel-jest": "27.4.2",
85
+ "babel-jest": "27.4.5",
83
86
  "babel-loader": "8.2.3",
84
87
  "babel-plugin-template-html-minifier": "4.1.0",
85
88
  "bundle-phobia-cli": "0.14.13",
86
- "chromatic": "6.1.0",
87
- "codemirror-asciidoc": "1.0.4",
89
+ "chromatic": "6.2.3",
88
90
  "danger": "10.7.1",
89
91
  "del": "6.0.0",
90
- "eslint": "8.4.0",
92
+ "eslint": "8.5.0",
91
93
  "eslint-config-prettier": "8.3.0",
92
94
  "eslint-config-standard": "16.0.3",
93
95
  "eslint-plugin-import": "2.25.3",
@@ -107,11 +109,11 @@
107
109
  "i18n-extract": "0.6.7",
108
110
  "ignore-loader": "0.1.2",
109
111
  "is-ci": "3.0.1",
110
- "jest": "27.4.3",
112
+ "jest": "27.4.5",
111
113
  "license-check-and-add": "4.0.3",
112
114
  "lint-staged": "11.2.6",
113
115
  "lit-html": "2.0.2",
114
- "markdown-it": "12.2.0",
116
+ "markdown-it": "12.3.0",
115
117
  "node-static": "0.7.11",
116
118
  "nodemon": "2.0.15",
117
119
  "pascal-case": "3.1.2",
@@ -131,7 +133,6 @@
131
133
  "@highcharts/map-collection": "^1.0.0",
132
134
  "asciidoctor": "^2.2.4",
133
135
  "asciidoctor-highlight.js": "^0.3.0 || ^0.4.0",
134
- "codemirror-asciidoc": "^1.0.4",
135
136
  "highcharts": "^8.0.0 || ^9.0.0",
136
137
  "highlight.js": "^10.7.0 || ^11.1.0"
137
138
  },
@@ -148,9 +149,6 @@
148
149
  "asciidoctor-highlight.js": {
149
150
  "optional": true
150
151
  },
151
- "codemirror-asciidoc": {
152
- "optional": true
153
- },
154
152
  "highcharts": {
155
153
  "optional": true
156
154
  },
@@ -128,7 +128,7 @@ export class GvInput extends InputElement(LitElement) {
128
128
 
129
129
  static get styles() {
130
130
  return [...super.styles, skeleton, input, link, // language=CSS
131
- css`.clickable ::slotted(input),.clickable input{cursor:pointer}.clickable ::slotted(input:hover),.clickable input:hover{box-shadow:0 1px 3px var(--gv-theme-neutral-color-dark,#bfbfbf)}gv-icon{--gv-icon--s:22px}.box-icon.copied gv-icon{--gv-icon--c:#339900}.loading ::slotted(input),div.box-icon gv-icon.loading{animation:spinner 1.6s linear infinite;--gv-icon--s:20px}.loading.small gv-icon{--gv-icon--s:18px}@keyframes spinner{to{transform:rotate(360deg)}}.clipboard ::slotted(input),.clipboard input{cursor:copy}.clipboard ::slotted(input:read-only:hover),.clipboard input:read-only:hover{cursor:not-allowed}.clipboard__popover{--gv-popover--bgc:var(--gv-theme-color-darker, #383e3f);--gv-popover--c:var(--gv-theme-font-color-light, #ffffff);--gv-popover--p:0rem 0.4rem 0rem 0.2rem;font-size:11px}.clipboard__popover-content{display:flex;justify-content:center;align-items:center;--gv-icon--c:var(--gv-theme-font-color-light, #ffffff)}`];
131
+ css`.clickable ::slotted(input),.clickable input{cursor:pointer}.clickable ::slotted(input:hover),.clickable input:hover{box-shadow:0 1px 3px var(--gv-theme-neutral-color-dark,#bfbfbf)}gv-icon{--gv-icon--s:22px}.copied{--gv-input--bdc:var(--gv-theme-color-success-light, #81c784)}.copied .box-icon gv-icon{--gv-icon--c:var(--gv-theme-color-success-dark, #388e3c)}.loading ::slotted(input),div.box-icon gv-icon.loading{animation:spinner 1.6s linear infinite;--gv-icon--s:20px}.loading.small gv-icon{--gv-icon--s:18px}@keyframes spinner{to{transform:rotate(360deg)}}.clipboard ::slotted(input),.clipboard input{cursor:copy}.clipboard ::slotted(input:read-only:hover),.clipboard input:read-only:hover{cursor:not-allowed}.clipboard__popover{--gv-popover--bgc:var(--gv-theme-color-darker, #383e3f);--gv-popover--c:var(--gv-theme-font-color-light, #ffffff);--gv-popover--p:0rem 0.4rem 0rem 0.2rem;font-size:11px}.clipboard__popover-content{display:flex;justify-content:center;align-items:center;--gv-icon--c:var(--gv-theme-font-color-light, #ffffff)}`];
132
132
  }
133
133
 
134
134
  static get shapeSearch() {
@@ -246,22 +246,7 @@ export class GvInput extends InputElement(LitElement) {
246
246
 
247
247
  firstUpdated(changedProperties) {
248
248
  super.firstUpdated(changedProperties);
249
- const defaultInputElement = this.getInputElement();
250
-
251
- for (const node of this.childNodes) {
252
- if (node.nodeType === 1) {
253
- const child = node.nodeName.toLowerCase() === 'input' ? node : node.querySelector('input');
254
-
255
- if (child) {
256
- this._input = child;
257
- break;
258
- }
259
- }
260
- }
261
-
262
- if (this._input) {
263
- defaultInputElement.remove();
264
- }
249
+ this.catchSlot();
265
250
 
266
251
  if (this.clipboard) {
267
252
  import('clipboard-copy').then(mod => this.copy = () => {
@@ -282,15 +267,6 @@ export class GvInput extends InputElement(LitElement) {
282
267
 
283
268
  setTimeout(() => {
284
269
  const clipboardPopover = this.shadowRoot.querySelector('.clipboard__popover');
285
-
286
- if (this.readonly) {
287
- this.getInputElement().addEventListener('click', e => {
288
- e.preventDefault();
289
- e.stopPropagation();
290
- clipboardPopover.click();
291
- });
292
- }
293
-
294
270
  clipboardPopover.addEventListener('click', e => {
295
271
  e.preventDefault();
296
272
  e.stopPropagation();
@@ -306,11 +282,34 @@ export class GvInput extends InputElement(LitElement) {
306
282
  }
307
283
 
308
284
  this.getInputElement().id = this._id;
285
+ this.bindInputEvents();
286
+ }
287
+
288
+ bindInputEvents() {
309
289
  this.getInputElement().addEventListener('input', this._onInput.bind(this));
310
290
  this.getInputElement().addEventListener('keyup', this._onKeyUp.bind(this));
311
291
  this.getInputElement().addEventListener('keypress', this._onKeyPress.bind(this));
312
292
  }
313
293
 
294
+ catchSlot() {
295
+ const defaultInputElement = this.getInputElement();
296
+
297
+ for (const node of this.childNodes) {
298
+ if (node.nodeType === 1) {
299
+ const child = node.nodeName.toLowerCase() === 'input' ? node : node.querySelector('input');
300
+
301
+ if (child) {
302
+ this._input = child;
303
+ break;
304
+ }
305
+ }
306
+ }
307
+
308
+ if (this._input) {
309
+ defaultInputElement.remove();
310
+ }
311
+ }
312
+
314
313
  updateState(value) {
315
314
  super.updateState(value);
316
315
 
@@ -471,7 +470,7 @@ export class GvInput extends InputElement(LitElement) {
471
470
  return !this.loading;
472
471
  }
473
472
 
474
- _renderIcon() {
473
+ renderIcon() {
475
474
  let shape = null;
476
475
 
477
476
  if (!this.isPassword && this.icon || this.iconLeft) {
@@ -486,8 +485,7 @@ export class GvInput extends InputElement(LitElement) {
486
485
  const classes = {
487
486
  'box-icon': true,
488
487
  'box-icon-left': this.iconLeft != null || this.clearable,
489
- 'box-icon-bgc': this.hasBackground,
490
- copied: this.hasClipboard && this._copied
488
+ 'box-icon-bgc': this.hasBackground
491
489
  };
492
490
  const iconClasses = {
493
491
  link: this.hasClickableIcon,
@@ -521,11 +519,12 @@ export class GvInput extends InputElement(LitElement) {
521
519
  clearable: this.clearable,
522
520
  'icon-left': !!this.iconLeft || !!this.icon && this.clearable,
523
521
  clipboard: this.hasClipboard,
524
- required: this.required
522
+ required: this.required,
523
+ copied: this.hasClipboard && this._copied
525
524
  };
526
- return html` <div class="${classMap(classes)}"> ${this.renderLabel()} <input> <slot></slot> ${this._renderClearIcon()} ${this._renderIcon()} ${this._renderPasswordIcon()} </div> ${this.description != null ? html`<div class="description" .innerHTML="${this.description}"></div>` : ''} `;
525
+ return html` <div class="${classMap(classes)}"> ${this.renderLabel()} <input> <slot></slot> ${this._renderClearIcon()} ${this.renderIcon()} ${this._renderPasswordIcon()} </div> ${this.description != null ? html`<div class="description" .innerHTML="${this.description}"></div>` : ''} `;
527
526
  }
528
527
 
529
528
  }
530
529
  window.customElements.define('gv-input', GvInput);
531
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWlucHV0LmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsImlucHV0IiwibGluayIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJpMThuIiwiSW5wdXRFbGVtZW50Iiwic2hhcGVDbGlwYm9hcmQiLCJzaGFwZUNvcGllZCIsIkd2SW5wdXQiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsInJlZmxlY3QiLCJsYXJnZSIsIkJvb2xlYW4iLCJtZWRpdW0iLCJzbWFsbCIsImljb24iLCJpY29uTGVmdCIsImF0dHJpYnV0ZSIsImxvYWRpbmciLCJtaW4iLCJOdW1iZXIiLCJtYXgiLCJhdXRvY29tcGxldGUiLCJjbGlwYm9hcmQiLCJjbGlja2FibGUiLCJjbGVhcmFibGUiLCJub1N1Ym1pdCIsInBhdHRlcm4iLCJkZXNjcmlwdGlvbiIsIl90eXBlIiwic3R5bGVzIiwic2hhcGVTZWFyY2giLCJzaGFwZUNsZWFyIiwic2hhcGVJbnZpc2libGUiLCJzaGFwZVZpc2libGUiLCJjb25zdHJ1Y3RvciIsIl9zaG93UGFzc3dvcmQiLCJ2YWx1ZSIsInJlc2V0IiwiZ2V0SW5wdXRFbGVtZW50IiwiYmx1ciIsImZvY3VzIiwiX2lucHV0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwibmFtZSIsInJlcXVpcmVkIiwidHJpbSIsImludmFsaWQiLCJyZWFkb25seSIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInRpdGxlIiwibGFiZWwiLCJfcmVnZXhQYXR0ZXJuIiwiUmVnRXhwIiwiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsInVwZGF0ZVN0YXRlIiwiX3NldENsaXBib2FyZEljb24iLCJzaGFwZSIsImZpcnN0VXBkYXRlZCIsImRlZmF1bHRJbnB1dEVsZW1lbnQiLCJub2RlIiwiY2hpbGROb2RlcyIsIm5vZGVUeXBlIiwiY2hpbGQiLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwicXVlcnlTZWxlY3RvciIsInJlbW92ZSIsInRoZW4iLCJtb2QiLCJjb3B5IiwiZGVmYXVsdCIsIl9jb3BpZWQiLCJzZXRUaW1lb3V0IiwiY2xpcGJvYXJkUG9wb3ZlciIsInNoYWRvd1Jvb3QiLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2xpY2siLCJjbGlja2FibGVJY29uIiwiX29uSWNvbkNsaWNrIiwiYmluZCIsImlkIiwiX2lkIiwiX29uSW5wdXQiLCJfb25LZXlVcCIsIl9vbktleVByZXNzIiwidmFsaWQiLCJtYXRjaCIsInNldFZhbGlkaXR5IiwiX3ZhbHVlIiwidmFsdWVPZiIsImlzTmFOIiwidGFyZ2V0Iiwia2V5IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJmcm9tQ2hhckNvZGUiLCJrZXlDb2RlIiwicmVnZXgiLCJ0ZXN0IiwiZm9ybSIsImNsb3Nlc3QiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImlzQ2xlYXJhYmxlIiwiaW5jbHVkZXMiLCJfb25JY29uVmlzaWJsZUNsaWNrIiwiaXNQYXNzd29yZCIsImhhc0NsaWNrYWJsZUljb24iLCJoYXNDbGlwYm9hcmQiLCJjbGVhciIsIl9yZW5kZXJDbGVhckljb24iLCJfc2hhcGVQYXNzd29yZCIsIl9yZW5kZXJQYXNzd29yZEljb24iLCJoYXNCYWNrZ3JvdW5kIiwiX3JlbmRlckljb24iLCJjbGFzc2VzIiwiY29waWVkIiwiaWNvbkNsYXNzZXMiLCJyZW5kZXIiLCJyZW5kZXJMYWJlbCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFULFFB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QUw1QyxXQU9QLEtBQUs5RixXQUFMLElBQW9CLElBQXBCLEdBQTJCaEMsSUFBSSx3Q0FBd0MsS0FBS2dDLFdBQTdDLFVBQS9CLEdBQW9HLEVBUDdGLEdBQVg7QUFTRDs7QUFwZW1EO0FBdWV0RHNHLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUM5SCxPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBpbnB1dCB9IGZyb20gJy4uL3N0eWxlcy9pbnB1dCc7XG5pbXBvcnQgeyBsaW5rIH0gZnJvbSAnLi4vc3R5bGVzL2xpbmsnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0ICcuL2d2LWljb24nO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtcG9wb3Zlcic7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vbGliL2kxOG4nO1xuaW1wb3J0IHsgSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vbWl4aW5zL2lucHV0LWVsZW1lbnQnO1xuaW1wb3J0IHsgc2hhcGVDbGlwYm9hcmQsIHNoYXBlQ29waWVkIH0gZnJvbSAnLi4vc3R5bGVzL3NoYXBlcyc7XG5cbi8qKlxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1pbnB1dDppbnB1dCAtIG1pcnJvcnMgbmF0aXZlIGlucHV0IGV2ZW50cyB3aXRoIHRoZSBgdmFsdWVgIG9uIGBkZXRhaWxgXG4gKiBAZmlyZXMgZ3YtaW5wdXQ6Y2xlYXIgLSBldmVudCB3aGVuIHVzZXIgY2xlYXIgYSBjbGVhcmFibGUgaW5wdXRcbiAqXG4gKiBAYXR0ciB7Qm9vbGVhbn0gZGlzYWJsZWQgLSBzYW1lIGFzIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGBkaXNhYmxlZGAgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVxdWlyZWQgLSBzYW1lIGFzIG5hdGl2ZSBpbnB1dCBlbGVtZW50IGByZXF1aXJlZGAgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2tlbGV0b24gLSBlbmFibGUgc2tlbGV0b24gc2NyZWVuIFVJIHBhdHRlcm4gKGxvYWRpbmcgaGludClcbiAqIEBhdHRyIHtTdHJpbmd9IHZhbHVlIC0gdGhlIHZhbHVlIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gbGFiZWwgLSBsYWJlbCBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IHRpdGxlIC0gdGl0bGUgb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBuYW1lIC0gbmFtZSBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IHBsYWNlaG9sZGVyIC0gYW4gZXhhbXBsZSB2YWx1ZSB0byBkaXNwbGF5IGluIHRoZSBpbnB1dCB3aGVuIGVtcHR5XG4gKiBAYXR0ciB7U3RyaW5nfSBkZXNjcmlwdGlvbiAtIGEgZGVzY3JpcHRpb25cbiAqIEBhdHRyIHtTdHJpbmd9IHR5cGUgLSB0eXBlIG9mIHRoZSBpbnB1dCwgY2FuIGJlIHRleHQgKERlZmF1bHQpLCBwYXNzd29yZCwgZW1haWwsIHNlYXJjaCwgbnVtYmVyLCB1cmwuXG4gKiBAYXR0ciB7Qm9vbGVhbn0gY2xpcGJvYXJkIC0gZm9yIHJlYWRvbmx5IGlucHV0IHdpdGggY2xpcGJvYXJkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gbGFyZ2UgLSBmb3IgYSBsYXJnZSBpbnB1dFxuICogQGF0dHIge0Jvb2xlYW59IG1lZGl1bSAtIGZvciBhIG1lZGl1bSBpbnB1dCAoRGVmYXVsdClcbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIGZvciBhIHNtYWxsIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBpY29uIC0gaWNvbiBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IGljb24tbGVmdCAtIGljb24gb2YgdGhlIGlucHV0IHRvIGRpc3BsYXkgYXQgbGVmdFxuICogQGF0dHIge0Jvb2xlYW59IHZhbGlkIC0gaWYgdmFsdWUgaXMgdmFsaWRcbiAqIEBhdHRyIHtCb29sZWFufSBpbnZhbGlkIC0gaWYgdmFsdWUgaXMgaW52YWxpZFxuICogQGF0dHIge0Jvb2xlYW59IFtsb2FkaW5nPWZhbHNlXSAtIHRydWUgdG8gZGlzcGxheSBhIGxvYWRpbmcgaWNvblxuICogQGF0dHIge0Jvb2xlYW59IFthdXRvZm9jdXM9ZmFsc2VdIC0gdHJ1ZSB0byBwdXQgdGhlIGZvY3VzIG9uIHRoZSBpbnB1dFxuICogQGF0dHIge0Jvb2xlYW59IFtyZWFkb25seT1mYWxzZV0gLSB0cnVlIGlmIGZpZWxkIGlzIHJlYWRvbmx5IG1vZGVcbiAqIEBhdHRyIHtTdHJpbmd9IFthdXRvY29tcGxldGU9J29mZiddIC0gc3RhbmRhcmQgYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZVxuICogQGF0dHIge0Jvb2xlYW59IFtjbGlja2FibGU9ZmFsc2VdIC0gSWYgdHJ1ZSwgaWNvbiBoYXMgbGluayBzdHlsZVxuICogQGF0dHIge0Jvb2xlYW59IFtjbGVhcmFibGU9ZmFsc2VdIC0gSWYgdHJ1ZSwgaW5wdXQgY2FuIGJlIGNsZWFyIHdpdGggYnV0dG9uXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW25vLXN1Ym1pdD1mYWxzZV0gLSBJZiB0cnVlLCBpbnB1dCBjYW5ub3QgZGlzcGF0Y2ggbmF0aXZlIHN1Ym1pdCBldmVudCBvbiBlbnRlciBrZXkgcHJlc3MgdG8gY2xvc2VzdCBmb3JtXG4gKiBAYXR0ciB7U3RyaW5nfSBbcGF0dGVybj1udWxsXSAtIFBhdHRlcm4gZm9yIGlucHV0IHZhbGlkYXRpb24uIElmIHR5cGUgaXMgdXJsLCBkZWZhdWx0IHBhdHRlcm4gaXMgXihodHRwfGh0dHBzKTovL1xuICpcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LWlucHV0LS1iZGM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI0Y1RjVGNSldIC0gQm9yZGVyIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWlucHV0LS1iZHM9c29saWRdIC0gQm9yZGVyIHN0eWxlXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LWlucHV0LWljb24tLWJnYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjRjVGNUY1KV0gLSBJY29uIGJhY2tncm91bmQgY29sb3JcbiAqL1xuZXhwb3J0IGNsYXNzIEd2SW5wdXQgZXh0ZW5kcyBJbnB1dEVsZW1lbnQoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnByb3BlcnRpZXMsXG4gICAgICB0eXBlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgbGFyZ2U6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbWVkaXVtOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHNtYWxsOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGljb246IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBpY29uTGVmdDogeyB0eXBlOiBTdHJpbmcsIGF0dHJpYnV0ZTogJ2ljb24tbGVmdCcgfSxcbiAgICAgIGxvYWRpbmc6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbWluOiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgbWF4OiB7IHR5cGU6IE51bWJlciB9LFxuICAgICAgYXV0b2NvbXBsZXRlOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgY2xpcGJvYXJkOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGNsaWNrYWJsZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBjbGVhcmFibGU6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbm9TdWJtaXQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnbm8tc3VibWl0JyB9LFxuICAgICAgcGF0dGVybjogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgX3R5cGU6IHsgdHlwZTogU3RyaW5nLCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICBza2VsZXRvbixcbiAgICAgIGlucHV0LFxuICAgICAgbGluayxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuY2xpY2thYmxlIGlucHV0LFxuICAgICAgICAuY2xpY2thYmxlIDo6c2xvdHRlZChpbnB1dCkge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlja2FibGUgaW5wdXQ6aG92ZXIsXG4gICAgICAgIC5jbGlja2FibGUgOjpzbG90dGVkKGlucHV0OmhvdmVyKSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2JmYmZiZik7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDIycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LWljb24uY29waWVkIGd2LWljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogIzMzOTkwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi5ib3gtaWNvbiBndi1pY29uLmxvYWRpbmcsXG4gICAgICAgIC5sb2FkaW5nIDo6c2xvdHRlZChpbnB1dCkge1xuICAgICAgICAgIGFuaW1hdGlvbjogc3Bpbm5lciAxLjZzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubG9hZGluZy5zbWFsbCBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLXM6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBAa2V5ZnJhbWVzIHNwaW5uZXIge1xuICAgICAgICAgIHRvIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZCBpbnB1dCxcbiAgICAgICAgLmNsaXBib2FyZCA6OnNsb3R0ZWQoaW5wdXQpIHtcbiAgICAgICAgICBjdXJzb3I6IGNvcHk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpcGJvYXJkIGlucHV0OnJlYWQtb25seTpob3ZlcixcbiAgICAgICAgLmNsaXBib2FyZCA6OnNsb3R0ZWQoaW5wdXQ6cmVhZC1vbmx5OmhvdmVyKSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlwYm9hcmRfX3BvcG92ZXIge1xuICAgICAgICAgIC0tZ3YtcG9wb3Zlci0tYmdjOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrZXIsICMzODNlM2YpO1xuICAgICAgICAgIC0tZ3YtcG9wb3Zlci0tYzogdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1saWdodCwgI2ZmZmZmZik7XG4gICAgICAgICAgLS1ndi1wb3BvdmVyLS1wOiAwcmVtIDAuNHJlbSAwcmVtIDAuMnJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpcGJvYXJkX19wb3BvdmVyLWNvbnRlbnQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAtLWd2LWljb24tLWM6IHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHNoYXBlU2VhcmNoKCkge1xuICAgIHJldHVybiAnZ2VuZXJhbDpzZWFyY2gnO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZUNsZWFyKCkge1xuICAgIHJldHVybiAnY29kZTplcnJvcic7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHNoYXBlSW52aXNpYmxlKCkge1xuICAgIHJldHVybiAnZ2VuZXJhbDppbnZpc2libGUnO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZVZpc2libGUoKSB7XG4gICAgcmV0dXJuICdnZW5lcmFsOnZpc2libGUnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl90eXBlID0gJ3RleHQnO1xuICAgIHRoaXMuX3Nob3dQYXNzd29yZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLmF1dG9jb21wbGV0ZSA9ICdvZmYnO1xuICAgIHRoaXMubm9TdWJtaXQgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmJsdXIoKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuZm9jdXMoKTtcbiAgfVxuXG4gIGdldElucHV0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXQgfHwgc3VwZXIuZ2V0SW5wdXRFbGVtZW50KCk7XG4gIH1cblxuICB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnX3R5cGUnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS50eXBlID0gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdhdXRvY29tcGxldGUnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5hdXRvY29tcGxldGUgPSB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCduYW1lJykgJiYgdGhpcy5uYW1lICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkubmFtZSA9IHRoaXMubmFtZTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnJlcXVpcmVkID0gdGhpcy5yZXF1aXJlZDtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KClbJ2FyaWEtcmVxdWlyZWQnXSA9ICEhdGhpcy5yZXF1aXJlZDtcbiAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgfHwgdGhpcy52YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHRoaXMuaW52YWxpZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdyZWFkb25seScsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnJlbW92ZUF0dHJpYnV0ZSgncmVhZG9ubHknKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYWJlbCcpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndGl0bGUnKSkge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLnRpdGxlIHx8IHRoaXMubGFiZWw7XG4gICAgICBpZiAodGl0bGUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnRpdGxlID0gdGl0bGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGFiZWwnKSAmJiB0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpWydhcmlhLWxhYmVsJ10gPSB0aGlzLmxhYmVsO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3BhdHRlcm4nKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5wYXR0ZXJuID0gdGhpcy5wYXR0ZXJuO1xuICAgICAgdGhpcy5fcmVnZXhQYXR0ZXJuID0gbmV3IFJlZ0V4cCh0aGlzLnBhdHRlcm4pO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdza2VsZXRvbicpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNrZWxldG9uO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3BsYWNlaG9sZGVyJykgJiYgdGhpcy5wbGFjZWhvbGRlciAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbWluJykgJiYgdGhpcy5taW4gIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5taW4gPSB0aGlzLm1pbjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdtYXgnKSAmJiB0aGlzLm1heCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLm1heCA9IHRoaXMubWF4O1xuICAgIH1cbiAgfVxuXG4gIF9zZXRDbGlwYm9hcmRJY29uKHNoYXBlKSB7XG4gICAgaWYgKHRoaXMuaWNvbiAhPSBudWxsICYmIHRoaXMuaWNvbiAhPT0gc2hhcGVDb3BpZWQgJiYgdGhpcy5pY29uICE9PSBzaGFwZUNsaXBib2FyZCkge1xuICAgICAgdGhpcy5pY29uTGVmdCA9IHNoYXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmljb24gPSBzaGFwZTtcbiAgICB9XG4gIH1cblxuICBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgY29uc3QgZGVmYXVsdElucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMuY2hpbGROb2Rlcykge1xuICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDEpIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgPyBub2RlIDogbm9kZS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICB0aGlzLl9pbnB1dCA9IGNoaWxkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgZGVmYXVsdElucHV0RWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jbGlwYm9hcmQpIHtcbiAgICAgIGltcG9ydCgnY2xpcGJvYXJkLWNvcHknKS50aGVuKFxuICAgICAgICAobW9kKSA9PlxuICAgICAgICAgICh0aGlzLmNvcHkgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3B5ID0gbW9kLmRlZmF1bHQ7XG4gICAgICAgICAgICBjb3B5KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY29waWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NldENsaXBib2FyZEljb24oc2hhcGVDb3BpZWQpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2NvcGllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zZXRDbGlwYm9hcmRJY29uKHNoYXBlQ2xpcGJvYXJkKTtcbiAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX3NldENsaXBib2FyZEljb24oc2hhcGVDbGlwYm9hcmQpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkUG9wb3ZlciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuY2xpcGJvYXJkX19wb3BvdmVyJyk7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgY2xpcGJvYXJkUG9wb3Zlci5jbGljaygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNsaXBib2FyZFBvcG92ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuY29weSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xpY2thYmxlSWNvbiA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1pY29uLmxpbmsnKTtcbiAgICAgIGlmIChjbGlja2FibGVJY29uKSB7XG4gICAgICAgIGNsaWNrYWJsZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkljb25DbGljay5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmlkID0gdGhpcy5faWQ7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIHRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX29uS2V5VXAuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5hZGRFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsIHRoaXMuX29uS2V5UHJlc3MuYmluZCh0aGlzKSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh2YWx1ZSkge1xuICAgIHN1cGVyLnVwZGF0ZVN0YXRlKHZhbHVlKTtcbiAgICBpZiAodGhpcy52YWxpZCA9PT0gdHJ1ZSAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgaWYgKHRoaXMuX3JlZ2V4UGF0dGVybikge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsaWQgPSB2YWx1ZS5tYXRjaCh0aGlzLl9yZWdleFBhdHRlcm4pO1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkodmFsaWQgPT0gbnVsbCwgYGZpZWxkIG5vdCByZXNwZWN0IHRoZSBwYXR0ZXJuICR7dGhpcy5fcmVnZXhQYXR0ZXJufWApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3R5cGUgPT09ICdudW1iZXInICYmIHZhbHVlICE9IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdmFsdWUudHJpbSgpICE9PSAnJykpIHtcbiAgICAgICAgY29uc3QgX3ZhbHVlID0gTnVtYmVyKHZhbHVlKS52YWx1ZU9mKCk7XG4gICAgICAgIGlmIChpc05hTihfdmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh0cnVlLCBgZmllbGQgaXMgbm90IG51bWJlcmApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy5taW4gPiBfdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHRydWUsIGBmaWVsZCBpcyA8ICR7dGhpcy5taW59YCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXggIT0gbnVsbCAmJiB0aGlzLm1heCA8IF92YWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkodHJ1ZSwgYGZpZWxkIGlzID4gJHt0aGlzLm1heH1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbklucHV0KGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaW5wdXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIF9vbktleVByZXNzKGUpIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGxldCBrZXk7XG4gICAgICBpZiAoZS50eXBlID09PSAncGFzdGUnKSB7XG4gICAgICAgIGtleSA9IGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBrZXkgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGUua2V5Q29kZSk7XG4gICAgICB9XG5cbiAgICAgIGxldCByZWdleCA9IC9bMC05XS87XG4gICAgICBpZiAodGhpcy5taW4gPT0gbnVsbCB8fCB0aGlzLm1pbiA8IDApIHtcbiAgICAgICAgcmVnZXggPSAvWzAtOS1dLztcbiAgICAgIH1cbiAgICAgIGlmICghcmVnZXgudGVzdChrZXkpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25LZXlVcChlKSB7XG4gICAgaWYgKGUua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgIGlmICghdGhpcy5ub1N1Ym1pdCkge1xuICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgICAgIGlmIChmb3JtKSB7XG4gICAgICAgICAgZm9ybS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnc3VibWl0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc3VibWl0JywgdGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzQ2xlYXJhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmNsZWFyYWJsZSAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5sb2FkaW5nICYmIHRoaXMudmFsdWUgIT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJztcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlKSB7XG4gICAgaWYgKFsndGV4dCcsICdwYXNzd29yZCcsICdlbWFpbCcsICdzZWFyY2gnLCAnbnVtYmVyJywgJ3VybCddLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3VybCcpIHtcbiAgICAgIHRoaXMucGF0dGVybiA9ICcoaHR0cHM/Oi8vLncqKSg6XFxcXGQqKT9cXFxcLz8oLiopJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ2VtYWlsJykge1xuICAgICAgdGhpcy5wYXR0ZXJuID1cbiAgICAgICAgL14oKFtePD4oKVxcXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcXSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdzZWFyY2gnICYmIHRoaXMuaWNvbiA9PSBudWxsICYmIHRoaXMuaWNvbkxlZnQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5pY29uID0gR3ZJbnB1dC5zaGFwZVNlYXJjaDtcbiAgICAgIHRoaXMuY2xlYXJhYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgdGhpcy5pY29uID0gR3ZJbnB1dC5zaGFwZVNlYXJjaDtcbiAgICB9XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIF9vbkljb25DbGljaygpIHtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpY29uLWNsaWNrJywgdGhpcy52YWx1ZSk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc3VibWl0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfb25JY29uVmlzaWJsZUNsaWNrKGUpIHtcbiAgICBpZiAodGhpcy5pc1Bhc3N3b3JkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5fc2hvd1Bhc3N3b3JkID0gIXRoaXMuX3Nob3dQYXNzd29yZDtcbiAgICAgIHRoaXMuX3R5cGUgPSB0aGlzLl9zaG93UGFzc3dvcmQgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc1Bhc3N3b3JkKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAodGhpcy5fdHlwZSA9PT0gJ3Bhc3N3b3JkJyB8fCAodGhpcy5fdHlwZSA9PT0gJ3RleHQnICYmIHRoaXMuX3Nob3dQYXNzd29yZCkpO1xuICB9XG5cbiAgZ2V0IGhhc0NsaWNrYWJsZUljb24oKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5ICYmICh0aGlzLmNsaWNrYWJsZSB8fCB0aGlzLl90eXBlID09PSAnc2VhcmNoJyB8fCB0aGlzLmNsaXBib2FyZCk7XG4gIH1cblxuICBnZXQgaGFzQ2xpcGJvYXJkKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmNsaXBib2FyZDtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2xlYXInLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIF9yZW5kZXJDbGVhckljb24oKSB7XG4gICAgaWYgKHRoaXMuaXNDbGVhcmFibGUpIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJib3gtaWNvbiBib3gtaWNvbi1jbGVhclwiPlxuICAgICAgICA8Z3YtaWNvbiBjbGFzcz1cImxpbmtcIiBzaGFwZT1cImNvZGU6ZXJyb3JcIiB0aXRsZT1cIiR7aTE4bignZ3YtaW5wdXQuY2xlYXInKX1cIiBAY2xpY2s9XCIke3RoaXMuY2xlYXJ9XCI+PC9ndi1pY29uPlxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgX3NoYXBlUGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dQYXNzd29yZCA/ICdnZW5lcmFsOnZpc2libGUnIDogJ2dlbmVyYWw6aGlkZGVuJztcbiAgfVxuXG4gIF9yZW5kZXJQYXNzd29yZEljb24oKSB7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCkge1xuICAgICAgY29uc3Qgc2hhcGUgPSB0aGlzLl9zaGFwZVBhc3N3b3JkKCk7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuX3Nob3dQYXNzd29yZCA/ICdTaG93JyA6ICdIaWRlJztcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJib3gtaWNvblwiPlxuICAgICAgICA8Z3YtaWNvbiBjbGFzcz1cImxpbmtcIiBzaGFwZT1cIiR7c2hhcGV9XCIgdGl0bGU9XCIke3RpdGxlfVwiIEBjbGljaz1cIiR7dGhpcy5fb25JY29uVmlzaWJsZUNsaWNrfVwiPjwvZ3YtaWNvbj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldCBoYXNCYWNrZ3JvdW5kKCkge1xuICAgIHJldHVybiAhdGhpcy5sb2FkaW5nO1xuICB9XG5cbiAgX3JlbmRlckljb24oKSB7XG4gICAgbGV0IHNoYXBlID0gbnVsbDtcbiAgICBpZiAoKCF0aGlzLmlzUGFzc3dvcmQgJiYgdGhpcy5pY29uKSB8fCB0aGlzLmljb25MZWZ0KSB7XG4gICAgICBzaGFwZSA9ICghdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMuaWNvbikgfHwgdGhpcy5pY29uTGVmdDtcbiAgICB9XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgc2hhcGUgPSAnbmF2aWdhdGlvbjp3YWl0aW5nJztcbiAgICB9XG5cbiAgICBpZiAoc2hhcGUpIHtcbiAgICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAgICdib3gtaWNvbic6IHRydWUsXG4gICAgICAgICdib3gtaWNvbi1sZWZ0JzogdGhpcy5pY29uTGVmdCAhPSBudWxsIHx8IHRoaXMuY2xlYXJhYmxlLFxuICAgICAgICAnYm94LWljb24tYmdjJzogdGhpcy5oYXNCYWNrZ3JvdW5kLFxuICAgICAgICBjb3BpZWQ6IHRoaXMuaGFzQ2xpcGJvYXJkICYmIHRoaXMuX2NvcGllZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGljb25DbGFzc2VzID0ge1xuICAgICAgICBsaW5rOiB0aGlzLmhhc0NsaWNrYWJsZUljb24sXG4gICAgICAgIGxvYWRpbmc6IHRoaXMubG9hZGluZyxcbiAgICAgIH07XG4gICAgICBsZXQgdGl0bGUgPSAnJztcbiAgICAgIGlmICh0aGlzLl90eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgICB0aXRsZSA9IGkxOG4oJ2d2LWlucHV0LnNlYXJjaCcpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc0NsaXBib2FyZCkge1xuICAgICAgICB0aXRsZSA9IGkxOG4oJ2d2LWlucHV0LmNvcHknKTtcbiAgICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPGd2LXBvcG92ZXIgY2xhc3M9XCJjbGlwYm9hcmRfX3BvcG92ZXJcIiBldmVudD1cImNsaWNrXCIgZGVsYXk9XCI3NTBcIiAuYXJyb3c9XCIke2ZhbHNlfVwiPlxuICAgICAgICAgICAgPGd2LWljb24gY2xhc3M9XCIke2NsYXNzTWFwKGljb25DbGFzc2VzKX1cIiBzaGFwZT1cIiR7c2hhcGV9XCIgdGl0bGU9XCIke3RpdGxlfVwiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgIDxkaXYgc2xvdD1cInBvcG92ZXJcIiBjbGFzcz1cImNsaXBib2FyZF9fcG9wb3Zlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiY29kZTpjaGVja1wiPjwvZ3YtaWNvbj5cbiAgICAgICAgICAgICAgPGRpdj5Db3BpZWQ8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZ3YtcG9wb3Zlcj5cbiAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICB0aXRsZSA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCIke2NsYXNzTWFwKGljb25DbGFzc2VzKX1cIiBzaGFwZT1cIiR7c2hhcGV9XCIgdGl0bGU9XCIke3RpdGxlfVwiPjwvZ3YtaWNvbj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgJ2JveC1pbnB1dCc6IHRydWUsXG4gICAgICBza2VsZXRvbjogdGhpcy5za2VsZXRvbixcbiAgICAgIGxhcmdlOiB0aGlzLmxhcmdlLFxuICAgICAgbWVkaXVtOiB0aGlzLm1lZGl1bSB8fCAoIXRoaXMubGFyZ2UgJiYgIXRoaXMuc21hbGwpLFxuICAgICAgc21hbGw6IHRoaXMuc21hbGwsXG4gICAgICBpY29uOiAhIXRoaXMuaWNvbiAmJiAhdGhpcy5jbGVhcmFibGUsXG4gICAgICBjbGVhcmFibGU6IHRoaXMuY2xlYXJhYmxlLFxuICAgICAgJ2ljb24tbGVmdCc6ICEhdGhpcy5pY29uTGVmdCB8fCAoISF0aGlzLmljb24gJiYgdGhpcy5jbGVhcmFibGUpLFxuICAgICAgY2xpcGJvYXJkOiB0aGlzLmhhc0NsaXBib2FyZCxcbiAgICAgIHJlcXVpcmVkOiB0aGlzLnJlcXVpcmVkLFxuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgPGlucHV0IC8+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJDbGVhckljb24oKX0gJHt0aGlzLl9yZW5kZXJJY29uKCl9ICR7dGhpcy5fcmVuZGVyUGFzc3dvcmRJY29uKCl9XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy5kZXNjcmlwdGlvbiAhPSBudWxsID8gaHRtbGA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAuaW5uZXJIVE1MPVwiJHt0aGlzLmRlc2NyaXB0aW9ufVwiPjwvZGl2PmAgOiAnJ31cbiAgICBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWlucHV0JywgR3ZJbnB1dCk7XG4iXX0=
530
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWlucHV0LmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsImlucHV0IiwibGluayIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJpMThuIiwiSW5wdXRFbGVtZW50Iiwic2hhcGVDbGlwYm9hcmQiLCJzaGFwZUNvcGllZCIsIkd2SW5wdXQiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsInJlZmxlY3QiLCJsYXJnZSIsIkJvb2xlYW4iLCJtZWRpdW0iLCJzbWFsbCIsImljb24iLCJpY29uTGVmdCIsImF0dHJpYnV0ZSIsImxvYWRpbmciLCJtaW4iLCJOdW1iZXIiLCJtYXgiLCJhdXRvY29tcGxldGUiLCJjbGlwYm9hcmQiLCJjbGlja2FibGUiLCJjbGVhcmFibGUiLCJub1N1Ym1pdCIsInBhdHRlcm4iLCJkZXNjcmlwdGlvbiIsIl90eXBlIiwic3R5bGVzIiwic2hhcGVTZWFyY2giLCJzaGFwZUNsZWFyIiwic2hhcGVJbnZpc2libGUiLCJzaGFwZVZpc2libGUiLCJjb25zdHJ1Y3RvciIsIl9zaG93UGFzc3dvcmQiLCJ2YWx1ZSIsInJlc2V0IiwiZ2V0SW5wdXRFbGVtZW50IiwiYmx1ciIsImZvY3VzIiwiX2lucHV0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwibmFtZSIsInJlcXVpcmVkIiwidHJpbSIsImludmFsaWQiLCJyZWFkb25seSIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInRpdGxlIiwibGFiZWwiLCJfcmVnZXhQYXR0ZXJuIiwiUmVnRXhwIiwiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsInVwZGF0ZVN0YXRlIiwiX3NldENsaXBib2FyZEljb24iLCJzaGFwZSIsImZpcnN0VXBkYXRlZCIsImNhdGNoU2xvdCIsInRoZW4iLCJtb2QiLCJjb3B5IiwiZGVmYXVsdCIsIl9jb3BpZWQiLCJzZXRUaW1lb3V0IiwiY2xpcGJvYXJkUG9wb3ZlciIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImNsaWNrYWJsZUljb24iLCJfb25JY29uQ2xpY2siLCJiaW5kIiwiaWQiLCJfaWQiLCJiaW5kSW5wdXRFdmVudHMiLCJfb25JbnB1dCIsIl9vbktleVVwIiwiX29uS2V5UHJlc3MiLCJkZWZhdWx0SW5wdXRFbGVtZW50Iiwibm9kZSIsImNoaWxkTm9kZXMiLCJub2RlVHlwZSIsImNoaWxkIiwibm9kZU5hbWUiLCJ0b0xvd2VyQ2FzZSIsInJlbW92ZSIsInZhbGlkIiwibWF0Y2giLCJzZXRWYWxpZGl0eSIsIl92YWx1ZSIsInZhbHVlT2YiLCJpc05hTiIsInRhcmdldCIsImtleSIsImNsaXBib2FyZERhdGEiLCJnZXREYXRhIiwiZnJvbUNoYXJDb2RlIiwia2V5Q29kZSIsInJlZ2V4IiwidGVzdCIsImZvcm0iLCJjbG9zZXN0IiwiZGlzcGF0Y2hFdmVudCIsIkV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJpc0NsZWFyYWJsZSIsImluY2x1ZGVzIiwiX29uSWNvblZpc2libGVDbGljayIsImlzUGFzc3dvcmQiLCJoYXNDbGlja2FibGVJY29uIiwiaGFzQ2xpcGJvYXJkIiwiY2xlYXIiLCJfcmVuZGVyQ2xlYXJJY29uIiwiX3NoYXBlUGFzc3dvcmQiLCJfcmVuZGVyUGFzc3dvcmRJY29uIiwiaGFzQmFja2dyb3VuZCIsInJlbmRlckljb24iLCJjbGFzc2VzIiwiaWNvbkNsYXNzZXMiLCJyZW5kZXIiLCJjb3BpZWQiLCJyZW5kZXJMYWJlbCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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R0FBWDtBQVNEOztBQTFlbUQ7QUE2ZXREdUcsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixVQUE3QixFQUF5Qy9ILE9BQXpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcblxuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGlucHV0IH0gZnJvbSAnLi4vc3R5bGVzL2lucHV0JztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgJy4vZ3YtaWNvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1wb3BvdmVyJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyBJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtZWxlbWVudCc7XG5pbXBvcnQgeyBzaGFwZUNsaXBib2FyZCwgc2hhcGVDb3BpZWQgfSBmcm9tICcuLi9zdHlsZXMvc2hhcGVzJztcblxuLyoqXG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LWlucHV0OmlucHV0IC0gbWlycm9ycyBuYXRpdmUgaW5wdXQgZXZlbnRzIHdpdGggdGhlIGB2YWx1ZWAgb24gYGRldGFpbGBcbiAqIEBmaXJlcyBndi1pbnB1dDpjbGVhciAtIGV2ZW50IHdoZW4gdXNlciBjbGVhciBhIGNsZWFyYWJsZSBpbnB1dFxuICpcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHNhbWUgYXMgbmF0aXZlIGlucHV0IGVsZW1lbnQgYGRpc2FibGVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSByZXF1aXJlZCAtIHNhbWUgYXMgbmF0aXZlIGlucHV0IGVsZW1lbnQgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSBza2VsZXRvbiAtIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBsYWJlbCAtIGxhYmVsIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gcGxhY2Vob2xkZXIgLSBhbiBleGFtcGxlIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0IHdoZW4gZW1wdHlcbiAqIEBhdHRyIHtTdHJpbmd9IGRlc2NyaXB0aW9uIC0gYSBkZXNjcmlwdGlvblxuICogQGF0dHIge1N0cmluZ30gdHlwZSAtIHR5cGUgb2YgdGhlIGlucHV0LCBjYW4gYmUgdGV4dCAoRGVmYXVsdCksIHBhc3N3b3JkLCBlbWFpbCwgc2VhcmNoLCBudW1iZXIsIHVybC5cbiAqIEBhdHRyIHtCb29sZWFufSBjbGlwYm9hcmQgLSBmb3IgcmVhZG9ubHkgaW5wdXQgd2l0aCBjbGlwYm9hcmRcbiAqIEBhdHRyIHtCb29sZWFufSBsYXJnZSAtIGZvciBhIGxhcmdlIGlucHV0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gbWVkaXVtIC0gZm9yIGEgbWVkaXVtIGlucHV0IChEZWZhdWx0KVxuICogQGF0dHIge0Jvb2xlYW59IHNtYWxsIC0gZm9yIGEgc21hbGwgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IGljb24gLSBpY29uIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gaWNvbi1sZWZ0IC0gaWNvbiBvZiB0aGUgaW5wdXQgdG8gZGlzcGxheSBhdCBsZWZ0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gdmFsaWQgLSBpZiB2YWx1ZSBpcyB2YWxpZFxuICogQGF0dHIge0Jvb2xlYW59IGludmFsaWQgLSBpZiB2YWx1ZSBpcyBpbnZhbGlkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2xvYWRpbmc9ZmFsc2VdIC0gdHJ1ZSB0byBkaXNwbGF5IGEgbG9hZGluZyBpY29uXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2F1dG9mb2N1cz1mYWxzZV0gLSB0cnVlIHRvIHB1dCB0aGUgZm9jdXMgb24gdGhlIGlucHV0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gW3JlYWRvbmx5PWZhbHNlXSAtIHRydWUgaWYgZmllbGQgaXMgcmVhZG9ubHkgbW9kZVxuICogQGF0dHIge1N0cmluZ30gW2F1dG9jb21wbGV0ZT0nb2ZmJ10gLSBzdGFuZGFyZCBhdXRvY29tcGxldGUgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2NsaWNrYWJsZT1mYWxzZV0gLSBJZiB0cnVlLCBpY29uIGhhcyBsaW5rIHN0eWxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2NsZWFyYWJsZT1mYWxzZV0gLSBJZiB0cnVlLCBpbnB1dCBjYW4gYmUgY2xlYXIgd2l0aCBidXR0b25cbiAqIEBhdHRyIHtCb29sZWFufSBbbm8tc3VibWl0PWZhbHNlXSAtIElmIHRydWUsIGlucHV0IGNhbm5vdCBkaXNwYXRjaCBuYXRpdmUgc3VibWl0IGV2ZW50IG9uIGVudGVyIGtleSBwcmVzcyB0byBjbG9zZXN0IGZvcm1cbiAqIEBhdHRyIHtTdHJpbmd9IFtwYXR0ZXJuPW51bGxdIC0gUGF0dGVybiBmb3IgaW5wdXQgdmFsaWRhdGlvbi4gSWYgdHlwZSBpcyB1cmwsIGRlZmF1bHQgcGF0dGVybiBpcyBeKGh0dHB8aHR0cHMpOi8vXG4gKlxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtaW5wdXQtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjRjVGNUY1KV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtLWJkcz1zb2xpZF0gLSBCb3JkZXIgc3R5bGVcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtaWNvbi0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNGNUY1RjUpXSAtIEljb24gYmFja2dyb3VuZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZJbnB1dCBleHRlbmRzIElucHV0RWxlbWVudChMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIucHJvcGVydGllcyxcbiAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBsYXJnZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBtZWRpdW06IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc21hbGw6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgaWNvbjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGljb25MZWZ0OiB7IHR5cGU6IFN0cmluZywgYXR0cmlidXRlOiAnaWNvbi1sZWZ0JyB9LFxuICAgICAgbG9hZGluZzogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBtaW46IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtYXg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBhdXRvY29tcGxldGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjbGlwYm9hcmQ6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgY2xpY2thYmxlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGNsZWFyYWJsZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBub1N1Ym1pdDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICduby1zdWJtaXQnIH0sXG4gICAgICBwYXR0ZXJuOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBfdHlwZTogeyB0eXBlOiBTdHJpbmcsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIHNrZWxldG9uLFxuICAgICAgaW5wdXQsXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIC5jbGlja2FibGUgaW5wdXQsXG4gICAgICAgIC5jbGlja2FibGUgOjpzbG90dGVkKGlucHV0KSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaWNrYWJsZSBpbnB1dDpob3ZlcixcbiAgICAgICAgLmNsaWNrYWJsZSA6OnNsb3R0ZWQoaW5wdXQ6aG92ZXIpIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb3BpZWQge1xuICAgICAgICAgIC0tZ3YtaW5wdXQtLWJkYzogdmFyKC0tZ3YtdGhlbWUtY29sb3Itc3VjY2Vzcy1saWdodCwgIzgxYzc4NCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29waWVkIC5ib3gtaWNvbiBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLWM6IHZhcigtLWd2LXRoZW1lLWNvbG9yLXN1Y2Nlc3MtZGFyaywgIzM4OGUzYyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuYm94LWljb24gZ3YtaWNvbi5sb2FkaW5nLFxuICAgICAgICAubG9hZGluZyA6OnNsb3R0ZWQoaW5wdXQpIHtcbiAgICAgICAgICBhbmltYXRpb246IHNwaW5uZXIgMS42cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvYWRpbmcuc21hbGwgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgICAgICAgICB0byB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlwYm9hcmQgaW5wdXQsXG4gICAgICAgIC5jbGlwYm9hcmQgOjpzbG90dGVkKGlucHV0KSB7XG4gICAgICAgICAgY3Vyc29yOiBjb3B5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZCBpbnB1dDpyZWFkLW9ubHk6aG92ZXIsXG4gICAgICAgIC5jbGlwYm9hcmQgOjpzbG90dGVkKGlucHV0OnJlYWQtb25seTpob3Zlcikge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpcGJvYXJkX19wb3BvdmVyIHtcbiAgICAgICAgICAtLWd2LXBvcG92ZXItLWJnYzogdmFyKC0tZ3YtdGhlbWUtY29sb3ItZGFya2VyLCAjMzgzZTNmKTtcbiAgICAgICAgICAtLWd2LXBvcG92ZXItLWM6IHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpO1xuICAgICAgICAgIC0tZ3YtcG9wb3Zlci0tcDogMHJlbSAwLjRyZW0gMHJlbSAwLjJyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZF9fcG9wb3Zlci1jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZVNlYXJjaCgpIHtcbiAgICByZXR1cm4gJ2dlbmVyYWw6c2VhcmNoJztcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVDbGVhcigpIHtcbiAgICByZXR1cm4gJ2NvZGU6ZXJyb3InO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZUludmlzaWJsZSgpIHtcbiAgICByZXR1cm4gJ2dlbmVyYWw6aW52aXNpYmxlJztcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVWaXNpYmxlKCkge1xuICAgIHJldHVybiAnZ2VuZXJhbDp2aXNpYmxlJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdHlwZSA9ICd0ZXh0JztcbiAgICB0aGlzLl9zaG93UGFzc3dvcmQgPSBmYWxzZTtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5hdXRvY29tcGxldGUgPSAnb2ZmJztcbiAgICB0aGlzLm5vU3VibWl0ID0gZmFsc2U7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5ibHVyKCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmZvY3VzKCk7XG4gIH1cblxuICBnZXRJbnB1dEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0IHx8IHN1cGVyLmdldElucHV0RWxlbWVudCgpO1xuICB9XG5cbiAgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ190eXBlJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkudHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnYXV0b2NvbXBsZXRlJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYXV0b2NvbXBsZXRlID0gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmFtZScpICYmIHRoaXMubmFtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncmVxdWlyZWQnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5yZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpWydhcmlhLXJlcXVpcmVkJ10gPSAhIXRoaXMucmVxdWlyZWQ7XG4gICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsIHx8IHRoaXMudmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aGlzLmludmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5yZW1vdmVBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGFiZWwnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3RpdGxlJykpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50aXRsZSB8fCB0aGlzLmxhYmVsO1xuICAgICAgaWYgKHRpdGxlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS50aXRsZSA9IHRpdGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsJykgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKVsnYXJpYS1sYWJlbCddID0gdGhpcy5sYWJlbDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYXR0ZXJuJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkucGF0dGVybiA9IHRoaXMucGF0dGVybjtcbiAgICAgIHRoaXMuX3JlZ2V4UGF0dGVybiA9IG5ldyBSZWdFeHAodGhpcy5wYXR0ZXJuKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2tlbGV0b24nKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5za2VsZXRvbjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwbGFjZWhvbGRlcicpICYmIHRoaXMucGxhY2Vob2xkZXIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ21pbicpICYmIHRoaXMubWluICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkubWluID0gdGhpcy5taW47XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbWF4JykgJiYgdGhpcy5tYXggIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5tYXggPSB0aGlzLm1heDtcbiAgICB9XG4gIH1cblxuICBfc2V0Q2xpcGJvYXJkSWNvbihzaGFwZSkge1xuICAgIGlmICh0aGlzLmljb24gIT0gbnVsbCAmJiB0aGlzLmljb24gIT09IHNoYXBlQ29waWVkICYmIHRoaXMuaWNvbiAhPT0gc2hhcGVDbGlwYm9hcmQpIHtcbiAgICAgIHRoaXMuaWNvbkxlZnQgPSBzaGFwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pY29uID0gc2hhcGU7XG4gICAgfVxuICB9XG5cbiAgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuY2F0Y2hTbG90KCk7XG5cbiAgICBpZiAodGhpcy5jbGlwYm9hcmQpIHtcbiAgICAgIGltcG9ydCgnY2xpcGJvYXJkLWNvcHknKS50aGVuKFxuICAgICAgICAobW9kKSA9PlxuICAgICAgICAgICh0aGlzLmNvcHkgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb3B5ID0gbW9kLmRlZmF1bHQ7XG4gICAgICAgICAgICBjb3B5KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY29waWVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NldENsaXBib2FyZEljb24oc2hhcGVDb3BpZWQpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuX2NvcGllZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLl9zZXRDbGlwYm9hcmRJY29uKHNoYXBlQ2xpcGJvYXJkKTtcbiAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX3NldENsaXBib2FyZEljb24oc2hhcGVDbGlwYm9hcmQpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkUG9wb3ZlciA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuY2xpcGJvYXJkX19wb3BvdmVyJyk7XG4gICAgICAgIGNsaXBib2FyZFBvcG92ZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuY29weSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xpY2thYmxlSWNvbiA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdndi1pY29uLmxpbmsnKTtcbiAgICAgIGlmIChjbGlja2FibGVJY29uKSB7XG4gICAgICAgIGNsaWNrYWJsZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkljb25DbGljay5iaW5kKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmlkID0gdGhpcy5faWQ7XG5cbiAgICB0aGlzLmJpbmRJbnB1dEV2ZW50cygpO1xuICB9XG5cbiAgYmluZElucHV0RXZlbnRzKCkge1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLl9vbktleVByZXNzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgY2F0Y2hTbG90KCkge1xuICAgIGNvbnN0IGRlZmF1bHRJbnB1dEVsZW1lbnQgPSB0aGlzLmdldElucHV0RWxlbWVudCgpO1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmNoaWxkTm9kZXMpIHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnID8gbm9kZSA6IG5vZGUucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgaWYgKGNoaWxkKSB7XG4gICAgICAgICAgdGhpcy5faW5wdXQgPSBjaGlsZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5faW5wdXQpIHtcbiAgICAgIGRlZmF1bHRJbnB1dEVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU3RhdGUodmFsdWUpIHtcbiAgICBzdXBlci51cGRhdGVTdGF0ZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMudmFsaWQgPT09IHRydWUgJiYgIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIGlmICh0aGlzLl9yZWdleFBhdHRlcm4pIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IHZhbGlkID0gdmFsdWUubWF0Y2godGhpcy5fcmVnZXhQYXR0ZXJuKTtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHZhbGlkID09IG51bGwsIGBmaWVsZCBub3QgcmVzcGVjdCB0aGUgcGF0dGVybiAke3RoaXMuX3JlZ2V4UGF0dGVybn1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl90eXBlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPSBudWxsICYmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHZhbHVlLnRyaW0oKSAhPT0gJycpKSB7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IE51bWJlcih2YWx1ZSkudmFsdWVPZigpO1xuICAgICAgICBpZiAoaXNOYU4oX3ZhbHVlKSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkodHJ1ZSwgYGZpZWxkIGlzIG5vdCBudW1iZXJgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMubWluID4gX3ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh0cnVlLCBgZmllbGQgaXMgPCAke3RoaXMubWlufWApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9IG51bGwgJiYgdGhpcy5tYXggPCBfdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHRydWUsIGBmaWVsZCBpcyA+ICR7dGhpcy5tYXh9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25JbnB1dChlKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShlLnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfb25LZXlQcmVzcyhlKSB7XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBsZXQga2V5O1xuICAgICAgaWYgKGUudHlwZSA9PT0gJ3Bhc3RlJykge1xuICAgICAgICBrZXkgPSBlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5ID0gU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpO1xuICAgICAgfVxuXG4gICAgICBsZXQgcmVnZXggPSAvWzAtOV0vO1xuICAgICAgaWYgKHRoaXMubWluID09IG51bGwgfHwgdGhpcy5taW4gPCAwKSB7XG4gICAgICAgIHJlZ2V4ID0gL1swLTktXS87XG4gICAgICB9XG4gICAgICBpZiAoIXJlZ2V4LnRlc3Qoa2V5KSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uS2V5VXAoZSkge1xuICAgIGlmIChlLmtleUNvZGUgPT09IDEzKSB7XG4gICAgICBpZiAoIXRoaXMubm9TdWJtaXQpIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgIGZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N1Ym1pdCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0NsZWFyYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGVhcmFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMubG9hZGluZyAmJiB0aGlzLnZhbHVlICE9IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gJyc7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZSkge1xuICAgIGlmIChbJ3RleHQnLCAncGFzc3dvcmQnLCAnZW1haWwnLCAnc2VhcmNoJywgJ251bWJlcicsICd1cmwnXS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICd1cmwnKSB7XG4gICAgICB0aGlzLnBhdHRlcm4gPSAnKGh0dHBzPzovLy53KikoOlxcXFxkKik/XFxcXC8/KC4qKSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgIHRoaXMucGF0dGVybiA9XG4gICAgICAgIC9eKChbXjw+KClcXFxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXF0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90eXBlID09PSAnc2VhcmNoJyAmJiB0aGlzLmljb24gPT0gbnVsbCAmJiB0aGlzLmljb25MZWZ0ID09IG51bGwpIHtcbiAgICAgIHRoaXMuaWNvbiA9IEd2SW5wdXQuc2hhcGVTZWFyY2g7XG4gICAgICB0aGlzLmNsZWFyYWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgIHRoaXMuaWNvbiA9IEd2SW5wdXQuc2hhcGVTZWFyY2g7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBfb25JY29uQ2xpY2soKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaWNvbi1jbGljaycsIHRoaXMudmFsdWUpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uSWNvblZpc2libGVDbGljayhlKSB7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuX3Nob3dQYXNzd29yZCA9ICF0aGlzLl9zaG93UGFzc3dvcmQ7XG4gICAgICB0aGlzLl90eXBlID0gdGhpcy5fc2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgICB9XG4gIH1cblxuICBnZXQgaXNQYXNzd29yZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuX3R5cGUgPT09ICdwYXNzd29yZCcgfHwgKHRoaXMuX3R5cGUgPT09ICd0ZXh0JyAmJiB0aGlzLl9zaG93UGFzc3dvcmQpKTtcbiAgfVxuXG4gIGdldCBoYXNDbGlja2FibGVJY29uKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAodGhpcy5jbGlja2FibGUgfHwgdGhpcy5fdHlwZSA9PT0gJ3NlYXJjaCcgfHwgdGhpcy5jbGlwYm9hcmQpO1xuICB9XG5cbiAgZ2V0IGhhc0NsaXBib2FyZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGlwYm9hcmQ7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NsZWFyJywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfcmVuZGVyQ2xlYXJJY29uKCkge1xuICAgIGlmICh0aGlzLmlzQ2xlYXJhYmxlKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWljb24gYm94LWljb24tY2xlYXJcIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCJjb2RlOmVycm9yXCIgdGl0bGU9XCIke2kxOG4oJ2d2LWlucHV0LmNsZWFyJyl9XCIgQGNsaWNrPVwiJHt0aGlzLmNsZWFyfVwiPjwvZ3YtaWNvbj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIF9zaGFwZVBhc3N3b3JkKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93UGFzc3dvcmQgPyAnZ2VuZXJhbDp2aXNpYmxlJyA6ICdnZW5lcmFsOmhpZGRlbic7XG4gIH1cblxuICBfcmVuZGVyUGFzc3dvcmRJY29uKCkge1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fc2hhcGVQYXNzd29yZCgpO1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLl9zaG93UGFzc3dvcmQgPyAnU2hvdycgOiAnSGlkZSc7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWljb25cIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIiBAY2xpY2s9XCIke3RoaXMuX29uSWNvblZpc2libGVDbGlja31cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaGFzQmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gIXRoaXMubG9hZGluZztcbiAgfVxuXG4gIHJlbmRlckljb24oKSB7XG4gICAgbGV0IHNoYXBlID0gbnVsbDtcbiAgICBpZiAoKCF0aGlzLmlzUGFzc3dvcmQgJiYgdGhpcy5pY29uKSB8fCB0aGlzLmljb25MZWZ0KSB7XG4gICAgICBzaGFwZSA9ICghdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMuaWNvbikgfHwgdGhpcy5pY29uTGVmdDtcbiAgICB9XG4gICAgaWYgKHRoaXMubG9hZGluZykge1xuICAgICAgc2hhcGUgPSAnbmF2aWdhdGlvbjp3YWl0aW5nJztcbiAgICB9XG5cbiAgICBpZiAoc2hhcGUpIHtcbiAgICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAgICdib3gtaWNvbic6IHRydWUsXG4gICAgICAgICdib3gtaWNvbi1sZWZ0JzogdGhpcy5pY29uTGVmdCAhPSBudWxsIHx8IHRoaXMuY2xlYXJhYmxlLFxuICAgICAgICAnYm94LWljb24tYmdjJzogdGhpcy5oYXNCYWNrZ3JvdW5kLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaWNvbkNsYXNzZXMgPSB7XG4gICAgICAgIGxpbms6IHRoaXMuaGFzQ2xpY2thYmxlSWNvbixcbiAgICAgICAgbG9hZGluZzogdGhpcy5sb2FkaW5nLFxuICAgICAgfTtcbiAgICAgIGxldCB0aXRsZSA9ICcnO1xuICAgICAgaWYgKHRoaXMuX3R5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgIHRpdGxlID0gaTE4bignZ3YtaW5wdXQuc2VhcmNoJyk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQ2xpcGJvYXJkKSB7XG4gICAgICAgIHRpdGxlID0gaTE4bignZ3YtaW5wdXQuY29weScpO1xuICAgICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgICA8Z3YtcG9wb3ZlciBjbGFzcz1cImNsaXBib2FyZF9fcG9wb3ZlclwiIGV2ZW50PVwiY2xpY2tcIiBkZWxheT1cIjc1MFwiIC5hcnJvdz1cIiR7ZmFsc2V9XCI+XG4gICAgICAgICAgICA8Z3YtaWNvbiBjbGFzcz1cIiR7Y2xhc3NNYXAoaWNvbkNsYXNzZXMpfVwiIHNoYXBlPVwiJHtzaGFwZX1cIiB0aXRsZT1cIiR7dGl0bGV9XCI+PC9ndi1pY29uPlxuICAgICAgICAgICAgPGRpdiBzbG90PVwicG9wb3ZlclwiIGNsYXNzPVwiY2xpcGJvYXJkX19wb3BvdmVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGd2LWljb24gc2hhcGU9XCJjb2RlOmNoZWNrXCI+PC9ndi1pY29uPlxuICAgICAgICAgICAgICA8ZGl2PkNvcGllZDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9ndi1wb3BvdmVyPlxuICAgICAgICA8L2Rpdj5gO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHRpdGxlID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICA8Z3YtaWNvbiBjbGFzcz1cIiR7Y2xhc3NNYXAoaWNvbkNsYXNzZXMpfVwiIHNoYXBlPVwiJHtzaGFwZX1cIiB0aXRsZT1cIiR7dGl0bGV9XCI+PC9ndi1pY29uPlxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICAnYm94LWlucHV0JzogdHJ1ZSxcbiAgICAgIHNrZWxldG9uOiB0aGlzLnNrZWxldG9uLFxuICAgICAgbGFyZ2U6IHRoaXMubGFyZ2UsXG4gICAgICBtZWRpdW06IHRoaXMubWVkaXVtIHx8ICghdGhpcy5sYXJnZSAmJiAhdGhpcy5zbWFsbCksXG4gICAgICBzbWFsbDogdGhpcy5zbWFsbCxcbiAgICAgIGljb246ICEhdGhpcy5pY29uICYmICF0aGlzLmNsZWFyYWJsZSxcbiAgICAgIGNsZWFyYWJsZTogdGhpcy5jbGVhcmFibGUsXG4gICAgICAnaWNvbi1sZWZ0JzogISF0aGlzLmljb25MZWZ0IHx8ICghIXRoaXMuaWNvbiAmJiB0aGlzLmNsZWFyYWJsZSksXG4gICAgICBjbGlwYm9hcmQ6IHRoaXMuaGFzQ2xpcGJvYXJkLFxuICAgICAgcmVxdWlyZWQ6IHRoaXMucmVxdWlyZWQsXG4gICAgICBjb3BpZWQ6IHRoaXMuaGFzQ2xpcGJvYXJkICYmIHRoaXMuX2NvcGllZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgIDxpbnB1dCAvPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyQ2xlYXJJY29uKCl9ICR7dGhpcy5yZW5kZXJJY29uKCl9ICR7dGhpcy5fcmVuZGVyUGFzc3dvcmRJY29uKCl9XG4gICAgICA8L2Rpdj5cbiAgICAgICR7dGhpcy5kZXNjcmlwdGlvbiAhPSBudWxsID8gaHRtbGA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiAuaW5uZXJIVE1MPVwiJHt0aGlzLmRlc2NyaXB0aW9ufVwiPjwvZGl2PmAgOiAnJ31cbiAgICBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LWlucHV0JywgR3ZJbnB1dCk7XG4iXX0=
package/src/index.js CHANGED
@@ -31,7 +31,6 @@ export { GvCardList } from './molecules/gv-card-list';
31
31
  export { GvCard } from './molecules/gv-card';
32
32
  export { GvCategoryList } from './molecules/gv-category-list';
33
33
  export { GvCategory } from './molecules/gv-category';
34
- export { GvCodeHint } from './molecules/gv-code-hint';
35
34
  export { GvCode } from './molecules/gv-code';
36
35
  export { GvConfirm } from './molecules/gv-confirm';
37
36
  export { GvCronEditor } from './molecules/gv-cron-editor';
@@ -76,4 +75,4 @@ export { GvFlow } from './policy-studio/gv-flow';
76
75
  export { GvPolicyStudioMenu } from './policy-studio/gv-policy-studio-menu';
77
76
  export { GvPolicyStudio } from './policy-studio/gv-policy-studio';
78
77
  export { GvTheme } from './theme/gv-theme';
79
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2luZGV4LmpzIl0sIm5hbWVzIjpbIkd2QXV0b2NvbXBsZXRlIiwiR3ZCdXR0b24iLCJHdkNoZWNrYm94IiwiR3ZEYXRlUGlja2VyQ2FsZW5kYXIiLCJHdkRhdGVQaWNrZXJDZWxsIiwiR3ZEYXRlUGlja2VyIiwiR3ZGaWxlVXBsb2FkIiwiR3ZJY29uIiwiR3ZJbWFnZSIsIkd2SW5wdXRNZXNzYWdlIiwiR3ZJbnB1dCIsIkd2TGluayIsIkd2TWVzc2FnZSIsIkd2TWV0cmljIiwiR3ZSZWxhdGl2ZVRpbWUiLCJHdlNlbGVjdE5hdGl2ZSIsIkd2U2VsZWN0IiwiR3ZTcGlubmVyIiwiR3ZTdGF0ZSIsIkd2U3dpdGNoIiwiR3ZUYWciLCJHdlRleHQiLCJHdkNoYXJ0QmFyIiwiR3ZDaGFydEdhdWdlIiwiR3ZDaGFydEhpc3RvZ3JhbSIsIkd2Q2hhcnRMaW5lIiwiR3ZDaGFydE1hcCIsIkd2Q2hhcnRQaWUiLCJHdkNhcmRGdWxsIiwiR3ZDYXJkTGlzdCIsIkd2Q2FyZCIsIkd2Q2F0ZWdvcnlMaXN0IiwiR3ZDYXRlZ29yeSIsIkd2Q29kZUhpbnQiLCJHdkNvZGUiLCJHdkNvbmZpcm0iLCJHdkNyb25FZGl0b3IiLCJHdkRyb3Bkb3duTWVudSIsIkd2RXhwYW5kYWJsZSIsIkd2RXhwcmVzc2lvbkxhbmd1YWdlIiwiR3ZJZGVudGl0eVBpY3R1cmUiLCJHdkxpc3QiLCJHdk1ldHJpY3MiLCJHdk1vZGFsIiwiR3ZOYXYiLCJHdk9wdGlvbiIsIkd2UGxhbnMiLCJHdlBvcG92ZXIiLCJHdlByb21vdGUiLCJHdlJhdGluZ0xpc3QiLCJHdlJhdGluZyIsIkd2Um93RXhwYW5kYWJsZSIsIkd2Um93IiwiR3ZTdGF0cyIsIkd2U3RlcHBlciIsIkd2VGFibGUiLCJHdlRyZWUiLCJHdkRvY3VtZW50YXRpb24iLCJHdkhlYWRlciIsIkd2SHR0cENsaWVudCIsIkd2TWVudSIsIkd2TmV3c2xldHRlclN1YnNjcmlwdGlvbiIsIkd2UGFnaW5hdGlvbiIsIkd2UHJvcGVydGllcyIsIkd2UmVzaXphYmxlVmlld3MiLCJHdlJlc291cmNlcyIsIkd2U2NoZW1hRm9ybUFycmF5IiwiR3ZTY2hlbWFGb3JtQ29udHJvbE9iamVjdCIsIkd2U2NoZW1hRm9ybUNvbnRyb2wiLCJHdlNjaGVtYUZvcm0iLCJHdlRhYnMiLCJHdlVzZXJNZW51IiwiR3ZWZXJ0aWNhbE1lbnUiLCJHdkZsb3dTdGVwIiwiR3ZGbG93IiwiR3ZQb2xpY3lTdHVkaW9NZW51IiwiR3ZQb2xpY3lTdHVkaW8iLCJHdlRoZW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFULFFBQStCLHlCQUEvQjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsbUJBQXpCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixxQkFBM0I7QUFDQSxTQUFTQyxvQkFBVCxRQUFxQyxpQ0FBckM7QUFDQSxTQUFTQyxnQkFBVCxRQUFpQyw2QkFBakM7QUFDQSxTQUFTQyxZQUFULFFBQTZCLHdCQUE3QjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsd0JBQTdCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1QixpQkFBdkI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGtCQUF4QjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsMEJBQS9CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixrQkFBeEI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLGlCQUF2QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsb0JBQTFCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixtQkFBekI7QUFDQSxTQUFTQyxjQUFULFFBQStCLDBCQUEvQjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsMEJBQS9CO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixtQkFBekI7QUFDQSxTQUFTQyxTQUFULFFBQTBCLG9CQUExQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0Isa0JBQXhCO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixtQkFBekI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLGdCQUF0QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsaUJBQXZCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQix1QkFBM0I7QUFDQSxTQUFTQyxZQUFULFFBQTZCLHlCQUE3QjtBQUNBLFNBQVNDLGdCQUFULFFBQWlDLDZCQUFqQztBQUNBLFNBQVNDLFdBQVQsUUFBNEIsd0JBQTVCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQix1QkFBM0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLHVCQUEzQjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsMEJBQTNCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQiwwQkFBM0I7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsOEJBQS9CO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQix5QkFBM0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLDBCQUEzQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIscUJBQXZCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQix3QkFBMUI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDRCQUE3QjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsOEJBQS9CO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QiwyQkFBN0I7QUFDQSxTQUFTQyxvQkFBVCxRQUFxQyxvQ0FBckM7QUFDQSxTQUFTQyxpQkFBVCxRQUFrQyxpQ0FBbEM7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLG9CQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsdUJBQXpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxTQUFULFFBQTBCLHdCQUExQjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qiw0QkFBN0I7QUFDQSxTQUFTQyxRQUFULFFBQXlCLHVCQUF6QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsK0JBQWhDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixvQkFBdEI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHNCQUF4QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsOEJBQWhDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5Qix1QkFBekI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDRCQUE3QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIscUJBQXZCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsd0NBQXpDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QiwyQkFBN0I7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDJCQUE3QjtBQUNBLFNBQVNDLGdCQUFULFFBQWlDLGdDQUFqQztBQUNBLFNBQVNDLFdBQVQsUUFBNEIsMEJBQTVCO0FBQ0EsU0FBU0MsaUJBQVQsUUFBa0Msa0NBQWxDO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsMkNBQTFDO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0Msb0NBQXBDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qiw0QkFBN0I7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsMEJBQTNCO0FBQ0EsU0FBU0MsY0FBVCxRQUErQiw4QkFBL0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLDhCQUEzQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIseUJBQXZCO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsdUNBQW5DO0FBQ0EsU0FBU0MsY0FBVCxRQUErQixrQ0FBL0I7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGtCQUF4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEd2QXV0b2NvbXBsZXRlIH0gZnJvbSAnLi9hdG9tcy9ndi1hdXRvY29tcGxldGUnO1xuZXhwb3J0IHsgR3ZCdXR0b24gfSBmcm9tICcuL2F0b21zL2d2LWJ1dHRvbic7XG5leHBvcnQgeyBHdkNoZWNrYm94IH0gZnJvbSAnLi9hdG9tcy9ndi1jaGVja2JveCc7XG5leHBvcnQgeyBHdkRhdGVQaWNrZXJDYWxlbmRhciB9IGZyb20gJy4vYXRvbXMvZ3YtZGF0ZS1waWNrZXItY2FsZW5kYXInO1xuZXhwb3J0IHsgR3ZEYXRlUGlja2VyQ2VsbCB9IGZyb20gJy4vYXRvbXMvZ3YtZGF0ZS1waWNrZXItY2VsbCc7XG5leHBvcnQgeyBHdkRhdGVQaWNrZXIgfSBmcm9tICcuL2F0b21zL2d2LWRhdGUtcGlja2VyJztcbmV4cG9ydCB7IEd2RmlsZVVwbG9hZCB9IGZyb20gJy4vYXRvbXMvZ3YtZmlsZS11cGxvYWQnO1xuZXhwb3J0IHsgR3ZJY29uIH0gZnJvbSAnLi9hdG9tcy9ndi1pY29uJztcbmV4cG9ydCB7IEd2SW1hZ2UgfSBmcm9tICcuL2F0b21zL2d2LWltYWdlJztcbmV4cG9ydCB7IEd2SW5wdXRNZXNzYWdlIH0gZnJvbSAnLi9hdG9tcy9ndi1pbnB1dC1tZXNzYWdlJztcbmV4cG9ydCB7IEd2SW5wdXQgfSBmcm9tICcuL2F0b21zL2d2LWlucHV0JztcbmV4cG9ydCB7IEd2TGluayB9IGZyb20gJy4vYXRvbXMvZ3YtbGluayc7XG5leHBvcnQgeyBHdk1lc3NhZ2UgfSBmcm9tICcuL2F0b21zL2d2LW1lc3NhZ2UnO1xuZXhwb3J0IHsgR3ZNZXRyaWMgfSBmcm9tICcuL2F0b21zL2d2LW1ldHJpYyc7XG5leHBvcnQgeyBHdlJlbGF0aXZlVGltZSB9IGZyb20gJy4vYXRvbXMvZ3YtcmVsYXRpdmUtdGltZSc7XG5leHBvcnQgeyBHdlNlbGVjdE5hdGl2ZSB9IGZyb20gJy4vYXRvbXMvZ3Ytc2VsZWN0LW5hdGl2ZSc7XG5leHBvcnQgeyBHdlNlbGVjdCB9IGZyb20gJy4vYXRvbXMvZ3Ytc2VsZWN0JztcbmV4cG9ydCB7IEd2U3Bpbm5lciB9IGZyb20gJy4vYXRvbXMvZ3Ytc3Bpbm5lcic7XG5leHBvcnQgeyBHdlN0YXRlIH0gZnJvbSAnLi9hdG9tcy9ndi1zdGF0ZSc7XG5leHBvcnQgeyBHdlN3aXRjaCB9IGZyb20gJy4vYXRvbXMvZ3Ytc3dpdGNoJztcbmV4cG9ydCB7IEd2VGFnIH0gZnJvbSAnLi9hdG9tcy9ndi10YWcnO1xuZXhwb3J0IHsgR3ZUZXh0IH0gZnJvbSAnLi9hdG9tcy9ndi10ZXh0JztcbmV4cG9ydCB7IEd2Q2hhcnRCYXIgfSBmcm9tICcuL2NoYXJ0cy9ndi1jaGFydC1iYXInO1xuZXhwb3J0IHsgR3ZDaGFydEdhdWdlIH0gZnJvbSAnLi9jaGFydHMvZ3YtY2hhcnQtZ2F1Z2UnO1xuZXhwb3J0IHsgR3ZDaGFydEhpc3RvZ3JhbSB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LWhpc3RvZ3JhbSc7XG5leHBvcnQgeyBHdkNoYXJ0TGluZSB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LWxpbmUnO1xuZXhwb3J0IHsgR3ZDaGFydE1hcCB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LW1hcCc7XG5leHBvcnQgeyBHdkNoYXJ0UGllIH0gZnJvbSAnLi9jaGFydHMvZ3YtY2hhcnQtcGllJztcbmV4cG9ydCB7IEd2Q2FyZEZ1bGwgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jYXJkLWZ1bGwnO1xuZXhwb3J0IHsgR3ZDYXJkTGlzdCB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWNhcmQtbGlzdCc7XG5leHBvcnQgeyBHdkNhcmQgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jYXJkJztcbmV4cG9ydCB7IEd2Q2F0ZWdvcnlMaXN0IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY2F0ZWdvcnktbGlzdCc7XG5leHBvcnQgeyBHdkNhdGVnb3J5IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY2F0ZWdvcnknO1xuZXhwb3J0IHsgR3ZDb2RlSGludCB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWNvZGUtaGludCc7XG5leHBvcnQgeyBHdkNvZGUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jb2RlJztcbmV4cG9ydCB7IEd2Q29uZmlybSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWNvbmZpcm0nO1xuZXhwb3J0IHsgR3ZDcm9uRWRpdG9yIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY3Jvbi1lZGl0b3InO1xuZXhwb3J0IHsgR3ZEcm9wZG93bk1lbnUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1kcm9wZG93bi1tZW51JztcbmV4cG9ydCB7IEd2RXhwYW5kYWJsZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWV4cGFuZGFibGUnO1xuZXhwb3J0IHsgR3ZFeHByZXNzaW9uTGFuZ3VhZ2UgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1leHByZXNzaW9uLWxhbmd1YWdlJztcbmV4cG9ydCB7IEd2SWRlbnRpdHlQaWN0dXJlIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtaWRlbnRpdHktcGljdHVyZSc7XG5leHBvcnQgeyBHdkxpc3QgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1saXN0JztcbmV4cG9ydCB7IEd2TWV0cmljcyB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LW1ldHJpY3MnO1xuZXhwb3J0IHsgR3ZNb2RhbCB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LW1vZGFsJztcbmV4cG9ydCB7IEd2TmF2IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtbmF2JztcbmV4cG9ydCB7IEd2T3B0aW9uIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3Ytb3B0aW9uJztcbmV4cG9ydCB7IEd2UGxhbnMgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1wbGFucyc7XG5leHBvcnQgeyBHdlBvcG92ZXIgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1wb3BvdmVyJztcbmV4cG9ydCB7IEd2UHJvbW90ZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXByb21vdGUnO1xuZXhwb3J0IHsgR3ZSYXRpbmdMaXN0IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtcmF0aW5nLWxpc3QnO1xuZXhwb3J0IHsgR3ZSYXRpbmcgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1yYXRpbmcnO1xuZXhwb3J0IHsgR3ZSb3dFeHBhbmRhYmxlIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3Ytcm93LWV4cGFuZGFibGUnO1xuZXhwb3J0IHsgR3ZSb3cgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1yb3cnO1xuZXhwb3J0IHsgR3ZTdGF0cyB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXN0YXRzJztcbmV4cG9ydCB7IEd2U3RlcHBlciB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXN0ZXBwZXInO1xuZXhwb3J0IHsgR3ZUYWJsZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXRhYmxlJztcbmV4cG9ydCB7IEd2VHJlZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXRyZWUnO1xuZXhwb3J0IHsgR3ZEb2N1bWVudGF0aW9uIH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtZG9jdW1lbnRhdGlvbic7XG5leHBvcnQgeyBHdkhlYWRlciB9IGZyb20gJy4vb3JnYW5pc21zL2d2LWhlYWRlcic7XG5leHBvcnQgeyBHdkh0dHBDbGllbnQgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1odHRwLWNsaWVudCc7XG5leHBvcnQgeyBHdk1lbnUgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1tZW51JztcbmV4cG9ydCB7IEd2TmV3c2xldHRlclN1YnNjcmlwdGlvbiB9IGZyb20gJy4vb3JnYW5pc21zL2d2LW5ld3NsZXR0ZXItc3Vic2NyaXB0aW9uJztcbmV4cG9ydCB7IEd2UGFnaW5hdGlvbiB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXBhZ2luYXRpb24nO1xuZXhwb3J0IHsgR3ZQcm9wZXJ0aWVzIH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtcHJvcGVydGllcyc7XG5leHBvcnQgeyBHdlJlc2l6YWJsZVZpZXdzIH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtcmVzaXphYmxlLXZpZXdzJztcbmV4cG9ydCB7IEd2UmVzb3VyY2VzIH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtcmVzb3VyY2VzJztcbmV4cG9ydCB7IEd2U2NoZW1hRm9ybUFycmF5IH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3Ytc2NoZW1hLWZvcm0tYXJyYXknO1xuZXhwb3J0IHsgR3ZTY2hlbWFGb3JtQ29udHJvbE9iamVjdCB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JztcbmV4cG9ydCB7IEd2U2NoZW1hRm9ybUNvbnRyb2wgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sJztcbmV4cG9ydCB7IEd2U2NoZW1hRm9ybSB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXNjaGVtYS1mb3JtJztcbmV4cG9ydCB7IEd2VGFicyB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXRhYnMnO1xuZXhwb3J0IHsgR3ZVc2VyTWVudSB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXVzZXItbWVudSc7XG5leHBvcnQgeyBHdlZlcnRpY2FsTWVudSB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXZlcnRpY2FsLW1lbnUnO1xuZXhwb3J0IHsgR3ZGbG93U3RlcCB9IGZyb20gJy4vcG9saWN5LXN0dWRpby9ndi1mbG93LXN0ZXAnO1xuZXhwb3J0IHsgR3ZGbG93IH0gZnJvbSAnLi9wb2xpY3ktc3R1ZGlvL2d2LWZsb3cnO1xuZXhwb3J0IHsgR3ZQb2xpY3lTdHVkaW9NZW51IH0gZnJvbSAnLi9wb2xpY3ktc3R1ZGlvL2d2LXBvbGljeS1zdHVkaW8tbWVudSc7XG5leHBvcnQgeyBHdlBvbGljeVN0dWRpbyB9IGZyb20gJy4vcG9saWN5LXN0dWRpby9ndi1wb2xpY3ktc3R1ZGlvJztcbmV4cG9ydCB7IEd2VGhlbWUgfSBmcm9tICcuL3RoZW1lL2d2LXRoZW1lJztcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2luZGV4LmpzIl0sIm5hbWVzIjpbIkd2QXV0b2NvbXBsZXRlIiwiR3ZCdXR0b24iLCJHdkNoZWNrYm94IiwiR3ZEYXRlUGlja2VyQ2FsZW5kYXIiLCJHdkRhdGVQaWNrZXJDZWxsIiwiR3ZEYXRlUGlja2VyIiwiR3ZGaWxlVXBsb2FkIiwiR3ZJY29uIiwiR3ZJbWFnZSIsIkd2SW5wdXRNZXNzYWdlIiwiR3ZJbnB1dCIsIkd2TGluayIsIkd2TWVzc2FnZSIsIkd2TWV0cmljIiwiR3ZSZWxhdGl2ZVRpbWUiLCJHdlNlbGVjdE5hdGl2ZSIsIkd2U2VsZWN0IiwiR3ZTcGlubmVyIiwiR3ZTdGF0ZSIsIkd2U3dpdGNoIiwiR3ZUYWciLCJHdlRleHQiLCJHdkNoYXJ0QmFyIiwiR3ZDaGFydEdhdWdlIiwiR3ZDaGFydEhpc3RvZ3JhbSIsIkd2Q2hhcnRMaW5lIiwiR3ZDaGFydE1hcCIsIkd2Q2hhcnRQaWUiLCJHdkNhcmRGdWxsIiwiR3ZDYXJkTGlzdCIsIkd2Q2FyZCIsIkd2Q2F0ZWdvcnlMaXN0IiwiR3ZDYXRlZ29yeSIsIkd2Q29kZSIsIkd2Q29uZmlybSIsIkd2Q3JvbkVkaXRvciIsIkd2RHJvcGRvd25NZW51IiwiR3ZFeHBhbmRhYmxlIiwiR3ZFeHByZXNzaW9uTGFuZ3VhZ2UiLCJHdklkZW50aXR5UGljdHVyZSIsIkd2TGlzdCIsIkd2TWV0cmljcyIsIkd2TW9kYWwiLCJHdk5hdiIsIkd2T3B0aW9uIiwiR3ZQbGFucyIsIkd2UG9wb3ZlciIsIkd2UHJvbW90ZSIsIkd2UmF0aW5nTGlzdCIsIkd2UmF0aW5nIiwiR3ZSb3dFeHBhbmRhYmxlIiwiR3ZSb3ciLCJHdlN0YXRzIiwiR3ZTdGVwcGVyIiwiR3ZUYWJsZSIsIkd2VHJlZSIsIkd2RG9jdW1lbnRhdGlvbiIsIkd2SGVhZGVyIiwiR3ZIdHRwQ2xpZW50IiwiR3ZNZW51IiwiR3ZOZXdzbGV0dGVyU3Vic2NyaXB0aW9uIiwiR3ZQYWdpbmF0aW9uIiwiR3ZQcm9wZXJ0aWVzIiwiR3ZSZXNpemFibGVWaWV3cyIsIkd2UmVzb3VyY2VzIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJHdlNjaGVtYUZvcm1Db250cm9sT2JqZWN0IiwiR3ZTY2hlbWFGb3JtQ29udHJvbCIsIkd2U2NoZW1hRm9ybSIsIkd2VGFicyIsIkd2VXNlck1lbnUiLCJHdlZlcnRpY2FsTWVudSIsIkd2Rmxvd1N0ZXAiLCJHdkZsb3ciLCJHdlBvbGljeVN0dWRpb01lbnUiLCJHdlBvbGljeVN0dWRpbyIsIkd2VGhlbWUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGNBQVQsUUFBK0IseUJBQS9CO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QixtQkFBekI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLHFCQUEzQjtBQUNBLFNBQVNDLG9CQUFULFFBQXFDLGlDQUFyQztBQUNBLFNBQVNDLGdCQUFULFFBQWlDLDZCQUFqQztBQUNBLFNBQVNDLFlBQVQsUUFBNkIsd0JBQTdCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix3QkFBN0I7QUFDQSxTQUFTQyxNQUFULFFBQXVCLGlCQUF2QjtBQUNBLFNBQVNDLE9BQVQsUUFBd0Isa0JBQXhCO0FBQ0EsU0FBU0MsY0FBVCxRQUErQiwwQkFBL0I7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGtCQUF4QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIsaUJBQXZCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixvQkFBMUI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG1CQUF6QjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsMEJBQS9CO0FBQ0EsU0FBU0MsY0FBVCxRQUErQiwwQkFBL0I7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG1CQUF6QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsb0JBQTFCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixrQkFBeEI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG1CQUF6QjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsZ0JBQXRCO0FBQ0EsU0FBU0MsTUFBVCxRQUF1QixpQkFBdkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLHVCQUEzQjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIseUJBQTdCO0FBQ0EsU0FBU0MsZ0JBQVQsUUFBaUMsNkJBQWpDO0FBQ0EsU0FBU0MsV0FBVCxRQUE0Qix3QkFBNUI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLHVCQUEzQjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsdUJBQTNCO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQiwwQkFBM0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLDBCQUEzQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIscUJBQXZCO0FBQ0EsU0FBU0MsY0FBVCxRQUErQiw4QkFBL0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLHlCQUEzQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIscUJBQXZCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQix3QkFBMUI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDRCQUE3QjtBQUNBLFNBQVNDLGNBQVQsUUFBK0IsOEJBQS9CO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QiwyQkFBN0I7QUFDQSxTQUFTQyxvQkFBVCxRQUFxQyxvQ0FBckM7QUFDQSxTQUFTQyxpQkFBVCxRQUFrQyxpQ0FBbEM7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLG9CQUF0QjtBQUNBLFNBQVNDLFFBQVQsUUFBeUIsdUJBQXpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxTQUFULFFBQTBCLHdCQUExQjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qiw0QkFBN0I7QUFDQSxTQUFTQyxRQUFULFFBQXlCLHVCQUF6QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsK0JBQWhDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixvQkFBdEI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLHNCQUF4QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsd0JBQTFCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixzQkFBeEI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLGVBQVQsUUFBZ0MsOEJBQWhDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5Qix1QkFBekI7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDRCQUE3QjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIscUJBQXZCO0FBQ0EsU0FBU0Msd0JBQVQsUUFBeUMsd0NBQXpDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2QiwyQkFBN0I7QUFDQSxTQUFTQyxZQUFULFFBQTZCLDJCQUE3QjtBQUNBLFNBQVNDLGdCQUFULFFBQWlDLGdDQUFqQztBQUNBLFNBQVNDLFdBQVQsUUFBNEIsMEJBQTVCO0FBQ0EsU0FBU0MsaUJBQVQsUUFBa0Msa0NBQWxDO0FBQ0EsU0FBU0MseUJBQVQsUUFBMEMsMkNBQTFDO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0Msb0NBQXBDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qiw0QkFBN0I7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHFCQUF2QjtBQUNBLFNBQVNDLFVBQVQsUUFBMkIsMEJBQTNCO0FBQ0EsU0FBU0MsY0FBVCxRQUErQiw4QkFBL0I7QUFDQSxTQUFTQyxVQUFULFFBQTJCLDhCQUEzQjtBQUNBLFNBQVNDLE1BQVQsUUFBdUIseUJBQXZCO0FBQ0EsU0FBU0Msa0JBQVQsUUFBbUMsdUNBQW5DO0FBQ0EsU0FBU0MsY0FBVCxRQUErQixrQ0FBL0I7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGtCQUF4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEd2QXV0b2NvbXBsZXRlIH0gZnJvbSAnLi9hdG9tcy9ndi1hdXRvY29tcGxldGUnO1xuZXhwb3J0IHsgR3ZCdXR0b24gfSBmcm9tICcuL2F0b21zL2d2LWJ1dHRvbic7XG5leHBvcnQgeyBHdkNoZWNrYm94IH0gZnJvbSAnLi9hdG9tcy9ndi1jaGVja2JveCc7XG5leHBvcnQgeyBHdkRhdGVQaWNrZXJDYWxlbmRhciB9IGZyb20gJy4vYXRvbXMvZ3YtZGF0ZS1waWNrZXItY2FsZW5kYXInO1xuZXhwb3J0IHsgR3ZEYXRlUGlja2VyQ2VsbCB9IGZyb20gJy4vYXRvbXMvZ3YtZGF0ZS1waWNrZXItY2VsbCc7XG5leHBvcnQgeyBHdkRhdGVQaWNrZXIgfSBmcm9tICcuL2F0b21zL2d2LWRhdGUtcGlja2VyJztcbmV4cG9ydCB7IEd2RmlsZVVwbG9hZCB9IGZyb20gJy4vYXRvbXMvZ3YtZmlsZS11cGxvYWQnO1xuZXhwb3J0IHsgR3ZJY29uIH0gZnJvbSAnLi9hdG9tcy9ndi1pY29uJztcbmV4cG9ydCB7IEd2SW1hZ2UgfSBmcm9tICcuL2F0b21zL2d2LWltYWdlJztcbmV4cG9ydCB7IEd2SW5wdXRNZXNzYWdlIH0gZnJvbSAnLi9hdG9tcy9ndi1pbnB1dC1tZXNzYWdlJztcbmV4cG9ydCB7IEd2SW5wdXQgfSBmcm9tICcuL2F0b21zL2d2LWlucHV0JztcbmV4cG9ydCB7IEd2TGluayB9IGZyb20gJy4vYXRvbXMvZ3YtbGluayc7XG5leHBvcnQgeyBHdk1lc3NhZ2UgfSBmcm9tICcuL2F0b21zL2d2LW1lc3NhZ2UnO1xuZXhwb3J0IHsgR3ZNZXRyaWMgfSBmcm9tICcuL2F0b21zL2d2LW1ldHJpYyc7XG5leHBvcnQgeyBHdlJlbGF0aXZlVGltZSB9IGZyb20gJy4vYXRvbXMvZ3YtcmVsYXRpdmUtdGltZSc7XG5leHBvcnQgeyBHdlNlbGVjdE5hdGl2ZSB9IGZyb20gJy4vYXRvbXMvZ3Ytc2VsZWN0LW5hdGl2ZSc7XG5leHBvcnQgeyBHdlNlbGVjdCB9IGZyb20gJy4vYXRvbXMvZ3Ytc2VsZWN0JztcbmV4cG9ydCB7IEd2U3Bpbm5lciB9IGZyb20gJy4vYXRvbXMvZ3Ytc3Bpbm5lcic7XG5leHBvcnQgeyBHdlN0YXRlIH0gZnJvbSAnLi9hdG9tcy9ndi1zdGF0ZSc7XG5leHBvcnQgeyBHdlN3aXRjaCB9IGZyb20gJy4vYXRvbXMvZ3Ytc3dpdGNoJztcbmV4cG9ydCB7IEd2VGFnIH0gZnJvbSAnLi9hdG9tcy9ndi10YWcnO1xuZXhwb3J0IHsgR3ZUZXh0IH0gZnJvbSAnLi9hdG9tcy9ndi10ZXh0JztcbmV4cG9ydCB7IEd2Q2hhcnRCYXIgfSBmcm9tICcuL2NoYXJ0cy9ndi1jaGFydC1iYXInO1xuZXhwb3J0IHsgR3ZDaGFydEdhdWdlIH0gZnJvbSAnLi9jaGFydHMvZ3YtY2hhcnQtZ2F1Z2UnO1xuZXhwb3J0IHsgR3ZDaGFydEhpc3RvZ3JhbSB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LWhpc3RvZ3JhbSc7XG5leHBvcnQgeyBHdkNoYXJ0TGluZSB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LWxpbmUnO1xuZXhwb3J0IHsgR3ZDaGFydE1hcCB9IGZyb20gJy4vY2hhcnRzL2d2LWNoYXJ0LW1hcCc7XG5leHBvcnQgeyBHdkNoYXJ0UGllIH0gZnJvbSAnLi9jaGFydHMvZ3YtY2hhcnQtcGllJztcbmV4cG9ydCB7IEd2Q2FyZEZ1bGwgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jYXJkLWZ1bGwnO1xuZXhwb3J0IHsgR3ZDYXJkTGlzdCB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWNhcmQtbGlzdCc7XG5leHBvcnQgeyBHdkNhcmQgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jYXJkJztcbmV4cG9ydCB7IEd2Q2F0ZWdvcnlMaXN0IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY2F0ZWdvcnktbGlzdCc7XG5leHBvcnQgeyBHdkNhdGVnb3J5IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY2F0ZWdvcnknO1xuZXhwb3J0IHsgR3ZDb2RlIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtY29kZSc7XG5leHBvcnQgeyBHdkNvbmZpcm0gfSBmcm9tICcuL21vbGVjdWxlcy9ndi1jb25maXJtJztcbmV4cG9ydCB7IEd2Q3JvbkVkaXRvciB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWNyb24tZWRpdG9yJztcbmV4cG9ydCB7IEd2RHJvcGRvd25NZW51IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtZHJvcGRvd24tbWVudSc7XG5leHBvcnQgeyBHdkV4cGFuZGFibGUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1leHBhbmRhYmxlJztcbmV4cG9ydCB7IEd2RXhwcmVzc2lvbkxhbmd1YWdlIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtZXhwcmVzc2lvbi1sYW5ndWFnZSc7XG5leHBvcnQgeyBHdklkZW50aXR5UGljdHVyZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LWlkZW50aXR5LXBpY3R1cmUnO1xuZXhwb3J0IHsgR3ZMaXN0IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtbGlzdCc7XG5leHBvcnQgeyBHdk1ldHJpY3MgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1tZXRyaWNzJztcbmV4cG9ydCB7IEd2TW9kYWwgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1tb2RhbCc7XG5leHBvcnQgeyBHdk5hdiB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LW5hdic7XG5leHBvcnQgeyBHdk9wdGlvbiB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LW9wdGlvbic7XG5leHBvcnQgeyBHdlBsYW5zIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtcGxhbnMnO1xuZXhwb3J0IHsgR3ZQb3BvdmVyIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtcG9wb3Zlcic7XG5leHBvcnQgeyBHdlByb21vdGUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1wcm9tb3RlJztcbmV4cG9ydCB7IEd2UmF0aW5nTGlzdCB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXJhdGluZy1saXN0JztcbmV4cG9ydCB7IEd2UmF0aW5nIH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3YtcmF0aW5nJztcbmV4cG9ydCB7IEd2Um93RXhwYW5kYWJsZSB9IGZyb20gJy4vbW9sZWN1bGVzL2d2LXJvdy1leHBhbmRhYmxlJztcbmV4cG9ydCB7IEd2Um93IH0gZnJvbSAnLi9tb2xlY3VsZXMvZ3Ytcm93JztcbmV4cG9ydCB7IEd2U3RhdHMgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1zdGF0cyc7XG5leHBvcnQgeyBHdlN0ZXBwZXIgfSBmcm9tICcuL21vbGVjdWxlcy9ndi1zdGVwcGVyJztcbmV4cG9ydCB7IEd2VGFibGUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi10YWJsZSc7XG5leHBvcnQgeyBHdlRyZWUgfSBmcm9tICcuL21vbGVjdWxlcy9ndi10cmVlJztcbmV4cG9ydCB7IEd2RG9jdW1lbnRhdGlvbiB9IGZyb20gJy4vb3JnYW5pc21zL2d2LWRvY3VtZW50YXRpb24nO1xuZXhwb3J0IHsgR3ZIZWFkZXIgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1oZWFkZXInO1xuZXhwb3J0IHsgR3ZIdHRwQ2xpZW50IH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtaHR0cC1jbGllbnQnO1xuZXhwb3J0IHsgR3ZNZW51IH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3YtbWVudSc7XG5leHBvcnQgeyBHdk5ld3NsZXR0ZXJTdWJzY3JpcHRpb24gfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1uZXdzbGV0dGVyLXN1YnNjcmlwdGlvbic7XG5leHBvcnQgeyBHdlBhZ2luYXRpb24gfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1wYWdpbmF0aW9uJztcbmV4cG9ydCB7IEd2UHJvcGVydGllcyB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXByb3BlcnRpZXMnO1xuZXhwb3J0IHsgR3ZSZXNpemFibGVWaWV3cyB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXJlc2l6YWJsZS12aWV3cyc7XG5leHBvcnQgeyBHdlJlc291cmNlcyB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXJlc291cmNlcyc7XG5leHBvcnQgeyBHdlNjaGVtYUZvcm1BcnJheSB9IGZyb20gJy4vb3JnYW5pc21zL2d2LXNjaGVtYS1mb3JtLWFycmF5JztcbmV4cG9ydCB7IEd2U2NoZW1hRm9ybUNvbnRyb2xPYmplY3QgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCc7XG5leHBvcnQgeyBHdlNjaGVtYUZvcm1Db250cm9sIH0gZnJvbSAnLi9vcmdhbmlzbXMvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCc7XG5leHBvcnQgeyBHdlNjaGVtYUZvcm0gfSBmcm9tICcuL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybSc7XG5leHBvcnQgeyBHdlRhYnMgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi10YWJzJztcbmV4cG9ydCB7IEd2VXNlck1lbnUgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi11c2VyLW1lbnUnO1xuZXhwb3J0IHsgR3ZWZXJ0aWNhbE1lbnUgfSBmcm9tICcuL29yZ2FuaXNtcy9ndi12ZXJ0aWNhbC1tZW51JztcbmV4cG9ydCB7IEd2Rmxvd1N0ZXAgfSBmcm9tICcuL3BvbGljeS1zdHVkaW8vZ3YtZmxvdy1zdGVwJztcbmV4cG9ydCB7IEd2RmxvdyB9IGZyb20gJy4vcG9saWN5LXN0dWRpby9ndi1mbG93JztcbmV4cG9ydCB7IEd2UG9saWN5U3R1ZGlvTWVudSB9IGZyb20gJy4vcG9saWN5LXN0dWRpby9ndi1wb2xpY3ktc3R1ZGlvLW1lbnUnO1xuZXhwb3J0IHsgR3ZQb2xpY3lTdHVkaW8gfSBmcm9tICcuL3BvbGljeS1zdHVkaW8vZ3YtcG9saWN5LXN0dWRpbyc7XG5leHBvcnQgeyBHdlRoZW1lIH0gZnJvbSAnLi90aGVtZS9ndi10aGVtZSc7XG4iXX0=
@@ -71,7 +71,7 @@ export function InputElement(ParentClass) {
71
71
 
72
72
  static get styles() {
73
73
  return [// language=CSS
74
- css`:host{box-sizing:border-box;margin:.2rem;display:block}:host([invalid]) :not(.clipboard) .box-icon-left,:host([invalid]) :not(.clipboard) ::slotted(.input),:host([invalid]) :not(.clipboard) input,:host([invalid]) :not(.clipboard) select,:host([invalid]) :not(.clipboard) textarea{box-shadow:inset 3px 0 0 var(--gv-input-invalid--bxshc,var(--gv-theme-color-error,#da1a1b))}:host([readonly]) .textarea :host([readonly]) :not(.clipboard) select,:host([readonly]) :not(.clipboard) ::slotted(.input),:host([readonly]) :not(.clipboard) input{border-left:1px solid var(--gv-input--bdc,var(--gv-theme-neutral-color-dark,#d9d9d9))}:host([readonly]) input::placeholder{color:transparent}`];
74
+ css`:host{box-sizing:border-box;margin:.2rem;display:block}:host([invalid]) :not(.clipboard) .box-icon-left,:host([invalid]) :not(.clipboard) .input,:host([invalid]) :not(.clipboard) ::slotted(.input),:host([invalid]) :not(.clipboard) input,:host([invalid]) :not(.clipboard) select,:host([invalid]) :not(.clipboard) textarea{box-shadow:inset 3px 0 0 var(--gv-input-invalid--bxshc,var(--gv-theme-color-error,#da1a1b))}:host([readonly]) .input,:host([readonly]) .textarea,:host([readonly]) :not(.clipboard) ::slotted(.input),:host([readonly]) :not(.clipboard) input,:host([readonly]) :not(.clipboard) select{border-left:1px solid var(--gv-input--bdc,var(--gv-theme-neutral-color-dark,#d9d9d9))}:host([readonly]) input::placeholder{color:transparent}`];
75
75
  }
76
76
 
77
77
  constructor() {
@@ -92,7 +92,7 @@ export function InputElement(ParentClass) {
92
92
  setValidity(isInvalid = false, violation = '') {
93
93
  const element = this.getInputElement();
94
94
 
95
- if (element) {
95
+ if (element && element.setCustomValidity) {
96
96
  if (isInvalid) {
97
97
  if (violation == null || violation.trim() === '') {
98
98
  violation = 'field is not valid';
@@ -102,6 +102,8 @@ export function InputElement(ParentClass) {
102
102
  } else {
103
103
  element.setCustomValidity('');
104
104
  }
105
+
106
+ element.reportValidity();
105
107
  }
106
108
 
107
109
  this.invalid = isInvalid;
@@ -152,4 +154,4 @@ export function InputElement(ParentClass) {
152
154
 
153
155
  };
154
156
  }
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy9pbnB1dC1lbGVtZW50LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJJbnB1dEVsZW1lbnQiLCJQYXJlbnRDbGFzcyIsInByb3BlcnRpZXMiLCJkaXNhYmxlZCIsInR5cGUiLCJCb29sZWFuIiwicmVmbGVjdCIsInJlcXVpcmVkIiwicmVhZG9ubHkiLCJza2VsZXRvbiIsInZhbHVlIiwiU3RyaW5nIiwibGFiZWwiLCJ0aXRsZSIsIm5hbWUiLCJwbGFjZWhvbGRlciIsImRlc2NyaXB0aW9uIiwiYXV0b2ZvY3VzIiwiaW52YWxpZCIsInZhbGlkIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfaWQiLCJEYXRlIiwiZ2V0VGltZSIsInVwZGF0ZVN0YXRlIiwic2V0VmFsaWRpdHkiLCJsZW5ndGgiLCJ0cmltIiwiaXNJbnZhbGlkIiwidmlvbGF0aW9uIiwiZWxlbWVudCIsImdldElucHV0RWxlbWVudCIsInNldEN1c3RvbVZhbGlkaXR5IiwiZmlyc3RVcGRhdGVkIiwiaW5wdXQiLCJmb2N1cyIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwib2Zmc2V0SGVpZ2h0IiwicmVuZGVyTGFiZWwiLCJpZCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsR0FBVCxFQUFjQyxJQUFkLFFBQTBCLEtBQTFCO0FBRUEsT0FBTyxTQUFTQyxZQUFULENBQXNCQyxXQUF0QixFQUFtQztBQUN4QztBQUNGO0FBQ0E7QUFDRSxTQUFPLGNBQWNBLFdBQWQsQ0FBMEI7QUFDVixlQUFWQyxVQUFVLEdBQUc7QUFDdEIsYUFBTztBQUNMQyxRQUFBQSxRQUFRLEVBQUU7QUFBRUMsVUFBQUEsSUFBSSxFQUFF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MDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sIH0gZnJvbSAnbGl0JztcblxuZXhwb3J0IGZ1bmN0aW9uIElucHV0RWxlbWVudChQYXJlbnRDbGFzcykge1xuICAvKipcbiAgICogQG1peGluQ2xhc3NcbiAgICovXG4gIHJldHVybiBjbGFzcyBleHRlbmRzIFBhcmVudENsYXNzIHtcbiAgICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICAgIHJlcXVpcmVkOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgIG5hbWU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgIHBsYWNlaG9sZGVyOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgICAgYXV0b2ZvY3VzOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgICAgaW52YWxpZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICAgIHZhbGlkOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgICAgY3NzYFxuICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIDpob3N0KFtpbnZhbGlkXSkgOm5vdCguY2xpcGJvYXJkKSBpbnB1dCxcbiAgICAgICAgICA6aG9zdChbaW52YWxpZF0pIDpub3QoLmNsaXBib2FyZCkgOjpzbG90dGVkKC5pbnB1dCksXG4gICAgICAgICAgOmhvc3QoW2ludmFsaWRdKSA6bm90KC5jbGlwYm9hcmQpIC5ib3gtaWNvbi1sZWZ0LFxuICAgICAgICAgIDpob3N0KFtpbnZhbGlkXSkgOm5vdCguY2xpcGJvYXJkKSB0ZXh0YXJlYSxcbiAgICAgICAgICA6aG9zdChbaW52YWxpZF0pIDpub3QoLmNsaXBib2FyZCkgc2VsZWN0IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tZ3YtaW5wdXQtaW52YWxpZC0tYnhzaGMsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLCAjZGExYTFiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgOmhvc3QoW3JlYWRvbmx5XSkgOm5vdCguY2xpcGJvYXJkKSBpbnB1dCxcbiAgICAgICAgICA6aG9zdChbcmVhZG9ubHldKSA6bm90KC5jbGlwYm9hcmQpIDo6c2xvdHRlZCguaW5wdXQpLFxuICAgICAgICAgIDpob3N0KFtyZWFkb25seV0pIC50ZXh0YXJlYSA6aG9zdChbcmVhZG9ubHldKSA6bm90KC5jbGlwYm9hcmQpIHNlbGVjdCB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWd2LWlucHV0LS1iZGMsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItZGFyaywgI2Q5ZDlkOSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIDpob3N0KFtyZWFkb25seV0pIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICBgLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLl9pZCA9IGBndi1pbnB1dC0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XG4gICAgICB0aGlzLnZhbGlkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW52YWxpZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHZhbHVlID09IG51bGwgfHwgdmFsdWUubGVuZ3RoID09PSAwIHx8ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpLCAnZmllbGQgaXMgcmVxdWlyZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZGl0eShpc0ludmFsaWQgPSBmYWxzZSwgdmlvbGF0aW9uID0gJycpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmdldElucHV0RWxlbWVudCgpO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGlzSW52YWxpZCkge1xuICAgICAgICAgIGlmICh2aW9sYXRpb24gPT0gbnVsbCB8fCB2aW9sYXRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgdmlvbGF0aW9uID0gJ2ZpZWxkIGlzIG5vdCB2YWxpZCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkodmlvbGF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KCcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5pbnZhbGlkID0gaXNJbnZhbGlkO1xuICAgICAgdGhpcy52YWxpZCA9ICF0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgZmlyc3RVcGRhdGVkKCkge1xuICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5nZXRJbnB1dEVsZW1lbnQoKTtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlU3RhdGUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGdldElucHV0RWxlbWVudCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QgPyB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG9mZnNldEhlaWdodCgpIHtcbiAgICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuZGVzY3JpcHRpb24nKTtcbiAgICAgICAgaWYgKGVsZW1lbnQgIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBzdXBlci5vZmZzZXRIZWlnaHQgLSBlbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN1cGVyLm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICByZW5kZXJMYWJlbCgpIHtcbiAgICAgIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICAgIHJldHVybiBodG1sYDxsYWJlbCBmb3I9JHt0aGlzLmlkfSB0aXRsZT1cIiR7dGhpcy5sYWJlbH1cIj4ke3RoaXMubGFiZWx9PC9sYWJlbD5gO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL21peGlucy9pbnB1dC1lbGVtZW50LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJJbnB1dEVsZW1lbnQiLCJQYXJlbnRDbGFzcyIsInByb3BlcnRpZXMiLCJkaXNhYmxlZCIsInR5cGUiLCJCb29sZWFuIiwicmVmbGVjdCIsInJlcXVpcmVkIiwicmVhZG9ubHkiLCJza2VsZXRvbiIsInZhbHVlIiwiU3RyaW5nIiwibGFiZWwiLCJ0aXRsZSIsIm5hbWUiLCJwbGFjZWhvbGRlciIsImRlc2NyaXB0aW9uIiwiYXV0b2ZvY3VzIiwiaW52YWxpZCIsInZhbGlkIiwic3R5bGVzIiwiY29uc3RydWN0b3IiLCJfaWQiLCJEYXRlIiwiZ2V0VGltZSIsInVwZGF0ZVN0YXRlIiwic2V0VmFsaWRpdHkiLCJsZW5ndGgiLCJ0cmltIiwiaXNJbnZhbGlkIiwidmlvbGF0aW9uIiwiZWxlbWVudCIsImdldElucHV0RWxlbWVudCIsInNldEN1c3RvbVZhbGlkaXR5IiwicmVwb3J0VmFsaWRpdHkiLCJmaXJzdFVwZGF0ZWQiLCJpbnB1dCIsImZvY3VzIiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJvZmZzZXRIZWlnaHQiLCJyZW5kZXJMYWJlbCIsImlkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsUUFBMEIsS0FBMUI7QUFFQSxPQUFPLFNBQVNDLFlBQVQsQ0FBc0JDLFdBQXRCLEVBQW1DO0FBQ3hDO0FBQ0Y7QUFDQTtBQUNFLFNBQU8sY0FBY0EsV0FBZCxDQUEwQjtBQUNWLGVBQVZDLFVBQVUsR0FBRztBQUN0QixhQUFPO0FBQ0xDLFFBQUFBLFFBQVEsRUFBRTtBQUFFQyxVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJDLFVBQUFBLE9BQU8sRUFBRTtBQUExQixTQURMO0FBRUxDLFFBQUFBLFFBQVEsRUFBRTtBQUFFSCxVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJDLFVBQUFBLE9BQU8sRUFBRTtBQUExQixTQUZMO0FBR0xFLFFBQUFBLFFBQVEsRUFBRTtBQUFFSixVQUFBQSxJQUFJLEVBQUVDLE9BQVI7QUFBaUJDLFVBQUFBLE9BQU8sRUFBRTtBQUExQixTQUhMO0FBSUxHLFFBQUFBLFFBQVEsRUFBRTtBQUFFTCxVQUFBQSxJQUFJLEVBQUVDO0FBQVIsU0FKTDtBQUtMSyxRQUFBQSxLQUFLLEVBQUU7QUFBRU4sVUFBQUEsSUFBSSxFQUFFTyxNQUFSO0FBQWdCTCxVQUFBQSxPQUFPLEVBQUU7QUFBekIsU0FMRjtBQU1MTSxRQUFBQSxLQUFLLEVBQUU7QUFBRVIsVUFBQUEsSUFBSSxFQUFFTztBQUFSLFNBTkY7QUFPTEUsUUFBQUEsS0FBSyxFQUFFO0FBQUVULFVBQUFBLElBQUksRUFBRU87QUFBUixTQVBGO0FBUUxHLFFBQUFBLElBQUksRUFBRTtBQUFFVixVQUFBQSxJQUFJLEVBQUVPO0FBQVIsU0FSRDtBQVNMSSxRQUFBQSxXQUFXLEVBQUU7QUFBRVgsVUFBQUEsSUFBSSxFQUFFTztBQUFSLFNBVFI7QUFVTEssUUFBQUEsV0FBVyxFQUFFO0FBQUVaLFVBQUFBLElBQUksRUFBRU87QUFBUixTQVZSO0FBV0xNLFFBQUFBLFNBQVMsRUFBRTtBQUFFYixVQUFBQSxJQUFJLEVBQUVDO0FBQVIsU0FYTjtBQVlMYSxRQUFBQSxPQUFPLEVBQUU7QUFBRWQsVUFBQUEsSUFBSSxFQUFFQyxPQUFSO0FBQWlCQyxVQUFBQSxPQUFPLEVBQUU7QUFBMUIsU0FaSjtBQWFMYSxRQUFBQSxLQUFLLEVBQUU7QUFBRWYsVUFBQUEsSUFBSSxFQUFFQyxPQUFSO0FBQWlCQyxVQUFBQSxPQUFPLEVBQUU7QUFBMUI7QUFiRixPQUFQO0FBZUQ7O0FBRWdCLGVBQU5jLE1BQU0sR0FBRztBQUNsQixhQUFPLENBQ0w7QUFDQXRCLE1BQUFBLEdBQUcseXVCQUZFLENBQVA7QUErQkQ7O0FBRUR1QixJQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFdBQUtDLEdBQUwsR0FBWSxZQUFXLElBQUlDLElBQUosR0FBV0MsT0FBWCxFQUFxQixFQUE1QztBQUNBLFdBQUtMLEtBQUwsR0FBYSxJQUFiO0FBQ0EsV0FBS0QsT0FBTCxHQUFlLEtBQWY7QUFDRDs7QUFFRE8sSUFBQUEsV0FBVyxDQUFDZixLQUFELEVBQVE7QUFDakIsVUFBSSxLQUFLSCxRQUFMLElBQWlCLENBQUMsS0FBS0MsUUFBM0IsRUFBcUM7QUFDbkMsYUFBS2tCLFdBQUwsQ0FBaUJoQixLQUFLLElBQUksSUFBVCxJQUFpQkEsS0FBSyxDQUFDaUIsTUFBTixLQUFpQixDQUFsQyxJQUF3QyxPQUFPakIsS0FBUCxLQUFpQixRQUFqQixJQUE2QkEsS0FBSyxDQUFDa0IsSUFBTixPQUFpQixFQUF2RyxFQUE0RyxtQkFBNUc7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLRixXQUFMO0FBQ0Q7QUFDRjs7QUFFREEsSUFBQUEsV0FBVyxDQUFDRyxTQUFTLEdBQUcsS0FBYixFQUFvQkMsU0FBUyxHQUFHLEVBQWhDLEVBQW9DO0FBQzdDLFlBQU1DLE9BQU8sR0FBRyxLQUFLQyxlQUFMLEVBQWhCOztBQUNBLFVBQUlELE9BQU8sSUFBSUEsT0FBTyxDQUFDRSxpQkFBdkIsRUFBMEM7QUFDeEMsWUFBSUosU0FBSixFQUFlO0FBQ2IsY0FBSUMsU0FBUyxJQUFJLElBQWIsSUFBcUJBLFNBQVMsQ0FBQ0YsSUFBVixPQUFxQixFQUE5QyxFQUFrRDtBQUNoREUsWUFBQUEsU0FBUyxHQUFHLG9CQUFaO0FBQ0Q7O0FBQ0RDLFVBQUFBLE9BQU8sQ0FBQ0UsaUJBQVIsQ0FBMEJILFNBQTFCO0FBQ0QsU0FMRCxNQUtPO0FBQ0xDLFVBQUFBLE9BQU8sQ0FBQ0UsaUJBQVIsQ0FBMEIsRUFBMUI7QUFDRDs7QUFDREYsUUFBQUEsT0FBTyxDQUFDRyxjQUFSO0FBQ0Q7O0FBQ0QsV0FBS2hCLE9BQUwsR0FBZVcsU0FBZjtBQUNBLFdBQUtWLEtBQUwsR0FBYSxDQUFDLEtBQUtELE9BQW5CO0FBQ0Q7O0FBRURpQixJQUFBQSxZQUFZLEdBQUc7QUFDYixVQUFJLEtBQUtsQixTQUFULEVBQW9CO0FBQ2xCLGNBQU1tQixLQUFLLEdBQUcsS0FBS0osZUFBTCxFQUFkOztBQUNBLFlBQUlJLEtBQUssSUFBSSxJQUFiLEVBQW1CO0FBQ2pCLGVBQUtKLGVBQUwsR0FBdUJLLEtBQXZCO0FBQ0Q7QUFDRjs7QUFDRCxXQUFLWixXQUFMLENBQWlCLEtBQUtmLEtBQXRCO0FBQ0Q7O0FBRUQ0QixJQUFBQSxPQUFPLENBQUNDLGlCQUFELEVBQW9CO0FBQ3pCLFVBQUlBLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixPQUF0QixDQUFKLEVBQW9DO0FBQ2xDLGFBQUtmLFdBQUwsQ0FBaUIsS0FBS2YsS0FBdEI7QUFDRDtBQUNGOztBQUVEc0IsSUFBQUEsZUFBZSxHQUFHO0FBQ2hCLGFBQU8sS0FBS1MsVUFBTCxHQUFrQixLQUFLQSxVQUFMLENBQWdCQyxhQUFoQixDQUE4QixPQUE5QixDQUFsQixHQUEyRCxJQUFsRTtBQUNEOztBQUVlLFFBQVpDLFlBQVksR0FBRztBQUNqQixVQUFJLEtBQUszQixXQUFMLElBQW9CLElBQXhCLEVBQThCO0FBQzVCLGNBQU1lLE9BQU8sR0FBRyxLQUFLVSxVQUFMLENBQWdCQyxhQUFoQixDQUE4QixjQUE5QixDQUFoQjs7QUFDQSxZQUFJWCxPQUFPLElBQUksSUFBZixFQUFxQjtBQUNuQixpQkFBTyxNQUFNWSxZQUFOLEdBQXFCWixPQUFPLENBQUNZLFlBQXBDO0FBQ0Q7QUFDRjs7QUFDRCxhQUFPLE1BQU1BLFlBQWI7QUFDRDs7QUFFREMsSUFBQUEsV0FBVyxHQUFHO0FBQ1osVUFBSSxLQUFLaEMsS0FBVCxFQUFnQjtBQUNkLGVBQU9iLElBQUksZUFBYyxLQUFLOEMsRUFBbkIsWUFBZ0MsS0FBS2pDLEtBQXJDLEtBQStDLEtBQUtBLEtBQXBELFVBQVg7QUFDRDs7QUFDRCxhQUFPLEVBQVA7QUFDRDs7QUF4SDhCLEdBQWpDO0FBMEhEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBJbnB1dEVsZW1lbnQoUGFyZW50Q2xhc3MpIHtcbiAgLyoqXG4gICAqIEBtaXhpbkNsYXNzXG4gICAqL1xuICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBQYXJlbnRDbGFzcyB7XG4gICAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGlzYWJsZWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgICByZXF1aXJlZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgICB2YWx1ZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgICAgbGFiZWw6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgIHRpdGxlOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgICBuYW1lOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgICBwbGFjZWhvbGRlcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgIGF1dG9mb2N1czogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICAgIGludmFsaWQ6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgICB2YWxpZDogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICAgIGNzc2BcbiAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA6aG9zdChbaW52YWxpZF0pIDpub3QoLmNsaXBib2FyZCkgaW5wdXQsXG4gICAgICAgICAgOmhvc3QoW2ludmFsaWRdKSA6bm90KC5jbGlwYm9hcmQpIDo6c2xvdHRlZCguaW5wdXQpLFxuICAgICAgICAgIDpob3N0KFtpbnZhbGlkXSkgOm5vdCguY2xpcGJvYXJkKSAuYm94LWljb24tbGVmdCxcbiAgICAgICAgICA6aG9zdChbaW52YWxpZF0pIDpub3QoLmNsaXBib2FyZCkgdGV4dGFyZWEsXG4gICAgICAgICAgOmhvc3QoW2ludmFsaWRdKSA6bm90KC5jbGlwYm9hcmQpIHNlbGVjdCxcbiAgICAgICAgICA6aG9zdChbaW52YWxpZF0pIDpub3QoLmNsaXBib2FyZCkgLmlucHV0IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgdmFyKC0tZ3YtaW5wdXQtaW52YWxpZC0tYnhzaGMsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLCAjZGExYTFiKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgOmhvc3QoW3JlYWRvbmx5XSkgOm5vdCguY2xpcGJvYXJkKSBpbnB1dCxcbiAgICAgICAgICA6aG9zdChbcmVhZG9ubHldKSA6bm90KC5jbGlwYm9hcmQpIDo6c2xvdHRlZCguaW5wdXQpLFxuICAgICAgICAgIDpob3N0KFtyZWFkb25seV0pIC50ZXh0YXJlYSxcbiAgICAgICAgICA6aG9zdChbcmVhZG9ubHldKSA6bm90KC5jbGlwYm9hcmQpIHNlbGVjdCxcbiAgICAgICAgICA6aG9zdChbcmVhZG9ubHldKSAuaW5wdXQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ndi1pbnB1dC0tYmRjLCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA6aG9zdChbcmVhZG9ubHldKSBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5faWQgPSBgZ3YtaW5wdXQtJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gO1xuICAgICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB1cGRhdGVTdGF0ZSh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSwgJ2ZpZWxkIGlzIHJlcXVpcmVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VmFsaWRpdHkoaXNJbnZhbGlkID0gZmFsc2UsIHZpb2xhdGlvbiA9ICcnKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRJbnB1dEVsZW1lbnQoKTtcbiAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkpIHtcbiAgICAgICAgaWYgKGlzSW52YWxpZCkge1xuICAgICAgICAgIGlmICh2aW9sYXRpb24gPT0gbnVsbCB8fCB2aW9sYXRpb24udHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgdmlvbGF0aW9uID0gJ2ZpZWxkIGlzIG5vdCB2YWxpZCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsZW1lbnQuc2V0Q3VzdG9tVmFsaWRpdHkodmlvbGF0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50LnNldEN1c3RvbVZhbGlkaXR5KCcnKTtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50LnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgICB0aGlzLmludmFsaWQgPSBpc0ludmFsaWQ7XG4gICAgICB0aGlzLnZhbGlkID0gIXRoaXMuaW52YWxpZDtcbiAgICB9XG5cbiAgICBmaXJzdFVwZGF0ZWQoKSB7XG4gICAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmdldElucHV0RWxlbWVudCgpO1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVTdGF0ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SW5wdXRFbGVtZW50KCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdCA/IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgb2Zmc2V0SGVpZ2h0KCkge1xuICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24gIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5kZXNjcmlwdGlvbicpO1xuICAgICAgICBpZiAoZWxlbWVudCAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLm9mZnNldEhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3VwZXIub2Zmc2V0SGVpZ2h0O1xuICAgIH1cblxuICAgIHJlbmRlckxhYmVsKCkge1xuICAgICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPGxhYmVsIGZvcj0ke3RoaXMuaWR9IHRpdGxlPVwiJHt0aGlzLmxhYmVsfVwiPiR7dGhpcy5sYWJlbH08L2xhYmVsPmA7XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9O1xufVxuIl19