@po-ui/ng-components 18.1.0 → 18.3.0

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.
@@ -151,6 +151,34 @@ const PO_SELECT_FIELD_VALUE_DEFAULT = 'value';
151
151
  * veja mais em **[p-combo-option-template](/documentation/po-combo-option-template)**.
152
152
  *
153
153
  * > Obs: o template **[p-select-option-template](/documentation/po-select-option-template)** será depreciado na versão 14.x.x.
154
+ *
155
+ * #### Tokens customizáveis
156
+ *
157
+ * É possível alterar o estilo do componente usando os seguintes tokens (CSS):
158
+ *
159
+ * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization).
160
+ *
161
+ * | Propriedade | Descrição | Valor Padrão |
162
+ * |----------------------------------------|-------------------------------------------------------|-------------------------------------------------|
163
+ * | **Default Values** | | |
164
+ * | `--font-family` | Família tipográfica usada | `var(--font-family-theme)` |
165
+ * | `--font-size` | Tamanho da fonte | `var(--font-size-default)` |
166
+ * | `--text-color-empty` | Cor do placeholder | `var(--color-neutral-light-30)` |
167
+ * | `--color` | Cor da borda | `var(--color-neutral-dark-70)` |
168
+ * | `--background` | Cor de background | `var(--color-neutral-light-05)` |
169
+ * | `--text-color` | Cor do texto | `var(--color-neutral-dark-90)` |
170
+ * | `--padding-horizontal` | Preenchimento horizontal | `0.5em` |
171
+ * | `--padding-vertical` | Preenchimento vertical | `0.7em` |
172
+ * | **Hover** | | |
173
+ * | `--color-hover` | Cor principal no estado hover | `var(--color-brand-01-dark)` |
174
+ * | `--background-hover` | Cor de background no estado hover | `var(--color-brand-01-lighter)` |
175
+ * | **Focused** | | |
176
+ * | `--outline-color-focused` | Cor do outline do estado de focus | `var(--color-action-focus)` |
177
+ * | `--color-focused` | Cor da borda no estado de focus | `var(--color-action-default)` |
178
+ * | **Disabled** | | |
179
+ * | `--color-disabled` | Cor principal no estado disabled | `var(--color-neutral-light-30)` |
180
+ * | `--background-color-disabled`  | Cor de background no estado disabled | `var(--color-neutral-light-20)` |
181
+ *
154
182
  */
155
183
  export class PoSelectComponent extends PoFieldValidateModel {
156
184
  changeDetector;
@@ -513,5 +541,5 @@ export class PoSelectComponent extends PoFieldValidateModel {
513
541
  type: Input,
514
542
  args: ['p-field-value']
515
543
  }] }); })();
516
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoSelectComponent, { className: "PoSelectComponent", filePath: "lib/components/po-field/po-select/po-select.component.ts", lineNumber: 95 }); })();
517
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUix1QkFBdUIsRUFDdkIsNkJBQTZCLEVBQzdCLElBQUksRUFDSixVQUFVLEVBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0lDUDFELGlDQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFTOzs7O0lBSFAsQUFEQSxBQURBLEFBREEsK0NBQTBCLDJHQUMyQixzRkFDZCwwRkFDWjtJQUUzQixjQUNGO0lBREUsbURBQ0Y7OztJQVRGLDZCQUFnQztJQUM5Qix1RkFNQztJQUdELGlDQUF3QjtJQUFBLFlBQWtCO0lBQUEsaUJBQVM7Ozs7SUFSaEQsY0FBaUQ7SUFBakQsdUhBQWlEO0lBUTVDLGNBQWU7SUFBZiw2QkFB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dGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgY29udmVydFRvQm9vbGVhbixcbiAgaXNTYWZhcmksXG4gIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zLFxuICByZW1vdmVVbmRlZmluZWRBbmROdWxsT3B0aW9ucyxcbiAgdXVpZCxcbiAgdmFsaWRWYWx1ZVxufSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgSUNPTlNfRElDVElPTkFSWSwgUGhvc3Bob3JJY29uRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL3BvLWljb24nO1xuaW1wb3J0IHsgUG9GaWVsZFZhbGlkYXRlTW9kZWwgfSBmcm9tICcuLi9wby1maWVsZC12YWxpZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBQb1NlbGVjdE9wdGlvbkdyb3VwIH0gZnJvbSAnLi9wby1zZWxlY3Qtb3B0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1NlbGVjdE9wdGlvbiB9IGZyb20gJy4vcG8tc2VsZWN0LW9wdGlvbi5pbnRlcmZhY2UnO1xuXG5jb25zdCBQT19TRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVCA9ICdsYWJlbCc7XG5jb25zdCBQT19TRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVCA9ICd2YWx1ZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvRmllbGRWYWxpZGF0ZU1vZGVsXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWJhc2ljXCIgdGl0bGU9XCJQTyBTZWxlY3QgQmFzaWNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtYmFzaWMvc2FtcGxlLXBvLXNlbGVjdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWJhc2ljL3NhbXBsZS1wby1zZWxlY3QtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWxhYnNcIiB0aXRsZT1cIlBPIFNlbGVjdCBMYWJzXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWxhYnMvc2FtcGxlLXBvLXNlbGVjdC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtbGFicy9zYW1wbGUtcG8tc2VsZWN0LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvblwiIHRpdGxlPVwiUE8gU2VsZWN0IC0gQ3VzdG9tZXIgcmVnaXN0cmF0aW9uXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uc2VydmljZS50c1wiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9J3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5lMmUtc3BlYy50cyc+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT0nc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uY29tcG9uZW50LnBvLnRzJz4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1zZWxlY3QtY29tcGFuaWVzXCIgdGl0bGU9XCJQTyBTZWxlY3QgQ29tcGFuaWVzXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy9zYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy9zYW1wbGUtcG8tc2VsZWN0LWNvbXBhbmllcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIE8gY29tcG9uZW50ZSBwby1zZWxlY3QgZXhpYmUgdW1hIGxpc3RhIGRlIHZhbG9yZXMgZSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIHNlbGVjaW9uZSB1bSBkZXNzZXMgdmFsb3Jlcy5cbiAqIE9zIHZhbG9yZXMgbGlzdGFkb3MgcG9kZW0gc2VyIGZpeG9zIG91IGRpbsOibWljb3MgZGUgYWNvcmRvIGNvbSBhIG5lY2Vzc2lkYWRlIGRvIGRlc2Vudm9sdmVkb3IsIGRhbmRvIG1haXMgZmxleGliaWxpZGFkZSBhbyBjb21wb25lbnRlLlxuICogTyBwby1zZWxlY3QgbsOjbyBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGluZm9ybWUgdW0gdmFsb3IgZGlmZXJlbnRlIGRvcyB2YWxvcmVzIGxpc3RhZG9zLCBpc3NvIGdhcmFudGUgYSBjb25zaXN0w6puY2lhIGRhIGluZm9ybWHDp8Ojby5cbiAqIE8gcG8tc2VsZWN0IG7Do28gcGVybWl0ZSBxdWUgc2VqYW0gcGFzc2Fkb3MgdmFsb3JlcyBkdXBsaWNhZG9zLCB1bmRlZmluZWQgZSBudWxsIHBhcmEgYXMgb3DDp8O1ZXMsIGV4Y2x1aW5kby1vcyBkYSBsaXN0YS5cbiAqXG4gKiA+IEFvIHBhc3NhciB1bSB2YWxvciBwYXJhIG8gX21vZGVsXyBxdWUgbsOjbyBlc3TDoSBuYSBsaXN0YSBkZSBvcMOnw7VlcywgbyBtZXNtbyBzZXLDoSBkZWZpbmlkbyBjb21vIGB1bmRlZmluZWRgLlxuICpcbiAqIFRhbWLDqW0gZXhpc3RlIGEgcG9zc2liaWxpZGFkZSBkZSB1dGlsaXphciB1bSBfdGVtcGxhdGVfIHBhcmEgYSBleGliacOnw6NvIGRvcyBpdGVucyBkYSBsaXN0YSxcbiAqIHZlamEgbWFpcyBlbSAqKltwLWNvbWJvLW9wdGlvbi10ZW1wbGF0ZV0oL2RvY3VtZW50YXRpb24vcG8tY29tYm8tb3B0aW9uLXRlbXBsYXRlKSoqLlxuICpcbiAqID4gT2JzOiBvIHRlbXBsYXRlICoqW3Atc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZV0oL2RvY3VtZW50YXRpb24vcG8tc2VsZWN0LW9wdGlvbi10ZW1wbGF0ZSkqKiBzZXLDoSBkZXByZWNpYWRvIG5hIHZlcnPDo28gMTQueC54LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9TZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb1NlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQb1NlbGVjdENvbXBvbmVudCBleHRlbmRzIFBvRmllbGRWYWxpZGF0ZU1vZGVsPGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBwcml2YXRlIF9pY29uVG9rZW46IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0JywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgc2VsZWN0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBwYXJhIGF0dWFsaXphciBvIG5nTW9kZWwgZG8gY29tcG9uZW50ZSwgbmVjZXNzw6FyaW8gcXVhbmRvIG7Do28gZm9yIHV0aWxpemFkbyBkZW50cm8gZGEgdGFnIGZvcm0uXG4gICAqXG4gICAqIE5hIHZlcnPDo28gMTIuMi4wIGRvIEFuZ3VsYXIgYSB2ZXJpZmljYcOnw6NvIGBzdHJpY3RUZW1wbGF0ZXNgIHZlbSB0cnVlIGNvbW8gZGVmYXVsdC4gUG9ydGFudG8sIHBhcmEgdXRpbGl6YXJcbiAgICogdHdvLXdheSBiaW5kaW5nIG5vIGNvbXBvbmVudGUgZGV2ZSBzZSB1dGlsaXphciBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIDxwby1zZWxlY3QgLi4uIFtuZ01vZGVsXT1cInNlbGVjdE1vZGVsXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kZWwgPSAkZXZlbnRcIj4gPC9wby1zZWxlY3Q+XG4gICAqIGBgYFxuICAgKi9cbiAgQE91dHB1dCgnbmdNb2RlbENoYW5nZScpIG5nTW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHF1ZSBvIGNhbXBvIHNlcsOhIHNvbWVudGUgcGFyYSBsZWl0dXJhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtcmVhZG9ubHknLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogTWVuc2FnZW0gcXVlIGFwYXJlY2Vyw6EgZW5xdWFudG8gbmVuaHVtYSBvcMOnw6NvIGVzdGl2ZXIgc2VsZWNpb25hZGEuICovXG4gIEBJbnB1dCgncC1wbGFjZWhvbGRlcicpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIGRpc3BsYXlWYWx1ZTtcbiAgaWQgPSBgcG8tc2VsZWN0WyR7dXVpZCgpfV1gO1xuICBtb2RlbFZhbHVlOiBhbnk7XG4gIHNlbGVjdGVkVmFsdWU6IGFueTtcbiAgb3B0aW9uc0RlZmF1bHQgPSBbXTtcbiAgbGlzdEdyb3VwT3B0aW9ucyA9IFtdO1xuICBvcHRpb25XaXRob3V0R3JvdXAgPSBbXTtcbiAgaXNTYWZhcmk6IGJvb2xlYW4gPSBpc1NhZmFyaSgpO1xuXG4gIHByb3RlY3RlZCBvbk1vZGVsVG91Y2hlZDogYW55O1xuXG4gIHByaXZhdGUgX2ZpZWxkTGFiZWw/OiBzdHJpbmcgPSBQT19TRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVDtcbiAgcHJpdmF0ZSBfZmllbGRWYWx1ZT86IHN0cmluZyA9IFBPX1NFTEVDVF9GSUVMRF9WQUxVRV9ERUZBVUxUO1xuICBwcml2YXRlIF9vcHRpb25zOiBBcnJheTxQb1NlbGVjdE9wdGlvbj4gfCBBcnJheTxQb1NlbGVjdE9wdGlvbkdyb3VwPiB8IEFycmF5PGFueT47XG5cbiAgLyoqXG4gICAqIE5lc3RhIHByb3ByaWVkYWRlIGRldmUgc2VyIGRlZmluaWRvIHVtYSBjb2xlw6fDo28gZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgYFBvU2VsZWN0T3B0aW9uYCxcbiAgICogb3UgdW1hIGNvbGXDp8OjbyBkZSBvYmpldG9zIGRlbnRybyBkZSBncnVwb3MgZGlmZXJlbnRlcywgcXVlIHNlcmlhbSBkYSBpbnRlcmZhY2UgYFBvU2VsZWN0T3B0aW9uR3JvdXBgLlxuICAgKlxuICAgKiBDYXNvIGVzdGEgbGlzdGEgZXN0aXZlciB2YXppYSwgbyBtb2RlbCBzZXLDoSBgdW5kZWZpbmVkYC5cbiAgICpcbiAgICogPiBFc3NhIHByb3ByaWVkYWRlIMOpIGltdXTDoXZlbCwgb3Ugc2VqYSwgc2VtcHJlIHF1ZSBxdWlzZXIgYXR1YWxpemFyIGEgbGlzdGEgZGUgb3DDp8O1ZXMgZGlzcG9uw612ZWlzXG4gICAqIGF0dWFsaXplIGEgcmVmZXLDqm5jaWEgZG8gb2JqZXRvOlxuICAgKlxuICAgKiBgYGBcbiAgICogLy8gYXR1YWxpemEgYSByZWZlcsOqbmNpYSBkbyBvYmpldG8gZ2FyYW50aW5kbyBhIGF0dWFsaXphw6fDo28gZG8gdGVtcGxhdGVcbiAgICogdGhpcy5vcHRpb25zID0gWy4uLnRoaXMub3B0aW9ucywgeyB2YWx1ZTogJ3gnLCBsYWJlbDogJ05vdmEgb3DDp8OjbycgfV07XG4gICAqXG4gICAqIC8vIGV2aXRlLCBwb2lzIG7Do28gYXR1YWxpemEgYSByZWZlcsOqbmNpYSBkbyBvYmpldG8gcG9kZW5kbyBnZXJhciBhdHJhc29zIG5hIGF0dWFsaXphw6fDo28gZG8gdGVtcGxhdGVcbiAgICogdGhpcy5vcHRpb25zLnB1c2goeyB2YWx1ZTogJ3gnLCBsYWJlbDogJ05vdmEgb3DDp8OjbycgfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiA+IFBhcmEgY29sZcOnw6NvIGRlIG9iamV0b3MgZGVudHJvIGRlIGdydXBvcyBkaXN0aW50b3Mgc2Vyw6EgZXhpYmlkbyBhIGxhYmVsIGUgb3DDp8O1ZXMgc29tZW50ZSBzZSBhIHByb3ByaWVkYWRlIGBvcHRpb25zYCBwb3NzdWEgdmFsb3Jlcy5cbiAgICogIFNlbmRvIGFzc2ltLCBhIGVzdHJ1dHVyYSBzZWd1aXJpYSBkZXNzYSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIHRoaXMub3B0aW9ucyA9IFt7XG4gICAqICBsYWJlbDogJ09ww6fDtWVzJyxcbiAgICogIG9wdGlvbnM6IFtcbiAgICogICAgeyB2YWx1ZTogMSwgbGFiZWw6ICdvcMOnw6NvIDEnIH0sXG4gICAqICAgIHsgdmFsdWU6IDIsIGxhYmVsOiAnb3DDp8OjbyAyJyB9XG4gICAqICBdLFxuICAgKiB9XTtcbiAgICogYGBgXG4gICAqXG4gICAqIMOJIHBvc3PDrXZlbCBhIHV0aWxpemHDp8OjbyBkZSBvcMOnw7VlcyBhZ3J1cGFkYXMgZSBkZXNhZ3J1cGFkYXMgZW0gY29uanVudG8sIHBvcsOpbSBzZXLDoSBmZWl0YSBhIG9yZGVuYcOnw6NvIGRlIGV4aWJpciBhcyBvcMOnw7Vlc1xuICAgKiBkZXNhZ3J1cGFkYXMgYWNpbWEuXG4gICAqXG4gICAqL1xuICBASW5wdXQoJ3Atb3B0aW9ucycpIHNldCBvcHRpb25zKG9wdGlvbnM6IEFycmF5PFBvU2VsZWN0T3B0aW9uIHwgUG9TZWxlY3RPcHRpb25Hcm91cCB8IGFueT4pIHtcbiAgICB0aGlzLmxpc3RHcm91cE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLm9wdGlvbldpdGhvdXRHcm91cCA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZmllbGRMYWJlbCAmJiB0aGlzLmZpZWxkVmFsdWUgJiYgb3B0aW9ucykge1xuICAgICAgb3B0aW9ucy5tYXAob3B0aW9uID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNJdGVtR3JvdXAob3B0aW9uKSkge1xuICAgICAgICAgIG9wdGlvbi5vcHRpb25zLm1hcChvcHQgPT4ge1xuICAgICAgICAgICAgb3B0LmxhYmVsID0gb3B0W3RoaXMuZmllbGRMYWJlbF07XG4gICAgICAgICAgICBvcHQudmFsdWUgPSBvcHRbdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb24ubGFiZWwgPSBvcHRpb25bdGhpcy5maWVsZExhYmVsXTtcbiAgICAgICAgICBvcHRpb24udmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9uc0RlZmF1bHQgPSBbLi4ub3B0aW9uc107XG4gICAgICB0aGlzLnNlcGFyYXRlT3B0aW9ucygpO1xuXG4gICAgICB0aGlzLm9wdGlvbnNEZWZhdWx0ID0gW107XG4gICAgICB0aGlzLm9wdGlvbnNEZWZhdWx0ID0gWy4uLnRoaXMub3B0aW9uV2l0aG91dEdyb3VwLCAuLi50aGlzLnRyYW5zZm9ybUluQXJyYXkodGhpcy5saXN0R3JvdXBPcHRpb25zKV07XG4gICAgICB0aGlzLm9uVXBkYXRlT3B0aW9ucygpO1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnNEZWZhdWx0XTtcbiAgICB9XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldmUgc2VyIGluZm9ybWFkbyBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgZG8gb2JqZXRvIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSBhIGNvbnZlcnPDo28gZG9zIGl0ZW5zIGFwcmVzZW50YWRvcyBuYSBsaXN0YSBkbyBjb21wb25lbnRlXG4gICAqIChgcC1vcHRpb25zYCksIGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgcmVzcG9uc8OhdmVsIHBlbG8gdGV4dG8gZGUgYXByZXNlbnRhw6fDo28gZGUgY2FkYSBpdGVtIGRhIGxpc3RhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgbGFiZWxgXG4gICAqL1xuICBASW5wdXQoJ3AtZmllbGQtbGFiZWwnKSBzZXQgZmllbGRMYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmllbGRMYWJlbCA9IHZhbHVlIHx8IFBPX1NFTEVDVF9GSUVMRF9MQUJFTF9ERUZBVUxUO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWVsZExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZExhYmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogRGV2ZSBzZXIgaW5mb3JtYWRvIG8gbm9tZSBkYSBwcm9wcmllZGFkZSBkbyBvYmpldG8gcXVlIHNlcsOhIHV0aWxpemFkbyBwYXJhIGEgY29udmVyc8OjbyBkb3MgaXRlbnMgYXByZXNlbnRhZG9zIG5hIGxpc3RhIGRvIGNvbXBvbmVudGVcbiAgICogKGBwLW9wdGlvbnNgKSwgZXN0YSBwcm9wcmllZGFkZSBzZXLDoSByZXNwb25zw6F2ZWwgcGVsbyB2YWxvciBkZSBjYWRhIGl0ZW0gZGEgbGlzdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB2YWx1ZWBcbiAgICovXG4gIEBJbnB1dCgncC1maWVsZC12YWx1ZScpIHNldCBmaWVsZFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWVsZFZhbHVlID0gdmFsdWUgfHwgUE9fU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQ7XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc107XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZpZWxkVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkVmFsdWU7XG4gIH1cblxuICBnZXQgaWNvbk5hbWVMaWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb25Ub2tlbi5OQU1FX0xJQjtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSUNPTlNfRElDVElPTkFSWSkgdmFsdWU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX2ljb25Ub2tlbiA9IHZhbHVlID8/IFBob3NwaG9ySWNvbkRpY3Rpb25hcnk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBjaGFuZ2VzLm9wdGlvbnMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgdXRpbGl6w6EtbGEgw6kgbmVjZXNzw6FyaW8gdGVyIGEgaW5zdMOibmNpYSBkbyBjb21wb25lbnRlIG5vIERPTSwgcG9kZW5kbyBzZXIgdXRpbGl6YWRvIG8gVmlld0NoaWxkIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUG9TZWxlY3RDb21wb25lbnQgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gICAqXG4gICAqIC4uLlxuICAgKlxuICAgKiBAVmlld0NoaWxkKFBvU2VsZWN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Q6IFBvU2VsZWN0Q29tcG9uZW50O1xuICAgKlxuICAgKiBmb2N1c1NlbGVjdCgpIHtcbiAgICogICB0aGlzLnNlbGVjdC5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIC8vIEFsdGVyYSBvIHZhbG9yIGFvIHNlbGVjaW9uYXIgdW0gaXRlbS5cbiAgb25TZWxlY3RDaGFuZ2UodmFsdWU6IGFueSkge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQ/LigpO1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3B0aW9uRm91bmQ6IGFueSA9IHRoaXMuZmluZE9wdGlvblZhbHVlKHZhbHVlKTtcblxuICAgICAgaWYgKG9wdGlvbkZvdW5kKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVzKG9wdGlvbkZvdW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblVwZGF0ZU9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5vblNlbGVjdENoYW5nZSh0aGlzLm1vZGVsVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEF0dWFsaXphIHZhbG9yZXNcbiAgdXBkYXRlVmFsdWVzKG9wdGlvbjogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPT0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwob3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZExhYmVsXTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZShvcHRpb25bdGhpcy5maWVsZFZhbHVlXSk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVjZWJlIGFzIGFsdGVyYcOnw7VlcyBkbyBtb2RlbFxuICBvbldyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IG9wdGlvbkZvdW5kOiBhbnkgPSB0aGlzLmZpbmRPcHRpb25WYWx1ZSh2YWx1ZSk7XG5cbiAgICBpZiAob3B0aW9uRm91bmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb3B0aW9uRm91bmQudmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkVmFsdWVdO1xuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBvcHRpb25Gb3VuZFt0aGlzLmZpZWxkTGFiZWxdO1xuICAgIH0gZWxzZSBpZiAodmFsaWRWYWx1ZSh0aGlzLnNlbGVjdGVkVmFsdWUpKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0aW9uKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaXNJdGVtR3JvdXAoaXRlbTogUG9TZWxlY3RPcHRpb24gfCBQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKGl0ZW0ub3B0aW9ucykge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbS5vcHRpb25zKSA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgaXNFcXVhbCh2YWx1ZTogYW55LCBpbnB1dFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoKHZhbHVlIHx8IHZhbHVlID09PSAwKSAmJiBpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKSA9PT0gaW5wdXRWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICgodmFsdWUgPT09IG51bGwgJiYgaW5wdXRWYWx1ZSAhPT0gbnVsbCkgfHwgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgaW5wdXRWYWx1ZSAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgdmFsdWUgPSBgJHt2YWx1ZX1gOyAvLyBUcmFuc2Zvcm1hbmRvIGVtIHN0cmluZ1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSA9PT0gaW5wdXRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9wdGlvblZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IHRoaXMuaXNFcXVhbChvcHRpb24udmFsdWUsIHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1JbkFycmF5KG9iamVjdFdpdGhBcnJheTogQXJyYXk8YW55Pik6IEFycmF5PFBvU2VsZWN0T3B0aW9uR3JvdXAgfCBhbnk+IHtcbiAgICByZXR1cm4gb2JqZWN0V2l0aEFycmF5LnJlZHVjZSgob3B0aW9ucywgaXRlbXMpID0+IHtcbiAgICAgIGlmIChpdGVtcy5vcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmNvbmNhdChpdGVtcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9LCBbXSk7XG4gIH1cblxuICBwcml2YXRlIHNlcGFyYXRlT3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnNEZWZhdWx0LmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLmlzSXRlbUdyb3VwKG9wdGlvbikpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZU9wdGlvbnMob3B0aW9uLm9wdGlvbnMpO1xuICAgICAgICB0aGlzLmxpc3RHcm91cE9wdGlvbnMucHVzaChvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcHRpb25XaXRob3V0R3JvdXAucHVzaChvcHRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKHRoaXMub3B0aW9uV2l0aG91dEdyb3VwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBBcnJheTxhbnk+KSB7XG4gICAgcmVtb3ZlRHVwbGljYXRlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnMob3B0aW9ucyk7XG4gIH1cbn1cbiIsIjxwby1maWVsZC1jb250YWluZXJcbiAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbcC1pZF09XCJpZFwiXG4gIFtwLWxhYmVsXT1cImxhYmVsXCJcbiAgW3Atb3B0aW9uYWxdPVwib3B0aW9uYWxcIlxuICBbcC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtwLXNob3ctcmVxdWlyZWRdPVwic2hvd1JlcXVpcmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1jb250ZW50XCI+XG4gICAgPHNlbGVjdFxuICAgICAgI3NlbGVjdFxuICAgICAgY2xhc3M9XCJwby1zZWxlY3RcIlxuICAgICAgW25nQ2xhc3NdPVwiaWNvbk5hbWVMaWIgPT09ICdQaG9zcGhvckljb24nID8gJ3BvLXNlbGVjdC1waG9zcGhvcicgOiAncG8tc2VsZWN0LXBvaWNvbidcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFtjbGFzcy5wby1zZWxlY3QtcGxhY2Vob2xkZXJdPVwiIXNlbGVjdGVkVmFsdWU/LnRvU3RyaW5nKCkgJiYgISFwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2FmYXJpXCI+XG4gICAgICAgIDxvcHRpb25cbiAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpIHx8ICEhcGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbaGlkZGVuXT1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpICYmICFwbGFjZWhvbGRlclwiXG4gICAgICAgICAgW3NlbGVjdGVkXT1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpXCJcbiAgICAgICAgICBbdmFsdWVdPVwicGxhY2Vob2xkZXIgPz8gJydcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gW2hpZGRlbl09XCJ0cnVlXCI+e3sgZGlzcGxheVZhbHVlIH19PC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2FmYXJpXCI+XG4gICAgICAgIDxvcHRpb24+e3sgZGlzcGxheVZhbHVlIHx8IHBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbldpdGhvdXRHcm91cC5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uV2l0aG91dEdyb3VwXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW3ZhbHVlXT1cIml0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdXCI+XG4gICAgICAgICAge3sgaXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0R3JvdXBPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0R3JvdXBPcHRpb25zXCI+XG4gICAgICAgICAgPG9wdGdyb3VwICpuZ0lmPVwiaXRlbT8ub3B0aW9ucy5sZW5ndGggPiAwXCIgbGFiZWw9XCJ7eyBpdGVtPy5sYWJlbCB9fVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLm9wdGlvbnNcIiBbdmFsdWVdPVwic3ViSXRlbT8uW3RoaXMuZmllbGRWYWx1ZV1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAge3sgc3ViSXRlbT8uW3RoaXMuZmllbGRMYWJlbF0gfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxwby1maWVsZC1jb250YWluZXItYm90dG9tIFtwLWhlbHBdPVwiaGVscFwiIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCI+PC9wby1maWVsZC1jb250YWluZXItYm90dG9tPlxuPC9wby1maWVsZC1jb250YWluZXI+XG4iXX0=
544
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoSelectComponent, { className: "PoSelectComponent", filePath: "lib/components/po-field/po-select/po-select.component.ts", lineNumber: 123 }); })();
545
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1zZWxlY3QvcG8tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUix1QkFBdUIsRUFDdkIsNkJBQTZCLEVBQzdCLElBQUksRUFDSixVQUFVLEVBQ1gsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0lDUDFELGlDQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFTOzs7O0lBSFAsQUFEQSxBQURBLEFBREEsK0NBQTBCLDJHQUMyQixzRkFDZCwwRkFDWjtJQUUzQixjQUNGO0lBREUsbURBQ0Y7OztJQVRGLDZCQUFnQztJQUM5Qix1RkFNQztJQUdELGlDQUF3QjtJQUFBLFlBQWtCO0lBQUEsaUJBQVM7Ozs7SUFSaEQsY0FBaUQ7SUFBakQsdUhBQWlEO0lBUTVDLGNBQWU7SUFBZiw2QkFBZTtJQUFDLGNBQWtCO0lBQWxCLHlDQUFrQjs7O0lBRzVDLDZCQUErQjtJQUM3Qiw4QkFBUTtJQUFBLFlBQWlDO0lBQUEsaUJBQVM7Ozs7SUFBMUMsZUFBaUM7SUFBakMsK0RBQWlDOzs7SUFJekMsa0NBQXdHO0lBQ3RHLFlBQ0Y7SUFBQSxpQkFBUzs7OztJQUY2RCxBQUF0QiwwQ0FBcUIsOERBQWtDO0lBQ3JHLGNBQ0Y7SUFERSxvRkFDRjs7O0lBSEYsNkJBQW9EO0lBQ2xELHVGQUF3Rzs7OztJQUEvRSxjQUFxQjtJQUFyQixtREFBcUI7OztJQU8xQyxrQ0FBd0c7SUFDdEcsWUFDRjtJQUFBLGlCQUFTOzs7O0lBRnlFLEFBQXJDLGlGQUFvQyw2QkFBc0I7SUFDckcsY0FDRjtJQURFLDBGQUNGOzs7SUFIRixvQ0FBMkY7SUFDekYsa0hBQXdHO0lBRzFHLGlCQUFXOzs7O0lBSmdDLHlFQUF5QjtJQUFDLDBDQUFxQjtJQUM1RCxjQUFlO0lBQWYseUNBQWU7OztJQUYvQyw2QkFBb0Q7SUFDbEQsMkdBQTJGOzs7O0lBQWhGLGNBQThCO0lBQTlCLDRFQUE4Qjs7O0lBRjdDLDZCQUFrRDtJQUNoRCxvR0FBb0Q7Ozs7SUFBckIsY0FBbUI7SUFBbkIsaURBQW1COztBRFgxRCxNQUFNLDZCQUE2QixHQUFHLE9BQU8sQ0FBQztBQUM5QyxNQUFNLDZCQUE2QixHQUFHLE9BQU8sQ0FBQztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUVHO0FBa0JILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxvQkFBeUI7SUFvS3BEO0lBQ0Q7SUFwS0QsVUFBVSxDQUE0QjtJQUVXLGFBQWEsQ0FBYTtJQUVuRjs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ3NCLGFBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVwRjs7Ozs7Ozs7T0FRRztJQUMwRCxRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXZGLHlFQUF5RTtJQUNqRCxXQUFXLENBQVU7SUFFN0MsWUFBWSxDQUFDO0lBQ2IsRUFBRSxHQUFHLGFBQWEsSUFBSSxFQUFFLEdBQUcsQ0FBQztJQUM1QixVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUN4QixRQUFRLEdBQVksUUFBUSxFQUFFLENBQUM7SUFFckIsY0FBYyxDQUFNO0lBRXRCLFdBQVcsR0FBWSw2QkFBNkIsQ0FBQztJQUNyRCxXQUFXLEdBQVksNkJBQTZCLENBQUM7SUFDckQsUUFBUSxDQUFrRTtJQUVsRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUNHO0lBQ0gsSUFBd0IsT0FBTyxDQUFDLE9BQTBEO1FBQ3hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3ZCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDakMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2QyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3BHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsSUFBNEIsVUFBVSxDQUFDLEtBQWE7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksNkJBQTZCLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxJQUE0QixVQUFVLENBQUMsS0FBYTtRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssSUFBSSw2QkFBNkIsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsWUFDd0MsS0FBZ0MsRUFDOUQsY0FBaUMsRUFDbEMsUUFBbUI7UUFFMUIsS0FBSyxFQUFFLENBQUM7UUFIQSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUkxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssSUFBSSxzQkFBc0IsQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLFlBQVksQ0FBQyxNQUFXO1FBQ3RCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxZQUFZLENBQUMsS0FBVTtRQUNyQixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1lBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWdEO1FBQzFELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBVSxFQUFFLFVBQWU7UUFDekMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDekMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pHLEtBQUssR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsMEJBQTBCO1FBQ2hELENBQUM7UUFFRCxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7SUFDOUIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFVO1FBQ2hDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGVBQTJCO1FBQ2xELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsT0FBbUI7UUFDekMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzsyRUF6VFUsaUJBQWlCLHVCQW1LTixnQkFBZ0I7NkRBbkszQixpQkFBaUI7bUNBR0MsVUFBVTs7OzsrREEyQkUsZ0JBQWdCLDJRQTNDOUM7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDaEQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2hELEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7O1lDL0dDLEFBREYsQUFSRiw2Q0FPQyxhQUN5QyxtQkFXckM7WUFEQyw0SUFBVSx1Q0FBbUMsS0FBQztZQXdCOUMsQUFMQSxBQUpBLEFBYkEsb0ZBQWdDLHVFQWFELHVFQUlxQix1RUFLRjtZQVV0RCxBQURFLGlCQUFTLEVBQ0w7WUFFTiwrQ0FBK0Y7WUFDakcsaUJBQXFCOztZQWpEbkIsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLHlDQUF1QixnQkFDWixzQkFDTSw0QkFDTSw0QkFDQSxxQ0FDUztZQVE1QixlQUEyRTtZQUEzRSxnSUFBMkU7WUFHM0UsQUFEQSxBQURBLEFBSEEsd0dBQXNGLDBCQUdqRSxjQUNaLDBCQUNZOztZQUdOLGVBQWU7WUFBZixvQ0FBZTtZQWFmLGNBQWM7WUFBZCxtQ0FBYztZQUlkLGNBQW1DO1lBQW5DLHdEQUFtQztZQUtuQyxjQUFpQztZQUFqQyxzREFBaUM7WUFZekIsY0FBZTtZQUFDLEFBQWhCLGlDQUFlLDRCQUF3Qjs7O2lGRG9FdkQsaUJBQWlCO2NBakI3QixTQUFTOzJCQUNFLFdBQVcsbUJBRUosdUJBQXVCLENBQUMsTUFBTSxhQUNwQztvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzt3QkFDaEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3dCQUNoRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7c0JBcUtFLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsZ0JBQWdCOzZFQWhLbUIsYUFBYTtrQkFBckUsU0FBUzttQkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFnQjlCLGFBQWE7a0JBQXJDLE1BQU07bUJBQUMsZUFBZTtZQVdzQyxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFHbkMsV0FBVztrQkFBbEMsS0FBSzttQkFBQyxlQUFlO1lBbURFLE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQTBDVSxVQUFVO2tCQUFyQyxLQUFLO21CQUFDLGVBQWU7WUFvQk0sVUFBVTtrQkFBckMsS0FBSzttQkFBQyxlQUFlOztrRkFsSlgsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRUb0Jvb2xlYW4sXG4gIGlzU2FmYXJpLFxuICByZW1vdmVEdXBsaWNhdGVkT3B0aW9ucyxcbiAgcmVtb3ZlVW5kZWZpbmVkQW5kTnVsbE9wdGlvbnMsXG4gIHV1aWQsXG4gIHZhbGlkVmFsdWVcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IElDT05TX0RJQ1RJT05BUlksIFBob3NwaG9ySWNvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9wby1pY29uJztcbmltcG9ydCB7IFBvRmllbGRWYWxpZGF0ZU1vZGVsIH0gZnJvbSAnLi4vcG8tZmllbGQtdmFsaWRhdGUubW9kZWwnO1xuaW1wb3J0IHsgUG9TZWxlY3RPcHRpb25Hcm91cCB9IGZyb20gJy4vcG8tc2VsZWN0LW9wdGlvbi1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TZWxlY3RPcHRpb24gfSBmcm9tICcuL3BvLXNlbGVjdC1vcHRpb24uaW50ZXJmYWNlJztcblxuY29uc3QgUE9fU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQgPSAnbGFiZWwnO1xuY29uc3QgUE9fU0VMRUNUX0ZJRUxEX1ZBTFVFX0RFRkFVTFQgPSAndmFsdWUnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb0ZpZWxkVmFsaWRhdGVNb2RlbFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXNlbGVjdC1iYXNpY1wiIHRpdGxlPVwiUE8gU2VsZWN0IEJhc2ljXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWJhc2ljL3NhbXBsZS1wby1zZWxlY3QtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1iYXNpYy9zYW1wbGUtcG8tc2VsZWN0LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXNlbGVjdC1sYWJzXCIgdGl0bGU9XCJQTyBTZWxlY3QgTGFic1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1sYWJzL3NhbXBsZS1wby1zZWxlY3QtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tc2VsZWN0LWxhYnMvc2FtcGxlLXBvLXNlbGVjdC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb25cIiB0aXRsZT1cIlBPIFNlbGVjdCAtIEN1c3RvbWVyIHJlZ2lzdHJhdGlvblwiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24vc2FtcGxlLXBvLXNlbGVjdC1jdXN0b21lci1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPSdzYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi9zYW1wbGUtcG8tc2VsZWN0LWN1c3RvbWVyLXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuZTJlLXNwZWMudHMnPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9J3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uL3NhbXBsZS1wby1zZWxlY3QtY3VzdG9tZXItcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5wby50cyc+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tc2VsZWN0LWNvbXBhbmllc1wiIHRpdGxlPVwiUE8gU2VsZWN0IENvbXBhbmllc1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jb21wYW5pZXMvc2FtcGxlLXBvLXNlbGVjdC1jb21wYW5pZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXNlbGVjdC1jb21wYW5pZXMvc2FtcGxlLXBvLXNlbGVjdC1jb21wYW5pZXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGNvbXBvbmVudGUgcG8tc2VsZWN0IGV4aWJlIHVtYSBsaXN0YSBkZSB2YWxvcmVzIGUgcGVybWl0ZSBxdWUgbyB1c3XDoXJpbyBzZWxlY2lvbmUgdW0gZGVzc2VzIHZhbG9yZXMuXG4gKiBPcyB2YWxvcmVzIGxpc3RhZG9zIHBvZGVtIHNlciBmaXhvcyBvdSBkaW7Dom1pY29zIGRlIGFjb3JkbyBjb20gYSBuZWNlc3NpZGFkZSBkbyBkZXNlbnZvbHZlZG9yLCBkYW5kbyBtYWlzIGZsZXhpYmlsaWRhZGUgYW8gY29tcG9uZW50ZS5cbiAqIE8gcG8tc2VsZWN0IG7Do28gcGVybWl0ZSBxdWUgbyB1c3XDoXJpbyBpbmZvcm1lIHVtIHZhbG9yIGRpZmVyZW50ZSBkb3MgdmFsb3JlcyBsaXN0YWRvcywgaXNzbyBnYXJhbnRlIGEgY29uc2lzdMOqbmNpYSBkYSBpbmZvcm1hw6fDo28uXG4gKiBPIHBvLXNlbGVjdCBuw6NvIHBlcm1pdGUgcXVlIHNlamFtIHBhc3NhZG9zIHZhbG9yZXMgZHVwbGljYWRvcywgdW5kZWZpbmVkIGUgbnVsbCBwYXJhIGFzIG9ww6fDtWVzLCBleGNsdWluZG8tb3MgZGEgbGlzdGEuXG4gKlxuICogPiBBbyBwYXNzYXIgdW0gdmFsb3IgcGFyYSBvIF9tb2RlbF8gcXVlIG7Do28gZXN0w6EgbmEgbGlzdGEgZGUgb3DDp8O1ZXMsIG8gbWVzbW8gc2Vyw6EgZGVmaW5pZG8gY29tbyBgdW5kZWZpbmVkYC5cbiAqXG4gKiBUYW1iw6ltIGV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgdXRpbGl6YXIgdW0gX3RlbXBsYXRlXyBwYXJhIGEgZXhpYmnDp8OjbyBkb3MgaXRlbnMgZGEgbGlzdGEsXG4gKiB2ZWphIG1haXMgZW0gKipbcC1jb21iby1vcHRpb24tdGVtcGxhdGVdKC9kb2N1bWVudGF0aW9uL3BvLWNvbWJvLW9wdGlvbi10ZW1wbGF0ZSkqKi5cbiAqXG4gKiA+IE9iczogbyB0ZW1wbGF0ZSAqKltwLXNlbGVjdC1vcHRpb24tdGVtcGxhdGVdKC9kb2N1bWVudGF0aW9uL3BvLXNlbGVjdC1vcHRpb24tdGVtcGxhdGUpKiogc2Vyw6EgZGVwcmVjaWFkbyBuYSB2ZXJzw6NvIDE0LngueC5cbiAqXG4gKiAjIyMjIFRva2VucyBjdXN0b21pesOhdmVpc1xuICpcbiAqIMOJIHBvc3PDrXZlbCBhbHRlcmFyIG8gZXN0aWxvIGRvIGNvbXBvbmVudGUgdXNhbmRvIG9zIHNlZ3VpbnRlcyB0b2tlbnMgKENTUyk6XG4gKlxuICogPiBQYXJhIG1haW9yZXMgaW5mb3JtYcOnw7VlcywgYWNlc3NlIG8gZ3VpYSBbUGVyc29uYWxpemFuZG8gbyBUZW1hIFBhZHLDo28gY29tIFRva2VucyBDU1NdKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL3RoZW1lLWN1c3RvbWl6YXRpb24pLlxuICpcbiAqIHwgUHJvcHJpZWRhZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmnDp8OjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsb3IgUGFkcsOjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipEZWZhdWx0IFZhbHVlcyoqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1mYW1pbHlgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemVgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLWVtcHR5YCAgICAgICAgICAgICAgICAgICB8IENvciBkbyBwbGFjZWhvbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvcmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkYSBib3JkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay03MClgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDUpYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyB0ZXh0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay05MClgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1wYWRkaW5nLWhvcml6b250YWxgICAgICAgICAgICAgICAgICB8IFByZWVuY2hpbWVudG8gaG9yaXpvbnRhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYDAuNWVtYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1wYWRkaW5nLXZlcnRpY2FsYCAgICAgICAgICAgICAgICAgICB8IFByZWVuY2hpbWVudG8gdmVydGljYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYDAuN2VtYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkhvdmVyKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGhvdmVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWRhcmspYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWhvdmVyYCAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBob3ZlciAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0ZXIpYCAgICAgICAgICAgICAgICAgfFxuICogfCAqKkZvY3VzZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1vdXRsaW5lLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICB8IENvciBkbyBvdXRsaW5lIGRvIGVzdGFkbyBkZSBmb2N1cyAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1mb2N1cylgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkYSBib3JkYSBubyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkRpc2FibGVkKiogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1kaXNhYmxlZGAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWNvbG9yLWRpc2FibGVkYCZuYnNwOyAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkaXNhYmxlZCAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMjApYCAgICAgICAgICAgICAgICAgfFxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBvU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUG9TZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUG9TZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBQb0ZpZWxkVmFsaWRhdGVNb2RlbDxhbnk+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfaWNvblRva2VuOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRnVuw6fDo28gcGFyYSBhdHVhbGl6YXIgbyBuZ01vZGVsIGRvIGNvbXBvbmVudGUsIG5lY2Vzc8OhcmlvIHF1YW5kbyBuw6NvIGZvciB1dGlsaXphZG8gZGVudHJvIGRhIHRhZyBmb3JtLlxuICAgKlxuICAgKiBOYSB2ZXJzw6NvIDEyLjIuMCBkbyBBbmd1bGFyIGEgdmVyaWZpY2HDp8OjbyBgc3RyaWN0VGVtcGxhdGVzYCB2ZW0gdHJ1ZSBjb21vIGRlZmF1bHQuIFBvcnRhbnRvLCBwYXJhIHV0aWxpemFyXG4gICAqIHR3by13YXkgYmluZGluZyBubyBjb21wb25lbnRlIGRldmUgc2UgdXRpbGl6YXIgZGEgc2VndWludGUgZm9ybWE6XG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tc2VsZWN0IC4uLiBbbmdNb2RlbF09XCJzZWxlY3RNb2RlbFwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdE1vZGVsID0gJGV2ZW50XCI+IDwvcG8tc2VsZWN0PlxuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoJ25nTW9kZWxDaGFuZ2UnKSBuZ01vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBxdWUgbyBjYW1wbyBzZXLDoSBzb21lbnRlIHBhcmEgbGVpdHVyYS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLXJlYWRvbmx5JywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1lbnNhZ2VtIHF1ZSBhcGFyZWNlcsOhIGVucXVhbnRvIG5lbmh1bWEgb3DDp8OjbyBlc3RpdmVyIHNlbGVjaW9uYWRhLiAqL1xuICBASW5wdXQoJ3AtcGxhY2Vob2xkZXInKSBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICBkaXNwbGF5VmFsdWU7XG4gIGlkID0gYHBvLXNlbGVjdFske3V1aWQoKX1dYDtcbiAgbW9kZWxWYWx1ZTogYW55O1xuICBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIG9wdGlvbnNEZWZhdWx0ID0gW107XG4gIGxpc3RHcm91cE9wdGlvbnMgPSBbXTtcbiAgb3B0aW9uV2l0aG91dEdyb3VwID0gW107XG4gIGlzU2FmYXJpOiBib29sZWFuID0gaXNTYWZhcmkoKTtcblxuICBwcm90ZWN0ZWQgb25Nb2RlbFRvdWNoZWQ6IGFueTtcblxuICBwcml2YXRlIF9maWVsZExhYmVsPzogc3RyaW5nID0gUE9fU0VMRUNUX0ZJRUxEX0xBQkVMX0RFRkFVTFQ7XG4gIHByaXZhdGUgX2ZpZWxkVmFsdWU/OiBzdHJpbmcgPSBQT19TRUxFQ1RfRklFTERfVkFMVUVfREVGQVVMVDtcbiAgcHJpdmF0ZSBfb3B0aW9uczogQXJyYXk8UG9TZWxlY3RPcHRpb24+IHwgQXJyYXk8UG9TZWxlY3RPcHRpb25Hcm91cD4gfCBBcnJheTxhbnk+O1xuXG4gIC8qKlxuICAgKiBOZXN0YSBwcm9wcmllZGFkZSBkZXZlIHNlciBkZWZpbmlkbyB1bWEgY29sZcOnw6NvIGRlIG9iamV0b3MgcXVlIGltcGxlbWVudGFtIGEgaW50ZXJmYWNlIGBQb1NlbGVjdE9wdGlvbmAsXG4gICAqIG91IHVtYSBjb2xlw6fDo28gZGUgb2JqZXRvcyBkZW50cm8gZGUgZ3J1cG9zIGRpZmVyZW50ZXMsIHF1ZSBzZXJpYW0gZGEgaW50ZXJmYWNlIGBQb1NlbGVjdE9wdGlvbkdyb3VwYC5cbiAgICpcbiAgICogQ2FzbyBlc3RhIGxpc3RhIGVzdGl2ZXIgdmF6aWEsIG8gbW9kZWwgc2Vyw6EgYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqID4gRXNzYSBwcm9wcmllZGFkZSDDqSBpbXV0w6F2ZWwsIG91IHNlamEsIHNlbXByZSBxdWUgcXVpc2VyIGF0dWFsaXphciBhIGxpc3RhIGRlIG9ww6fDtWVzIGRpc3BvbsOtdmVpc1xuICAgKiBhdHVhbGl6ZSBhIHJlZmVyw6puY2lhIGRvIG9iamV0bzpcbiAgICpcbiAgICogYGBgXG4gICAqIC8vIGF0dWFsaXphIGEgcmVmZXLDqm5jaWEgZG8gb2JqZXRvIGdhcmFudGluZG8gYSBhdHVhbGl6YcOnw6NvIGRvIHRlbXBsYXRlXG4gICAqIHRoaXMub3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnMsIHsgdmFsdWU6ICd4JywgbGFiZWw6ICdOb3ZhIG9ww6fDo28nIH1dO1xuICAgKlxuICAgKiAvLyBldml0ZSwgcG9pcyBuw6NvIGF0dWFsaXphIGEgcmVmZXLDqm5jaWEgZG8gb2JqZXRvIHBvZGVuZG8gZ2VyYXIgYXRyYXNvcyBuYSBhdHVhbGl6YcOnw6NvIGRvIHRlbXBsYXRlXG4gICAqIHRoaXMub3B0aW9ucy5wdXNoKHsgdmFsdWU6ICd4JywgbGFiZWw6ICdOb3ZhIG9ww6fDo28nIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogPiBQYXJhIGNvbGXDp8OjbyBkZSBvYmpldG9zIGRlbnRybyBkZSBncnVwb3MgZGlzdGludG9zIHNlcsOhIGV4aWJpZG8gYSBsYWJlbCBlIG9ww6fDtWVzIHNvbWVudGUgc2UgYSBwcm9wcmllZGFkZSBgb3B0aW9uc2AgcG9zc3VhIHZhbG9yZXMuXG4gICAqICBTZW5kbyBhc3NpbSwgYSBlc3RydXR1cmEgc2VndWlyaWEgZGVzc2EgZm9ybWE6XG4gICAqXG4gICAqIGBgYFxuICAgKiB0aGlzLm9wdGlvbnMgPSBbe1xuICAgKiAgbGFiZWw6ICdPcMOnw7VlcycsXG4gICAqICBvcHRpb25zOiBbXG4gICAqICAgIHsgdmFsdWU6IDEsIGxhYmVsOiAnb3DDp8OjbyAxJyB9LFxuICAgKiAgICB7IHZhbHVlOiAyLCBsYWJlbDogJ29ww6fDo28gMicgfVxuICAgKiAgXSxcbiAgICogfV07XG4gICAqIGBgYFxuICAgKlxuICAgKiDDiSBwb3Nzw612ZWwgYSB1dGlsaXphw6fDo28gZGUgb3DDp8O1ZXMgYWdydXBhZGFzIGUgZGVzYWdydXBhZGFzIGVtIGNvbmp1bnRvLCBwb3LDqW0gc2Vyw6EgZmVpdGEgYSBvcmRlbmHDp8OjbyBkZSBleGliaXIgYXMgb3DDp8O1ZXNcbiAgICogZGVzYWdydXBhZGFzIGFjaW1hLlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLW9wdGlvbnMnKSBzZXQgb3B0aW9ucyhvcHRpb25zOiBBcnJheTxQb1NlbGVjdE9wdGlvbiB8IFBvU2VsZWN0T3B0aW9uR3JvdXAgfCBhbnk+KSB7XG4gICAgdGhpcy5saXN0R3JvdXBPcHRpb25zID0gW107XG4gICAgdGhpcy5vcHRpb25XaXRob3V0R3JvdXAgPSBbXTtcblxuICAgIGlmICh0aGlzLmZpZWxkTGFiZWwgJiYgdGhpcy5maWVsZFZhbHVlICYmIG9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMubWFwKG9wdGlvbiA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzSXRlbUdyb3VwKG9wdGlvbikpIHtcbiAgICAgICAgICBvcHRpb24ub3B0aW9ucy5tYXAob3B0ID0+IHtcbiAgICAgICAgICAgIG9wdC5sYWJlbCA9IG9wdFt0aGlzLmZpZWxkTGFiZWxdO1xuICAgICAgICAgICAgb3B0LnZhbHVlID0gb3B0W3RoaXMuZmllbGRWYWx1ZV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3B0aW9uLmxhYmVsID0gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF07XG4gICAgICAgICAgb3B0aW9uLnZhbHVlID0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB0aGlzLm9wdGlvbnNEZWZhdWx0ID0gWy4uLm9wdGlvbnNdO1xuICAgICAgdGhpcy5zZXBhcmF0ZU9wdGlvbnMoKTtcblxuICAgICAgdGhpcy5vcHRpb25zRGVmYXVsdCA9IFtdO1xuICAgICAgdGhpcy5vcHRpb25zRGVmYXVsdCA9IFsuLi50aGlzLm9wdGlvbldpdGhvdXRHcm91cCwgLi4udGhpcy50cmFuc2Zvcm1JbkFycmF5KHRoaXMubGlzdEdyb3VwT3B0aW9ucyldO1xuICAgICAgdGhpcy5vblVwZGF0ZU9wdGlvbnMoKTtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zRGVmYXVsdF07XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXZlIHNlciBpbmZvcm1hZG8gbyBub21lIGRhIHByb3ByaWVkYWRlIGRvIG9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgYSBjb252ZXJzw6NvIGRvcyBpdGVucyBhcHJlc2VudGFkb3MgbmEgbGlzdGEgZG8gY29tcG9uZW50ZVxuICAgKiAoYHAtb3B0aW9uc2ApLCBlc3RhIHByb3ByaWVkYWRlIHNlcsOhIHJlc3BvbnPDoXZlbCBwZWxvIHRleHRvIGRlIGFwcmVzZW50YcOnw6NvIGRlIGNhZGEgaXRlbSBkYSBsaXN0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGxhYmVsYFxuICAgKi9cbiAgQElucHV0KCdwLWZpZWxkLWxhYmVsJykgc2V0IGZpZWxkTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ZpZWxkTGFiZWwgPSB2YWx1ZSB8fCBQT19TRUxFQ1RfRklFTERfTEFCRUxfREVGQVVMVDtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbLi4udGhpcy5vcHRpb25zXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmllbGRMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRMYWJlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERldmUgc2VyIGluZm9ybWFkbyBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgZG8gb2JqZXRvIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSBhIGNvbnZlcnPDo28gZG9zIGl0ZW5zIGFwcmVzZW50YWRvcyBuYSBsaXN0YSBkbyBjb21wb25lbnRlXG4gICAqIChgcC1vcHRpb25zYCksIGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgcmVzcG9uc8OhdmVsIHBlbG8gdmFsb3IgZGUgY2FkYSBpdGVtIGRhIGxpc3RhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdmFsdWVgXG4gICAqL1xuICBASW5wdXQoJ3AtZmllbGQtdmFsdWUnKSBzZXQgZmllbGRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZmllbGRWYWx1ZSA9IHZhbHVlIHx8IFBPX1NFTEVDVF9GSUVMRF9WQUxVRV9ERUZBVUxUO1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWVsZFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZFZhbHVlO1xuICB9XG5cbiAgZ2V0IGljb25OYW1lTGliKCkge1xuICAgIHJldHVybiB0aGlzLl9pY29uVG9rZW4uTkFNRV9MSUI7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElDT05TX0RJQ1RJT05BUlkpIHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9pY29uVG9rZW4gPSB2YWx1ZSA/PyBQaG9zcGhvckljb25EaWN0aW9uYXJ5O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25zID0gY2hhbmdlcy5vcHRpb25zLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiAuLi5cbiAgICpcbiAgICogQFZpZXdDaGlsZChQb1NlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgc2VsZWN0OiBQb1NlbGVjdENvbXBvbmVudDtcbiAgICpcbiAgICogZm9jdXNTZWxlY3QoKSB7XG4gICAqICAgdGhpcy5zZWxlY3QuZm9jdXMoKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZD8uKCk7XG4gIH1cblxuICAvLyBBbHRlcmEgbyB2YWxvciBhbyBzZWxlY2lvbmFyIHVtIGl0ZW0uXG4gIG9uU2VsZWN0Q2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkPy4oKTtcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9wdGlvbkZvdW5kOiBhbnkgPSB0aGlzLmZpbmRPcHRpb25WYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChvcHRpb25Gb3VuZCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlcyhvcHRpb25Gb3VuZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25VcGRhdGVPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLm1vZGVsVmFsdWUpIHtcbiAgICAgIHRoaXMub25TZWxlY3RDaGFuZ2UodGhpcy5tb2RlbFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdHVhbGl6YSB2YWxvcmVzXG4gIHVwZGF0ZVZhbHVlcyhvcHRpb246IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWUgIT09IG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25bdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gb3B0aW9uW3RoaXMuZmllbGRWYWx1ZV07XG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsKG9wdGlvblt0aGlzLmZpZWxkVmFsdWVdKTtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gb3B0aW9uW3RoaXMuZmllbGRMYWJlbF07XG4gICAgICB0aGlzLmVtaXRDaGFuZ2Uob3B0aW9uW3RoaXMuZmllbGRWYWx1ZV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlY2ViZSBhcyBhbHRlcmHDp8O1ZXMgZG8gbW9kZWxcbiAgb25Xcml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBvcHRpb25Gb3VuZDogYW55ID0gdGhpcy5maW5kT3B0aW9uVmFsdWUodmFsdWUpO1xuXG4gICAgaWYgKG9wdGlvbkZvdW5kKSB7XG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG9wdGlvbkZvdW5kLnZhbHVlO1xuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb3B0aW9uRm91bmRbdGhpcy5maWVsZFZhbHVlXTtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gb3B0aW9uRm91bmRbdGhpcy5maWVsZExhYmVsXTtcbiAgICB9IGVsc2UgaWYgKHZhbGlkVmFsdWUodGhpcy5zZWxlY3RlZFZhbHVlKSkge1xuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsKHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlzSXRlbUdyb3VwKGl0ZW06IFBvU2VsZWN0T3B0aW9uIHwgUG9TZWxlY3RPcHRpb25Hcm91cCB8IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChpdGVtLm9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0ub3B0aW9ucykgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICBwcml2YXRlIGlzRXF1YWwodmFsdWU6IGFueSwgaW5wdXRWYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKCh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkgJiYgaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkgPT09IGlucHV0VmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoKHZhbHVlID09PSBudWxsICYmIGlucHV0VmFsdWUgIT09IG51bGwpIHx8ICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGlucHV0VmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHZhbHVlID0gYCR7dmFsdWV9YDsgLy8gVHJhbnNmb3JtYW5kbyBlbSBzdHJpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPT09IGlucHV0VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGZpbmRPcHRpb25WYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5maW5kKG9wdGlvbiA9PiB0aGlzLmlzRXF1YWwob3B0aW9uLnZhbHVlLCB2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtSW5BcnJheShvYmplY3RXaXRoQXJyYXk6IEFycmF5PGFueT4pOiBBcnJheTxQb1NlbGVjdE9wdGlvbkdyb3VwIHwgYW55PiB7XG4gICAgcmV0dXJuIG9iamVjdFdpdGhBcnJheS5yZWR1Y2UoKG9wdGlvbnMsIGl0ZW1zKSA9PiB7XG4gICAgICBpZiAoaXRlbXMub3B0aW9ucykge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5jb25jYXQoaXRlbXMub3B0aW9ucyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW107XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXBhcmF0ZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5vcHRpb25zRGVmYXVsdC5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICBpZiAodGhpcy5pc0l0ZW1Hcm91cChvcHRpb24pKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKG9wdGlvbi5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5saXN0R3JvdXBPcHRpb25zLnB1c2gob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3B0aW9uV2l0aG91dEdyb3VwLnB1c2gob3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9wdGlvbldpdGhvdXRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlT3B0aW9ucyh0aGlzLm9wdGlvbldpdGhvdXRHcm91cCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU9wdGlvbnMob3B0aW9uczogQXJyYXk8YW55Pikge1xuICAgIHJlbW92ZUR1cGxpY2F0ZWRPcHRpb25zKG9wdGlvbnMpO1xuICAgIHJlbW92ZVVuZGVmaW5lZEFuZE51bGxPcHRpb25zKG9wdGlvbnMpO1xuICB9XG59XG4iLCI8cG8tZmllbGQtY29udGFpbmVyXG4gIFtwLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3AtaWRdPVwiaWRcIlxuICBbcC1sYWJlbF09XCJsYWJlbFwiXG4gIFtwLW9wdGlvbmFsXT1cIm9wdGlvbmFsXCJcbiAgW3AtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbcC1zaG93LXJlcXVpcmVkXT1cInNob3dSZXF1aXJlZFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItY29udGVudFwiPlxuICAgIDxzZWxlY3RcbiAgICAgICNzZWxlY3RcbiAgICAgIGNsYXNzPVwicG8tc2VsZWN0XCJcbiAgICAgIFtuZ0NsYXNzXT1cImljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJyA/ICdwby1zZWxlY3QtcGhvc3Bob3InIDogJ3BvLXNlbGVjdC1wb2ljb24nXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICBbY2xhc3MucG8tc2VsZWN0LXBsYWNlaG9sZGVyXT1cIiFzZWxlY3RlZFZhbHVlPy50b1N0cmluZygpICYmICEhcGxhY2Vob2xkZXJcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtpZF09XCJpZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NhZmFyaVwiPlxuICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgKm5nSWY9XCIhc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKSB8fCAhIXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiISFwbGFjZWhvbGRlclwiXG4gICAgICAgICAgW2hpZGRlbl09XCIhc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKSAmJiAhcGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCIhc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInBsYWNlaG9sZGVyID8/ICcnXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uIFtoaWRkZW5dPVwidHJ1ZVwiPnt7IGRpc3BsYXlWYWx1ZSB9fTwvb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NhZmFyaVwiPlxuICAgICAgICA8b3B0aW9uPnt7IGRpc3BsYXlWYWx1ZSB8fCBwbGFjZWhvbGRlciB9fTwvb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25XaXRob3V0R3JvdXAubGVuZ3RoID4gMFwiPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbldpdGhvdXRHcm91cFwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFt2YWx1ZV09XCJpdGVtPy5bdGhpcy5maWVsZFZhbHVlXVwiPlxuICAgICAgICAgIHt7IGl0ZW0/Llt0aGlzLmZpZWxkTGFiZWxdIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdEdyb3VwT3B0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdEdyb3VwT3B0aW9uc1wiPlxuICAgICAgICAgIDxvcHRncm91cCAqbmdJZj1cIml0ZW0/Lm9wdGlvbnMubGVuZ3RoID4gMFwiIGxhYmVsPVwie3sgaXRlbT8ubGFiZWwgfX1cIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj5cbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHN1Ykl0ZW0gb2YgaXRlbS5vcHRpb25zXCIgW3ZhbHVlXT1cInN1Ykl0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCI+XG4gICAgICAgICAgICAgIHt7IHN1Ykl0ZW0/Llt0aGlzLmZpZWxkTGFiZWxdIH19XG4gICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICA8L29wdGdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8cG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBbcC1oZWxwXT1cImhlbHBcIiBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvcG8tZmllbGQtY29udGFpbmVyLWJvdHRvbT5cbjwvcG8tZmllbGQtY29udGFpbmVyPlxuIl19
@@ -13,6 +13,15 @@ import * as i0 from "@angular/core";
13
13
  *
14
14
  * > Obs.: Não está documentado aqui e não indicamos a customização das cores de 'feedback' por motivos de acessibilidade e usabilidade.
15
15
  */
16
+ /**
17
+ * @example
18
+ *
19
+ * <example name="po-theme-labs" title="PO Theme Labs">
20
+ * <file name="sample-po-theme-labs/sample-po-theme-labs.component.html"> </file>
21
+ * <file name="sample-po-theme-labs/sample-po-theme-labs.component.ts"> </file>
22
+ * </example>
23
+ *
24
+ */
16
25
  export class PoThemeService {
17
26
  window;
18
27
  document;
@@ -289,4 +298,4 @@ export class PoThemeService {
289
298
  type: Inject,
290
299
  args: [ICONS_DICTIONARY]
291
300
  }] }], null); })();
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VydmljZXMvcG8tdGhlbWUvcG8tdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUtsRTs7Ozs7Ozs7R0FRRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBVUc7SUFDQTtJQVZwQixRQUFRLENBQVk7SUFDcEIsS0FBSyxHQUFZLGNBQWMsQ0FBQztJQUNoQyxVQUFVLENBQTRCO0lBRTlDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQzRCLE1BQWMsRUFDZCxRQUFrQixFQUM1QyxlQUFpQyxFQUNLLEtBQWdDO1FBSDVDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLElBQUksc0JBQXNCLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsUUFBUSxDQUFDLEtBQWMsRUFBRSxZQUE2QixlQUFlLENBQUMsS0FBSztRQUN6RSxvRkFBb0Y7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Q0FBQztRQUNGLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO3dFQTFTVSxjQUFjLGNBVWYsUUFBUSxlQUNSLFFBQVEsaURBRUksZ0JBQWdCO2dFQWIzQixjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNOztpRkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7c0JBV0ksTUFBTTt1QkFBQyxRQUFROztzQkFDZixNQUFNO3VCQUFDLFFBQVE7O3NCQUVmLFFBQVE7O3NCQUFJLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ09OU19ESUNUSU9OQVJZLCBQaG9zcGhvckljb25EaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wby1pY29uL2luZGV4JztcbmltcG9ydCB7IFBvVGhlbWVUeXBlRW51bSB9IGZyb20gJy4vZW51bS9wby10aGVtZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgcG9UaGVtZURlZmF1bHQgfSBmcm9tICcuL2hlbHBlcnMvcG8tdGhlbWUtcG91aS5jb25zdGFudCc7XG5pbXBvcnQgeyBQb1RoZW1lQ29sb3IgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGhlbWUtY29sb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGhlbWVUb2tlbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGhlbWUtdG9rZW5zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1RoZW1lIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXRoZW1lLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgUG9UaGVtZVNlcnZpY2VgIHBvc3NpYmlsaXRhIGEgcGVyc29uYWxpemHDp8OjbyBkYXMgY29yZXMgZG8gdGVtYSBwYWRyw6NvIGRvIGBQTy1VSWAsIHBlcm1pdGluZG8gYSBhbHRlcmHDp8OjbyBkb3MgdmFsb3JlcyBkYXMgdmFyacOhdmVpcyBkZSBlc3RpbG8gdXNhZGFzIG5vIENTUyBwYWRyw6NvLlxuICpcbiAqID4gUGFyYSBzYWJlciBtYWlzIHNvYnJlIGNvbW8gY3VzdG9taXphciBhcyBjb3JlcyBkbyB0ZW1hIHBhZHLDo28gdmVyaWZpcXVlIG8gaXRlbSBbQ3VzdG9taXphbmRvIGNvcmVzIGRvIHRlbWEgcGFkcsOjb10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvY29sb3JzLWN1c3RvbWl6YXRpb24pIG5hIGFiYSBgR3VpYXNgLlxuICpcbiAqID4gT2JzLjogTsOjbyBlc3TDoSBkb2N1bWVudGFkbyBhcXVpIGUgbsOjbyBpbmRpY2Ftb3MgYSBjdXN0b21pemHDp8OjbyBkYXMgY29yZXMgZGUgJ2ZlZWRiYWNrJyBwb3IgbW90aXZvcyBkZSBhY2Vzc2liaWxpZGFkZSBlIHVzYWJpbGlkYWRlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQb1RoZW1lU2VydmljZSB7XG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSB0aGVtZTogUG9UaGVtZSA9IHBvVGhlbWVEZWZhdWx0O1xuICBwcml2YXRlIF9pY29uVG9rZW46IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgZ2V0IGljb25OYW1lTGliKCkge1xuICAgIHJldHVybiB0aGlzLl9pY29uVG9rZW4uTkFNRV9MSUI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdXaW5kb3cnKSBwcml2YXRlIHdpbmRvdzogV2luZG93LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElDT05TX0RJQ1RJT05BUlkpIHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICkge1xuICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG5cbiAgICB0aGlzLl9pY29uVG9rZW4gPSB2YWx1ZSA/PyBQaG9zcGhvckljb25EaWN0aW9uYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBvIHRlbWEgYSBzZXIgYXBsaWNhZG8gbm8gY29tcG9uZW50ZSwgZGUgYWNvcmRvIGNvbSBvIHRpcG8gZGUgdGVtYSBlc3BlY2lmaWNhZG8uXG4gICAqXG4gICAqIEVzdGUgbcOpdG9kbyBkZWZpbmUgbyB0ZW1hIGEgc2VyIGFwbGljYWRvIG5vIGNvbXBvbmVudGUgY29tIGJhc2Ugbm8gb2JqZXRvIGB0aGVtZWAgZm9ybmVjaWRvIGUgbm8gdGlwbyBkZSB0ZW1hIGVzcGVjaWZpY2Fkby5cbiAgICogRWxlIGF0dWFsaXphIGFzIHByb3ByaWVkYWRlcyBkbyBjb21wb25lbnRlIHBhcmEgcmVmbGV0aXIgbyB0ZW1hIHNlbGVjaW9uYWRvLCBjb21vIGNvcmVzLCBlc3RpbG9zIGUgY29tcG9ydGFtZW50b3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZX0gdGhlbWUgLSBPYmpldG8gY29udGVuZG8gYXMgZGVmaW5pw6fDtWVzIGRlIHRlbWEgYSBzZXJlbSBhcGxpY2FkYXMgbm8gY29tcG9uZW50ZS5cbiAgICogQHBhcmFtIHtQb1RoZW1lVHlwZUVudW19IFt0aGVtZVR5cGU9UG9UaGVtZVR5cGVFbnVtLmxpZ2h0XSAtIChPcGNpb25hbCkgVGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBwb2RlbmRvIHNlciAnbGlnaHQnIChjbGFybykgb3UgJ2RhcmsnIChlc2N1cm8pLiBQb3IgcGFkcsOjbywgbyB0ZW1hIGNsYXJvIMOpIGFwbGljYWRvLlxuICAgKi9cbiAgc2V0VGhlbWUodGhlbWU6IFBvVGhlbWUsIHRoZW1lVHlwZTogUG9UaGVtZVR5cGVFbnVtID0gUG9UaGVtZVR5cGVFbnVtLmxpZ2h0KTogdm9pZCB7XG4gICAgLy8gQ2hhbmdlIHRoZW1lIG5hbWUsIHJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcmVzIGFuZCBudW1iZXIsIHJlcGxhY2Ugc3BhY2Ugd2l0aCBkYXNoXG4gICAgdGhlbWUubmFtZSA9IHRoZW1lLm5hbWVcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVogXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgdGhlbWUuYWN0aXZlID0gdGhlbWVUeXBlO1xuXG4gICAgY29uc3QgX3RoZW1lVHlwZSA9IHRoZW1lLnR5cGVbUG9UaGVtZVR5cGVFbnVtW3RoZW1lVHlwZV1dO1xuICAgIGlmICghX3RoZW1lVHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbG9yU3R5bGVzID0gX3RoZW1lVHlwZS5jb2xvciA/IHRoaXMuZ2VuZXJhdGVUaGVtZVN0eWxlcyhfdGhlbWVUeXBlLmNvbG9yKSA6ICcnO1xuICAgIGNvbnN0IHBlckNvbXBvbmVudFN0eWxlcyA9IF90aGVtZVR5cGUucGVyQ29tcG9uZW50ID8gdGhpcy5nZW5lcmF0ZVBlckNvbXBvbmVudFN0eWxlcyhfdGhlbWVUeXBlLnBlckNvbXBvbmVudCkgOiAnJztcbiAgICBjb25zdCBvblJvb3RTdHlsZXMgPSBfdGhlbWVUeXBlLm9uUm9vdCA/IHRoaXMuZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKF90aGVtZVR5cGUub25Sb290KSA6ICcnO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxTdHlsZXMgPSB0aGlzLmdlbmVyYXRlQWRkaXRpb25hbFN0eWxlcyhfdGhlbWVUeXBlKTtcblxuICAgIGNvbnN0IGNvbWJpbmVkU3R5bGVzID0gYFxuICAgICAgLiR7dGhlbWUubmFtZX0tJHtQb1RoZW1lVHlwZUVudW1bdGhlbWVUeXBlXX06cm9vdCB7XG4gICAgICAgICR7Y29sb3JTdHlsZXN9XG4gICAgICAgICR7cGVyQ29tcG9uZW50U3R5bGVzfVxuICAgICAgICAke29uUm9vdFN0eWxlc31cbiAgICAgICAgJHthZGRpdGlvbmFsU3R5bGVzfVxuICAgICAgfWA7XG5cbiAgICB0aGlzLmFwcGx5VGhlbWVTdHlsZXMoY29tYmluZWRTdHlsZXMpO1xuICAgIHRoaXMuY2hhbmdlVGhlbWVUeXBlKHRoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogR2VyYSBlc3RpbG9zIGFkaWNpb25haXMgY29tIGJhc2Ugbm9zIHRva2VucyBkZSB0ZW1hIGZvcm5lY2lkb3MsIGV4Y2x1aW5kbyBvcyB0b2tlbnMgZGUgY29yLlxuICAgKiBAcGFyYW0gdGhlbWUgT3MgdG9rZW5zIGRlIHRlbWEgY29udGVuZG8gb3MgZXN0aWxvcyBhZGljaW9uYWlzIGEgc2VyZW0gZ2VyYWRvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIGFkaWNpb25haXMgZm9ybWF0YWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKHRoZW1lOiBQb1RoZW1lVG9rZW5zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhlbWUpXG4gICAgICAuZmlsdGVyKChba2V5XSkgPT4gIVsnY29sb3InLCAncGVyQ29tcG9uZW50JywgJ29uUm9vdCddLmluY2x1ZGVzKGtleSkpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX06ICR7dmFsdWV9O2ApXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBBcGxpY2Egb3MgZXN0aWxvcyBkZSB0ZW1hIGFvIGRvY3VtZW50by5cbiAgICogQHBhcmFtIHN0eWxlQ3NzIE9zIGVzdGlsb3MgQ1NTIGEgc2VyZW0gYXBsaWNhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBhcHBseVRoZW1lU3R5bGVzKHN0eWxlQ3NzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVN0eWxlRWxlbWVudChzdHlsZUNzcyk7XG4gICAgY29uc3QgZXhpc3RpbmdTdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJyNwb3VpVGhlbWUnKTtcblxuICAgIGlmIChleGlzdGluZ1N0eWxlRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5oZWFkLCBleGlzdGluZ1N0eWxlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5oZWFkLCBzdHlsZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VUaGVtZVR5cGUodGhlbWU6IFBvVGhlbWUpIHtcbiAgICB0aGlzLmNsZWFuVGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lQWN0aXZlKHRoZW1lKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdLmNsYXNzTGlzdC5hZGQoLi4uW2Ake3RoZW1lLm5hbWV9LSR7UG9UaGVtZVR5cGVFbnVtW3RoZW1lLmFjdGl2ZV19YF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RlIGUgZGVmaW5lIG8gdGVtYSBkbyBhcGxpY2F0aXZvIGNvbSBiYXNlIG5vcyBkYWRvcyBhcm1hemVuYWRvcy5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIHJlY3VwZXJhIG9zIGRhZG9zIGRvIHRlbWEgYXJtYXplbmFkb3MgZSBvcyBhcGxpY2EgYW8gYXBsaWNhdGl2by5cbiAgICpcbiAgICogQHJldHVybnMge1BvVGhlbWV9IFJlY3VwZXJhIG8gdGVtYSBhcm1hemVuYWRvLlxuICAgKi9cbiAgcGVyc2lzdFRoZW1lQWN0aXZlKCkge1xuICAgIGNvbnN0IF90aGVtZSA9IHRoaXMuZ2V0VGhlbWVBY3RpdmUoKTtcbiAgICB0aGlzLnNldFRoZW1lKF90aGVtZSwgX3RoZW1lLmFjdGl2ZSk7XG4gICAgcmV0dXJuIF90aGVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbHRlcmEgbyB0aXBvIGRvIHRlbWEgYXJtYXplbmFkbyBlIGFwbGljYSBvcyBub3ZvcyBlc3RpbG9zIGFvIGRvY3VtZW50by5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGFsdGVyYSBvIHRpcG8gZG8gdGVtYSBhcm1hemVuYWRvIGF0aXZvIChsaWdodC9kYXJrKVxuICAgKlxuICAgKiBAcGFyYW0ge1BvVGhlbWVUeXBlRW51bX0gdGhlbWVUeXBlIE8gdGlwbyBkZSB0ZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCBvdSBkYXJrLlxuICAgKi9cbiAgY2hhbmdlQ3VycmVudFRoZW1lVHlwZSh0eXBlOiBQb1RoZW1lVHlwZUVudW0pOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgX3RoZW1lLmFjdGl2ZSA9IHR5cGU7XG4gICAgdGhpcy5jaGFuZ2VUaGVtZVR5cGUoX3RoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNw6l0b2RvIHJlbW92ZSBvIHRlbWEgYXJtYXplbmFkbyBlIGxpbXBhIHRvZG9zIG9zIGVzdGlsb3MgZGUgdGVtYVxuICAgKiBhcGxpY2Fkb3MgYW8gZG9jdW1lbnRvLlxuICAgKi9cbiAgY2xlYW5UaGVtZUFjdGl2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBfdGhlbWUgPSB0aGlzLmdldFRoZW1lQWN0aXZlKCk7XG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXS5jbGFzc0xpc3QucmVtb3ZlKGAke190aGVtZS5uYW1lfS0ke1BvVGhlbWVUeXBlRW51bVtfdGhlbWUuYWN0aXZlXX1gKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG90dnMtdGhlbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGRlZmluZSB1bSBkYWRvcyBkbyB0ZW1hIGUgbyBhcm1hemVuYS5cbiAgICogQHBhcmFtIHRoZW1lIE9zIHRva2VucyBkZSB0ZW1hIGNvbnRlbmRvIG9zIGVzdGlsb3MgYWRpY2lvbmFpcyBhIHNlcmVtIGdlcmFkb3MuXG4gICAqL1xuICBwcml2YXRlIHNldFRoZW1lQWN0aXZlKHRoZW1lOiBQb1RoZW1lKTogdm9pZCB7XG4gICAgaWYgKHRoZW1lKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG90dnMtdGhlbWUnLCBKU09OLnN0cmluZ2lmeSh0aGVtZSkpO1xuICAgICAgdGhpcy50aGVtZSA9IHRoZW1lO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIG8gdGVtYSBhdGl2byBjb21vIHVtIG9ic2VydmFibGUuXG4gICAqIEByZXR1cm5zIHtQb1RoZW1lfSBUZW1hIGF0aXZvLlxuICAgKi9cbiAgZ2V0VGhlbWVBY3RpdmUoKTogUG9UaGVtZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRoZW1lRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RvdHZzLXRoZW1lJykpO1xuICAgICAgaWYgKHRoZW1lRGF0YSAmJiBKU09OLnN0cmluZ2lmeSh0aGVtZURhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLnRoZW1lKSkge1xuICAgICAgICB0aGlzLnRoZW1lID0gdGhlbWVEYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvIGFvIG9idGVyIG8gdGVtYSBkbyBhcm1hemVuYW1lbnRvIGxvY2FsOicsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudGhlbWU7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEdlcmEgZXN0aWxvcyBDU1MgY29tIGJhc2Ugbm9zIHRva2VucyBkZSBjb3JlcyBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVDb2xvciBPcyB0b2tlbnMgZGUgY29yIGEgc2VyZW0gdXNhZG9zIHBhcmEgZ2VyYXIgb3MgZXN0aWxvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIENTUyBnZXJhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTdHlsZUVsZW1lbnQoY3NzOiBzdHJpbmcpOiBIVE1MU3R5bGVFbGVtZW50IHtcbiAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmlkID0gJ3BvdWlUaGVtZSc7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChjc3MpKTtcbiAgICByZXR1cm4gc3R5bGVFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgZGUgY29yZXMgZm9ybmVjaWRvcy5cbiAgICogQHBhcmFtIHRoZW1lQ29sb3IgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVUaGVtZVN0eWxlcyh0aGVtZUNvbG9yOiBQb1RoZW1lQ29sb3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdEJnSWNvblN0eWxlID0gdGhpcy5nZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcik7XG5cbiAgICByZXR1cm4gW1xuICAgICAgT2JqZWN0LmVudHJpZXModGhlbWVDb2xvcilcbiAgICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykuZmxhdE1hcCgoW3RvbmFsaXR5LCB0b25hbGl0eVZhbHVlc10pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgICAgICAgICByZXR1cm4gW2AtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX06ICR7dG9uYWxpdHlWYWx1ZXN9O2BdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRvbmFsaXR5VmFsdWVzKS5tYXAoXG4gICAgICAgICAgICAgICAgKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IGAtLWNvbG9yLSR7dHlwZX0tJHt0b25hbGl0eX0tJHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJycpLFxuICAgICAgc2VsZWN0QmdJY29uU3R5bGVcbiAgICBdLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgQ1NTIGNvbSBiYXNlIG5vcyB0b2tlbnMgcGVyIENvbXBvbmVudCBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVQZXJDb21wb25lbnQgT3MgdG9rZW5zIGRlIGNvciBhIHNlcmVtIHVzYWRvcyBwYXJhIGdlcmFyIG9zIGVzdGlsb3MuXG4gICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gb3MgZXN0aWxvcyBDU1MgZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVQZXJDb21wb25lbnRTdHlsZXModGhlbWVQZXJDb21wb25lbnQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoZW1lUGVyQ29tcG9uZW50KVxuICAgICAgLmZsYXRNYXAoKFt0eXBlLCB2YWx1ZXNdKSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZXMpLmZsYXRNYXAoKFtsZXZlbCwgY29sb3JWYWx1ZV0pID0+IFtgJHt0eXBlfSB7JHtsZXZlbH06ICR7Y29sb3JWYWx1ZX07fTtgXSlcbiAgICAgIClcbiAgICAgIC5qb2luKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbyB0ZW1hIGF0dWFsIGNvbW8gbyB0ZW1hIFwiUG9VSSBQYWRyw6NvXCIuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZVR5cGVFbnVtfSB0eXBlIE8gdGlwbyBkZSBUZW1hIGEgc2VyIGFwbGljYWRvLCBsaWdodCAvIGRhcmsuXG4gICAqL1xuICBzZXREZWZhdWx0VGhlbWUodHlwZTogUG9UaGVtZVR5cGVFbnVtKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUaGVtZShwb1RoZW1lRGVmYXVsdCwgdHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIFJldG9ybmEgbyBlc3RpbG8gQ1NTIHBhcmEgbyBmdW5kbyBkb3Mgw61jb25lcyBkbyBjb21wb25lbnRlIHBvLXNlbGVjdCwgY29tIGJhc2UgbmFzIGNvcmVzIGRvIHRlbWEuXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZUNvbG9yfSB0aGVtZUNvbG9yIC0gT2JqZXRvIGNvbnRlbmRvIGFzIGNvcmVzIGRvIHRlbWEuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gRXN0aWxvIENTUyBwYXJhIG8gZnVuZG8gZG9zIMOtY29uZXMgZG8gcG8tc2VsZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWxlY3RCZ0ljb25zU3R5bGUodGhlbWVDb2xvcjogUG9UaGVtZUNvbG9yKTogc3RyaW5nIHtcbiAgICBsZXQgc2VsZWN0QmdJY29uID0gJyc7XG5cbiAgICBpZiAodGhlbWVDb2xvcj8uYnJhbmQ/LlsnMDEnXT8uZGFyaykge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJyA/ICdwby1zZWxlY3QgLnBvLXNlbGVjdC1waG9zcGhvcicgOiAncG8tc2VsZWN0JztcbiAgICAgIHNlbGVjdEJnSWNvbiArPSBgJHtzZWxlY3Rvcn0geyAtLWJhY2tncm91bmQtaW1hZ2U6IHVybCgke3RoaXMuZ2V0U2VsZWN0QmdJY29uKHRoZW1lQ29sb3IuYnJhbmRbJzAxJ10uZGFyayl9KTsgfTtgO1xuICAgIH1cblxuICAgIGlmICh0aGVtZUNvbG9yPy5mZWVkYmFjaz8ubmVnYXRpdmU/LmJhc2UpIHtcbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdCB7IC0tYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5mZWVkYmFjay5uZWdhdGl2ZS5iYXNlKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdC5uZy1kaXJ0eS5uZy1pbnZhbGlkIHNlbGVjdC5wby1zZWxlY3QtcGhvc3Bob3IgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLmZlZWRiYWNrLm5lZ2F0aXZlLmJhc2UpfSk7IH07YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhlbWVDb2xvcj8ubmV1dHJhbD8ubGlnaHQ/LlsnMzAnXSkge1xuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQb0ljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgc2VsZWN0OmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUGhvc3Bob3JJY29uJykge1xuICAgICAgICBzZWxlY3RCZ0ljb24gKz0gYHBvLXNlbGVjdCBzZWxlY3QucG8tc2VsZWN0LXBob3NwaG9yOmRpc2FibGVkIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5uZXV0cmFsLmxpZ2h0WyczMCddKX0pOyB9O2A7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdEJnSWNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogUmV0b3JuYSBhIGltYWdlbSBTVkcgdXRpbGl6YWRhIGNvbW8gZnVuZG8gZG8gcG8tc2VsZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sb3IgQ29yIGRhIEltYWdlbSAtIFV0aWxpemFkYSBubyBhdHJpYnV0byAnZmlsbCcuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEltYWdlbSBTVkcgdXRpbGl6YWRhIG5vIHBvLXNlbGVjdC5cbiAgICovXG4gIHByaXZhdGUgZ2V0U2VsZWN0QmdJY29uKGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBzdmc6IHN0cmluZztcblxuICAgIGlmICh0aGlzLmljb25OYW1lTGliID09PSAnUG9JY29uJykge1xuICAgICAgc3ZnID0gYFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgYDtcblxuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgZD0nTTE4LjcwNyA4LjI5MzAxQzE4LjMxNiA3LjkwMjAxIDE3LjY4NCA3LjkwMjAxIDE3LjI5MyA4LjI5MzAxTDEyIDEzLjU4Nkw2LjcwNzAxIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgOC4yOTMwMUM2LjMxNjAxIDcuOTAyMDEgNS42ODQwMSA3LjkwMjAxIDUuMjkzMDEgOC4yOTMwMUM0LjkwMjAxIDguNjg0MDEgNC45MDIwMSBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDkuMzE2MDEgNS4yOTMwMSA5LjcwNzAxTDExLjI5MyAxNS43MDdDMTEuNDg4IDE1LjkwMiAxMS43NDQgMTYgMTIgMTZDMTIuMjU2IDE2IDEyLjUxMiBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYDE1LjkwMiAxMi43MDcgMTUuNzA3TDE4LjcwNyA5LjcwNzAxQzE5LjA5OCA5LjMxNjAxIDE5LjA5OCA4LjY4NDAxIDE4LjcwNyA4LjI5MzAxWicgYCk7XG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGBmaWxsPScke2NvbG9yLnJlcGxhY2UoJyMnLCAnJTIzJyl9Jy8lM0UlM0Mvc3ZnJTNFJTBBXCIpO2ApO1xuXG4gICAgICByZXR1cm4gc3ZnO1xuICAgIH1cblxuICAgIHN2ZyA9IGBcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjU2IDI1NicgZmlsbD0nJHtjb2xvci5yZXBsYWNlKCcjJywgJyUyMycpfScgYDtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KFxuICAgICAgYGQ9J00yMTMuNjYsMTAxLjY2bC04MCw4MGE4LDgsMCwwLDEtMTEuMzIsMGwtODAtODBBOCw4LDAsMCwxLDUzLjY2LDkwLjM0TDEyOCwxNjQuNjlsNzQuMzQtNzQuMzVhOCw4LDAsMCwxLDExLjMyLDExLjMyWidgXG4gICAgKTtcbiAgICBzdmcgPSBzdmcuY29uY2F0KGAlM0UlM0MvcGF0aCUzRSUzQy9zdmclM0VcIik7YCk7XG5cbiAgICByZXR1cm4gc3ZnO1xuICB9XG59XG4iXX0=
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvc2VydmljZXMvcG8tdGhlbWUvcG8tdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUtsRTs7Ozs7Ozs7R0FRRztBQUVIOzs7Ozs7OztHQVFHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFVRztJQUNBO0lBVnBCLFFBQVEsQ0FBWTtJQUNwQixLQUFLLEdBQVksY0FBYyxDQUFDO0lBQ2hDLFVBQVUsQ0FBNEI7SUFFOUMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFDNEIsTUFBYyxFQUNkLFFBQWtCLEVBQzVDLGVBQWlDLEVBQ0ssS0FBZ0M7UUFINUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFJNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssSUFBSSxzQkFBc0IsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxRQUFRLENBQUMsS0FBYyxFQUFFLFlBQTZCLGVBQWUsQ0FBQyxL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QUNkLHdIQUF3SCxDQUN6SCxDQUFDO1FBQ0YsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUVoRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7d0VBMVNVLGNBQWMsY0FVZixRQUFRLGVBQ1IsUUFBUSxpREFFSSxnQkFBZ0I7Z0VBYjNCLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07O2lGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFXSSxNQUFNO3VCQUFDLFFBQVE7O3NCQUNmLE1BQU07dUJBQUMsUUFBUTs7c0JBRWYsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDT05TX0RJQ1RJT05BUlksIFBob3NwaG9ySWNvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3BvLWljb24vaW5kZXgnO1xuaW1wb3J0IHsgUG9UaGVtZVR5cGVFbnVtIH0gZnJvbSAnLi9lbnVtL3BvLXRoZW1lLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBwb1RoZW1lRGVmYXVsdCB9IGZyb20gJy4vaGVscGVycy9wby10aGVtZS1wb3VpLmNvbnN0YW50JztcbmltcG9ydCB7IFBvVGhlbWVDb2xvciB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10aGVtZS1jb2xvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9UaGVtZVRva2VucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby10aGVtZS10b2tlbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvVGhlbWUgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tdGhlbWUuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGBQb1RoZW1lU2VydmljZWAgcG9zc2liaWxpdGEgYSBwZXJzb25hbGl6YcOnw6NvIGRhcyBjb3JlcyBkbyB0ZW1hIHBhZHLDo28gZG8gYFBPLVVJYCwgcGVybWl0aW5kbyBhIGFsdGVyYcOnw6NvIGRvcyB2YWxvcmVzIGRhcyB2YXJpw6F2ZWlzIGRlIGVzdGlsbyB1c2FkYXMgbm8gQ1NTIHBhZHLDo28uXG4gKlxuICogPiBQYXJhIHNhYmVyIG1haXMgc29icmUgY29tbyBjdXN0b21pemFyIGFzIGNvcmVzIGRvIHRlbWEgcGFkcsOjbyB2ZXJpZmlxdWUgbyBpdGVtIFtDdXN0b21pemFuZG8gY29yZXMgZG8gdGVtYSBwYWRyw6NvXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9jb2xvcnMtY3VzdG9taXphdGlvbikgbmEgYWJhIGBHdWlhc2AuXG4gKlxuICogPiBPYnMuOiBOw6NvIGVzdMOhIGRvY3VtZW50YWRvIGFxdWkgZSBuw6NvIGluZGljYW1vcyBhIGN1c3RvbWl6YcOnw6NvIGRhcyBjb3JlcyBkZSAnZmVlZGJhY2snIHBvciBtb3Rpdm9zIGRlIGFjZXNzaWJpbGlkYWRlIGUgdXNhYmlsaWRhZGUuXG4gKi9cblxuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10aGVtZS1sYWJzXCIgdGl0bGU9XCJQTyBUaGVtZSBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby10aGVtZS1sYWJzL3NhbXBsZS1wby10aGVtZS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRoZW1lLWxhYnMvc2FtcGxlLXBvLXRoZW1lLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvVGhlbWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcml2YXRlIHRoZW1lOiBQb1RoZW1lID0gcG9UaGVtZURlZmF1bHQ7XG4gIHByaXZhdGUgX2ljb25Ub2tlbjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBnZXQgaWNvbk5hbWVMaWIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb25Ub2tlbi5OQU1FX0xJQjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1dpbmRvdycpIHByaXZhdGUgd2luZG93OiBXaW5kb3csXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSUNPTlNfRElDVElPTkFSWSkgdmFsdWU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgIHRoaXMuX2ljb25Ub2tlbiA9IHZhbHVlID8/IFBob3NwaG9ySWNvbkRpY3Rpb25hcnk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIG8gdGVtYSBhIHNlciBhcGxpY2FkbyBubyBjb21wb25lbnRlLCBkZSBhY29yZG8gY29tIG8gdGlwbyBkZSB0ZW1hIGVzcGVjaWZpY2Fkby5cbiAgICpcbiAgICogRXN0ZSBtw6l0b2RvIGRlZmluZSBvIHRlbWEgYSBzZXIgYXBsaWNhZG8gbm8gY29tcG9uZW50ZSBjb20gYmFzZSBubyBvYmpldG8gYHRoZW1lYCBmb3JuZWNpZG8gZSBubyB0aXBvIGRlIHRlbWEgZXNwZWNpZmljYWRvLlxuICAgKiBFbGUgYXR1YWxpemEgYXMgcHJvcHJpZWRhZGVzIGRvIGNvbXBvbmVudGUgcGFyYSByZWZsZXRpciBvIHRlbWEgc2VsZWNpb25hZG8sIGNvbW8gY29yZXMsIGVzdGlsb3MgZSBjb21wb3J0YW1lbnRvcy5cbiAgICpcbiAgICogQHBhcmFtIHtQb1RoZW1lfSB0aGVtZSAtIE9iamV0byBjb250ZW5kbyBhcyBkZWZpbmnDp8O1ZXMgZGUgdGVtYSBhIHNlcmVtIGFwbGljYWRhcyBubyBjb21wb25lbnRlLlxuICAgKiBAcGFyYW0ge1BvVGhlbWVUeXBlRW51bX0gW3RoZW1lVHlwZT1Qb1RoZW1lVHlwZUVudW0ubGlnaHRdIC0gKE9wY2lvbmFsKSBUaXBvIGRlIHRlbWEgYSBzZXIgYXBsaWNhZG8sIHBvZGVuZG8gc2VyICdsaWdodCcgKGNsYXJvKSBvdSAnZGFyaycgKGVzY3VybykuIFBvciBwYWRyw6NvLCBvIHRlbWEgY2xhcm8gw6kgYXBsaWNhZG8uXG4gICAqL1xuICBzZXRUaGVtZSh0aGVtZTogUG9UaGVtZSwgdGhlbWVUeXBlOiBQb1RoZW1lVHlwZUVudW0gPSBQb1RoZW1lVHlwZUVudW0ubGlnaHQpOiB2b2lkIHtcbiAgICAvLyBDaGFuZ2UgdGhlbWUgbmFtZSwgcmVtb3ZlIHNwZWNpYWwgY2hhcmFjdGVyZXMgYW5kIG51bWJlciwgcmVwbGFjZSBzcGFjZSB3aXRoIGRhc2hcbiAgICB0aGVtZS5uYW1lID0gdGhlbWUubmFtZVxuICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgIC5yZXBsYWNlKC9bXmEtekEtWiBdL2csICcnKVxuICAgICAgLnJlcGxhY2UoL1xccysvZywgJy0nKTtcbiAgICB0aGVtZS5hY3RpdmUgPSB0aGVtZVR5cGU7XG5cbiAgICBjb25zdCBfdGhlbWVUeXBlID0gdGhlbWUudHlwZVtQb1RoZW1lVHlwZUVudW1bdGhlbWVUeXBlXV07XG4gICAgaWYgKCFfdGhlbWVUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29sb3JTdHlsZXMgPSBfdGhlbWVUeXBlLmNvbG9yID8gdGhpcy5nZW5lcmF0ZVRoZW1lU3R5bGVzKF90aGVtZVR5cGUuY29sb3IpIDogJyc7XG4gICAgY29uc3QgcGVyQ29tcG9uZW50U3R5bGVzID0gX3RoZW1lVHlwZS5wZXJDb21wb25lbnQgPyB0aGlzLmdlbmVyYXRlUGVyQ29tcG9uZW50U3R5bGVzKF90aGVtZVR5cGUucGVyQ29tcG9uZW50KSA6ICcnO1xuICAgIGNvbnN0IG9uUm9vdFN0eWxlcyA9IF90aGVtZVR5cGUub25Sb290ID8gdGhpcy5nZW5lcmF0ZUFkZGl0aW9uYWxTdHlsZXMoX3RoZW1lVHlwZS5vblJvb3QpIDogJyc7XG4gICAgY29uc3QgYWRkaXRpb25hbFN0eWxlcyA9IHRoaXMuZ2VuZXJhdGVBZGRpdGlvbmFsU3R5bGVzKF90aGVtZVR5cGUpO1xuXG4gICAgY29uc3QgY29tYmluZWRTdHlsZXMgPSBgXG4gICAgICAuJHt0aGVtZS5uYW1lfS0ke1BvVGhlbWVUeXBlRW51bVt0aGVtZVR5cGVdfTpyb290IHtcbiAgICAgICAgJHtjb2xvclN0eWxlc31cbiAgICAgICAgJHtwZXJDb21wb25lbnRTdHlsZXN9XG4gICAgICAgICR7b25Sb290U3R5bGVzfVxuICAgICAgICAke2FkZGl0aW9uYWxTdHlsZXN9XG4gICAgICB9YDtcblxuICAgIHRoaXMuYXBwbHlUaGVtZVN0eWxlcyhjb21iaW5lZFN0eWxlcyk7XG4gICAgdGhpcy5jaGFuZ2VUaGVtZVR5cGUodGhlbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBHZXJhIGVzdGlsb3MgYWRpY2lvbmFpcyBjb20gYmFzZSBub3MgdG9rZW5zIGRlIHRlbWEgZm9ybmVjaWRvcywgZXhjbHVpbmRvIG9zIHRva2VucyBkZSBjb3IuXG4gICAqIEBwYXJhbSB0aGVtZSBPcyB0b2tlbnMgZGUgdGVtYSBjb250ZW5kbyBvcyBlc3RpbG9zIGFkaWNpb25haXMgYSBzZXJlbSBnZXJhZG9zLlxuICAgKiBAcmV0dXJucyBVbWEgc3RyaW5nIGNvbnRlbmRvIG9zIGVzdGlsb3MgYWRpY2lvbmFpcyBmb3JtYXRhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUFkZGl0aW9uYWxTdHlsZXModGhlbWU6IFBvVGhlbWVUb2tlbnMpOiBzdHJpbmcge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGVtZSlcbiAgICAgIC5maWx0ZXIoKFtrZXldKSA9PiAhWydjb2xvcicsICdwZXJDb21wb25lbnQnLCAnb25Sb290J10uaW5jbHVkZXMoa2V5KSlcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fTogJHt2YWx1ZX07YClcbiAgICAgIC5qb2luKCcgJyk7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEFwbGljYSBvcyBlc3RpbG9zIGRlIHRlbWEgYW8gZG9jdW1lbnRvLlxuICAgKiBAcGFyYW0gc3R5bGVDc3MgT3MgZXN0aWxvcyBDU1MgYSBzZXJlbSBhcGxpY2Fkb3MuXG4gICAqL1xuICBwcml2YXRlIGFwcGx5VGhlbWVTdHlsZXMoc3R5bGVDc3M6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IHRoaXMuY3JlYXRlU3R5bGVFbGVtZW50KHN0eWxlQ3NzKTtcbiAgICBjb25zdCBleGlzdGluZ1N0eWxlRWxlbWVudCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignI3BvdWlUaGVtZScpO1xuXG4gICAgaWYgKGV4aXN0aW5nU3R5bGVFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmhlYWQsIGV4aXN0aW5nU3R5bGVFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVRoZW1lVHlwZSh0aGVtZTogUG9UaGVtZSkge1xuICAgIHRoaXMuY2xlYW5UaGVtZUFjdGl2ZSgpO1xuICAgIHRoaXMuc2V0VGhlbWVBY3RpdmUodGhlbWUpO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF0uY2xhc3NMaXN0LmFkZCguLi5bYCR7dGhlbWUubmFtZX0tJHtQb1RoZW1lVHlwZUVudW1bdGhlbWUuYWN0aXZlXX1gXSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyc2lzdGUgZSBkZWZpbmUgbyB0ZW1hIGRvIGFwbGljYXRpdm8gY29tIGJhc2Ugbm9zIGRhZG9zIGFybWF6ZW5hZG9zLlxuICAgKlxuICAgKiBFc3RlIG3DqXRvZG8gcmVjdXBlcmEgb3MgZGFkb3MgZG8gdGVtYSBhcm1hemVuYWRvcyBlIG9zIGFwbGljYSBhbyBhcGxpY2F0aXZvLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9UaGVtZX0gUmVjdXBlcmEgbyB0ZW1hIGFybWF6ZW5hZG8uXG4gICAqL1xuICBwZXJzaXN0VGhlbWVBY3RpdmUoKSB7XG4gICAgY29uc3QgX3RoZW1lID0gdGhpcy5nZXRUaGVtZUFjdGl2ZSgpO1xuICAgIHRoaXMuc2V0VGhlbWUoX3RoZW1lLCBfdGhlbWUuYWN0aXZlKTtcbiAgICByZXR1cm4gX3RoZW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsdGVyYSBvIHRpcG8gZG8gdGVtYSBhcm1hemVuYWRvIGUgYXBsaWNhIG9zIG5vdm9zIGVzdGlsb3MgYW8gZG9jdW1lbnRvLlxuICAgKlxuICAgKiBFc3RlIG3DqXRvZG8gYWx0ZXJhIG8gdGlwbyBkbyB0ZW1hIGFybWF6ZW5hZG8gYXRpdm8gKGxpZ2h0L2RhcmspXG4gICAqXG4gICAqIEBwYXJhbSB7UG9UaGVtZVR5cGVFbnVtfSB0aGVtZVR5cGUgTyB0aXBvIGRlIHRlbWEgYSBzZXIgYXBsaWNhZG8sIGxpZ2h0IG91IGRhcmsuXG4gICAqL1xuICBjaGFuZ2VDdXJyZW50VGhlbWVUeXBlKHR5cGU6IFBvVGhlbWVUeXBlRW51bSk6IHZvaWQge1xuICAgIGNvbnN0IF90aGVtZSA9IHRoaXMuZ2V0VGhlbWVBY3RpdmUoKTtcbiAgICBfdGhlbWUuYWN0aXZlID0gdHlwZTtcbiAgICB0aGlzLmNoYW5nZVRoZW1lVHlwZShfdGhlbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE3DqXRvZG8gcmVtb3ZlIG8gdGVtYSBhcm1hemVuYWRvIGUgbGltcGEgdG9kb3Mgb3MgZXN0aWxvcyBkZSB0ZW1hXG4gICAqIGFwbGljYWRvcyBhbyBkb2N1bWVudG8uXG4gICAqL1xuICBjbGVhblRoZW1lQWN0aXZlKCk6IHZvaWQge1xuICAgIGNvbnN0IF90aGVtZSA9IHRoaXMuZ2V0VGhlbWVBY3RpdmUoKTtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaHRtbCcpWzBdLmNsYXNzTGlzdC5yZW1vdmUoYCR7X3RoZW1lLm5hbWV9LSR7UG9UaGVtZVR5cGVFbnVtW190aGVtZS5hY3RpdmVdfWApO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3R2cy10aGVtZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBFc3RlIG3DqXRvZG8gZGVmaW5lIHVtIGRhZG9zIGRvIHRlbWEgZSBvIGFybWF6ZW5hLlxuICAgKiBAcGFyYW0gdGhlbWUgT3MgdG9rZW5zIGRlIHRlbWEgY29udGVuZG8gb3MgZXN0aWxvcyBhZGljaW9uYWlzIGEgc2VyZW0gZ2VyYWRvcy5cbiAgICovXG4gIHByaXZhdGUgc2V0VGhlbWVBY3RpdmUodGhlbWU6IFBvVGhlbWUpOiB2b2lkIHtcbiAgICBpZiAodGhlbWUpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b3R2cy10aGVtZScsIEpTT04uc3RyaW5naWZ5KHRoZW1lKSk7XG4gICAgICB0aGlzLnRoZW1lID0gdGhlbWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgbyB0ZW1hIGF0aXZvIGNvbW8gdW0gb2JzZXJ2YWJsZS5cbiAgICogQHJldHVybnMge1BvVGhlbWV9IFRlbWEgYXRpdm8uXG4gICAqL1xuICBnZXRUaGVtZUFjdGl2ZSgpOiBQb1RoZW1lIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGhlbWVEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG90dnMtdGhlbWUnKSk7XG4gICAgICBpZiAodGhlbWVEYXRhICYmIEpTT04uc3RyaW5naWZ5KHRoZW1lRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KHRoaXMudGhlbWUpKSB7XG4gICAgICAgIHRoaXMudGhlbWUgPSB0aGVtZURhdGE7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm8gYW8gb2J0ZXIgbyB0ZW1hIGRvIGFybWF6ZW5hbWVudG8gbG9jYWw6JywgZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50aGVtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogR2VyYSBlc3RpbG9zIENTUyBjb20gYmFzZSBub3MgdG9rZW5zIGRlIGNvcmVzIGZvcm5lY2lkb3MuXG4gICAqIEBwYXJhbSB0aGVtZUNvbG9yIE9zIHRva2VucyBkZSBjb3IgYSBzZXJlbSB1c2Fkb3MgcGFyYSBnZXJhciBvcyBlc3RpbG9zLlxuICAgKiBAcmV0dXJucyBVbWEgc3RyaW5nIGNvbnRlbmRvIG9zIGVzdGlsb3MgQ1NTIGdlcmFkb3MuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVN0eWxlRWxlbWVudChjc3M6IHN0cmluZyk6IEhUTUxTdHlsZUVsZW1lbnQge1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBzdHlsZUVsZW1lbnQuaWQgPSAncG91aVRoZW1lJztcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCwgdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KGNzcykpO1xuICAgIHJldHVybiBzdHlsZUVsZW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEdlcmEgZXN0aWxvcyBDU1MgY29tIGJhc2Ugbm9zIHRva2VucyBkZSBjb3JlcyBmb3JuZWNpZG9zLlxuICAgKiBAcGFyYW0gdGhlbWVDb2xvciBPcyB0b2tlbnMgZGUgY29yIGEgc2VyZW0gdXNhZG9zIHBhcmEgZ2VyYXIgb3MgZXN0aWxvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIENTUyBnZXJhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVRoZW1lU3R5bGVzKHRoZW1lQ29sb3I6IFBvVGhlbWVDb2xvcik6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VsZWN0QmdJY29uU3R5bGUgPSB0aGlzLmdldFNlbGVjdEJnSWNvbnNTdHlsZSh0aGVtZUNvbG9yKTtcblxuICAgIHJldHVybiBbXG4gICAgICBPYmplY3QuZW50cmllcyh0aGVtZUNvbG9yKVxuICAgICAgICAuZmxhdE1hcCgoW3R5cGUsIHZhbHVlc10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5mbGF0TWFwKChbdG9uYWxpdHksIHRvbmFsaXR5VmFsdWVzXSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdhY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHJldHVybiBbYC0tY29sb3ItJHt0eXBlfS0ke3RvbmFsaXR5fTogJHt0b25hbGl0eVZhbHVlc307YF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModG9uYWxpdHlWYWx1ZXMpLm1hcChcbiAgICAgICAgICAgICAgICAoW2xldmVsLCBjb2xvclZhbHVlXSkgPT4gYC0tY29sb3ItJHt0eXBlfS0ke3RvbmFsaXR5fS0ke2xldmVsfTogJHtjb2xvclZhbHVlfTtgXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuam9pbignJyksXG4gICAgICBzZWxlY3RCZ0ljb25TdHlsZVxuICAgIF0uam9pbignJyk7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3NQcml2YXRlXG4gICAqXG4gICAqIEdlcmEgZXN0aWxvcyBDU1MgY29tIGJhc2Ugbm9zIHRva2VucyBwZXIgQ29tcG9uZW50IGZvcm5lY2lkb3MuXG4gICAqIEBwYXJhbSB0aGVtZVBlckNvbXBvbmVudCBPcyB0b2tlbnMgZGUgY29yIGEgc2VyZW0gdXNhZG9zIHBhcmEgZ2VyYXIgb3MgZXN0aWxvcy5cbiAgICogQHJldHVybnMgVW1hIHN0cmluZyBjb250ZW5kbyBvcyBlc3RpbG9zIENTUyBnZXJhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVBlckNvbXBvbmVudFN0eWxlcyh0aGVtZVBlckNvbXBvbmVudDogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhlbWVQZXJDb21wb25lbnQpXG4gICAgICAuZmxhdE1hcCgoW3R5cGUsIHZhbHVlc10pID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlcykuZmxhdE1hcCgoW2xldmVsLCBjb2xvclZhbHVlXSkgPT4gW2Ake3R5cGV9IHske2xldmVsfTogJHtjb2xvclZhbHVlfTt9O2BdKVxuICAgICAgKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBvIHRlbWEgYXR1YWwgY29tbyBvIHRlbWEgXCJQb1VJIFBhZHLDo29cIi5cbiAgICpcbiAgICogQHBhcmFtIHtQb1RoZW1lVHlwZUVudW19IHR5cGUgTyB0aXBvIGRlIFRlbWEgYSBzZXIgYXBsaWNhZG8sIGxpZ2h0IC8gZGFyay5cbiAgICovXG4gIHNldERlZmF1bHRUaGVtZSh0eXBlOiBQb1RoZW1lVHlwZUVudW0pOiB2b2lkIHtcbiAgICB0aGlzLnNldFRoZW1lKHBvVGhlbWVEZWZhdWx0LCB0eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZG9jc1ByaXZhdGVcbiAgICpcbiAgICogUmV0b3JuYSBvIGVzdGlsbyBDU1MgcGFyYSBvIGZ1bmRvIGRvcyDDrWNvbmVzIGRvIGNvbXBvbmVudGUgcG8tc2VsZWN0LCBjb20gYmFzZSBuYXMgY29yZXMgZG8gdGVtYS5cbiAgICpcbiAgICogQHBhcmFtIHtQb1RoZW1lQ29sb3J9IHRoZW1lQ29sb3IgLSBPYmpldG8gY29udGVuZG8gYXMgY29yZXMgZG8gdGVtYS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBFc3RpbG8gQ1NTIHBhcmEgbyBmdW5kbyBkb3Mgw61jb25lcyBkbyBwby1zZWxlY3QuXG4gICAqL1xuICBwcml2YXRlIGdldFNlbGVjdEJnSWNvbnNTdHlsZSh0aGVtZUNvbG9yOiBQb1RoZW1lQ29sb3IpOiBzdHJpbmcge1xuICAgIGxldCBzZWxlY3RCZ0ljb24gPSAnJztcblxuICAgIGlmICh0aGVtZUNvbG9yPy5icmFuZD8uWycwMSddPy5kYXJrKSB7XG4gICAgICBjb25zdCBzZWxlY3RvciA9IHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQaG9zcGhvckljb24nID8gJ3BvLXNlbGVjdCAucG8tc2VsZWN0LXBob3NwaG9yJyA6ICdwby1zZWxlY3QnO1xuICAgICAgc2VsZWN0QmdJY29uICs9IGAke3NlbGVjdG9yfSB7IC0tYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7dGhpcy5nZXRTZWxlY3RCZ0ljb24odGhlbWVDb2xvci5icmFuZFsnMDEnXS5kYXJrKX0pOyB9O2A7XG4gICAgfVxuXG4gICAgaWYgKHRoZW1lQ29sb3I/LmZlZWRiYWNrPy5uZWdhdGl2ZT8uYmFzZSkge1xuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQb0ljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgcG8tc2VsZWN0Lm5nLWRpcnR5Lm5nLWludmFsaWQgc2VsZWN0IHsgLS1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLmZlZWRiYWNrLm5lZ2F0aXZlLmJhc2UpfSk7IH07YDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQaG9zcGhvckljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgcG8tc2VsZWN0Lm5nLWRpcnR5Lm5nLWludmFsaWQgc2VsZWN0LnBvLXNlbGVjdC1waG9zcGhvciB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgke3RoaXMuZ2V0U2VsZWN0QmdJY29uKHRoZW1lQ29sb3IuZmVlZGJhY2submVnYXRpdmUuYmFzZSl9KTsgfTtgO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGVtZUNvbG9yPy5uZXV0cmFsPy5saWdodD8uWyczMCddKSB7XG4gICAgICBpZiAodGhpcy5pY29uTmFtZUxpYiA9PT0gJ1BvSWNvbicpIHtcbiAgICAgICAgc2VsZWN0QmdJY29uICs9IGBzZWxlY3Q6ZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLm5ldXRyYWwubGlnaHRbJzMwJ10pfSk7IH07YDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQaG9zcGhvckljb24nKSB7XG4gICAgICAgIHNlbGVjdEJnSWNvbiArPSBgcG8tc2VsZWN0IHNlbGVjdC5wby1zZWxlY3QtcGhvc3Bob3I6ZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHt0aGlzLmdldFNlbGVjdEJnSWNvbih0aGVtZUNvbG9yLm5ldXRyYWwubGlnaHRbJzMwJ10pfSk7IH07YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2VsZWN0QmdJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkb2NzUHJpdmF0ZVxuICAgKlxuICAgKiBSZXRvcm5hIGEgaW1hZ2VtIFNWRyB1dGlsaXphZGEgY29tbyBmdW5kbyBkbyBwby1zZWxlY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvciBDb3IgZGEgSW1hZ2VtIC0gVXRpbGl6YWRhIG5vIGF0cmlidXRvICdmaWxsJy5cbiAgICogQHJldHVybnMge3N0cmluZ30gSW1hZ2VtIFNWRyB1dGlsaXphZGEgbm8gcG8tc2VsZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWxlY3RCZ0ljb24oY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHN2Zzogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMuaWNvbk5hbWVMaWIgPT09ICdQb0ljb24nKSB7XG4gICAgICBzdmcgPSBgXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBgO1xuXG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgYCk7XG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGBkPSdNMTguNzA3IDguMjkzMDFDMTguMzE2IDcuOTAyMDEgMTcuNjg0IDcuOTAyMDEgMTcuMjkzIDguMjkzMDFMMTIgMTMuNTg2TDYuNzA3MDEgYCk7XG4gICAgICBzdmcgPSBzdmcuY29uY2F0KGA4LjI5MzAxQzYuMzE2MDEgNy45MDIwMSA1LjY4NDAxIDcuOTAyMDEgNS4yOTMwMSA4LjI5MzAxQzQuOTAyMDEgOC42ODQwMSA0LjkwMjAxIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgOS4zMTYwMSA1LjI5MzAxIDkuNzA3MDFMMTEuMjkzIDE1LjcwN0MxMS40ODggMTUuOTAyIDExLjc0NCAxNiAxMiAxNkMxMi4yNTYgMTYgMTIuNTEyIGApO1xuICAgICAgc3ZnID0gc3ZnLmNvbmNhdChgMTUuOTAyIDEyLjcwNyAxNS43MDdMMTguNzA3IDkuNzA3MDFDMTkuMDk4IDkuMzE2MDEgMTkuMDk4IDguNjg0MDEgMTguNzA3IDguMjkzMDFaJyBgKTtcbiAgICAgIHN2ZyA9IHN2Zy5jb25jYXQoYGZpbGw9JyR7Y29sb3IucmVwbGFjZSgnIycsICclMjMnKX0nLyUzRSUzQy9zdmclM0UlMEFcIik7YCk7XG5cbiAgICAgIHJldHVybiBzdmc7XG4gICAgfVxuXG4gICAgc3ZnID0gYFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNTYgMjU2JyBmaWxsPScke2NvbG9yLnJlcGxhY2UoJyMnLCAnJTIzJyl9JyBgO1xuICAgIHN2ZyA9IHN2Zy5jb25jYXQoYHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGApO1xuICAgIHN2ZyA9IHN2Zy5jb25jYXQoXG4gICAgICBgZD0nTTIxMy42NiwxMDEuNjZsLTgwLDgwYTgsOCwwLDAsMS0xMS4zMiwwbC04MC04MEE4LDgsMCwwLDEsNTMuNjYsOTAuMzRMMTI4LDE2NC42OWw3NC4zNC03NC4zNWE4LDgsMCwwLDEsMTEuMzIsMTEuMzJaJ2BcbiAgICApO1xuICAgIHN2ZyA9IHN2Zy5jb25jYXQoYCUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRVwiKTtgKTtcblxuICAgIHJldHVybiBzdmc7XG4gIH1cbn1cbiJdfQ==
@@ -19094,6 +19094,15 @@ const poThemeDefault = {
19094
19094
  *
19095
19095
  * > Obs.: Não está documentado aqui e não indicamos a customização das cores de 'feedback' por motivos de acessibilidade e usabilidade.
19096
19096
  */
19097
+ /**
19098
+ * @example
19099
+ *
19100
+ * <example name="po-theme-labs" title="PO Theme Labs">
19101
+ * <file name="sample-po-theme-labs/sample-po-theme-labs.component.html"> </file>
19102
+ * <file name="sample-po-theme-labs/sample-po-theme-labs.component.ts"> </file>
19103
+ * </example>
19104
+ *
19105
+ */
19097
19106
  class PoThemeService {
19098
19107
  window;
19099
19108
  document;
@@ -39519,6 +39528,34 @@ const PO_SELECT_FIELD_VALUE_DEFAULT = 'value';
39519
39528
  * veja mais em **[p-combo-option-template](/documentation/po-combo-option-template)**.
39520
39529
  *
39521
39530
  * > Obs: o template **[p-select-option-template](/documentation/po-select-option-template)** será depreciado na versão 14.x.x.
39531
+ *
39532
+ * #### Tokens customizáveis
39533
+ *
39534
+ * É possível alterar o estilo do componente usando os seguintes tokens (CSS):
39535
+ *
39536
+ * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization).
39537
+ *
39538
+ * | Propriedade | Descrição | Valor Padrão |
39539
+ * |----------------------------------------|-------------------------------------------------------|-------------------------------------------------|
39540
+ * | **Default Values** | | |
39541
+ * | `--font-family` | Família tipográfica usada | `var(--font-family-theme)` |
39542
+ * | `--font-size` | Tamanho da fonte | `var(--font-size-default)` |
39543
+ * | `--text-color-empty` | Cor do placeholder | `var(--color-neutral-light-30)` |
39544
+ * | `--color` | Cor da borda | `var(--color-neutral-dark-70)` |
39545
+ * | `--background` | Cor de background | `var(--color-neutral-light-05)` |
39546
+ * | `--text-color` | Cor do texto | `var(--color-neutral-dark-90)` |
39547
+ * | `--padding-horizontal` | Preenchimento horizontal | `0.5em` |
39548
+ * | `--padding-vertical` | Preenchimento vertical | `0.7em` |
39549
+ * | **Hover** | | |
39550
+ * | `--color-hover` | Cor principal no estado hover | `var(--color-brand-01-dark)` |
39551
+ * | `--background-hover` | Cor de background no estado hover | `var(--color-brand-01-lighter)` |
39552
+ * | **Focused** | | |
39553
+ * | `--outline-color-focused` | Cor do outline do estado de focus | `var(--color-action-focus)` |
39554
+ * | `--color-focused` | Cor da borda no estado de focus | `var(--color-action-default)` |
39555
+ * | **Disabled** | | |
39556
+ * | `--color-disabled` | Cor principal no estado disabled | `var(--color-neutral-light-30)` |
39557
+ * | `--background-color-disabled`&nbsp; | Cor de background no estado disabled | `var(--color-neutral-light-20)` |
39558
+ *
39522
39559
  */
39523
39560
  class PoSelectComponent extends PoFieldValidateModel {
39524
39561
  changeDetector;
@@ -39881,7 +39918,7 @@ class PoSelectComponent extends PoFieldValidateModel {
39881
39918
  type: Input,
39882
39919
  args: ['p-field-value']
39883
39920
  }] }); })();
39884
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoSelectComponent, { className: "PoSelectComponent", filePath: "lib/components/po-field/po-select/po-select.component.ts", lineNumber: 95 }); })();
39921
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoSelectComponent, { className: "PoSelectComponent", filePath: "lib/components/po-field/po-select/po-select.component.ts", lineNumber: 123 }); })();
39885
39922
 
39886
39923
  /**
39887
39924
  * @description