@skyux/text-editor 7.4.1 → 7.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -314,7 +314,7 @@
314
314
  "sources": [
315
315
  {
316
316
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
317
- "line": 294,
317
+ "line": 297,
318
318
  "character": 2
319
319
  }
320
320
  ],
@@ -476,7 +476,7 @@
476
476
  "sources": [
477
477
  {
478
478
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
479
- "line": 269,
479
+ "line": 272,
480
480
  "character": 9
481
481
  }
482
482
  ],
@@ -1365,7 +1365,7 @@
1365
1365
  "sources": [
1366
1366
  {
1367
1367
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1368
- "line": 317,
1368
+ "line": 320,
1369
1369
  "character": 9
1370
1370
  }
1371
1371
  ],
@@ -1402,7 +1402,7 @@
1402
1402
  "sources": [
1403
1403
  {
1404
1404
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1405
- "line": 321,
1405
+ "line": 324,
1406
1406
  "character": 9
1407
1407
  }
1408
1408
  ],
@@ -1439,7 +1439,7 @@
1439
1439
  "sources": [
1440
1440
  {
1441
1441
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1442
- "line": 327,
1442
+ "line": 330,
1443
1443
  "character": 9
1444
1444
  }
1445
1445
  ],
@@ -1468,7 +1468,7 @@
1468
1468
  "sources": [
1469
1469
  {
1470
1470
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1471
- "line": 350,
1471
+ "line": 353,
1472
1472
  "character": 9
1473
1473
  }
1474
1474
  ],
@@ -1545,7 +1545,7 @@
1545
1545
  "sources": [
1546
1546
  {
1547
1547
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1548
- "line": 357,
1548
+ "line": 360,
1549
1549
  "character": 9
1550
1550
  }
1551
1551
  ],
@@ -1609,7 +1609,7 @@
1609
1609
  "sources": [
1610
1610
  {
1611
1611
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1612
- "line": 364,
1612
+ "line": 367,
1613
1613
  "character": 9
1614
1614
  }
1615
1615
  ],
@@ -1654,7 +1654,7 @@
1654
1654
  "sources": [
1655
1655
  {
1656
1656
  "fileName": "projects/text-editor/src/modules/text-editor/text-editor.component.ts",
1657
- "line": 334,
1657
+ "line": 337,
1658
1658
  "character": 9
1659
1659
  }
1660
1660
  ],
@@ -221,8 +221,11 @@ export class SkyTextEditorComponent {
221
221
  });
222
222
  }
223
223
  // Autofocus isn't testable in Firefox and IE.
224
+ // Don't set focus on the editor now if the iframe isn't initialized.
225
+ // #initIframe() will do another check later to see if the editor should
226
+ // receive focus.
224
227
  /* istanbul ignore next */
225
- if (this.autofocus && !__classPrivateFieldGet(this, _SkyTextEditorComponent_focusInitialized, "f")) {
228
+ if (this.autofocus && __classPrivateFieldGet(this, _SkyTextEditorComponent_initialized, "f") && !__classPrivateFieldGet(this, _SkyTextEditorComponent_focusInitialized, "f")) {
226
229
  __classPrivateFieldGet(this, _SkyTextEditorComponent_adapterService, "f").focusEditor();
227
230
  __classPrivateFieldSet(this, _SkyTextEditorComponent_focusInitialized, true, "f");
228
231
  }
@@ -372,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
372
375
  type: ViewChild,
373
376
  args: ['iframe']
374
377
  }] } });
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFR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aERILGk1Q0FtREE7NEZERGEsc0JBQXNCO2tCQVpsQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULG9CQUFvQjt3QkFDcEIsNkJBQTZCO3dCQUM3QiwyQkFBMkI7cUJBQzVCOzBVQU9NLFNBQVM7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQTJDSyxRQUFRO3NCQURsQixLQUFLO2dCQWNLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBY0ssRUFBRTtzQkFEWixLQUFLO2dCQWFLLGlCQUFpQjtzQkFEM0IsS0FBSztnQkFxQkssS0FBSztzQkFEZixLQUFLO2dCQWFLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBYUssV0FBVztzQkFEckIsS0FBSztnQkFvQkssY0FBYztzQkFEeEIsS0FBSztnQkFZQyxTQUFTO3NCQURmLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLCBTa3lJZFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG5pbXBvcnQgeyBGT05UX0xJU1RfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL2ZvbnQtbGlzdC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBGT05UX1NJWkVfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvZm9udC1zaXplLWxpc3QtZGVmYXVsdHMnO1xuaW1wb3J0IHsgTUVOVV9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvbWVudS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTVFlMRV9TVEFURV9ERUZBVUxUUyB9IGZyb20gJy4vZGVmYXVsdHMvc3R5bGUtc3RhdGUtZGVmYXVsdHMnO1xuaW1wb3J0IHsgVE9PTEJBUl9BQ1RJT05fREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL3Rvb2xiYXItYWN0aW9uLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dC1lZGl0b3ItYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90ZXh0LWVkaXRvci1zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dC1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0U2FuaXRpemF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dC1zYW5pdGl6YXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yRm9udCB9IGZyb20gJy4vdHlwZXMvZm9udC1zdGF0ZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yTWVudVR5cGUgfSBmcm9tICcuL3R5cGVzL21lbnUtdHlwZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB9IGZyb20gJy4vdHlwZXMvc3R5bGUtc3RhdGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lcmdlRmllbGQgfSBmcm9tICcuL3R5cGVzL3RleHQtZWRpdG9yLW1lcmdlLWZpZWxkJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZSB9IGZyb20gJy4vdHlwZXMvdG9vbGJhci1hY3Rpb24tdHlwZSc7XG5cbi8qKlxuICogVGhlIHRleHQgZWRpdG9yIGNvbXBvbmVudCBsZXRzIHVzZXJzIGZvcm1hdCBhbmQgbWFuaXB1bGF0ZSB0ZXh0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktdGV4dC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU2t5VGV4dEVkaXRvclNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvclNlbGVjdGlvblNlcnZpY2UsXG4gICAgU2t5VGV4dEVkaXRvckFkYXB0ZXJTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUZXh0RWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHB1dCBmb2N1cyBvbiB0aGUgZWRpdG9yIGFmdGVyIGl0IHJlbmRlcnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXV0b2ZvY3VzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIHRleHQgZWRpdG9yLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuI19kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcblxuICAgICAgLy8gVXBkYXRlIGZvY3VzYWJsZUNoaWxkcmVuIGluc2lkZSB0aGUgaWZyYW1lLlxuICAgICAgbGV0IGZvY3VzYWJsZUNoaWxkcmVuOiBIVE1MRWxlbWVudFtdO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmICh0aGlzLmlmcmFtZVJlZikge1xuICAgICAgICBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudC5ib2R5LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVUYWJJbmRleDogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuI19kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmRpc2FibGVFZGl0b3IoXG4gICAgICAgICAgICBmb2N1c2FibGVDaGlsZHJlbixcbiAgICAgICAgICAgIHRoaXMuaWZyYW1lUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmVuYWJsZUVkaXRvcihcbiAgICAgICAgICAgIGZvY3VzYWJsZUNoaWxkcmVuLFxuICAgICAgICAgICAgdGhpcy5pZnJhbWVSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udHMgdG8gaW5jbHVkZSBpbiB0aGUgZm9udCBwaWNrZXIuXG4gICAqIEBkZWZhdWx0IFt7bmFtZTogJ0JsYWNrYmF1ZCBTYW5zJywgdmFsdWU6ICdcIkJsYWNrYmF1ZCBTYW5zXCIsIEFyaWFsLCBzYW5zLXNlcmlmJ30sIHtuYW1lOiAnQXJpYWwnLCB2YWx1ZTogJ0FyaWFsJ30sIHtuYW1lOiAnQXJpYWwgQmxhY2snLCB2YWx1ZTogJ1wiQXJpYWwgQmxhY2tcIid9LCB7bmFtZTogJ0NvdXJpZXIgTmV3JywgdmFsdWU6ICdcIkNvdXJpZXIgTmV3XCInfSwge25hbWU6ICdHZW9yZ2lhJywgdmFsdWU6ICdHZW9yZ2lhLCBzZXJpZid9LCB7bmFtZTogJ1RhaG9tYScsIHZhbHVlOiAnVGFob21hLCBHZW5ldmEsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLCB2YWx1ZTogJ1wiVGltZXMgTmV3IFJvbWFuXCInfSwge25hbWU6ICdUcmVidWNoZXQgTVMnLCB2YWx1ZTogJ1wiVHJlYnVjaGV0IE1TXCIsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdWZXJkYW5hJywgdmFsdWU6ICdWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWYnfV1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9udExpc3QodmFsdWU6IFNreVRleHRFZGl0b3JGb250W10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfZm9udExpc3QgPSB2YWx1ZSB8fCBGT05UX0xJU1RfREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvbnRMaXN0KCk6IFNreVRleHRFZGl0b3JGb250W10ge1xuICAgIHJldHVybiB0aGlzLiNfZm9udExpc3Q7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBmb250IHNpemVzIHRvIGluY2x1ZGUgaW4gdGhlIGZvbnQgc2l6ZSBwaWNrZXIuXG4gICAqIEBkZWZhdWx0IFs2LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzYsIDQ4XVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb250U2l6ZUxpc3QodmFsdWU6IG51bWJlcltdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2ZvbnRTaXplTGlzdCA9IHZhbHVlIHx8IEZPTlRfU0laRV9MSVNUX0RFRkFVTFRTO1xuICB9XG5cbiAgcHVibGljIGdldCBmb250U2l6ZUxpc3QoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLiNfZm9udFNpemVMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHVuaXF1ZSBJRCBhdHRyaWJ1dGUgZm9yIHRoZSB0ZXh0IGVkaXRvci5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbXBvbmVudCBnZW5lcmF0ZXMgYSByYW5kb20gSUQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNpZCA9IHZhbHVlIHx8IHRoaXMuI2RlZmF1bHRJZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jaWQ7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBpbml0aWFsIHN0eWxlcyBmb3IgYWxsIGNvbnRlbnQsIGluY2x1ZGluZyBiYWNrZ3JvdW5kIGNvbG9yLCBmb250IHNpemUsIGFuZCBsaW5rIHN0YXRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbml0aWFsU3R5bGVTdGF0ZShzdGF0ZTogU2t5VGV4dEVkaXRvclN0eWxlU3RhdGUgfCB1bmRlZmluZWQpIHtcbiAgICAvLyBEbyBub3QgdXBkYXRlIHRoZSBzdGF0ZSBhZnRlciBpbml0aWFsaXphdGlvbiBoYXMgdGFrZW4gcGxhY2VcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZSA9IHtcbiAgICAgICAgLi4uU1RZTEVfU1RBVEVfREVGQVVMVFMsXG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluaXRpYWxTdHlsZVN0YXRlKCk6IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy4jX2luaXRpYWxTdHlsZVN0YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWVudXMgdG8gaW5jbHVkZSBpbiB0aGUgbWVudSBiYXIuXG4gICAqIEBkZWZhdWx0IFsgJ2VkaXQnLCAnZm9ybWF0JyBdXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVzKHZhbHVlOiBTa3lUZXh0RWRpdG9yTWVudVR5cGVbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tZW51cyA9IHZhbHVlIHx8IE1FTlVfREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVzKCk6IFNreVRleHRFZGl0b3JNZW51VHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy4jX21lbnVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWVyZ2UgZmllbGRzIHRvIGluY2x1ZGUgaW4gdGhlIG1lcmdlIGZpZWxkIG1lbnUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lcmdlRmllbGRzKHZhbHVlOiBTa3lUZXh0RWRpdG9yTWVyZ2VGaWVsZFtdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX21lcmdlRmllbGRzID0gdmFsdWUgfHwgW107XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lcmdlRmllbGRzKCk6IFNreVRleHRFZGl0b3JNZXJnZUZpZWxkW10ge1xuICAgIHJldHVybiB0aGlzLiNfbWVyZ2VGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHBsYWNlaG9sZGVyIHRleHQgdG8gZGlzcGxheSB3aGVuIHRoZSB0ZXh0IGVudHJ5IGFyZWEgaXMgZW1wdHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy4jX3BsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLiNfcGxhY2Vob2xkZXIgPSB2YWx1ZSB8fCAnJztcbiAgICAgIGlmICh0aGlzLiNpbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRQbGFjZWhvbGRlcih2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfcGxhY2Vob2xkZXI7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBhY3Rpb25zIHRvIGluY2x1ZGUgaW4gdGhlIHRvb2xiYXIgYW5kIGRldGVybWluZXMgdGhlaXIgb3JkZXIuXG4gICAqIEBkZWZhdWx0IFsgJ2ZvbnQtZmFtaWx5JywgJ2ZvbnQtc2l6ZScsICdmb250LXN0eWxlJywgJ2NvbG9yJywgJ2xpc3QnLCAnbGluayBdXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRvb2xiYXJBY3Rpb25zKFxuICAgIHZhbHVlOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSB8IHVuZGVmaW5lZFxuICApIHtcbiAgICB0aGlzLiNfdG9vbGJhckFjdGlvbnMgPSB2YWx1ZSB8fCBUT09MQkFSX0FDVElPTl9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbGJhckFjdGlvbnMoKTogU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlW10ge1xuICAgIHJldHVybiB0aGlzLiNfdG9vbGJhckFjdGlvbnM7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpZnJhbWUnKVxuICBwdWJsaWMgaWZyYW1lUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAvLyBOb3JtYWxpemUgdmFsdWUgYW5kIHNldCBhbnkgZW1wdHkgc3RhdGUgdG8gYW4gZW1wdHkgc3RyaW5nLlxuICAgIGxldCBub3JtYWxpemVkVmFsdWU6IHN0cmluZztcbiAgICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZT8udHJpbSgpO1xuXG4gICAgaWYgKFxuICAgICAgIXZhbHVlIHx8XG4gICAgICB2YWx1ZVRyaW1tZWQgPT09ICc8cD48L3A+JyB8fFxuICAgICAgdmFsdWVUcmltbWVkID09PSAnPGJyPicgfHxcbiAgICAgIHZhbHVlVHJpbW1lZCA9PT0gJzxwPjxicj48L3A+J1xuICAgICkge1xuICAgICAgbm9ybWFsaXplZFZhbHVlID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vcm1hbGl6ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIG5vcm1hbGl6ZWRWYWx1ZSA9IHRoaXMuI3Nhbml0aXphdGlvblNlcnZpY2VcbiAgICAgIC5zYW5pdGl6ZShub3JtYWxpemVkVmFsdWUpXG4gICAgICAudHJpbSgpO1xuXG4gICAgaWYgKHRoaXMuI192YWx1ZSAhPT0gbm9ybWFsaXplZFZhbHVlKSB7XG4gICAgICB0aGlzLiNfdmFsdWUgPSBub3JtYWxpemVkVmFsdWU7XG5cbiAgICAgIC8vIFVwZGF0ZSBhbmd1bGFyIGZvcm0gY29udHJvbCBpZiBtb2RlbCBoYXMgYmVlbiBub3JtYWxpemVkLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jbmdDb250cm9sPy5jb250cm9sICYmXG4gICAgICAgIG5vcm1hbGl6ZWRWYWx1ZSAhPT0gdGhpcy4jbmdDb250cm9sLmNvbnRyb2wudmFsdWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLiNuZ0NvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShub3JtYWxpemVkVmFsdWUsIHtcbiAgICAgICAgICBlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQXV0b2ZvY3VzIGlzbid0IHRlc3RhYmxlIGluIEZpcmVmb3ggYW5kIElFLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICh0aGlzLmF1dG9mb2N1cyAmJiAhdGhpcy4jZm9jdXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcigpO1xuICAgICAgICB0aGlzLiNmb2N1c0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0b3JGb2N1c1N0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2RlZmF1bHRJZDogc3RyaW5nO1xuICAjaWQ6IHN0cmluZztcbiAgI2ZvY3VzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZTtcbiAgI2VkaXRvclNlcnZpY2U6IFNreVRleHRFZGl0b3JTZXJ2aWNlO1xuICAjc2FuaXRpemF0aW9uU2VydmljZTogU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2U7XG4gICNuZ0NvbnRyb2w6IE5nQ29udHJvbDtcbiAgI3pvbmU6IE5nWm9uZTtcblxuICAjX2ZvbnRMaXN0ID0gRk9OVF9MSVNUX0RFRkFVTFRTO1xuICAjX2ZvbnRTaXplTGlzdCA9IEZPTlRfU0laRV9MSVNUX0RFRkFVTFRTO1xuICAjX21lcmdlRmllbGRzOiBTa3lUZXh0RWRpdG9yTWVyZ2VGaWVsZFtdID0gW107XG4gICNfbWVudXMgPSBNRU5VX0RFRkFVTFRTO1xuICAjX3Rvb2xiYXJBY3Rpb25zOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSA9IFRPT0xCQVJfQUNUSU9OX0RFRkFVTFRTO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfaW5pdGlhbFN0eWxlU3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBTVFlMRV9TVEFURV9ERUZBVUxUUyk7XG4gICNfcGxhY2Vob2xkZXIgPSAnJztcbiAgI192YWx1ZSA9ICc8cD48L3A+JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSxcbiAgICBlZGl0b3JTZXJ2aWNlOiBTa3lUZXh0RWRpdG9yU2VydmljZSxcbiAgICBzYW5pdGl6YXRpb25TZXJ2aWNlOiBTa3lUZXh0U2FuaXRpemF0aW9uU2VydmljZSxcbiAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgaWRTdmM6IFNreUlkU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2VkaXRvclNlcnZpY2UgPSBlZGl0b3JTZXJ2aWNlO1xuICAgIHRoaXMuI3Nhbml0aXphdGlvblNlcnZpY2UgPSBzYW5pdGl6YXRpb25TZXJ2aWNlO1xuICAgIHRoaXMuI25nQ29udHJvbCA9IG5nQ29udHJvbDtcbiAgICB0aGlzLiN6b25lID0gem9uZTtcblxuICAgIHRoaXMuI2lkID0gdGhpcy4jZGVmYXVsdElkID0gaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNpbml0SWZyYW1lKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UucmVtb3ZlT2JzZXJ2ZXJzKHRoaXMuI2VkaXRvclNlcnZpY2UuZWRpdG9yKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25JZnJhbWVMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuI2luaXRJZnJhbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIC8vIFVwZGF0ZSBIVE1MIGlmIG5lY2Vzc2FyeS5cbiAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGNvbnN0IGVkaXRvclZhbHVlID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0RWRpdG9ySW5uZXJIdG1sKCk7XG4gICAgICBpZiAoZWRpdG9yVmFsdWUgIT09IHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRFZGl0b3JJbm5lckh0bWwodGhpcy4jX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI19vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNfb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gICN1cGRhdGVTdHlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAuLi50aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUsXG4gICAgICAuLi50aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKCksXG4gICAgfTtcbiAgfVxuXG4gICNpbml0SWZyYW1lKCk6IHZvaWQge1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmluaXRFZGl0b3IoXG4gICAgICB0aGlzLmlkLFxuICAgICAgKHRoaXMuaWZyYW1lUmVmIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmluaXRpYWxTdHlsZVN0YXRlLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlclxuICAgICk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuaW5wdXRMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBjaGFuZ2VzIG9yaWdpbmF0aW5nIGluc2lkZSBhbiBpZnJhbWUsXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY2FsbCB0aGUgb25DaGFuZ2UoKSBldmVudCBpbnNpZGUgTmdab25lIHRvIGZvcmNlIGNoYW5nZSBwcm9waWdhdGlvbiB0byBjb25zdW1pbmcgY29tcG9uZW50cy5cbiAgICAgICAgdGhpcy4jem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3ZpZXdUb01vZGVsVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuc2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuZWRpdG9yRm9jdXNTdHJlYW0ubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuY2xpY2tMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0b3JGb2N1c1N0cmVhbS5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5ibHVyTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBydW4gY2hhbmdlIGRldGVjdGlvbiBmb3IgY2hhbmdlcyBvcmlnaW5hdGluZyBpbnNpZGUgYW4gaWZyYW1lLFxuICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHJ1biBtYXJrRm9yQ2hlY2soKSBpbnNpZGUgdGhlIE5nWm9uZSB0byBmb3JjZSBjaGFuZ2UgcHJvcGlnYXRpb24gdG8gY29uc3VtaW5nIGNvbXBvbmVudHMuXG4gICAgICAgIHRoaXMuI3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNfb25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuY29tbWFuZENoYW5nZUxpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVTdHlsZSgpO1xuICAgICAgICB0aGlzLiN2aWV3VG9Nb2RlbFVwZGF0ZSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRFZGl0b3JJbm5lckh0bWwodGhpcy4jX3ZhbHVlKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcigpO1xuICAgIH1cblxuICAgIHRoaXMuI2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gICN2aWV3VG9Nb2RlbFVwZGF0ZShlbWl0Q2hhbmdlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRFZGl0b3JJbm5lckh0bWwoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbWl0Q2hhbmdlKSB7XG4gICAgICB0aGlzLiNfb25DaGFuZ2UodGhpcy4jX3ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAjX29uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgI19vbkNoYW5nZTogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdmFsdWU6IGFueVxuICApID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS10ZXh0LWVkaXRvclwiPlxuICA8c2t5LXRvb2xiYXJcbiAgICAqbmdJZj1cIlxuICAgICAgKG1lbnVzICYmIG1lbnVzLmxlbmd0aCkgPiAwIHx8XG4gICAgICAodG9vbGJhckFjdGlvbnMgJiYgdG9vbGJhckFjdGlvbnMubGVuZ3RoID4gMClcbiAgICBcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcIlxuICA+XG4gICAgPHNreS10b29sYmFyLXNlY3Rpb25cbiAgICAgICpuZ0lmPVwibWVudXMgJiYgbWVudXMubGVuZ3RoID4gMFwiXG4gICAgICBhcmlhLWxhYmVsPVwiVGV4dCBmb3JtYXR0aW5nXCJcbiAgICAgIGNsYXNzPVwibWVudWJhclwiXG4gICAgICByb2xlPVwidG9vbGJhclwiXG4gICAgPlxuICAgICAgPHNreS10ZXh0LWVkaXRvci1tZW51YmFyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlZGl0b3JGb2N1c1N0cmVhbV09XCJlZGl0b3JGb2N1c1N0cmVhbVwiXG4gICAgICAgIFttZW51c109XCJtZW51c1wiXG4gICAgICAgIFttZXJnZUZpZWxkc109XCJtZXJnZUZpZWxkc1wiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci1tZW51YmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvblxuICAgICAgKm5nSWY9XCJ0b29sYmFyQWN0aW9ucyAmJiB0b29sYmFyQWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUZXh0IGZvcm1hdHRpbmdcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyXCJcbiAgICAgIHJvbGU9XCJ0b29sYmFyXCJcbiAgICA+XG4gICAgICA8c2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2VkaXRvckZvY3VzU3RyZWFtXT1cImVkaXRvckZvY3VzU3RyZWFtXCJcbiAgICAgICAgW2ZvbnRMaXN0XT1cImZvbnRMaXN0XCJcbiAgICAgICAgW2ZvbnRTaXplTGlzdF09XCJmb250U2l6ZUxpc3RcIlxuICAgICAgICBbdG9vbGJhckFjdGlvbnNdPVwidG9vbGJhckFjdGlvbnNcIlxuICAgICAgICBbc3R5bGVTdGF0ZV09XCJpbml0aWFsU3R5bGVTdGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci10b29sYmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgPC9za3ktdG9vbGJhcj5cbiAgPGlmcmFtZVxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXdyYXBwZXJcIlxuICAgIHNyYz1cImFib3V0OmJsYW5rXCJcbiAgICB0aXRsZT1cIlRleHQgRWRpdG9yXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRleHQtZWRpdG9yLXdyYXBwZXItZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIChsb2FkKT1cIm9uSWZyYW1lTG9hZCgpXCJcbiAgICAjaWZyYW1lXG4gID5cbiAgPC9pZnJhbWU+XG48L2Rpdj5cbiJdfQ==
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RleHQtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGV4dC1lZGl0b3Ivc3JjL2xpYi9tb2R1bGVzL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFR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c0JBQXNCLG9UQU50QjtRQUNULG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0IsMkJBQTJCO0tBQzVCLCtIQ2hESCxpNUNBbURBOzRGRERhLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxvQkFBb0I7d0JBQ3BCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3FCQUM1QjswVUFPTSxTQUFTO3NCQURmLEtBQUs7Z0JBUUssUUFBUTtzQkFEbEIsS0FBSztnQkEyQ0ssUUFBUTtzQkFEbEIsS0FBSztnQkFjSyxZQUFZO3NCQUR0QixLQUFLO2dCQWNLLEVBQUU7c0JBRFosS0FBSztnQkFhSyxpQkFBaUI7c0JBRDNCLEtBQUs7Z0JBcUJLLEtBQUs7c0JBRGYsS0FBSztnQkFhSyxXQUFXO3NCQURyQixLQUFLO2dCQWFLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBb0JLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBWUMsU0FBUztzQkFEZixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSwgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9mb3Jtcy11dGlsaXR5JztcblxuaW1wb3J0IHsgRk9OVF9MSVNUX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy9mb250LWxpc3QtZGVmYXVsdHMnO1xuaW1wb3J0IHsgRk9OVF9TSVpFX0xJU1RfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL2ZvbnQtc2l6ZS1saXN0LWRlZmF1bHRzJztcbmltcG9ydCB7IE1FTlVfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL21lbnUtZGVmYXVsdHMnO1xuaW1wb3J0IHsgU1RZTEVfU1RBVEVfREVGQVVMVFMgfSBmcm9tICcuL2RlZmF1bHRzL3N0eWxlLXN0YXRlLWRlZmF1bHRzJztcbmltcG9ydCB7IFRPT0xCQVJfQUNUSU9OX0RFRkFVTFRTIH0gZnJvbSAnLi9kZWZhdWx0cy90b29sYmFyLWFjdGlvbi1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RleHQtZWRpdG9yLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGV4dC1lZGl0b3Itc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RleHQtZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RleHQtc2FuaXRpemF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvckZvbnQgfSBmcm9tICcuL3R5cGVzL2ZvbnQtc3RhdGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvck1lbnVUeXBlIH0gZnJvbSAnLi90eXBlcy9tZW51LXR5cGUnO1xuaW1wb3J0IHsgU2t5VGV4dEVkaXRvclN0eWxlU3RhdGUgfSBmcm9tICcuL3R5cGVzL3N0eWxlLXN0YXRlJztcbmltcG9ydCB7IFNreVRleHRFZGl0b3JNZXJnZUZpZWxkIH0gZnJvbSAnLi90eXBlcy90ZXh0LWVkaXRvci1tZXJnZS1maWVsZCc7XG5pbXBvcnQgeyBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL3Rvb2xiYXItYWN0aW9uLXR5cGUnO1xuXG4vKipcbiAqIFRoZSB0ZXh0IGVkaXRvciBjb21wb25lbnQgbGV0cyB1c2VycyBmb3JtYXQgYW5kIG1hbmlwdWxhdGUgdGV4dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXRleHQtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVRleHRFZGl0b3JTZXJ2aWNlLFxuICAgIFNreVRleHRFZGl0b3JTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBwdXQgZm9jdXMgb24gdGhlIGVkaXRvciBhZnRlciBpdCByZW5kZXJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0ZXh0IGVkaXRvci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG5cbiAgICAgIC8vIFVwZGF0ZSBmb2N1c2FibGVDaGlsZHJlbiBpbnNpZGUgdGhlIGlmcmFtZS5cbiAgICAgIGxldCBmb2N1c2FibGVDaGlsZHJlbjogSFRNTEVsZW1lbnRbXTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAodGhpcy5pZnJhbWVSZWYpIHtcbiAgICAgICAgZm9jdXNhYmxlQ2hpbGRyZW4gPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgdGhpcy5pZnJhbWVSZWYubmF0aXZlRWxlbWVudC5jb250ZW50RG9jdW1lbnQuYm9keSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZ25vcmVWaXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlVGFiSW5kZXg6IHRydWUsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLiNfZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5kaXNhYmxlRWRpdG9yKFxuICAgICAgICAgICAgZm9jdXNhYmxlQ2hpbGRyZW4sXG4gICAgICAgICAgICB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5lbmFibGVFZGl0b3IoXG4gICAgICAgICAgICBmb2N1c2FibGVDaGlsZHJlbixcbiAgICAgICAgICAgIHRoaXMuaWZyYW1lUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGZvbnRzIHRvIGluY2x1ZGUgaW4gdGhlIGZvbnQgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBbe25hbWU6ICdCbGFja2JhdWQgU2FucycsIHZhbHVlOiAnXCJCbGFja2JhdWQgU2Fuc1wiLCBBcmlhbCwgc2Fucy1zZXJpZid9LCB7bmFtZTogJ0FyaWFsJywgdmFsdWU6ICdBcmlhbCd9LCB7bmFtZTogJ0FyaWFsIEJsYWNrJywgdmFsdWU6ICdcIkFyaWFsIEJsYWNrXCInfSwge25hbWU6ICdDb3VyaWVyIE5ldycsIHZhbHVlOiAnXCJDb3VyaWVyIE5ld1wiJ30sIHtuYW1lOiAnR2VvcmdpYScsIHZhbHVlOiAnR2VvcmdpYSwgc2VyaWYnfSwge25hbWU6ICdUYWhvbWEnLCB2YWx1ZTogJ1RhaG9tYSwgR2VuZXZhLCBzYW5zLXNlcmlmJ30sIHtuYW1lOiAnVGltZXMgTmV3IFJvbWFuJywgdmFsdWU6ICdcIlRpbWVzIE5ldyBSb21hblwiJ30sIHtuYW1lOiAnVHJlYnVjaGV0IE1TJywgdmFsdWU6ICdcIlRyZWJ1Y2hldCBNU1wiLCBzYW5zLXNlcmlmJ30sIHtuYW1lOiAnVmVyZGFuYScsIHZhbHVlOiAnVmVyZGFuYSwgR2VuZXZhLCBzYW5zLXNlcmlmJ31dXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZvbnRMaXN0KHZhbHVlOiBTa3lUZXh0RWRpdG9yRm9udFtdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2ZvbnRMaXN0ID0gdmFsdWUgfHwgRk9OVF9MSVNUX0RFRkFVTFRTO1xuICB9XG5cbiAgcHVibGljIGdldCBmb250TGlzdCgpOiBTa3lUZXh0RWRpdG9yRm9udFtdIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZvbnRMaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udCBzaXplcyB0byBpbmNsdWRlIGluIHRoZSBmb250IHNpemUgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBbNiwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDM2LCA0OF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9udFNpemVMaXN0KHZhbHVlOiBudW1iZXJbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19mb250U2l6ZUxpc3QgPSB2YWx1ZSB8fCBGT05UX1NJWkVfTElTVF9ERUZBVUxUUztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9udFNpemVMaXN0KCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy4jX2ZvbnRTaXplTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSB1bmlxdWUgSUQgYXR0cmlidXRlIGZvciB0aGUgdGV4dCBlZGl0b3IuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb21wb25lbnQgZ2VuZXJhdGVzIGEgcmFuZG9tIElELlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jaWQgPSB2YWx1ZSB8fCB0aGlzLiNkZWZhdWx0SWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaW5pdGlhbCBzdHlsZXMgZm9yIGFsbCBjb250ZW50LCBpbmNsdWRpbmcgYmFja2dyb3VuZCBjb2xvciwgZm9udCBzaXplLCBhbmQgbGluayBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaW5pdGlhbFN0eWxlU3RhdGUoc3RhdGU6IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gRG8gbm90IHVwZGF0ZSB0aGUgc3RhdGUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gaGFzIHRha2VuIHBsYWNlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAgIC4uLlNUWUxFX1NUQVRFX0RFRkFVTFRTLFxuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsU3R5bGVTdGF0ZSgpOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuI19pbml0aWFsU3R5bGVTdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1lbnVzIHRvIGluY2x1ZGUgaW4gdGhlIG1lbnUgYmFyLlxuICAgKiBAZGVmYXVsdCBbICdlZGl0JywgJ2Zvcm1hdCcgXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZW51cyh2YWx1ZTogU2t5VGV4dEVkaXRvck1lbnVUeXBlW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfbWVudXMgPSB2YWx1ZSB8fCBNRU5VX0RFRkFVTFRTO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51cygpOiBTa3lUZXh0RWRpdG9yTWVudVR5cGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuI19tZW51cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1lcmdlIGZpZWxkcyB0byBpbmNsdWRlIGluIHRoZSBtZXJnZSBmaWVsZCBtZW51LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZXJnZUZpZWxkcyh2YWx1ZTogU2t5VGV4dEVkaXRvck1lcmdlRmllbGRbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19tZXJnZUZpZWxkcyA9IHZhbHVlIHx8IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXJnZUZpZWxkcygpOiBTa3lUZXh0RWRpdG9yTWVyZ2VGaWVsZFtdIHtcbiAgICByZXR1cm4gdGhpcy4jX21lcmdlRmllbGRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBwbGFjZWhvbGRlciB0ZXh0IHRvIGRpc3BsYXkgd2hlbiB0aGUgdGV4dCBlbnRyeSBhcmVhIGlzIGVtcHR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19wbGFjZWhvbGRlcikge1xuICAgICAgdGhpcy4jX3BsYWNlaG9sZGVyID0gdmFsdWUgfHwgJyc7XG4gICAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0UGxhY2Vob2xkZXIodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYWN0aW9ucyB0byBpbmNsdWRlIGluIHRoZSB0b29sYmFyIGFuZCBkZXRlcm1pbmVzIHRoZWlyIG9yZGVyLlxuICAgKiBAZGVmYXVsdCBbICdmb250LWZhbWlseScsICdmb250LXNpemUnLCAnZm9udC1zdHlsZScsICdjb2xvcicsICdsaXN0JywgJ2xpbmsgXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyQWN0aW9ucyhcbiAgICB2YWx1ZTogU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlW10gfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgdGhpcy4jX3Rvb2xiYXJBY3Rpb25zID0gdmFsdWUgfHwgVE9PTEJBUl9BQ1RJT05fREVGQVVMVFM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2xiYXJBY3Rpb25zKCk6IFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy4jX3Rvb2xiYXJBY3Rpb25zO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lJylcbiAgcHVibGljIGlmcmFtZVJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGludGVybmFsIHZhbHVlIG9mIHRoZSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gTm9ybWFsaXplIHZhbHVlIGFuZCBzZXQgYW55IGVtcHR5IHN0YXRlIHRvIGFuIGVtcHR5IHN0cmluZy5cbiAgICBsZXQgbm9ybWFsaXplZFZhbHVlOiBzdHJpbmc7XG4gICAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWU/LnRyaW0oKTtcblxuICAgIGlmIChcbiAgICAgICF2YWx1ZSB8fFxuICAgICAgdmFsdWVUcmltbWVkID09PSAnPHA+PC9wPicgfHxcbiAgICAgIHZhbHVlVHJpbW1lZCA9PT0gJzxicj4nIHx8XG4gICAgICB2YWx1ZVRyaW1tZWQgPT09ICc8cD48YnI+PC9wPidcbiAgICApIHtcbiAgICAgIG5vcm1hbGl6ZWRWYWx1ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBub3JtYWxpemVkVmFsdWUgPSB0aGlzLiNzYW5pdGl6YXRpb25TZXJ2aWNlXG4gICAgICAuc2FuaXRpemUobm9ybWFsaXplZFZhbHVlKVxuICAgICAgLnRyaW0oKTtcblxuICAgIGlmICh0aGlzLiNfdmFsdWUgIT09IG5vcm1hbGl6ZWRWYWx1ZSkge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gbm9ybWFsaXplZFZhbHVlO1xuXG4gICAgICAvLyBVcGRhdGUgYW5ndWxhciBmb3JtIGNvbnRyb2wgaWYgbW9kZWwgaGFzIGJlZW4gbm9ybWFsaXplZC5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuI25nQ29udHJvbD8uY29udHJvbCAmJlxuICAgICAgICBub3JtYWxpemVkVmFsdWUgIT09IHRoaXMuI25nQ29udHJvbC5jb250cm9sLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jbmdDb250cm9sLmNvbnRyb2wuc2V0VmFsdWUobm9ybWFsaXplZFZhbHVlLCB7XG4gICAgICAgICAgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG9mb2N1cyBpc24ndCB0ZXN0YWJsZSBpbiBGaXJlZm94IGFuZCBJRS5cbiAgICAgIC8vIERvbid0IHNldCBmb2N1cyBvbiB0aGUgZWRpdG9yIG5vdyBpZiB0aGUgaWZyYW1lIGlzbid0IGluaXRpYWxpemVkLlxuICAgICAgLy8gI2luaXRJZnJhbWUoKSB3aWxsIGRvIGFub3RoZXIgY2hlY2sgbGF0ZXIgdG8gc2VlIGlmIHRoZSBlZGl0b3Igc2hvdWxkXG4gICAgICAvLyByZWNlaXZlIGZvY3VzLlxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICh0aGlzLmF1dG9mb2N1cyAmJiB0aGlzLiNpbml0aWFsaXplZCAmJiAhdGhpcy4jZm9jdXNJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcigpO1xuICAgICAgICB0aGlzLiNmb2N1c0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0b3JGb2N1c1N0cmVhbSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2RlZmF1bHRJZDogc3RyaW5nO1xuICAjaWQ6IHN0cmluZztcbiAgI2ZvY3VzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZTtcbiAgI2VkaXRvclNlcnZpY2U6IFNreVRleHRFZGl0b3JTZXJ2aWNlO1xuICAjc2FuaXRpemF0aW9uU2VydmljZTogU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2U7XG4gICNuZ0NvbnRyb2w6IE5nQ29udHJvbDtcbiAgI3pvbmU6IE5nWm9uZTtcblxuICAjX2ZvbnRMaXN0ID0gRk9OVF9MSVNUX0RFRkFVTFRTO1xuICAjX2ZvbnRTaXplTGlzdCA9IEZPTlRfU0laRV9MSVNUX0RFRkFVTFRTO1xuICAjX21lcmdlRmllbGRzOiBTa3lUZXh0RWRpdG9yTWVyZ2VGaWVsZFtdID0gW107XG4gICNfbWVudXMgPSBNRU5VX0RFRkFVTFRTO1xuICAjX3Rvb2xiYXJBY3Rpb25zOiBTa3lUZXh0RWRpdG9yVG9vbGJhckFjdGlvblR5cGVbXSA9IFRPT0xCQVJfQUNUSU9OX0RFRkFVTFRTO1xuICAjX2Rpc2FibGVkID0gZmFsc2U7XG4gICNfaW5pdGlhbFN0eWxlU3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBTVFlMRV9TVEFURV9ERUZBVUxUUyk7XG4gICNfcGxhY2Vob2xkZXIgPSAnJztcbiAgI192YWx1ZSA9ICc8cD48L3A+JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZSxcbiAgICBlZGl0b3JTZXJ2aWNlOiBTa3lUZXh0RWRpdG9yU2VydmljZSxcbiAgICBzYW5pdGl6YXRpb25TZXJ2aWNlOiBTa3lUZXh0U2FuaXRpemF0aW9uU2VydmljZSxcbiAgICBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgaWRTdmM6IFNreUlkU2VydmljZVxuICApIHtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2VkaXRvclNlcnZpY2UgPSBlZGl0b3JTZXJ2aWNlO1xuICAgIHRoaXMuI3Nhbml0aXphdGlvblNlcnZpY2UgPSBzYW5pdGl6YXRpb25TZXJ2aWNlO1xuICAgIHRoaXMuI25nQ29udHJvbCA9IG5nQ29udHJvbDtcbiAgICB0aGlzLiN6b25lID0gem9uZTtcblxuICAgIHRoaXMuI2lkID0gdGhpcy4jZGVmYXVsdElkID0gaWRTdmMuZ2VuZXJhdGVJZCgpO1xuXG4gICAgbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNpbml0SWZyYW1lKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UucmVtb3ZlT2JzZXJ2ZXJzKHRoaXMuI2VkaXRvclNlcnZpY2UuZWRpdG9yKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25JZnJhbWVMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuI2luaXRJZnJhbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIC8vIFVwZGF0ZSBIVE1MIGlmIG5lY2Vzc2FyeS5cbiAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGNvbnN0IGVkaXRvclZhbHVlID0gdGhpcy4jYWRhcHRlclNlcnZpY2UuZ2V0RWRpdG9ySW5uZXJIdG1sKCk7XG4gICAgICBpZiAoZWRpdG9yVmFsdWUgIT09IHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRFZGl0b3JJbm5lckh0bWwodGhpcy4jX3ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI19vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNfb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gICN1cGRhdGVTdHlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAuLi50aGlzLiNfaW5pdGlhbFN0eWxlU3RhdGUsXG4gICAgICAuLi50aGlzLiNhZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKCksXG4gICAgfTtcbiAgfVxuXG4gICNpbml0SWZyYW1lKCk6IHZvaWQge1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmluaXRFZGl0b3IoXG4gICAgICB0aGlzLmlkLFxuICAgICAgKHRoaXMuaWZyYW1lUmVmIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmluaXRpYWxTdHlsZVN0YXRlLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlclxuICAgICk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuaW5wdXRMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IHJ1biBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBjaGFuZ2VzIG9yaWdpbmF0aW5nIGluc2lkZSBhbiBpZnJhbWUsXG4gICAgICAgIC8vIHNvIHdlIGhhdmUgdG8gY2FsbCB0aGUgb25DaGFuZ2UoKSBldmVudCBpbnNpZGUgTmdab25lIHRvIGZvcmNlIGNoYW5nZSBwcm9waWdhdGlvbiB0byBjb25zdW1pbmcgY29tcG9uZW50cy5cbiAgICAgICAgdGhpcy4jem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3ZpZXdUb01vZGVsVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuc2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVN0eWxlKCk7XG4gICAgICAgIHRoaXMuZWRpdG9yRm9jdXNTdHJlYW0ubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuY2xpY2tMaXN0ZW5lcigpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5lZGl0b3JGb2N1c1N0cmVhbS5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI2VkaXRvclNlcnZpY2VcbiAgICAgIC5ibHVyTGlzdGVuZXIoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBydW4gY2hhbmdlIGRldGVjdGlvbiBmb3IgY2hhbmdlcyBvcmlnaW5hdGluZyBpbnNpZGUgYW4gaWZyYW1lLFxuICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHJ1biBtYXJrRm9yQ2hlY2soKSBpbnNpZGUgdGhlIE5nWm9uZSB0byBmb3JjZSBjaGFuZ2UgcHJvcGlnYXRpb24gdG8gY29uc3VtaW5nIGNvbXBvbmVudHMuXG4gICAgICAgIHRoaXMuI3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNfb25Ub3VjaGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNlZGl0b3JTZXJ2aWNlXG4gICAgICAuY29tbWFuZENoYW5nZUxpc3RlbmVyKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVTdHlsZSgpO1xuICAgICAgICB0aGlzLiN2aWV3VG9Nb2RlbFVwZGF0ZSgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRFZGl0b3JJbm5lckh0bWwodGhpcy4jX3ZhbHVlKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuYXV0b2ZvY3VzKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcigpO1xuICAgIH1cblxuICAgIHRoaXMuI2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gICN2aWV3VG9Nb2RlbFVwZGF0ZShlbWl0Q2hhbmdlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLiNhZGFwdGVyU2VydmljZS5nZXRFZGl0b3JJbm5lckh0bWwoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbWl0Q2hhbmdlKSB7XG4gICAgICB0aGlzLiNfb25DaGFuZ2UodGhpcy4jX3ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAjX29uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgI19vbkNoYW5nZTogKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdmFsdWU6IGFueVxuICApID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS10ZXh0LWVkaXRvclwiPlxuICA8c2t5LXRvb2xiYXJcbiAgICAqbmdJZj1cIlxuICAgICAgKG1lbnVzICYmIG1lbnVzLmxlbmd0aCkgPiAwIHx8XG4gICAgICAodG9vbGJhckFjdGlvbnMgJiYgdG9vbGJhckFjdGlvbnMubGVuZ3RoID4gMClcbiAgICBcIlxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcIlxuICA+XG4gICAgPHNreS10b29sYmFyLXNlY3Rpb25cbiAgICAgICpuZ0lmPVwibWVudXMgJiYgbWVudXMubGVuZ3RoID4gMFwiXG4gICAgICBhcmlhLWxhYmVsPVwiVGV4dCBmb3JtYXR0aW5nXCJcbiAgICAgIGNsYXNzPVwibWVudWJhclwiXG4gICAgICByb2xlPVwidG9vbGJhclwiXG4gICAgPlxuICAgICAgPHNreS10ZXh0LWVkaXRvci1tZW51YmFyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtlZGl0b3JGb2N1c1N0cmVhbV09XCJlZGl0b3JGb2N1c1N0cmVhbVwiXG4gICAgICAgIFttZW51c109XCJtZW51c1wiXG4gICAgICAgIFttZXJnZUZpZWxkc109XCJtZXJnZUZpZWxkc1wiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci1tZW51YmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgICA8c2t5LXRvb2xiYXItc2VjdGlvblxuICAgICAgKm5nSWY9XCJ0b29sYmFyQWN0aW9ucyAmJiB0b29sYmFyQWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJUZXh0IGZvcm1hdHRpbmdcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyXCJcbiAgICAgIHJvbGU9XCJ0b29sYmFyXCJcbiAgICA+XG4gICAgICA8c2t5LXRleHQtZWRpdG9yLXRvb2xiYXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2VkaXRvckZvY3VzU3RyZWFtXT1cImVkaXRvckZvY3VzU3RyZWFtXCJcbiAgICAgICAgW2ZvbnRMaXN0XT1cImZvbnRMaXN0XCJcbiAgICAgICAgW2ZvbnRTaXplTGlzdF09XCJmb250U2l6ZUxpc3RcIlxuICAgICAgICBbdG9vbGJhckFjdGlvbnNdPVwidG9vbGJhckFjdGlvbnNcIlxuICAgICAgICBbc3R5bGVTdGF0ZV09XCJpbml0aWFsU3R5bGVTdGF0ZVwiXG4gICAgICA+XG4gICAgICA8L3NreS10ZXh0LWVkaXRvci10b29sYmFyPlxuICAgIDwvc2t5LXRvb2xiYXItc2VjdGlvbj5cbiAgPC9za3ktdG9vbGJhcj5cbiAgPGlmcmFtZVxuICAgIGNsYXNzPVwic2t5LXRleHQtZWRpdG9yLXdyYXBwZXJcIlxuICAgIHNyYz1cImFib3V0OmJsYW5rXCJcbiAgICB0aXRsZT1cIlRleHQgRWRpdG9yXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2t5LXRleHQtZWRpdG9yLXdyYXBwZXItZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICAgIChsb2FkKT1cIm9uSWZyYW1lTG9hZCgpXCJcbiAgICAjaWZyYW1lXG4gID5cbiAgPC9pZnJhbWU+XG48L2Rpdj5cbiJdfQ==
@@ -1537,8 +1537,11 @@ class SkyTextEditorComponent {
1537
1537
  });
1538
1538
  }
1539
1539
  // Autofocus isn't testable in Firefox and IE.
1540
+ // Don't set focus on the editor now if the iframe isn't initialized.
1541
+ // #initIframe() will do another check later to see if the editor should
1542
+ // receive focus.
1540
1543
  /* istanbul ignore next */
1541
- if (this.autofocus && !__classPrivateFieldGet(this, _SkyTextEditorComponent_focusInitialized, "f")) {
1544
+ if (this.autofocus && __classPrivateFieldGet(this, _SkyTextEditorComponent_initialized, "f") && !__classPrivateFieldGet(this, _SkyTextEditorComponent_focusInitialized, "f")) {
1542
1545
  __classPrivateFieldGet(this, _SkyTextEditorComponent_adapterService, "f").focusEditor();
1543
1546
  __classPrivateFieldSet(this, _SkyTextEditorComponent_focusInitialized, true, "f");
1544
1547
  }