valtech-components 4.0.961 → 4.0.963

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.
Files changed (155) hide show
  1. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
  2. package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
  3. package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
  4. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +3 -3
  5. package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
  6. package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
  7. package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
  8. package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
  9. package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
  10. package/esm2022/lib/components/atoms/notice/notice.component.mjs +7 -3
  11. package/esm2022/lib/components/atoms/notice/types.mjs +1 -1
  12. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +3 -3
  13. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
  14. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
  15. package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
  16. package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
  17. package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +3 -3
  18. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +3 -3
  19. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
  20. package/esm2022/lib/components/molecules/animal-card/animal-card.component.mjs +3 -3
  21. package/esm2022/lib/components/molecules/article-card/article-card.component.mjs +3 -3
  22. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +3 -3
  23. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
  24. package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
  25. package/esm2022/lib/components/molecules/chat-composer/chat-composer.component.mjs +3 -3
  26. package/esm2022/lib/components/molecules/chat-input/chat-input.component.mjs +3 -3
  27. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
  28. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
  29. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
  30. package/esm2022/lib/components/molecules/comment/comment.component.mjs +4 -4
  31. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
  32. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +3 -3
  33. package/esm2022/lib/components/molecules/conversation-list-item/conversation-list-item.component.mjs +3 -3
  34. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +3 -3
  35. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
  36. package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +3 -3
  37. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +3 -3
  38. package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +3 -3
  39. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +3 -3
  40. package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +3 -3
  41. package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +3 -3
  42. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +3 -3
  43. package/esm2022/lib/components/molecules/empty-state/empty-state.component.mjs +3 -3
  44. package/esm2022/lib/components/molecules/entity-card/entity-card.component.mjs +3 -3
  45. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +3 -3
  46. package/esm2022/lib/components/molecules/field-options-editor/field-options-editor.component.mjs +3 -3
  47. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
  48. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +4 -4
  49. package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
  50. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
  51. package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
  52. package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +3 -3
  53. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
  54. package/esm2022/lib/components/molecules/media-object/media-object.component.mjs +3 -3
  55. package/esm2022/lib/components/molecules/message-bubble/message-bubble.component.mjs +3 -3
  56. package/esm2022/lib/components/molecules/metadata-list/metadata-list.component.mjs +3 -3
  57. package/esm2022/lib/components/molecules/metric-card/metric-card.component.mjs +3 -3
  58. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
  59. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +3 -3
  60. package/esm2022/lib/components/molecules/operation-reference/operation-reference.component.mjs +3 -3
  61. package/esm2022/lib/components/molecules/option-cards/option-cards.component.mjs +3 -3
  62. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +3 -3
  63. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +3 -3
  64. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
  65. package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +3 -3
  66. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +3 -3
  67. package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
  68. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
  69. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
  70. package/esm2022/lib/components/molecules/profile-card/profile-card.component.mjs +3 -3
  71. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
  72. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
  73. package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +3 -3
  74. package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
  75. package/esm2022/lib/components/molecules/reaction-bar/reaction-bar.component.mjs +3 -3
  76. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
  77. package/esm2022/lib/components/molecules/section-header/section-header.component.mjs +3 -3
  78. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -3
  79. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
  80. package/esm2022/lib/components/molecules/select-search/select-search-picker-modal.component.mjs +3 -3
  81. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +3 -3
  82. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +4 -4
  83. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +3 -3
  84. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +3 -3
  85. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
  86. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +3 -3
  87. package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +3 -3
  88. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +3 -3
  89. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
  90. package/esm2022/lib/components/molecules/typing-indicator/typing-indicator.component.mjs +3 -3
  91. package/esm2022/lib/components/molecules/usage-meters/usage-meters.component.mjs +3 -3
  92. package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +3 -3
  93. package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +3 -3
  94. package/esm2022/lib/components/organisms/access-request-view/access-request-view.component.mjs +3 -3
  95. package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +3 -3
  96. package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +3 -3
  97. package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
  98. package/esm2022/lib/components/organisms/attachment-uploader/attachment-uploader.component.mjs +3 -3
  99. package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +3 -3
  100. package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
  101. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
  102. package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +3 -3
  103. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
  104. package/esm2022/lib/components/organisms/confirmation-dialog-v2/confirmation-dialog-v2.component.mjs +3 -3
  105. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +3 -3
  106. package/esm2022/lib/components/organisms/cookie-settings/cookie-settings.component.mjs +3 -3
  107. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
  108. package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +3 -3
  109. package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +3 -3
  110. package/esm2022/lib/components/organisms/faq/faq.component.mjs +3 -3
  111. package/esm2022/lib/components/organisms/field-list/field-list.component.mjs +3 -3
  112. package/esm2022/lib/components/organisms/folder-tabs/folder-tabs.component.mjs +3 -3
  113. package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
  114. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +3 -3
  115. package/esm2022/lib/components/organisms/group-members/group-members.component.mjs +3 -3
  116. package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
  117. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +3 -3
  118. package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +3 -3
  119. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
  120. package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
  121. package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -3
  122. package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -3
  123. package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
  124. package/esm2022/lib/components/organisms/mini-games/bubble-blitz-game.component.mjs +3 -3
  125. package/esm2022/lib/components/organisms/mini-games/memory-game.component.mjs +3 -3
  126. package/esm2022/lib/components/organisms/mini-games/simon-game.component.mjs +3 -3
  127. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
  128. package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +3 -3
  129. package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +3 -3
  130. package/esm2022/lib/components/organisms/option-sheet/option-sheet.component.mjs +3 -3
  131. package/esm2022/lib/components/organisms/org-info-sheet/org-info-sheet.component.mjs +3 -3
  132. package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +3 -3
  133. package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +3 -3
  134. package/esm2022/lib/components/organisms/qr-scanner/qr-scanner.component.mjs +3 -3
  135. package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs +5 -5
  136. package/esm2022/lib/components/organisms/role-manager/role-manager.component.mjs +3 -3
  137. package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +3 -3
  138. package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +3 -3
  139. package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +3 -3
  140. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
  141. package/esm2022/lib/components/organisms/verify-view/verify-view.component.mjs +3 -3
  142. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
  143. package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +3 -3
  144. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +3 -3
  145. package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +3 -3
  146. package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
  147. package/esm2022/lib/version.mjs +2 -2
  148. package/fesm2022/valtech-components.mjs +300 -296
  149. package/fesm2022/valtech-components.mjs.map +1 -1
  150. package/lib/components/atoms/notice/types.d.ts +8 -5
  151. package/lib/version.d.ts +1 -1
  152. package/package.json +1 -1
  153. package/src/lib/components/styles/_docs-page.scss +1 -1
  154. package/src/lib/components/styles/overrides.scss +4 -4
  155. package/src/lib/components/styles/variables.scss +7 -7
@@ -358,7 +358,7 @@ export class AboutViewComponent {
358
358
  pintara acá, la vista Acerca de mostraría dos (le pasó). -->
359
359
  </ion-grid>
360
360
  </val-container>
361
- `, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
361
+ `, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-dark)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
362
362
  }
363
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, decorators: [{
364
364
  type: Component,
@@ -483,6 +483,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
483
483
  pintara acá, la vista Acerca de mostraría dos (le pasó). -->
484
484
  </ion-grid>
485
485
  </val-container>
486
- `, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
486
+ `, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-dark)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
487
487
  }], ctorParameters: () => [] });
488
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFN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Q1AsT0FBTywySkFDUCxhQUFhLHdIQUNiLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixtQkFBbUIscUdBQ25CLGtCQUFrQjs7NEZBNlBULGtCQUFrQjtrQkF4UTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0hUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgY29weU91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uTWV0YWRhdGEsIFJlYWN0aW9uU3VibWl0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IEFib3V0QWN0aW9uLCBBYm91dFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFCT1VUX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWJvdXQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoe1xuICBjb3B5T3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIGxvZ29UaWt0b2ssXG59KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWJvdXQnO1xuY29uc3QgREVGQVVMVF9CUkFORF9OQU1FID0gJ1ZhbHRlY2gnO1xuY29uc3QgREVGQVVMVF9MT0dPX1NSQyA9ICdhc3NldHMvaW1hZ2VzL21haW4taWNvbi5wbmcnO1xuLy8gUG9yIGRlZmF1bHQgZWwgSEVSTyB1c2EgbGEgQ1NTIHZhciBkZSBtYXJjYSBkZWwgZmFjdG9yeSAoYC0tbWFpbi1sb2dvLW1pbmlgKSxcbi8vIHF1ZSBjYWRhIGFwcCBkZWZpbmUgZW4gc3UgYHRoZW1lL3ZhcmlhYmxlcy5zY3NzYCAodGhlbWUtYXdhcmUpLiBTaSBsYSBhcHAgbm9cbi8vIGxhIGRlZmluZSwgZWwgYHZhciguLi4pYCBjYWUgYWwgYGxvZ29TcmNgICh2ZXIgdGVtcGxhdGUpLiBFbCBjb25zdW1lciBwdWVkZVxuLy8gcGFzYXIgYGJyYW5kLmxvZ29WYXI6ICcnYCBwYXJhIGZvcnphciBlbCBgPGltZyBzcmM9bG9nb1NyYz5gIGNsw6FzaWNvLlxuY29uc3QgREVGQVVMVF9MT0dPX1ZBUiA9ICctLW1haW4tbG9nby1taW5pJztcbmNvbnN0IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCA9ICdleHBlcmllbmNlJztcbmNvbnN0IEVBU1RFUl9FR0dfVEFQUyA9IDU7XG5jb25zdCBFQVNURVJfRUdHX1dJTkRPV19NUyA9IDIwMDA7XG5cbi8qKlxuICogYHZhbC1hYm91dC12aWV3YCDigJQgdmlzdGEgQWJvdXQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkhFUk8qKiDigJQgbG9nbyArIG5vbWJyZSBkZSBtYXJjYSArIHRhZ2xpbmUgKyBwaWxsIGRlIHZlcnNpw7NuIChjb3BpYWJsZSkuXG4gKiAgLSAqKkRlc2NyaXBjacOzbioqIOKAlCB0w610dWxvICsgY3VlcnBvLlxuICogIC0gKipBY2Npb25lcyoqIOKAlCBhY3Rpb24tY2FyZCBkZSByYXRpbmcgYnVpbHQtaW4gKGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYFxuICogICAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXQgY2Fuw7NuaWNvKSArIGxhcyBhY2Npb25lcyBnZW7DqXJpY2FzIHF1ZSBlbCBjb25zdW1lclxuICogICAgYXBvcnRlIHBvciBgY29uZmlnLmFjdGlvbnNgLlxuICogIC0gKipSZWRlcyoqIOKAlCBsaW5rcyBzb2NpYWxlcyAoYGNvbmZpZy5zb2NpYWxMaW5rc2ApOyBzZWNjacOzbiBvY3VsdGEgc2kgdmFjw61hLlxuICpcbiAqIExvIGFwcC1zcGVjaWZpYyAobG9nbywgbm9tYnJlLCB2ZXJzacOzbiwgcmVkZXMsIGFjY2lvbmVzIHNoYXJlL2ZhcSkgdmlhamEgY29tb1xuICogREFUQSBkZSBjb25maWcg4oCUIE5PIGNvbW8gc2xvdHMgKEFEUi0wMjEpLiBMYSB2ZXJzacOzbiBsYSBwYXNhIGVsIGNvbnN1bWVyXG4gKiAoYGNvbmZpZy52ZXJzaW9uYCA9IHN1IGBBUFBfVkVSU0lPTmApOyBsYSBsaWIgTk8gaW1wb3J0YSBlbCBgdmVyc2lvbi50c2AgZGUgbGFcbiAqIGFwcC4gU2kgbm8gc2UgcGFzYSB2ZXJzacOzbiwgZWwgcGlsbCBzZSBvY3VsdGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgXG4gKiBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BYm91dGApLlxuICpcbiAqIEdPVENIQSBpMThuIENvbnRlbnRSZWFjdGlvbjogYHZhbC1jb250ZW50LXJlYWN0aW9uYCBleGlnZSBzdSBuYW1lc3BhY2VcbiAqIGBDb250ZW50UmVhY3Rpb25gIHJlZ2lzdHJhZG8gZG9uZGUgc2UgdXNlIChrZXkgZmFsdGFudGUgZW4gYmluZGluZyArIENEID1cbiAqIG5hdmVnYWRvciBjb25nZWxhZG8gZW4gZGV2KS4gYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgc2UgYXV0by1yZWdpc3RyYSBlc2VcbiAqIG5hbWVzcGFjZSBlbiBTVSBjb25zdHJ1Y3RvciwgeSBjb21vIHNlIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYCBlc2UgY29uc3RydWN0b3JcbiAqIGNvcnJlIGFudGVzIGRlIHF1ZSBzdSB0ZW1wbGF0ZSBiaW5kZSDigJQgcXVlZGEgY3ViaWVydG8uIElndWFsIGxvIGltcG9ydGFtb3NcbiAqIGNvbW8gZGVwZW5kZW5jaWEgZXhwbMOtY2l0YSBkZSBlc3RhIHZpc3RhIHBhcmEgcXVlIGxhIGdhcmFudMOtYSBzZWEgbG9jYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hYm91dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkJ1dHRvbixcbiAgICBJb25HcmlkLFxuICAgIElvbkljb24sXG4gICAgUGlsbENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEFjdGlvbkNhcmRDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtY29udGFpbmVyIFtwcm9wc109XCJ7IHNpemU6ICdtZCcsIHBhZGRpbmc6ICdub25lJyB9XCI+XG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJhYm91dC1ncmlkXCI+XG4gICAgICAgIDwhLS0gSEVSTzogbG9nbyArIG5hbWUgKyB2ZXJzaW9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtaGVyb1wiPlxuICAgICAgICAgIEBpZiAobG9nb1ZhcigpKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYWJvdXQtaGVyb19fbG9nbyBhYm91dC1oZXJvX19sb2dvLS12YXJcIlxuICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicmFuZE5hbWUoKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid2YXIoJyArIGxvZ29WYXIoKSArICcsIHVybCgnICsgbG9nb1NyYygpICsgJykpJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVMb2dvVGFwKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGltZyBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ29cIiBbc3JjXT1cImxvZ29TcmMoKVwiIFthbHRdPVwiYnJhbmROYW1lKClcIiAoY2xpY2spPVwiaGFuZGxlTG9nb1RhcCgpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogYnJhbmROYW1lKCksXG4gICAgICAgICAgICAgIHNpemU6ICd4bGFyZ2UnLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCd0YWdsaW5lJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgQGlmICh2ZXJzaW9uKCkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJzaW9uLXJvd1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VmVyc2lvbigpXCJcbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidHQoJ3ZlcnNpb25MYWJlbCcpICsgJyAnICsgdmVyc2lvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHZhbC1waWxsXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB0dCgndmVyc2lvbkxhYmVsJykgKyAnICcgKyB2ZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIGNsYXNzPVwidmVyc2lvbi1jb3B5LWljb25cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFib3V0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2Rlc2NUaXRsZScpXCIgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdkZXNjQm9keScpLFxuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPCEtLSBBQ1RJT05TIOKAlCByYXRpbmcgYnVpbHQtaW4gKyBhY2Npb25lcyBkZWwgY29uc3VtZXIuIC0tPlxuICAgICAgICBAaWYgKHNob3dSYXRpbmcoKSB8fCBhY3Rpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvbiBhYm91dC1zZWN0aW9uLS1yZXZpZXdzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2FjdGlvbnNUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd1JhdGluZygpKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwicmF0ZUFjdGlvbkNhcmQoKVwiIChvbkNsaWNrKT1cIm9wZW5SYXRpbmcoKVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnMoKTsgdHJhY2sgYWN0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiZXh0cmFBY3Rpb25DYXJkKGFjdGlvbilcIiAob25DbGljayk9XCJhY3Rpb24ub25DbGljaygpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTT0NJQUwg4oCUIHBlbsO6bHRpbW8sIGp1c3RvIGFudGVzIGRlbCBmb290ZXIgZGUgZGVyZWNob3MuIC0tPlxuICAgICAgICBAaWYgKHNvY2lhbExpbmtzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwic2VjdGlvblRpdGxlKCdzb2NpYWxUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzb2NpYWxEZXNjJyksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LXNvY2lhbFwiPlxuICAgICAgICAgICAgICBAZm9yIChzIG9mIHNvY2lhbExpbmtzKCk7IHRyYWNrIHMudXJsKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzb2NpYWwtYnRuXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblVybChzLnVybClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTGEgbMOtbmVhIGxlZ2FsIGxhIHBvbmUgdmFsLXBhZ2UtY29udGVudCwgbm8gZXN0ZSBvcmdhbmlzbTogc2kgbGFcbiAgICAgICAgICAgcGludGFyYSBhY8OhLCBsYSB2aXN0YSBBY2VyY2EgZGUgbW9zdHJhcsOtYSBkb3MgKGxlIHBhc8OzKS4gLS0+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvdmFsLWNvbnRhaW5lcj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLyogQW5jaG8geSBjcmVjaW1pZW50byBjb24gZWwgcmFpbCBjb2xhcHNhZG8gbG9zIGRhIHZhbC1jb250YWluZXIgKHNpemVcbiAgICAgICAgICdtZCcpLCBubyBDU1MgbG9jYWw6IHZlciBjb250YWluZXIuY29tcG9uZW50LnNjc3MuICovXG4gICAgICAuYWJvdXQtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAwIDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28ge1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28tLXZhciB7XG4gICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjg1O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXJvdzpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLWNvcHktaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMCA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZF9fZGVzY3JpcHRpb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgICAgICAtLXBhZGRpbmctZW5kOiAwO1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuOmhvdmVyIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS10aW50LCAjOGE0Y2U1KTtcbiAgICAgICAgLS1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIGlvbi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4ge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWJvdXRWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgbG9nb1RhcENvdW50ID0gMDtcbiAgcHJpdmF0ZSBsb2dvVGFwVGltZXI/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIGlucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgYWJvdXRDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hBYm91dFJvdXRlc2ApLiBgcmVzb2x2ZWRDb25maWdgXG4gICAqIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBlbCBpbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqXG4gICAqICoqU2lnbmFsIGlucHV0KiogKG5vIGBASW5wdXRgIGNsw6FzaWNvKTogYHJlc29sdmVkQ29uZmlnYCBlcyB1biBgY29tcHV0ZWRgIHF1ZSBzZVxuICAgKiBldmFsw7phIHBvciBwcmltZXJhIHZleiBlbiBlbCBjb25zdHJ1Y3RvciAodsOtYSBgdGhpcy5uc2Ag4oaSIGBzZXRCYWNrSGVhZGVyYCksIEFOVEVTXG4gICAqIGRlIHF1ZSB1biBgQElucHV0YCBjbMOhc2ljbyBlc3TDqSBiaW5kZWFkby4gQ29uIGBASW5wdXRgIGVsIGNvbXB1dGVkIG1lbW9pemFiYSBsYVxuICAgKiBjb25maWcgdmFjw61hIHksIGFsIG5vIGRlcGVuZGVyIGRlIG5pbmd1bmEgc2XDsWFsLCBOVU5DQSByZWNvbXB1dGFiYSDihpIgaWdub3JhYmFcbiAgICogYFtjb25maWddYCAoc29jaWFsL2FjY2lvbmVzL3ZlcnNpw7NuL21hcmNhIHF1ZWRhYmFuIGVuIGRlZmF1bHQpLiBDb21vIHNpZ25hbCwgZWxcbiAgICogY29tcHV0ZWQgbG8gdHJhY2tlYSB5IHJlY29tcHV0YSBjdWFuZG8gZWwgYmluZGluZyBsbGVnYS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PEFib3V0Vmlld0NvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFJlcXVpcmVkPE9taXQ8QWJvdXRWaWV3Q29uZmlnLCAnb25SYXRlZCc+PiAmIFBpY2s8QWJvdXRWaWV3Q29uZmlnLCAnb25SYXRlZCc+PihcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnYWJvdXRDb25maWcnXSA/PyB7fSkgYXMgQWJvdXRWaWV3Q29uZmlnO1xuICAgICAgY29uc3QgbWVyZ2VkOiBBYm91dFZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnKCkgPz8ge30pIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBicmFuZDoge1xuICAgICAgICAgIG5hbWU6IG1lcmdlZC5icmFuZD8ubmFtZSA/PyBERUZBVUxUX0JSQU5EX05BTUUsXG4gICAgICAgICAgbG9nb1NyYzogbWVyZ2VkLmJyYW5kPy5sb2dvU3JjID8/IERFRkFVTFRfTE9HT19TUkMsXG4gICAgICAgICAgbG9nb1ZhcjogbWVyZ2VkLmJyYW5kPy5sb2dvVmFyID8/IERFRkFVTFRfTE9HT19WQVIsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcnNpb246IG1lcmdlZC52ZXJzaW9uID8/ICcnLFxuICAgICAgICBzb2NpYWxMaW5rczogbWVyZ2VkLnNvY2lhbExpbmtzID8/IFtdLFxuICAgICAgICBzaG93UmF0aW5nOiBtZXJnZWQuc2hvd1JhdGluZyA/PyB0cnVlLFxuICAgICAgICByYXRpbmdFbnRpdHlJZDogbWVyZ2VkLnJhdGluZ0VudGl0eUlkID8/IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCxcbiAgICAgICAgYWN0aW9uczogbWVyZ2VkLmFjdGlvbnMgPz8gW10sXG4gICAgICAgIG1pbmlHYW1lc1JvdXRlOiBtZXJnZWQubWluaUdhbWVzUm91dGUgPz8gJycsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgICBvblJhdGVkOiBtZXJnZWQub25SYXRlZCxcbiAgICAgIH07XG4gICAgfVxuICApO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBicmFuZE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubmFtZSEpO1xuICByZWFkb25seSBsb2dvU3JjID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLmxvZ29TcmMhKTtcbiAgcmVhZG9ubHkgbG9nb1ZhciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5sb2dvVmFyID8/ICcnKTtcbiAgcmVhZG9ubHkgdmVyc2lvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS52ZXJzaW9uKTtcbiAgcmVhZG9ubHkgc29jaWFsTGlua3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc29jaWFsTGlua3MpO1xuICByZWFkb25seSBzaG93UmF0aW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNob3dSYXRpbmcpO1xuICByZWFkb25seSBhY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmFjdGlvbnMpO1xuICByZWFkb25seSBtaW5pR2FtZXNSb3V0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5taW5pR2FtZXNSb3V0ZSk7XG5cbiAgLyoqIFRpdGxlIG1ldGFkYXRhIHBhcmEgc2VjY2lvbmVzIOKAlCBib2xkICsgc2l6ZSBzbWFsbC4gKi9cbiAgcmVhZG9ubHkgcmF0ZUFjdGlvbkNhcmQgPSBjb21wdXRlZDxBY3Rpb25DYXJkTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiB7IGlvbmljb246ICdzdGFyLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gICAgICB0aXRsZTogdGhpcy50dCgncmF0ZVRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgncmF0ZURlc2MnKSxcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgc2hhZG93ZWQ6IGZhbHNlLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgQUJPVVRfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKiBIZWxwZXIgaTE4biBib3VuZCBhbCBuYW1lc3BhY2UgcmVzdWVsdG8uIFJlYWN0aXZvIHbDrWEgYGxhbmcoKWAuICovXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxuXG4gIC8qKiBUaXRsZSBtZXRhZGF0YSBwYXJhIHNlY2Npb25lcyDigJQgYm9sZCArIHNpemUgc21hbGwuICovXG4gIHByb3RlY3RlZCBzZWN0aW9uVGl0bGUoa2V5OiBzdHJpbmcpOiBUaXRsZU1ldGFkYXRhIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiB0aGlzLnR0KGtleSksXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGJvbGQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBBY3Rpb25DYXJkTWV0YWRhdGEgcGFyYSB1bmEgYWNjacOzbiBnZW7DqXJpY2EgZGVsIGNvbnN1bWVyLiAqL1xuICBwcm90ZWN0ZWQgZXh0cmFBY3Rpb25DYXJkKGFjdGlvbjogQWJvdXRBY3Rpb24pOiBBY3Rpb25DYXJkTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiB7IGlvbmljb246IGFjdGlvbi5pY29uID8/ICdjaGF0YnViYmxlLWVsbGlwc2VzLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gICAgICB0aXRsZTogYWN0aW9uLmxhYmVsLFxuICAgICAgZGVzY3JpcHRpb246IGFjdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgc2hhZG93ZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICAvKiogQ29waWEgbGEgdmVyc2nDs24gYWwgcG9ydGFwYXBlbGVzICsgdG9hc3QgKGNvbG9yIGRhcmspLiAqL1xuICBhc3luYyBjb3B5VmVyc2lvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2ID0gdGhpcy52ZXJzaW9uKCk7XG4gICAgaWYgKCF2KSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHYpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50dCgndmVyc2lvbkNvcGllZCcpLnJlcGxhY2UoJ3t2fScsIHYpLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBkdXJhdGlvbjogMTUwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIHNpbGVuY2lvc29cbiAgICB9XG4gIH1cblxuICAvKiogQWJyZSB1bmEgVVJMIGV4dGVybmEgZW4gbnVldmEgdGFiLiBgbWFpbHRvOmAgcXVlZGEgZW4gbGEgbWlzbWEgdGFiLiAqL1xuICBvcGVuVXJsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdtYWlsdG86JykpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiQ2FsaWZpY2FyIGxhIGFwcFwiIOKAlCBhYnJlIGB2YWwtY29udGVudC1yZWFjdGlvbmAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXRcbiAgICogY2Fuw7NuaWNvLiBFbCBsYXlvdXQgZXZpdGEgc29sYXBlcyBjb24gc3RhdHVzL3NhZmUgYXJlYSB5IG1hbnRpZW5lIHVuIHBhdHLDs25cbiAgICogY29uc2lzdGVudGUgZW50cmUgbW9iaWxlIGZ1bGxzY3JlZW4geSBkZXNrdG9wIGNhcmQuXG4gICAqL1xuICBhc3luYyBvcGVuUmF0aW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlYWN0aW9uUHJvcHM6IFBhcnRpYWw8Q29udGVudFJlYWN0aW9uTWV0YWRhdGE+ID0ge1xuICAgICAgLy8gZW50aXR5VHlwZSBcImFwcFwiIGRpc3Rpbmd1ZSBlc3RhIHJlYWNjacOzbiBkZSBsYXMgZGUgYXJ0w61jdWxvcy9GQVFzLlxuICAgICAgZW50aXR5UmVmOiB7IGVudGl0eVR5cGU6ICdhcHAnLCBlbnRpdHlJZDogdGhpcy5yZXNvbHZlZENvbmZpZygpLnJhdGluZ0VudGl0eUlkIH0sXG4gICAgICBxdWVzdGlvbjogdGhpcy50dCgncmF0ZVF1ZXN0aW9uJyksXG4gICAgICBjb21tZW50UGxhY2Vob2xkZXI6IHRoaXMudHQoJ3JhdGVDb21tZW50JyksXG4gICAgICB0aGFua1lvdU1lc3NhZ2U6IHRoaXMudHQoJ3JhdGVUaGFua3MnKSxcbiAgICAgIHNob3dDb21tZW50OiB0cnVlLFxuICAgICAgc2hvd1RoYW5rWW91OiB0cnVlLFxuICAgICAgLy8gTW9kYWwgb25lLXNob3Q6IE5PIGJsb3F1ZWFyIGVsIHJlbmRlciBjb24gZWwgY2hlY2sgZGUgcmF0aW5nIHByZXZpby5cbiAgICAgIHNraXBJbml0aWFsQ2hlY2s6IHRydWUsXG4gICAgICBlbW9qaXM6IFsn8J+YlScsICfwn5mCJywgJ/CfmI0nXSxcbiAgICAgIGVtb2ppTGFiZWxzOiBbdGhpcy50dCgncmF0ZUJhZCcpLCB0aGlzLnR0KCdyYXRlTWlkJyksIHRoaXMudHQoJ3JhdGVHb29kJyldLFxuICAgICAgc2hvd0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5BZGFwdGl2ZTxDb250ZW50UmVhY3Rpb25Nb2RhbENvbXBvbmVudCwgUmVhY3Rpb25TdWJtaXRFdmVudD4oe1xuICAgICAgY29tcG9uZW50OiBDb250ZW50UmVhY3Rpb25Nb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHByb3BzOiByZWFjdGlvblByb3BzLFxuICAgICAgICB0aXRsZTogdGhpcy50dCgncmF0ZU1vZGFsVGl0bGUnKSxcbiAgICAgICAgY2xvc2VMYWJlbDogdGhpcy50dCgncmF0ZUNsb3NlJyksXG4gICAgICAgIGRpc21pc3NPblN1Ym1pdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5yb2xlID09PSAnc3VibWl0Jykge1xuICAgICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uUmF0ZWQ/LigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxvZ29UYXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1pbmlHYW1lc1JvdXRlKCkpIHJldHVybjtcbiAgICB0aGlzLmxvZ29UYXBDb3VudCArPSAxO1xuICAgIGlmICh0aGlzLmxvZ29UYXBUaW1lcikgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmxvZ29UYXBUaW1lcik7XG4gICAgdGhpcy5sb2dvVGFwVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ29UYXBDb3VudCA9IDA7XG4gICAgICB0aGlzLmxvZ29UYXBUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCBFQVNURVJfRUdHX1dJTkRPV19NUyk7XG4gICAgaWYgKHRoaXMubG9nb1RhcENvdW50IDwgRUFTVEVSX0VHR19UQVBTKSByZXR1cm47XG4gICAgdGhpcy5sb2dvVGFwQ291bnQgPSAwO1xuICAgIGlmICh0aGlzLmxvZ29UYXBUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmxvZ29UYXBUaW1lcik7XG4gICAgICB0aGlzLmxvZ29UYXBUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdm9pZCB0aGlzLm9wZW5NaW5pR2FtZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb3Blbk1pbmlHYW1lcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5taW5pR2FtZXNSb3V0ZSgpO1xuICAgIGlmICghYmFzZSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYmFzZSk7XG4gIH1cbn1cbiJdfQ==
488
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFN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Q1AsT0FBTywySkFDUCxhQUFhLHdIQUNiLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixtQkFBbUIscUdBQ25CLGtCQUFrQjs7NEZBNlBULGtCQUFrQjtrQkF4UTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0hUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgY29weU91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uTWV0YWRhdGEsIFJlYWN0aW9uU3VibWl0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IEFib3V0QWN0aW9uLCBBYm91dFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFCT1VUX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWJvdXQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoe1xuICBjb3B5T3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIGxvZ29UaWt0b2ssXG59KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWJvdXQnO1xuY29uc3QgREVGQVVMVF9CUkFORF9OQU1FID0gJ1ZhbHRlY2gnO1xuY29uc3QgREVGQVVMVF9MT0dPX1NSQyA9ICdhc3NldHMvaW1hZ2VzL21haW4taWNvbi5wbmcnO1xuLy8gUG9yIGRlZmF1bHQgZWwgSEVSTyB1c2EgbGEgQ1NTIHZhciBkZSBtYXJjYSBkZWwgZmFjdG9yeSAoYC0tbWFpbi1sb2dvLW1pbmlgKSxcbi8vIHF1ZSBjYWRhIGFwcCBkZWZpbmUgZW4gc3UgYHRoZW1lL3ZhcmlhYmxlcy5zY3NzYCAodGhlbWUtYXdhcmUpLiBTaSBsYSBhcHAgbm9cbi8vIGxhIGRlZmluZSwgZWwgYHZhciguLi4pYCBjYWUgYWwgYGxvZ29TcmNgICh2ZXIgdGVtcGxhdGUpLiBFbCBjb25zdW1lciBwdWVkZVxuLy8gcGFzYXIgYGJyYW5kLmxvZ29WYXI6ICcnYCBwYXJhIGZvcnphciBlbCBgPGltZyBzcmM9bG9nb1NyYz5gIGNsw6FzaWNvLlxuY29uc3QgREVGQVVMVF9MT0dPX1ZBUiA9ICctLW1haW4tbG9nby1taW5pJztcbmNvbnN0IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCA9ICdleHBlcmllbmNlJztcbmNvbnN0IEVBU1RFUl9FR0dfVEFQUyA9IDU7XG5jb25zdCBFQVNURVJfRUdHX1dJTkRPV19NUyA9IDIwMDA7XG5cbi8qKlxuICogYHZhbC1hYm91dC12aWV3YCDigJQgdmlzdGEgQWJvdXQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkhFUk8qKiDigJQgbG9nbyArIG5vbWJyZSBkZSBtYXJjYSArIHRhZ2xpbmUgKyBwaWxsIGRlIHZlcnNpw7NuIChjb3BpYWJsZSkuXG4gKiAgLSAqKkRlc2NyaXBjacOzbioqIOKAlCB0w610dWxvICsgY3VlcnBvLlxuICogIC0gKipBY2Npb25lcyoqIOKAlCBhY3Rpb24tY2FyZCBkZSByYXRpbmcgYnVpbHQtaW4gKGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYFxuICogICAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXQgY2Fuw7NuaWNvKSArIGxhcyBhY2Npb25lcyBnZW7DqXJpY2FzIHF1ZSBlbCBjb25zdW1lclxuICogICAgYXBvcnRlIHBvciBgY29uZmlnLmFjdGlvbnNgLlxuICogIC0gKipSZWRlcyoqIOKAlCBsaW5rcyBzb2NpYWxlcyAoYGNvbmZpZy5zb2NpYWxMaW5rc2ApOyBzZWNjacOzbiBvY3VsdGEgc2kgdmFjw61hLlxuICpcbiAqIExvIGFwcC1zcGVjaWZpYyAobG9nbywgbm9tYnJlLCB2ZXJzacOzbiwgcmVkZXMsIGFjY2lvbmVzIHNoYXJlL2ZhcSkgdmlhamEgY29tb1xuICogREFUQSBkZSBjb25maWcg4oCUIE5PIGNvbW8gc2xvdHMgKEFEUi0wMjEpLiBMYSB2ZXJzacOzbiBsYSBwYXNhIGVsIGNvbnN1bWVyXG4gKiAoYGNvbmZpZy52ZXJzaW9uYCA9IHN1IGBBUFBfVkVSU0lPTmApOyBsYSBsaWIgTk8gaW1wb3J0YSBlbCBgdmVyc2lvbi50c2AgZGUgbGFcbiAqIGFwcC4gU2kgbm8gc2UgcGFzYSB2ZXJzacOzbiwgZWwgcGlsbCBzZSBvY3VsdGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgXG4gKiBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BYm91dGApLlxuICpcbiAqIEdPVENIQSBpMThuIENvbnRlbnRSZWFjdGlvbjogYHZhbC1jb250ZW50LXJlYWN0aW9uYCBleGlnZSBzdSBuYW1lc3BhY2VcbiAqIGBDb250ZW50UmVhY3Rpb25gIHJlZ2lzdHJhZG8gZG9uZGUgc2UgdXNlIChrZXkgZmFsdGFudGUgZW4gYmluZGluZyArIENEID1cbiAqIG5hdmVnYWRvciBjb25nZWxhZG8gZW4gZGV2KS4gYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgc2UgYXV0by1yZWdpc3RyYSBlc2VcbiAqIG5hbWVzcGFjZSBlbiBTVSBjb25zdHJ1Y3RvciwgeSBjb21vIHNlIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYCBlc2UgY29uc3RydWN0b3JcbiAqIGNvcnJlIGFudGVzIGRlIHF1ZSBzdSB0ZW1wbGF0ZSBiaW5kZSDigJQgcXVlZGEgY3ViaWVydG8uIElndWFsIGxvIGltcG9ydGFtb3NcbiAqIGNvbW8gZGVwZW5kZW5jaWEgZXhwbMOtY2l0YSBkZSBlc3RhIHZpc3RhIHBhcmEgcXVlIGxhIGdhcmFudMOtYSBzZWEgbG9jYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hYm91dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkJ1dHRvbixcbiAgICBJb25HcmlkLFxuICAgIElvbkljb24sXG4gICAgUGlsbENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEFjdGlvbkNhcmRDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtY29udGFpbmVyIFtwcm9wc109XCJ7IHNpemU6ICdtZCcsIHBhZGRpbmc6ICdub25lJyB9XCI+XG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJhYm91dC1ncmlkXCI+XG4gICAgICAgIDwhLS0gSEVSTzogbG9nbyArIG5hbWUgKyB2ZXJzaW9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtaGVyb1wiPlxuICAgICAgICAgIEBpZiAobG9nb1ZhcigpKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYWJvdXQtaGVyb19fbG9nbyBhYm91dC1oZXJvX19sb2dvLS12YXJcIlxuICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicmFuZE5hbWUoKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid2YXIoJyArIGxvZ29WYXIoKSArICcsIHVybCgnICsgbG9nb1NyYygpICsgJykpJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVMb2dvVGFwKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGltZyBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ29cIiBbc3JjXT1cImxvZ29TcmMoKVwiIFthbHRdPVwiYnJhbmROYW1lKClcIiAoY2xpY2spPVwiaGFuZGxlTG9nb1RhcCgpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogYnJhbmROYW1lKCksXG4gICAgICAgICAgICAgIHNpemU6ICd4bGFyZ2UnLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCd0YWdsaW5lJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgQGlmICh2ZXJzaW9uKCkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJzaW9uLXJvd1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VmVyc2lvbigpXCJcbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidHQoJ3ZlcnNpb25MYWJlbCcpICsgJyAnICsgdmVyc2lvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHZhbC1waWxsXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB0dCgndmVyc2lvbkxhYmVsJykgKyAnICcgKyB2ZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIGNsYXNzPVwidmVyc2lvbi1jb3B5LWljb25cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFib3V0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2Rlc2NUaXRsZScpXCIgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdkZXNjQm9keScpLFxuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPCEtLSBBQ1RJT05TIOKAlCByYXRpbmcgYnVpbHQtaW4gKyBhY2Npb25lcyBkZWwgY29uc3VtZXIuIC0tPlxuICAgICAgICBAaWYgKHNob3dSYXRpbmcoKSB8fCBhY3Rpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvbiBhYm91dC1zZWN0aW9uLS1yZXZpZXdzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2FjdGlvbnNUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd1JhdGluZygpKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwicmF0ZUFjdGlvbkNhcmQoKVwiIChvbkNsaWNrKT1cIm9wZW5SYXRpbmcoKVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnMoKTsgdHJhY2sgYWN0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiZXh0cmFBY3Rpb25DYXJkKGFjdGlvbilcIiAob25DbGljayk9XCJhY3Rpb24ub25DbGljaygpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTT0NJQUwg4oCUIHBlbsO6bHRpbW8sIGp1c3RvIGFudGVzIGRlbCBmb290ZXIgZGUgZGVyZWNob3MuIC0tPlxuICAgICAgICBAaWYgKHNvY2lhbExpbmtzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwic2VjdGlvblRpdGxlKCdzb2NpYWxUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzb2NpYWxEZXNjJyksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LXNvY2lhbFwiPlxuICAgICAgICAgICAgICBAZm9yIChzIG9mIHNvY2lhbExpbmtzKCk7IHRyYWNrIHMudXJsKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzb2NpYWwtYnRuXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblVybChzLnVybClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTGEgbMOtbmVhIGxlZ2FsIGxhIHBvbmUgdmFsLXBhZ2UtY29udGVudCwgbm8gZXN0ZSBvcmdhbmlzbTogc2kgbGFcbiAgICAgICAgICAgcGludGFyYSBhY8OhLCBsYSB2aXN0YSBBY2VyY2EgZGUgbW9zdHJhcsOtYSBkb3MgKGxlIHBhc8OzKS4gLS0+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvdmFsLWNvbnRhaW5lcj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLyogQW5jaG8geSBjcmVjaW1pZW50byBjb24gZWwgcmFpbCBjb2xhcHNhZG8gbG9zIGRhIHZhbC1jb250YWluZXIgKHNpemVcbiAgICAgICAgICdtZCcpLCBubyBDU1MgbG9jYWw6IHZlciBjb250YWluZXIuY29tcG9uZW50LnNjc3MuICovXG4gICAgICAuYWJvdXQtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAwIDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28ge1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28tLXZhciB7XG4gICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjg1O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXJvdzpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLWNvcHktaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4ge1xuICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgLS1wYWRkaW5nLWVuZDogMDtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bjpob3ZlciB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktdGludCwgIzhhNGNlNSk7XG4gICAgICAgIC0tY29sb3I6ICNmZmY7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFib3V0Vmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGxvZ29UYXBDb3VudCA9IDA7XG4gIHByaXZhdGUgbG9nb1RhcFRpbWVyPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBpbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYGFib3V0Q29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoQWJvdXRSb3V0ZXNgKS4gYHJlc29sdmVkQ29uZmlnYFxuICAgKiBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cyDigJQgZWwgaW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKlxuICAgKiAqKlNpZ25hbCBpbnB1dCoqIChubyBgQElucHV0YCBjbMOhc2ljbyk6IGByZXNvbHZlZENvbmZpZ2AgZXMgdW4gYGNvbXB1dGVkYCBxdWUgc2VcbiAgICogZXZhbMO6YSBwb3IgcHJpbWVyYSB2ZXogZW4gZWwgY29uc3RydWN0b3IgKHbDrWEgYHRoaXMubnNgIOKGkiBgc2V0QmFja0hlYWRlcmApLCBBTlRFU1xuICAgKiBkZSBxdWUgdW4gYEBJbnB1dGAgY2zDoXNpY28gZXN0w6kgYmluZGVhZG8uIENvbiBgQElucHV0YCBlbCBjb21wdXRlZCBtZW1vaXphYmEgbGFcbiAgICogY29uZmlnIHZhY8OtYSB5LCBhbCBubyBkZXBlbmRlciBkZSBuaW5ndW5hIHNlw7FhbCwgTlVOQ0EgcmVjb21wdXRhYmEg4oaSIGlnbm9yYWJhXG4gICAqIGBbY29uZmlnXWAgKHNvY2lhbC9hY2Npb25lcy92ZXJzacOzbi9tYXJjYSBxdWVkYWJhbiBlbiBkZWZhdWx0KS4gQ29tbyBzaWduYWwsIGVsXG4gICAqIGNvbXB1dGVkIGxvIHRyYWNrZWEgeSByZWNvbXB1dGEgY3VhbmRvIGVsIGJpbmRpbmcgbGxlZ2EuXG4gICAqL1xuICByZWFkb25seSBjb25maWcgPSBpbnB1dDxBYm91dFZpZXdDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxSZXF1aXJlZDxPbWl0PEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4gJiBQaWNrPEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ2Fib3V0Q29uZmlnJ10gPz8ge30pIGFzIEFib3V0Vmlld0NvbmZpZztcbiAgICAgIGNvbnN0IG1lcmdlZDogQWJvdXRWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZygpID8/IHt9KSB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYnJhbmQ6IHtcbiAgICAgICAgICBuYW1lOiBtZXJnZWQuYnJhbmQ/Lm5hbWUgPz8gREVGQVVMVF9CUkFORF9OQU1FLFxuICAgICAgICAgIGxvZ29TcmM6IG1lcmdlZC5icmFuZD8ubG9nb1NyYyA/PyBERUZBVUxUX0xPR09fU1JDLFxuICAgICAgICAgIGxvZ29WYXI6IG1lcmdlZC5icmFuZD8ubG9nb1ZhciA/PyBERUZBVUxUX0xPR09fVkFSLFxuICAgICAgICB9LFxuICAgICAgICB2ZXJzaW9uOiBtZXJnZWQudmVyc2lvbiA/PyAnJyxcbiAgICAgICAgc29jaWFsTGlua3M6IG1lcmdlZC5zb2NpYWxMaW5rcyA/PyBbXSxcbiAgICAgICAgc2hvd1JhdGluZzogbWVyZ2VkLnNob3dSYXRpbmcgPz8gdHJ1ZSxcbiAgICAgICAgcmF0aW5nRW50aXR5SWQ6IG1lcmdlZC5yYXRpbmdFbnRpdHlJZCA/PyBERUZBVUxUX1JBVElOR19FTlRJVFlfSUQsXG4gICAgICAgIGFjdGlvbnM6IG1lcmdlZC5hY3Rpb25zID8/IFtdLFxuICAgICAgICBtaW5pR2FtZXNSb3V0ZTogbWVyZ2VkLm1pbmlHYW1lc1JvdXRlID8/ICcnLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgICAgb25SYXRlZDogbWVyZ2VkLm9uUmF0ZWQsXG4gICAgICB9O1xuICAgIH1cbiAgKTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgYnJhbmROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLm5hbWUhKTtcbiAgcmVhZG9ubHkgbG9nb1NyYyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5sb2dvU3JjISk7XG4gIHJlYWRvbmx5IGxvZ29WYXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubG9nb1ZhciA/PyAnJyk7XG4gIHJlYWRvbmx5IHZlcnNpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkudmVyc2lvbik7XG4gIHJlYWRvbmx5IHNvY2lhbExpbmtzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNvY2lhbExpbmtzKTtcbiAgcmVhZG9ubHkgc2hvd1JhdGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5zaG93UmF0aW5nKTtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5hY3Rpb25zKTtcbiAgcmVhZG9ubHkgbWluaUdhbWVzUm91dGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkubWluaUdhbWVzUm91dGUpO1xuXG4gIC8qKiBUaXRsZSBtZXRhZGF0YSBwYXJhIHNlY2Npb25lcyDigJQgYm9sZCArIHNpemUgc21hbGwuICovXG4gIHJlYWRvbmx5IHJhdGVBY3Rpb25DYXJkID0gY29tcHV0ZWQ8QWN0aW9uQ2FyZE1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogeyBpb25pY29uOiAnc3Rhci1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICAgICAgdGl0bGU6IHRoaXMudHQoJ3JhdGVUaXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ3JhdGVEZXNjJyksXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIHNoYWRvd2VkOiBmYWxzZSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMobnMsIEFCT1VUX1ZJRVdfSTE4Tik7XG4gICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgbnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gIH1cblxuICAvKiogSGVscGVyIGkxOG4gYm91bmQgYWwgbmFtZXNwYWNlIHJlc3VlbHRvLiBSZWFjdGl2byB2w61hIGBsYW5nKClgLiAqL1xuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cblxuICAvKiogVGl0bGUgbWV0YWRhdGEgcGFyYSBzZWNjaW9uZXMg4oCUIGJvbGQgKyBzaXplIHNtYWxsLiAqL1xuICBwcm90ZWN0ZWQgc2VjdGlvblRpdGxlKGtleTogc3RyaW5nKTogVGl0bGVNZXRhZGF0YSB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogdGhpcy50dChrZXkpLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBib2xkOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICAvKiogQWN0aW9uQ2FyZE1ldGFkYXRhIHBhcmEgdW5hIGFjY2nDs24gZ2Vuw6lyaWNhIGRlbCBjb25zdW1lci4gKi9cbiAgcHJvdGVjdGVkIGV4dHJhQWN0aW9uQ2FyZChhY3Rpb246IEFib3V0QWN0aW9uKTogQWN0aW9uQ2FyZE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogeyBpb25pY29uOiBhY3Rpb24uaWNvbiA/PyAnY2hhdGJ1YmJsZS1lbGxpcHNlcy1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICAgICAgdGl0bGU6IGFjdGlvbi5sYWJlbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIHNoYWRvd2VkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENvcGlhIGxhIHZlcnNpw7NuIGFsIHBvcnRhcGFwZWxlcyArIHRvYXN0IChjb2xvciBkYXJrKS4gKi9cbiAgYXN5bmMgY29weVZlcnNpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmVyc2lvbigpO1xuICAgIGlmICghdikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh2KTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3ZlcnNpb25Db3BpZWQnKS5yZXBsYWNlKCd7dn0nLCB2KSxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgZHVyYXRpb246IDE1MDAsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBzaWxlbmNpb3NvXG4gICAgfVxuICB9XG5cbiAgLyoqIEFicmUgdW5hIFVSTCBleHRlcm5hIGVuIG51ZXZhIHRhYi4gYG1haWx0bzpgIHF1ZWRhIGVuIGxhIG1pc21hIHRhYi4gKi9cbiAgb3BlblVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnbWFpbHRvOicpKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIkNhbGlmaWNhciBsYSBhcHBcIiDigJQgYWJyZSBgdmFsLWNvbnRlbnQtcmVhY3Rpb25gIGRlbnRybyBkZWwgbW9kYWwgbGF5b3V0XG4gICAqIGNhbsOzbmljby4gRWwgbGF5b3V0IGV2aXRhIHNvbGFwZXMgY29uIHN0YXR1cy9zYWZlIGFyZWEgeSBtYW50aWVuZSB1biBwYXRyw7NuXG4gICAqIGNvbnNpc3RlbnRlIGVudHJlIG1vYmlsZSBmdWxsc2NyZWVuIHkgZGVza3RvcCBjYXJkLlxuICAgKi9cbiAgYXN5bmMgb3BlblJhdGluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWFjdGlvblByb3BzOiBQYXJ0aWFsPENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhPiA9IHtcbiAgICAgIC8vIGVudGl0eVR5cGUgXCJhcHBcIiBkaXN0aW5ndWUgZXN0YSByZWFjY2nDs24gZGUgbGFzIGRlIGFydMOtY3Vsb3MvRkFRcy5cbiAgICAgIGVudGl0eVJlZjogeyBlbnRpdHlUeXBlOiAnYXBwJywgZW50aXR5SWQ6IHRoaXMucmVzb2x2ZWRDb25maWcoKS5yYXRpbmdFbnRpdHlJZCB9LFxuICAgICAgcXVlc3Rpb246IHRoaXMudHQoJ3JhdGVRdWVzdGlvbicpLFxuICAgICAgY29tbWVudFBsYWNlaG9sZGVyOiB0aGlzLnR0KCdyYXRlQ29tbWVudCcpLFxuICAgICAgdGhhbmtZb3VNZXNzYWdlOiB0aGlzLnR0KCdyYXRlVGhhbmtzJyksXG4gICAgICBzaG93Q29tbWVudDogdHJ1ZSxcbiAgICAgIHNob3dUaGFua1lvdTogdHJ1ZSxcbiAgICAgIC8vIE1vZGFsIG9uZS1zaG90OiBOTyBibG9xdWVhciBlbCByZW5kZXIgY29uIGVsIGNoZWNrIGRlIHJhdGluZyBwcmV2aW8uXG4gICAgICBza2lwSW5pdGlhbENoZWNrOiB0cnVlLFxuICAgICAgZW1vamlzOiBbJ/CfmJUnLCAn8J+ZgicsICfwn5iNJ10sXG4gICAgICBlbW9qaUxhYmVsczogW3RoaXMudHQoJ3JhdGVCYWQnKSwgdGhpcy50dCgncmF0ZU1pZCcpLCB0aGlzLnR0KCdyYXRlR29vZCcpXSxcbiAgICAgIHNob3dDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5vcGVuQWRhcHRpdmU8Q29udGVudFJlYWN0aW9uTW9kYWxDb21wb25lbnQsIFJlYWN0aW9uU3VibWl0RXZlbnQ+KHtcbiAgICAgIGNvbXBvbmVudDogQ29udGVudFJlYWN0aW9uTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICBwcm9wczogcmVhY3Rpb25Qcm9wcyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHQoJ3JhdGVNb2RhbFRpdGxlJyksXG4gICAgICAgIGNsb3NlTGFiZWw6IHRoaXMudHQoJ3JhdGVDbG9zZScpLFxuICAgICAgICBkaXNtaXNzT25TdWJtaXQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChyZXN1bHQucm9sZSA9PT0gJ3N1Ym1pdCcpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vblJhdGVkPy4oKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVMb2dvVGFwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5taW5pR2FtZXNSb3V0ZSgpKSByZXR1cm47XG4gICAgdGhpcy5sb2dvVGFwQ291bnQgKz0gMTtcbiAgICBpZiAodGhpcy5sb2dvVGFwVGltZXIpIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5sb2dvVGFwVGltZXIpO1xuICAgIHRoaXMubG9nb1RhcFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2dvVGFwQ291bnQgPSAwO1xuICAgICAgdGhpcy5sb2dvVGFwVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfSwgRUFTVEVSX0VHR19XSU5ET1dfTVMpO1xuICAgIGlmICh0aGlzLmxvZ29UYXBDb3VudCA8IEVBU1RFUl9FR0dfVEFQUykgcmV0dXJuO1xuICAgIHRoaXMubG9nb1RhcENvdW50ID0gMDtcbiAgICBpZiAodGhpcy5sb2dvVGFwVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5sb2dvVGFwVGltZXIpO1xuICAgICAgdGhpcy5sb2dvVGFwVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHZvaWQgdGhpcy5vcGVuTWluaUdhbWVzKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9wZW5NaW5pR2FtZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMubWluaUdhbWVzUm91dGUoKTtcbiAgICBpZiAoIWJhc2UpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGJhc2UpO1xuICB9XG59XG4iXX0=
@@ -169,7 +169,7 @@ export class AccessRequestViewComponent {
169
169
  <val-form [props]="form()" (onSubmit)="submit($event)" />
170
170
  </section>
171
171
  }
172
- `, isInline: true, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-medium, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }] }); }
172
+ `, isInline: true, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-dark, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"], dependencies: [{ kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }] }); }
173
173
  }
174
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccessRequestViewComponent, decorators: [{
175
175
  type: Component,
@@ -185,10 +185,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
185
185
  <val-form [props]="form()" (onSubmit)="submit($event)" />
186
186
  </section>
187
187
  }
188
- `, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-medium, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"] }]
188
+ `, styles: [":host{display:block}.access-request{display:grid;gap:12px}.access-request__eyebrow{color:var(--ion-color-dark, #92949c);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}\n"] }]
189
189
  }], ctorParameters: () => [], propDecorators: { i18nNamespace: [{
190
190
  type: Input
191
191
  }], requested: [{
192
192
  type: Output
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FjY2Vzcy1yZXF1ZXN0LXZpZXcvYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBRUwsZUFBZSxFQUlmLFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEUsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFMUMsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBRXBEOzs7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VSwwQkFBMEI7bUdBQTFCLDBCQUEwQixvS0FsQzNCOzs7Ozs7Ozs7Ozs7R0FZVCxvUkFiUyxhQUFhLCtJQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdFQUFFLG1CQUFtQjs7NEZBbUNsRSwwQkFBMEI7a0JBdEN0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7R0FZVDt3REE2QlEsYUFBYTtzQkFBckIsS0FBSztnQkFHYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdXR0b25NZXRhZGF0YSxcbiAgQ29tcG9uZW50U3RhdGVzLFxuICBGb3JtTWV0YWRhdGEsXG4gIEZvcm1TdWJtaXQsXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4gfSBmcm9tICcuL2FjY2Vzcy1yZXF1ZXN0LXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ0FjY2Vzc1JlcXVlc3QnO1xuXG4vKiogVGlwbyBkZSBzb2xpY2l0dWQgY29uIHF1ZSBzZSByZWdpc3RyYW4gZXN0YXMgcGV0aWNpb25lcy4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfUkVRVUVTVF9UWVBFID0gJ2FjY2Vzcy1yZXF1ZXN0JztcblxuLyoqXG4gKiBgdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgIOKAlCBsbyBxdWUgdmUgYWxndWllbiBjdWFuZG8gbGEgYXBwIGVzdMOhIGVuIG1vZG9cbiAqIGludml0YWNpw7NuIHkgbm8gZXN0w6EgZW4gbGEgbGlzdGEuXG4gKlxuICogTm8gZXMgdW5hIHBhbnRhbGxhIGRlIGVycm9yOiBlcyB1bmEgcHVlcnRhIGNvbiB0aW1icmUuIEV4cGxpY2EgcG9yIHF1w6kgZXN0w6FcbiAqIGNlcnJhZG8geSBkZWphIHBlZGlyIGVudHJhciwgcXVlIGVzIGxhIGRpZmVyZW5jaWEgZW50cmUgcGVyZGVyIGEgbGEgcGVyc29uYSB5XG4gKiBzYWJlciBxdWnDqW4gcXVpc28gZW50cmFyLlxuICpcbiAqIExhIHNvbGljaXR1ZCBzZSByZWdpc3RyYSBjb21vIHVuIGByZXF1ZXN0YCBkZWwgdGlwbyBgYWNjZXNzLXJlcXVlc3RgLCBhc8OtIHF1ZVxuICogc2UgcmV2aXNhIGNvbiBsYXMgbWlzbWFzIGhlcnJhbWllbnRhcyBxdWUgZWwgcmVzdG8gZGUgbGFzIHNvbGljaXR1ZGVzLlxuICpcbiAqIFNlIHVzYSBqdW50byBjb24gZWwgbW9kbyBkZSBhY2Nlc28gZGVsIGJhY2tlbmQgKGBBY2Nlc3NNb2RlYCA9IGBpbnZpdGVgKSwgcXVlXG4gKiBlcyBsbyBxdWUgcmVhbG1lbnRlIGZyZW5hLiBWZXIgZG9jcy9ydW5ib29rcy9jb3N0LWd1YXJkcmFpbHMubWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY2Nlc3MtcmVxdWVzdC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1Db21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImFjY2Vzcy1yZXF1ZXN0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjZXNzLXJlcXVlc3RfX2V5ZWJyb3dcIj57eyB0KCdleWVicm93JykgfX08L3NwYW4+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogdCgnYm9keScpLCBjb2xvcjogJ21lZGl1bScsIHNpemU6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImZvcm0oKVwiIChvblN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIC8+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWNjZXNzLXJlcXVlc3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hY2Nlc3MtcmVxdWVzdF9fZXllYnJvdyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzUmVxdWVzdFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuLCBwb3Igc2kgdW5hIGFwcCBxdWllcmUgc3UgcHJvcGlhIHJlZGFjY2nDs24uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICAvKiogU2UgZW1pdGUgY3VhbmRvIGxhIHNvbGljaXR1ZCBxdWVkw7MgcmVnaXN0cmFkYS4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZW50VG8gPSBzaWduYWwoJycpO1xuXG4gIHJlYWRvbmx5IHNlbnRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhcmlhbnQ6ICdlbXB0eScsXG4gICAgICB0aXRsZTogdGhpcy50KCdzZW50VGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ3NlbnRCb2R5JykucmVwbGFjZSgne2VtYWlsfScsIHRoaXMuc2VudFRvKCkpLFxuICAgIH0gYXMgRW1wdHlTdGF0ZU1ldGFkYXRhO1xuICB9KTtcblxuICByZWFkb25seSBmb3JtID0gY29tcHV0ZWQ8Rm9ybU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB3b3JraW5nID0gdGhpcy5zZW5kaW5nKCk7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC51c2VyKCk7XG5cbiAgICBjb25zdCBuYW1lRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LW5hbWUnLFxuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnbmFtZUxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub05hbWUnKSB9LFxuICAgICAgdmFsdWU6IHVzZXI/Lm5hbWUgPz8gJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZW1haWxGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYWNjZXNzLXJlcXVlc3QtZW1haWwnLFxuICAgICAgbmFtZTogJ2VtYWlsJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnZW1haWxQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLkVNQUlMLFxuICAgICAgb3JkZXI6IDIsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0sXG4gICAgICBlcnJvcnM6IHsgcmVxdWlyZWQ6IHRoaXMudCgnbm9FbWFpbCcpLCBlbWFpbDogdGhpcy50KCdpbnZhbGlkRW1haWwnKSB9LFxuICAgICAgdmFsdWU6IHVzZXI/LmVtYWlsID8/ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHJlYXNvbkZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhY2Nlc3MtcmVxdWVzdC1yZWFzb24nLFxuICAgICAgbmFtZTogJ3JlYXNvbicsXG4gICAgICBsYWJlbDogdGhpcy50KCdyZWFzb25MYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdyZWFzb25QbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFRBUkVBLFxuICAgICAgb3JkZXI6IDMsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTAwKV0sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbjogQnV0dG9uTWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LXN1Ym1pdCcsXG4gICAgICB0ZXh0OiB0aGlzLnQoJ3N1Ym1pdCcpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHR5cGU6ICdzdWJtaXQnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBzZWN0aW9uczogW3sgbmFtZTogJycsIG9yZGVyOiAxLCBmaWVsZHM6IFtuYW1lRmllbGQsIGVtYWlsRmllbGQsIHJlYXNvbkZpZWxkXSB9XSxcbiAgICAgIGFjdGlvbnM6IHN1Ym1pdEJ1dHRvbixcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgQUNDRVNTX1JFUVVFU1RfVklFV19JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQUNDRVNTX1JFUVVFU1RfVklFV19JMThOKTtcbiAgfVxuXG4gIHN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbmRpbmcoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWVzID0gKGV2ZW50Py5maWVsZHMgPz8ge30pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgY29uc3QgZW1haWwgPSAodmFsdWVzWydlbWFpbCddID8/ICcnKS50cmltKCk7XG4gICAgY29uc3QgbmFtZSA9ICh2YWx1ZXNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHJlYXNvbiA9ICh2YWx1ZXNbJ3JlYXNvbiddID8/ICcnKS50cmltKCk7XG4gICAgaWYgKCFlbWFpbCB8fCAhbmFtZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcblxuICAgIC8vIEF1dGVudGljYWRvIG8gbm86IHF1aWVuIGVzdMOhIGJsb3F1ZWFkbyBwb3IgaW52aXRhY2nDs24gU8ONIHRpZW5lIHNlc2nDs24sXG4gICAgLy8gcGVybyBsYSB2aXN0YSB0YW1iacOpbiBzaXJ2ZSBhbnRlcyBkZSBlbnRyYXIuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6IEFDQ0VTU19SRVFVRVNUX1RZUEUsXG4gICAgICB0aXRsZTogYFNvbGljaXR1ZCBkZSBhY2Nlc28g4oCUICR7bmFtZX1gLFxuICAgICAgZmllbGRzOiB7IG5hbWUsIGVtYWlsLCByZWFzb24gfSxcbiAgICAgIHN1Ym1pdHRlcjogeyBuYW1lLCBlbWFpbCB9LFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKVxuICAgICAgPyB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3QocGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVBbm9ueW1vdXNSZXF1ZXN0KHBheWxvYWQpO1xuXG4gICAgY2FsbCQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNlbnRUby5zZXQoZW1haWwpO1xuICAgICAgICB0aGlzLnNlbnQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLnJlcXVlc3RlZC5lbWl0KHJlcz8ucmVxdWVzdElkID8/ICcnKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICBjb250ZXh0OiAnYWNjZXNzUmVxdWVzdC5zdWJtaXQnLFxuICAgICAgICAgIGZhbGxiYWNrS2V5OiAnc2VuZEVycm9yJyxcbiAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmkxOG5OYW1lc3BhY2UsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMuaTE4bk5hbWVzcGFjZSk7XG4gIH1cbn1cbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FjY2Vzcy1yZXF1ZXN0LXZpZXcvYWNjZXNzLXJlcXVlc3Qtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBRUwsZUFBZSxFQUlmLFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFdEUsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFMUMsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0FBRXBEOzs7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VSwwQkFBMEI7bUdBQTFCLDBCQUEwQixvS0FsQzNCOzs7Ozs7Ozs7Ozs7R0FZVCxrUkFiUyxhQUFhLCtJQUFFLGdCQUFnQiwyRUFBRSxhQUFhLHdFQUFFLG1CQUFtQjs7NEZBbUNsRSwwQkFBMEI7a0JBdEN0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7R0FZVDt3REE2QlEsYUFBYTtzQkFBckIsS0FBSztnQkFHYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdXR0b25NZXRhZGF0YSxcbiAgQ29tcG9uZW50U3RhdGVzLFxuICBGb3JtTWV0YWRhdGEsXG4gIEZvcm1TdWJtaXQsXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBQ0NFU1NfUkVRVUVTVF9WSUVXX0kxOE4gfSBmcm9tICcuL2FjY2Vzcy1yZXF1ZXN0LXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ0FjY2Vzc1JlcXVlc3QnO1xuXG4vKiogVGlwbyBkZSBzb2xpY2l0dWQgY29uIHF1ZSBzZSByZWdpc3RyYW4gZXN0YXMgcGV0aWNpb25lcy4gKi9cbmV4cG9ydCBjb25zdCBBQ0NFU1NfUkVRVUVTVF9UWVBFID0gJ2FjY2Vzcy1yZXF1ZXN0JztcblxuLyoqXG4gKiBgdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgIOKAlCBsbyBxdWUgdmUgYWxndWllbiBjdWFuZG8gbGEgYXBwIGVzdMOhIGVuIG1vZG9cbiAqIGludml0YWNpw7NuIHkgbm8gZXN0w6EgZW4gbGEgbGlzdGEuXG4gKlxuICogTm8gZXMgdW5hIHBhbnRhbGxhIGRlIGVycm9yOiBlcyB1bmEgcHVlcnRhIGNvbiB0aW1icmUuIEV4cGxpY2EgcG9yIHF1w6kgZXN0w6FcbiAqIGNlcnJhZG8geSBkZWphIHBlZGlyIGVudHJhciwgcXVlIGVzIGxhIGRpZmVyZW5jaWEgZW50cmUgcGVyZGVyIGEgbGEgcGVyc29uYSB5XG4gKiBzYWJlciBxdWnDqW4gcXVpc28gZW50cmFyLlxuICpcbiAqIExhIHNvbGljaXR1ZCBzZSByZWdpc3RyYSBjb21vIHVuIGByZXF1ZXN0YCBkZWwgdGlwbyBgYWNjZXNzLXJlcXVlc3RgLCBhc8OtIHF1ZVxuICogc2UgcmV2aXNhIGNvbiBsYXMgbWlzbWFzIGhlcnJhbWllbnRhcyBxdWUgZWwgcmVzdG8gZGUgbGFzIHNvbGljaXR1ZGVzLlxuICpcbiAqIFNlIHVzYSBqdW50byBjb24gZWwgbW9kbyBkZSBhY2Nlc28gZGVsIGJhY2tlbmQgKGBBY2Nlc3NNb2RlYCA9IGBpbnZpdGVgKSwgcXVlXG4gKiBlcyBsbyBxdWUgcmVhbG1lbnRlIGZyZW5hLiBWZXIgZG9jcy9ydW5ib29rcy9jb3N0LWd1YXJkcmFpbHMubWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY2Nlc3MtcmVxdWVzdC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1Db21wb25lbnQsIERpc3BsYXlDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImFjY2Vzcy1yZXF1ZXN0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjZXNzLXJlcXVlc3RfX2V5ZWJyb3dcIj57eyB0KCdleWVicm93JykgfX08L3NwYW4+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgICA8dmFsLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogdCgnYm9keScpLCBjb2xvcjogJ21lZGl1bScsIHNpemU6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgICA8dmFsLWZvcm0gW3Byb3BzXT1cImZvcm0oKVwiIChvblN1Ym1pdCk9XCJzdWJtaXQoJGV2ZW50KVwiIC8+XG4gICAgICA8L3NlY3Rpb24+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWNjZXNzLXJlcXVlc3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hY2Nlc3MtcmVxdWVzdF9fZXllYnJvdyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc1JlcXVlc3RWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0cyA9IGluamVjdChSZXF1ZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biwgcG9yIHNpIHVuYSBhcHAgcXVpZXJlIHN1IHByb3BpYSByZWRhY2Npw7NuLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgLyoqIFNlIGVtaXRlIGN1YW5kbyBsYSBzb2xpY2l0dWQgcXVlZMOzIHJlZ2lzdHJhZGEuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSByZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICByZWFkb25seSBzZW5kaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VudCA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VudFRvID0gc2lnbmFsKCcnKTtcblxuICByZWFkb25seSBzZW50U3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICB2YXJpYW50OiAnZW1wdHknLFxuICAgICAgdGl0bGU6IHRoaXMudCgnc2VudFRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy50KCdzZW50Qm9keScpLnJlcGxhY2UoJ3tlbWFpbH0nLCB0aGlzLnNlbnRUbygpKSxcbiAgICB9IGFzIEVtcHR5U3RhdGVNZXRhZGF0YTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc2VuZGluZygpO1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhY2Nlc3MtcmVxdWVzdC1uYW1lJyxcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ25hbWVMYWJlbCcpLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCduYW1lUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5URVhULFxuICAgICAgb3JkZXI6IDEsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV0sXG4gICAgICBlcnJvcnM6IHsgcmVxdWlyZWQ6IHRoaXMudCgnbm9OYW1lJykgfSxcbiAgICAgIHZhbHVlOiB1c2VyPy5uYW1lID8/ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IGVtYWlsRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FjY2Vzcy1yZXF1ZXN0LWVtYWlsJyxcbiAgICAgIG5hbWU6ICdlbWFpbCcsXG4gICAgICBsYWJlbDogdGhpcy50KCdlbWFpbExhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ2VtYWlsUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5FTUFJTCxcbiAgICAgIG9yZGVyOiAyLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vRW1haWwnKSwgZW1haWw6IHRoaXMudCgnaW52YWxpZEVtYWlsJykgfSxcbiAgICAgIHZhbHVlOiB1c2VyPy5lbWFpbCA/PyAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgICBjb25zdCByZWFzb25GaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYWNjZXNzLXJlcXVlc3QtcmVhc29uJyxcbiAgICAgIG5hbWU6ICdyZWFzb24nLFxuICAgICAgbGFiZWw6IHRoaXMudCgncmVhc29uTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgncmVhc29uUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5URVhUQVJFQSxcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwMCldLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIElucHV0TWV0YWRhdGE7XG5cbiAgICBjb25zdCBzdWJtaXRCdXR0b246IEJ1dHRvbk1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhY2Nlc3MtcmVxdWVzdC1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdzdWJtaXQnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBlbWFpbEZpZWxkLCByZWFzb25GaWVsZF0gfV0sXG4gICAgICBhY3Rpb25zOiBzdWJtaXRCdXR0b24sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoREVGQVVMVF9OQU1FU1BBQ0UsIEFDQ0VTU19SRVFVRVNUX1ZJRVdfSTE4Tik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyh0aGlzLmkxOG5OYW1lc3BhY2UsIEFDQ0VTU19SRVFVRVNUX1ZJRVdfSTE4Tik7XG4gIH1cblxuICBzdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZW5kaW5nKCkpIHJldHVybjtcblxuICAgIGNvbnN0IHZhbHVlcyA9IChldmVudD8uZmllbGRzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGNvbnN0IGVtYWlsID0gKHZhbHVlc1snZW1haWwnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IG5hbWUgPSAodmFsdWVzWyduYW1lJ10gPz8gJycpLnRyaW0oKTtcbiAgICBjb25zdCByZWFzb24gPSAodmFsdWVzWydyZWFzb24nXSA/PyAnJykudHJpbSgpO1xuICAgIGlmICghZW1haWwgfHwgIW5hbWUpIHJldHVybjtcblxuICAgIHRoaXMuc2VuZGluZy5zZXQodHJ1ZSk7XG5cbiAgICAvLyBBdXRlbnRpY2FkbyBvIG5vOiBxdWllbiBlc3TDoSBibG9xdWVhZG8gcG9yIGludml0YWNpw7NuIFPDjSB0aWVuZSBzZXNpw7NuLFxuICAgIC8vIHBlcm8gbGEgdmlzdGEgdGFtYmnDqW4gc2lydmUgYW50ZXMgZGUgZW50cmFyLlxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICB0eXBlOiBBQ0NFU1NfUkVRVUVTVF9UWVBFLFxuICAgICAgdGl0bGU6IGBTb2xpY2l0dWQgZGUgYWNjZXNvIOKAlCAke25hbWV9YCxcbiAgICAgIGZpZWxkczogeyBuYW1lLCBlbWFpbCwgcmVhc29uIH0sXG4gICAgICBzdWJtaXR0ZXI6IHsgbmFtZSwgZW1haWwgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsbCQgPSB0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKClcbiAgICAgID8gdGhpcy5yZXF1ZXN0cy5jcmVhdGVSZXF1ZXN0KHBheWxvYWQpXG4gICAgICA6IHRoaXMucmVxdWVzdHMuY3JlYXRlQW5vbnltb3VzUmVxdWVzdChwYXlsb2FkKTtcblxuICAgIGNhbGwkLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZW50VG8uc2V0KGVtYWlsKTtcbiAgICAgICAgdGhpcy5zZW50LnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0ZWQuZW1pdChyZXM/LnJlcXVlc3RJZCA/PyAnJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgICAgY29udGV4dDogJ2FjY2Vzc1JlcXVlc3Quc3VibWl0JyxcbiAgICAgICAgICBmYWxsYmFja0tleTogJ3NlbmRFcnJvcicsXG4gICAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
@@ -292,7 +292,7 @@ export class ApiKeysModalComponent {
292
292
  }
293
293
  }
294
294
  </ion-content>
295
- `, isInline: true, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: PermissionSelectorComponent, selector: "val-permission-selector", inputs: ["permissions", "actionLabels", "locale", "header", "selected"], outputs: ["selectedChange"] }] }); }
295
+ `, isInline: true, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-dark-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: PermissionSelectorComponent, selector: "val-permission-selector", inputs: ["permissions", "actionLabels", "locale", "header", "selected"], outputs: ["selectedChange"] }] }); }
296
296
  }
297
297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ApiKeysModalComponent, decorators: [{
298
298
  type: Component,
@@ -395,10 +395,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
395
395
  }
396
396
  }
397
397
  </ion-content>
398
- `, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-medium-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"] }]
398
+ `, styles: ["ion-content{--padding-bottom: 64px}val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:12px}.apikey-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.apikey-row{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;border:1.5px solid var(--ion-color-light)}.apikey-row__main{display:flex;flex-direction:column}.apikey-row__name{font-weight:600;color:var(--ion-color-dark)}.apikey-row__meta{font-size:12px;color:var(--ion-color-dark-shade, #6b6e76)}.apikey-create{margin-top:8px;padding:4px 0 0}.apikey-perms{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px}.apikey-actions{margin-top:16px;display:flex;flex-direction:column;gap:8px}.apikey-error{margin:8px 0;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.apikey-secret__warn{font-size:.875rem;color:var(--ion-color-warning-shade, #b88600);margin:0 0 12px}.apikey-secret__box{padding:12px;border-radius:8px;background:var(--ion-color-dark);color:#fff;word-break:break-all;font-family:monospace;font-size:13px}\n"] }]
399
399
  }], ctorParameters: () => [], propDecorators: { _modalRef: [{
400
400
  type: Input
401
401
  }], i18nNamespace: [{
402
402
  type: Input
403
403
  }] } });
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixD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UDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZUO3dEQXdGUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXBpS2V5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvYXBpLWtleXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRBcGlLZXksIENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8IS0tIFNlY3JldG8gcmVjacOpbiBjcmVhZG86IG1vc3RyYXIgVU5BIHZleiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3NlY3JldFRpdGxlJyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRfX2JveFwiPlxuICAgICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgICBAaWYgKGtleXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdlbXB0eScpLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktbGlzdFwiPlxuICAgICAgICAgICAgICBAZm9yIChrIG9mIGtleXMoKTsgdHJhY2sgay5rZXlJZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd19fbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX25hbWVcIj57eyBrLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsucGVybWlzc2lvbnMubGVuZ3RoIH19IHt7IHQoJ3Blcm1zQ291bnQnKSB9fSDCtyB7eyB0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsubGFzdFVzZWRBdCB8fCB0KCduZXZlcicpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYW5nZXJcIiBzaXplPVwic21hbGxcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInJldm9rZShrKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdyZXZva2UnKSB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKGVycm9yTXNnKCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXBpa2V5LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENyZWFyIOKAlCB2YWwtZm9ybSAobm9tYnJlICsgZXhwaXJhY2nDs24pICsgc2VsZWN0b3IgZGUgcGVybWlzb3MuIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0NyZWF0ZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWNyZWF0ZVwiPlxuICAgICAgICAgICAgICA8dmFsLXBlcm1pc3Npb24tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICBbaGVhZGVyXT1cInQoJ3Blcm1pc3Npb25zTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgW3Blcm1pc3Npb25zXT1cImNhdGFsb2dQZXJtaXNzaW9ucygpXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uTGFiZWxzXT1cImFjdGlvbkxhYmVscygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRQZXJtcygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWRQZXJtcy5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwiY3JlYXRlRm9ybSgpXCIgKG9uU3VibWl0KT1cIm9uQ3JlYXRlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJzaG93Q3JlYXRlLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwib3BlbkNyZWF0ZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbmV3S2V5JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLyogU2hlZXQgbW9kYWw6IHBhZGRpbmcgaW5mZXJpb3IgZ2VuZXJvc28gcGFyYSBwb2RlciBzY3JvbGxlYXIgaGFzdGEgZWxcbiAgICAgICAgIMO6bHRpbW8gZWxlbWVudG8gKGJvdMOzbiBjcmVhcikgc2luIHF1ZSBxdWVkZSBiYWpvIGVsIGJvcmRlL2luZGljYWRvci4gKi9cbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgICAgIH1cbiAgICAgIHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMCAwIDA7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXBlcm1zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1lcnJvciB7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X193YXJuIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjYjg4NjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1zZWNyZXRfX2JveCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBpS2V5c01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcGlLZXlzID0gaW5qZWN0KEFwaUtleVNlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcblxuICAvKiogSW55ZWN0YWRvIHBvciBgTW9kYWxTZXJ2aWNlLm9wZW5gLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4bi4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIC8qKiBQZXJtaXNvcyBkZWwgY2F0w6Fsb2dvIFlBIGZpbHRyYWRvcyAoc2luIGludGVybmFsLCBzaW4gb3RyYXMgYXBwcykuICovXG4gIHJlYWRvbmx5IGNhdGFsb2dQZXJtaXNzaW9ucyA9IHNpZ25hbDxQZXJtaXNzaW9uUmVzb3VyY2VbXT4oW10pO1xuICAvKiogTGFiZWxzIGRlIGFjY2nDs24gKGVzL2VuKSBkZWwgYmFja2VuZCwgcGFyYSBlbCBzZWxlY3Rvci4gKi9cbiAgcmVhZG9ubHkgYWN0aW9uTGFiZWxzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIExvY2FsaXplZExhYmVsPj4oe30pO1xuICAvKiogUGVybWlzb3Mgc2VsZWNjaW9uYWRvcyBwYXJhIGxhIG51ZXZhIGtleSAoYHJlc291cmNlOmFjdGlvbmApLiAqL1xuICByZWFkb25seSBzZWxlY3RlZFBlcm1zID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcmVhZG9ubHkga2V5cyA9IHNpZ25hbDxDbGllbnRBcGlLZXlbXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzaG93Q3JlYXRlID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc3VibWl0dGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGVycm9yTXNnID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc2VjcmV0ID0gc2lnbmFsPENsaWVudEFwaUtleVdpdGhTZWNyZXQgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgY29waWVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogRm9ybU1ldGFkYXRhIGRlbCBmb3JtIGRlIGNyZWFyIGtleSAodmFsLWZvcm0pLiBSZWFjdGl2byBhIGlkaW9tYSArIHBlcm1pc29zXG4gICAqIGRpc3BvbmlibGVzICsgZXN0YWRvIHN1Ym1pdHRpbmcuIFJlZW1wbGF6YSBsb3MgaW9uLWlucHV0L2lvbi1jaGVja2JveCBjcnVkb3NcbiAgICogcG9yIHZhbC1mb3JtIChjb25zaXN0ZW5jaWEgY29uIGVsIHJlc3RvIGRlIG1vZGFsZXMgZGVsIGZhY3RvcnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRm9ybSA9IGNvbXB1dGVkPEZvcm1NZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3Qgd29ya2luZyA9IHRoaXMuc3VibWl0dGluZygpO1xuXG4gICAgY29uc3QgbmFtZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldLFxuICAgICAgZXJyb3JzOiB7IHJlcXVpcmVkOiB0aGlzLnQoJ25vTmFtZScpIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3QgZXhwaXJlc0ZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdhcGlrZXktZXhwaXJlcycsXG4gICAgICBuYW1lOiAnZXhwaXJlc0luRGF5cycsXG4gICAgICBsYWJlbDogdGhpcy50KCdleHBpcmVzTGFiZWwnKSxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLk5VTUJFUixcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMubWluKDEpXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWNyZWF0ZS1zdWJtaXQnLFxuICAgICAgdGV4dDogdGhpcy50KCdjcmVhdGUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IHdvcmtpbmcgPyBDb21wb25lbnRTdGF0ZXMuV09SS0lORyA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFt7IG5hbWU6ICcnLCBvcmRlcjogMSwgZmllbGRzOiBbbmFtZUZpZWxkLCBleHBpcmVzRmllbGRdIH1dLFxuICAgICAgYWN0aW9uczogc3VibWl0QnV0dG9uLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKERFRkFVTFRfTkFNRVNQQUNFLCBBUElfS0VZU19NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy5sb2FkQ2F0YWxvZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGVsIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyB5IGxvIGZpbHRyYSBhIGxvIGFzaWduYWJsZSBhIHVuYSBBUEkgS2V5IGRlIGxhXG4gICAqIG9yZzogZGVzY2FydGEgYHNjb3BlOmludGVybmFsYCAoZWwgYmFja2VuZCB5YSBsb3Mgb21pdGUgcGFyYSBuby1zdGFmZikgeSBsb3NcbiAgICogcGVybWlzb3MgZGUgT1RSQVMgYXBwcyAoYGFwcElkICE9PSBhcHBJZCBkZWwgY2F0w6Fsb2dvYCkuIFF1ZWRhbiBsb3MgcGVybWlzb3MgZGVcbiAgICogb3JnICh1c2Vycy9yb2xlcy9yYmFjKSArIGxvcyBkZSBsYSBhcHAgYWN0dWFsLlxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ2F0YWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICBjb25zdCBhcHBJZCA9IHJlcy5hcHBJZDtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSAocmVzLnBlcm1pc3Npb25zID8/IFtdKS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLnNjb3BlICE9PSAnaW50ZXJuYWwnICYmIChwLnNjb3BlICE9PSAnYXBwJyB8fCBwLmFwcElkID09PSBhcHBJZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jYXRhbG9nUGVybWlzc2lvbnMuc2V0KGZpbHRlcmVkKTtcbiAgICAgICAgdGhpcy5hY3Rpb25MYWJlbHMuc2V0KHJlcy5hY3Rpb25MYWJlbHMgPz8ge30pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIC8vIFNpbiBjYXTDoWxvZ286IGVsIHNlbGVjdG9yIHF1ZWRhIHZhY8OtbyAoZWwgZm9ybSB2YWxpZGEg4omlMSBwZXJtaXNvKS5cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2ZU9yZ0lkKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMgeyBhY3RpdmVPcmdJZD86IHN0cmluZzsgYWN0aXZlT3JnPzogc3RyaW5nIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmFwaUtleXMubGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBrZXlzID0+IHtcbiAgICAgICAgdGhpcy5rZXlzLnNldChrZXlzKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTXNnLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZFBlcm1zLnNldChbXSk7XG4gICAgdGhpcy5zaG93Q3JlYXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3VibWl0KGV2ZW50OiBGb3JtU3VibWl0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3VibWl0dGluZygpKSByZXR1cm47XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuXG4gICAgY29uc3QgbmFtZSA9IFN0cmluZyhldmVudC5maWVsZHNbJ25hbWUnXSA/PyAnJykudHJpbSgpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5zZWxlY3RlZFBlcm1zKCk7XG4gICAgY29uc3QgZXhwaXJlc1JhdyA9IE51bWJlcihldmVudC5maWVsZHNbJ2V4cGlyZXNJbkRheXMnXSk7XG5cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9OYW1lJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXBlcm1pc3Npb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1zZy5zZXQodGhpcy50KCdub1Blcm1zJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3VibWl0dGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzXG4gICAgICAuY3JlYXRlKHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgIGV4cGlyZXNJbkRheXM6IE51bWJlci5pc0Zpbml0ZShleHBpcmVzUmF3KSAmJiBleHBpcmVzUmF3ID4gMCA/IGV4cGlyZXNSYXcgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG93Q3JlYXRlLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zZWNyZXQuc2V0KHJlcy5rZXkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTXNnLnNldChlcnI/LmVycm9yPy5tZXNzYWdlID8/IHRoaXMudCgnZ2VuZXJpY0Vycm9yJykpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICByZXZva2Uoa2V5OiBDbGllbnRBcGlLZXkpOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpcm0odGhpcy50KCdyZXZva2VDb25maXJtJykpKSByZXR1cm47XG4gICAgdGhpcy5hcGlLZXlzLnJldm9rZShrZXkua2V5SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlZnJlc2goKSxcbiAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvcHkoc2VjcmV0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoc2VjcmV0KTtcbiAgICAgIHRoaXMuY29waWVkLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBlbCB1c2VyIHB1ZWRlIHNlbGVjY2lvbmFyIGVsIHRleHRvIG1hbnVhbG1lbnRlXG4gICAgfVxuICB9XG5cbiAgZmluaXNoU2VjcmV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VjcmV0LnNldChudWxsKTtcbiAgICB0aGlzLmNvcGllZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcGkta2V5cy1tb2RhbC9hcGkta2V5cy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBa0IsZUFBZSxFQUEyQyxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUVMLHdCQUF3QixHQUV6QixNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRWhILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixD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UDt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZUO3dEQXdGUSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uQnV0dG9ucywgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMsIEZvcm1NZXRhZGF0YSwgRm9ybVN1Ym1pdCwgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXBpS2V5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwaWtleXMvYXBpLWtleXMuc2VydmljZSc7XG5pbXBvcnQgeyBDbGllbnRBcGlLZXksIENsaWVudEFwaUtleVdpdGhTZWNyZXQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcGlrZXlzL3R5cGVzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgTG9jYWxpemVkTGFiZWwsXG4gIFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSxcbiAgUGVybWlzc2lvblJlc291cmNlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvcGVybWlzc2lvbi1jYXRhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Blcm1pc3Npb24tc2VsZWN0b3IvcGVybWlzc2lvbi1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBUElfS0VZU19NT0RBTF9JMThOIH0gZnJvbSAnLi9hcGkta2V5cy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQXBpS2V5c01vZGFsJztcblxuLyoqXG4gKiBgdmFsLWFwaS1rZXlzLW1vZGFsYCDigJQgZ2VzdGnDs24gZGUgQ2xpZW50IEFQSSBLZXlzIG9yZy1zY29wZWFkYXMgKEFEUi0wMjMgZmFzZSA2KS5cbiAqXG4gKiBMaXN0YSBsYXMga2V5cyBkZSBsYSBvcmcsIHBlcm1pdGUgY3JlYXIgKG1vc3RyYW5kbyBlbCBzZWNyZXRvIFVOQSB2ZXogY29uIGNvcGlhKVxuICogeSByZXZvY2FyLiBQZW5zYWRvIHBhcmEgaGFiaWxpdGFyIGludGVncmFjaW9uZXMgTTJNIGRlbCBpbXBvcnQgZGUgbWllbWJyb3MsIHBlcm9cbiAqIHNpcnZlIGEgY3VhbHF1aWVyIHBlcm1pc28gZGVsIGNhdMOhbG9nby4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYXBpLWtleXMtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFBlcm1pc3Npb25TZWxlY3RvckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ2hpbnQnKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cblxuICAgICAgQGlmIChzZWNyZXQoKTsgYXMgcykge1xuICAgICAgICA8IS0tIFNlY3JldG8gcmVjacOpbiBjcmVhZG86IG1vc3RyYXIgVU5BIHZleiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3NlY3JldFRpdGxlJyksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cImFwaWtleS1zZWNyZXRfX3dhcm5cIj57eyB0KCdzZWNyZXRXYXJuaW5nJykgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1zZWNyZXRfX2JveFwiPlxuICAgICAgICAgICAgPGNvZGU+e3sgcy5zZWNyZXQgfX08L2NvZGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwaWtleS1hY3Rpb25zXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiY29weShzLnNlY3JldClcIj5cbiAgICAgICAgICAgICAge3sgY29waWVkKCkgPyB0KCdjb3BpZWQnKSA6IHQoJ2NvcHknKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZmluaXNoU2VjcmV0KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnZG9uZScpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBMaXN0YSAtLT5cbiAgICAgICAgICBAaWYgKGtleXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIDx2YWwtdGV4dCBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdlbXB0eScpLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktbGlzdFwiPlxuICAgICAgICAgICAgICBAZm9yIChrIG9mIGtleXMoKTsgdHJhY2sgay5rZXlJZCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktcm93XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LXJvd19fbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwaWtleS1yb3dfX25hbWVcIj57eyBrLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBpa2V5LXJvd19fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsucGVybWlzc2lvbnMubGVuZ3RoIH19IHt7IHQoJ3Blcm1zQ291bnQnKSB9fSDCtyB7eyB0KCdsYXN0VXNlZCcpIH19OlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGsubGFzdFVzZWRBdCB8fCB0KCduZXZlcicpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYW5nZXJcIiBzaXplPVwic21hbGxcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInJldm9rZShrKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdyZXZva2UnKSB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKGVycm9yTXNnKCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXBpa2V5LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENyZWFyIOKAlCB2YWwtZm9ybSAobm9tYnJlICsgZXhwaXJhY2nDs24pICsgc2VsZWN0b3IgZGUgcGVybWlzb3MuIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0NyZWF0ZSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBpa2V5LWNyZWF0ZVwiPlxuICAgICAgICAgICAgICA8dmFsLXBlcm1pc3Npb24tc2VsZWN0b3JcbiAgICAgICAgICAgICAgICBbaGVhZGVyXT1cInQoJ3Blcm1pc3Npb25zTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgW3Blcm1pc3Npb25zXT1cImNhdGFsb2dQZXJtaXNzaW9ucygpXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uTGFiZWxzXT1cImFjdGlvbkxhYmVscygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRQZXJtcygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWRQZXJtcy5zZXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtZm9ybSBbcHJvcHNdPVwiY3JlYXRlRm9ybSgpXCIgKG9uU3VibWl0KT1cIm9uQ3JlYXRlU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJzaG93Q3JlYXRlLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjYW5jZWwnKSB9fVxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcGlrZXktYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGNvbG9yPVwicHJpbWFyeVwiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwib3BlbkNyZWF0ZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbmV3S2V5JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLyogU2hlZXQgbW9kYWw6IHBhZGRpbmcgaW5mZXJpb3IgZ2VuZXJvc28gcGFyYSBwb2RlciBzY3JvbGxlYXIgaGFzdGEgZWxcbiAgICAgICAgIMO6bHRpbW8gZWxlbWVudG8gKGJvdMOzbiBjcmVhcikgc2luIHF1ZSBxdWVkZSBiYWpvIGVsIGJvcmRlL2luZGljYWRvci4gKi9cbiAgICAgIGlvbi1jb250ZW50IHtcbiAgICAgICAgLS1wYWRkaW5nLWJvdHRvbTogNjRweDtcbiAgICAgIH1cbiAgICAgIHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmFwaWtleS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1yb3dfX21ldGEge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyay1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWNyZWF0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDAgMCAwO1xuICAgICAgfVxuICAgICAgLmFwaWtleS1wZXJtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgICAuYXBpa2V5LXNlY3JldF9fd2FybiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZy1zaGFkZSwgI2I4ODYwMCk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICAgIH1cbiAgICAgIC5hcGlrZXktc2VjcmV0X19ib3gge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUtleXNNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXBpS2V5cyA9IGluamVjdChBcGlLZXlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjYXRhbG9nID0gaW5qZWN0KFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYC4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICAvKiogUGVybWlzb3MgZGVsIGNhdMOhbG9nbyBZQSBmaWx0cmFkb3MgKHNpbiBpbnRlcm5hbCwgc2luIG90cmFzIGFwcHMpLiAqL1xuICByZWFkb25seSBjYXRhbG9nUGVybWlzc2lvbnMgPSBzaWduYWw8UGVybWlzc2lvblJlc291cmNlW10+KFtdKTtcbiAgLyoqIExhYmVscyBkZSBhY2Npw7NuIChlcy9lbikgZGVsIGJhY2tlbmQsIHBhcmEgZWwgc2VsZWN0b3IuICovXG4gIHJlYWRvbmx5IGFjdGlvbkxhYmVscyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRMYWJlbD4+KHt9KTtcbiAgLyoqIFBlcm1pc29zIHNlbGVjY2lvbmFkb3MgcGFyYSBsYSBudWV2YSBrZXkgKGByZXNvdXJjZTphY3Rpb25gKS4gKi9cbiAgcmVhZG9ubHkgc2VsZWN0ZWRQZXJtcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gIHJlYWRvbmx5IGtleXMgPSBzaWduYWw8Q2xpZW50QXBpS2V5W10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd0NyZWF0ZSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHN1Ym1pdHRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBlcnJvck1zZyA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHNlY3JldCA9IHNpZ25hbDxDbGllbnRBcGlLZXlXaXRoU2VjcmV0IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGNvcGllZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEZvcm1NZXRhZGF0YSBkZWwgZm9ybSBkZSBjcmVhciBrZXkgKHZhbC1mb3JtKS4gUmVhY3Rpdm8gYSBpZGlvbWEgKyBwZXJtaXNvc1xuICAgKiBkaXNwb25pYmxlcyArIGVzdGFkbyBzdWJtaXR0aW5nLiBSZWVtcGxhemEgbG9zIGlvbi1pbnB1dC9pb24tY2hlY2tib3ggY3J1ZG9zXG4gICAqIHBvciB2YWwtZm9ybSAoY29uc2lzdGVuY2lhIGNvbiBlbCByZXN0byBkZSBtb2RhbGVzIGRlbCBmYWN0b3J5KS5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUZvcm0gPSBjb21wdXRlZDxGb3JtTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHdvcmtpbmcgPSB0aGlzLnN1Ym1pdHRpbmcoKTtcblxuICAgIGNvbnN0IG5hbWVGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LW5hbWUnLFxuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnbmFtZUxhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMSxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMjApXSxcbiAgICAgIGVycm9yczogeyByZXF1aXJlZDogdGhpcy50KCdub05hbWUnKSB9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IGV4cGlyZXNGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAnYXBpa2V5LWV4cGlyZXMnLFxuICAgICAgbmFtZTogJ2V4cGlyZXNJbkRheXMnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnZXhwaXJlc0xhYmVsJyksXG4gICAgICBoaW50OiAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5OVU1CRVIsXG4gICAgICBvcmRlcjogMyxcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLm1pbigxKV0sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH0gYXMgSW5wdXRNZXRhZGF0YTtcblxuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbjogQnV0dG9uTWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ2FwaWtleS1jcmVhdGUtc3VibWl0JyxcbiAgICAgIHRleHQ6IHRoaXMudCgnY3JlYXRlJyksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICBzdGF0ZTogd29ya2luZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfSBhcyBCdXR0b25NZXRhZGF0YTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHN0YXRlOiB3b3JraW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHNlY3Rpb25zOiBbeyBuYW1lOiAnJywgb3JkZXI6IDEsIGZpZWxkczogW25hbWVGaWVsZCwgZXhwaXJlc0ZpZWxkXSB9XSxcbiAgICAgIGFjdGlvbnM6IHN1Ym1pdEJ1dHRvbixcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgQVBJX0tFWVNfTU9EQUxfSTE4Tik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyh0aGlzLmkxOG5OYW1lc3BhY2UsIEFQSV9LRVlTX01PREFMX0kxOE4pO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIHRoaXMubG9hZENhdGFsb2coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBlbCBjYXTDoWxvZ28gZGUgcGVybWlzb3MgeSBsbyBmaWx0cmEgYSBsbyBhc2lnbmFibGUgYSB1bmEgQVBJIEtleSBkZSBsYVxuICAgKiBvcmc6IGRlc2NhcnRhIGBzY29wZTppbnRlcm5hbGAgKGVsIGJhY2tlbmQgeWEgbG9zIG9taXRlIHBhcmEgbm8tc3RhZmYpIHkgbG9zXG4gICAqIHBlcm1pc29zIGRlIE9UUkFTIGFwcHMgKGBhcHBJZCAhPT0gYXBwSWQgZGVsIGNhdMOhbG9nb2ApLiBRdWVkYW4gbG9zIHBlcm1pc29zIGRlXG4gICAqIG9yZyAodXNlcnMvcm9sZXMvcmJhYykgKyBsb3MgZGUgbGEgYXBwIGFjdHVhbC5cbiAgICovXG4gIHByaXZhdGUgbG9hZENhdGFsb2coKTogdm9pZCB7XG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLmFjdGl2ZU9yZ0lkKCk7XG4gICAgaWYgKCFvcmdJZCkgcmV0dXJuO1xuICAgIHRoaXMuY2F0YWxvZy5nZXRDYXRhbG9nKG9yZ0lkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgY29uc3QgYXBwSWQgPSByZXMuYXBwSWQ7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gKHJlcy5wZXJtaXNzaW9ucyA/PyBbXSkuZmlsdGVyKFxuICAgICAgICAgIHAgPT4gcC5zY29wZSAhPT0gJ2ludGVybmFsJyAmJiAocC5zY29wZSAhPT0gJ2FwcCcgfHwgcC5hcHBJZCA9PT0gYXBwSWQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2F0YWxvZ1Blcm1pc3Npb25zLnNldChmaWx0ZXJlZCk7XG4gICAgICAgIHRoaXMuYWN0aW9uTGFiZWxzLnNldChyZXMuYWN0aW9uTGFiZWxzID8/IHt9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAvLyBTaW4gY2F0w6Fsb2dvOiBlbCBzZWxlY3RvciBxdWVkYSB2YWPDrW8gKGVsIGZvcm0gdmFsaWRhIOKJpTEgcGVybWlzbykuXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVPcmdJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHsgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7IGFjdGl2ZU9yZz86IHN0cmluZyB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5hcGlLZXlzLmxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDoga2V5cyA9PiB7XG4gICAgICAgIHRoaXMua2V5cy5zZXQoa2V5cyk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5DcmVhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuICAgIHRoaXMuc2VsZWN0ZWRQZXJtcy5zZXQoW10pO1xuICAgIHRoaXMuc2hvd0NyZWF0ZS5zZXQodHJ1ZSk7XG4gIH1cblxuICBvbkNyZWF0ZVN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcblxuICAgIGNvbnN0IG5hbWUgPSBTdHJpbmcoZXZlbnQuZmllbGRzWyduYW1lJ10gPz8gJycpLnRyaW0oKTtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRoaXMuc2VsZWN0ZWRQZXJtcygpO1xuICAgIGNvbnN0IGV4cGlyZXNSYXcgPSBOdW1iZXIoZXZlbnQuZmllbGRzWydleHBpcmVzSW5EYXlzJ10pO1xuXG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vTmFtZScpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFwZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnbm9QZXJtcycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuYXBpS2V5c1xuICAgICAgLmNyZWF0ZSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICBleHBpcmVzSW5EYXlzOiBOdW1iZXIuaXNGaW5pdGUoZXhwaXJlc1JhdykgJiYgZXhwaXJlc1JhdyA+IDAgPyBleHBpcmVzUmF3IDogdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2hvd0NyZWF0ZS5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2VjcmV0LnNldChyZXMua2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJtaXR0aW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5lcnJvck1zZy5zZXQoZXJyPy5lcnJvcj8ubWVzc2FnZSA/PyB0aGlzLnQoJ2dlbmVyaWNFcnJvcicpKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcmV2b2tlKGtleTogQ2xpZW50QXBpS2V5KTogdm9pZCB7XG4gICAgaWYgKCFjb25maXJtKHRoaXMudCgncmV2b2tlQ29uZmlybScpKSkgcmV0dXJuO1xuICAgIHRoaXMuYXBpS2V5cy5yZXZva2Uoa2V5LmtleUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4gdGhpcy5yZWZyZXNoKCksXG4gICAgICBlcnJvcjogZXJyID0+IHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjb3B5KHNlY3JldDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHNlY3JldCk7XG4gICAgICB0aGlzLmNvcGllZC5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgZWwgdXNlciBwdWVkZSBzZWxlY2Npb25hciBlbCB0ZXh0byBtYW51YWxtZW50ZVxuICAgIH1cbiAgfVxuXG4gIGZpbmlzaFNlY3JldCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3JldC5zZXQobnVsbCk7XG4gICAgdGhpcy5jb3BpZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19