@stiunb/unb-lib-components 18.0.23 → 18.0.25
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.
- package/README.md +27 -0
- package/esm2022/lib/unb-mensagem/unb-mensagem.component.mjs +18 -26
- package/esm2022/lib/unb-mensagem/unb-mensagem.service.mjs +16 -21
- package/esm2022/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-form.mjs +60 -29
- package/esm2022/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-list.mjs +4 -4
- package/esm2022/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-form.mjs +98 -67
- package/esm2022/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-list.mjs +4 -4
- package/esm2022/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.mjs +111 -96
- package/esm2022/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.mjs +98 -38
- package/esm2022/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-form.mjs +57 -29
- package/esm2022/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-list.mjs +4 -4
- package/esm2022/lib/unb-pessoa/unb-pessoa.service.mjs +141 -45
- package/fesm2022/stiunb-unb-lib-components.mjs +556 -321
- package/fesm2022/stiunb-unb-lib-components.mjs.map +1 -1
- package/lib/unb-mensagem/unb-mensagem.component.d.ts +3 -17
- package/lib/unb-mensagem/unb-mensagem.service.d.ts +16 -18
- package/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-form.d.ts +6 -2
- package/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-list.d.ts +2 -5
- package/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-form.d.ts +6 -3
- package/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-list.d.ts +2 -5
- package/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.d.ts +16 -10
- package/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.d.ts +21 -11
- package/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-form.d.ts +6 -4
- package/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-list.d.ts +2 -5
- package/lib/unb-pessoa/unb-pessoa.service.d.ts +9 -13
- package/package.json +2 -3
|
@@ -16,7 +16,7 @@ export class UnbPessoaEmailListComponent {
|
|
|
16
16
|
this.dialog = dialog;
|
|
17
17
|
this.podeEditar = true;
|
|
18
18
|
this.emails = [];
|
|
19
|
-
this.
|
|
19
|
+
this.backendURL = '';
|
|
20
20
|
this.emailsEmitted = new EventEmitter();
|
|
21
21
|
}
|
|
22
22
|
ngOnInit() {
|
|
@@ -141,7 +141,7 @@ export class UnbPessoaEmailListComponent {
|
|
|
141
141
|
this.emails.sort((a, b) => (a.ordem ?? 0) - (b.ordem ?? 0)); // <-- 'ordem'
|
|
142
142
|
}
|
|
143
143
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailListComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: { podeEditar: "podeEditar", emails: "emails",
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: { podeEditar: "podeEditar", emails: "emails", backendURL: "backendURL" }, outputs: { emailsEmitted: "emailsEmitted" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mes-container\">\r\n <div class=\"header-container\">\r\n <div class=\"mes-header\">\r\n <span class=\"titulo\">\r\n {{ emails?.length === 1 ? 'Email Cadastrado' : 'E-mails Cadastrados' }}\r\n </span>\r\n <span class=\"titulo\">({{ emails?.length || 0 }})</span>\r\n </div>\r\n\r\n <button type=\"button\" matTooltip=\"Novo Email\" mat-flat-button color=\"primary\" (click)=\"openFormDialog(null)\">\r\n Cadastrar Novo Email\r\n </button>\r\n </div>\r\n\r\n <!-- Exibe a tabela de despesas somente se houver despesas -->\r\n <table class=\"my-table\" *ngIf=\"emails && emails.length > 0\" cdkDropList (cdkDropListDropped)=\"moverLinha($event)\">\r\n\r\n <tr style=\"background-color: #e4e3e3cc;\">\r\n <th style=\"width: 5%; text-align: center;\">Ordem</th>\r\n <th>E-mail</th>\r\n <th>Tipo</th>\r\n <th style=\"width: 1%; text-align: center;\">A\u00E7\u00F5es</th>\r\n </tr>\r\n\r\n <tr *ngFor=\"let valor of emails; let i = index\" class=\"my-tr\" cdkDrag>\r\n\r\n <td style=\"text-align: center;\">\r\n <div class=\"drag-cell\" cdkDragHandle>\r\n <mat-icon>drag_indicator</mat-icon>\r\n <span>{{ i + 1 }}</span>\r\n </div>\r\n </td>\r\n\r\n <td>{{ valor.email }}</td>\r\n\r\n <td>{{ valor.tipo?.toUpperCase() }}</td>\r\n\r\n <td>\r\n <div class=\"actions-container\">\r\n <button type=\"button\" mat-icon-button aria-label=\"Salvar\" color=\"primary\" (click)=\"editar(valor)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button type=\"button\" mat-icon-button aria-label=\"Deletar\" color=\"warn\" (click)=\"excluir(valor)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".mes-container{padding:12px;margin-bottom:2px;border-radius:8px;box-shadow:0 2px 6px #0000001a;transition:background-color .3s ease,box-shadow .3s ease}.mes-container:nth-child(2n){background-color:#f9f9fc}.mes-container:nth-child(odd){background-color:#fff}.mes-container:hover{background-color:#f0f0f5;box-shadow:0 4px 8px #00000026}.header-container{display:flex;align-items:center;margin-bottom:2px}.header-container button{margin-left:auto}.mes-header{display:flex;align-items:center;gap:6px;font-size:1.2rem;font-weight:700;color:#333}.my-table{width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;font-family:Arial,sans-serif}.my-table th,.my-table td{padding:5px;text-align:left;border-bottom:1px solid #ddd}.my-table th{background-color:#005dbb7b;color:#fff;font-weight:700}.my-table tr{transition:background-color .3s ease}.my-table tr:hover{background-color:#f1f1f1}.my-table td{background-color:#fff}.my-table td button{transition:transform .2s ease}.my-table td button:hover{transform:scale(1.1)}.my-table td:last-child{text-align:center}.order-input{width:40px;text-align:center;border:1px solid #ccc;border-radius:4px;padding:2px}.order-input:focus{border-color:#1976d2;outline:none}.drag-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:grab;-webkit-user-select:none;user-select:none}.drag-cell mat-icon{font-size:18px;line-height:1;vertical-align:middle}.cdk-drag-preview{background:#fff;border-radius:6px;box-shadow:0 4px 12px #0003;display:table;border-collapse:collapse}.cdk-drag-placeholder{opacity:0;display:table-row}.cdk-drag-animating{transition:transform .2s cubic-bezier(0,0,.2,1)}table[cdkDropList] tr{border-bottom:1px solid #e0e0e0}table[cdkDropList] td{padding:8px}.actions-container{display:flex;justify-content:flex-end;gap:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
145
145
|
}
|
|
146
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailListComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
@@ -150,9 +150,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
150
150
|
type: Input
|
|
151
151
|
}], emails: [{
|
|
152
152
|
type: Input
|
|
153
|
-
}],
|
|
153
|
+
}], backendURL: [{
|
|
154
154
|
type: Input
|
|
155
155
|
}], emailsEmitted: [{
|
|
156
156
|
type: Output
|
|
157
157
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFNekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVMsTUFBaUI7UUFBbEYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQVA3RixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsb0JBQWUsR0FBbUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN4RSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBTS9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxrQkFBa0IsRUFB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WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztZQUN0QyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDM0UsQ0FBQzs4R0F6SlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK05DaEJ4Qyw4akVBaURNOzsyRkRqQ08sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7dUlBTTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWwsIFVuYlBlc3NvYUVtYWlsVGlwbyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW1haWwubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi91bmItcGVzc29hLWVtYWlsLWZvcm0nO1xyXG5pbXBvcnQgeyBUaXBvUGVzc29hRW51bSB9IGZyb20gJy4uL3VuYi10aXBvLXBlc3NvYS5lbnVtJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgc2VsZWN0b3I6ICdsaWItdW5iLXBlc3NvYS1lbWFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWVtYWlsLWxpc3QuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hRW1haWxMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBwb2RlRWRpdGFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbWFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFwaVBlc3NvYUNvbmZpZzogeyB1cmw6IHN0cmluZzsgdG9rZW46IHN0cmluZyB9ID0geyB1cmw6ICcnLCB0b2tlbjogJycgfTtcclxuICBAT3V0cHV0KCkgZW1haWxzRW1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VW5iUGVzc29hRW1haWxbXT4oKTtcclxuXHJcbiAgdGlwb0VtYWlsITogT2JzZXJ2YWJsZTxVbmJQZXNzb2FFbWFpbFRpcG9bXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcml2YXRlIHNlcnZpY2U6IFVuQlBlc3NvYVNlcnZpY2UsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50aXBvRW1haWwgPSB0aGlzLnNlcnZpY2UuZ2V0VGlwb0VtYWlsKCk7XHJcblxyXG4gICAgdGhpcy5zb3J0QW5kQXNzaWduT3JkZXIoKTsgLy8gb3JnYW5pemEgYSBsaXN0YSBkZSBlbWFpbHMuIEFzIHZlemVzIHRlbSBvcmRlbSBkdXBsaWNhZGEgb3UgZmFsdGFuZG8uXHJcbiAgfVxyXG5cclxuICAvLyB0ZW0gcXVlIGZhemVyIGlzc28gcHEgbm8gb24gaW5pdCBldSBhaW5kYSBuYW8gdGVuaG8gYSBsaXN0YVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIFZlcmlmaWNhIHNlIGEgcHJvcHJpZWRhZGUgJ2VtYWlscycgbXVkb3VcclxuICAgIGlmIChjaGFuZ2VzWydlbWFpbHMnXSAmJiB0aGlzLmVtYWlscykge1xyXG4gICAgICAvLyBjaGFtYWRhIHF1YW5kbyBvcyBkYWRvcyByZWFsbWVudGUgY2hlZ2FyZW1cclxuICAgICAgdGhpcy5zb3J0QW5kQXNzaWduT3JkZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4Y2x1aXIoZW1haWxQYXJhRXhjbHVpcjogVW5iUGVzc29hRW1haWwpIHsgLy8gPC0tIFRJUE8gQ09SUklHSURPXHJcblxyXG4gICAgaWYgKGVtYWlsUGFyYUV4Y2x1aXIuY29kaWdvKSB7XHJcbiAgICAgIC8vIFNlIHRlbSBjw7NkaWdvLCByZW1vdmUgcG9yIGVsZVxyXG4gICAgICB0aGlzLmVtYWlscyA9IHRoaXMuZW1haWxzLmZpbHRlcihlID0+IGUuY29kaWdvICE9PSBlbWFpbFBhcmFFeGNsdWlyLmNvZGlnbyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBTZSBuw6NvIHRlbSBjw7NkaWdvIChub3ZvIGl0ZW0pLCByZW1vdmUgcGVsYSBvcmRlbVxyXG4gICAgICB0aGlzLmVtYWlscyA9IHRoaXMuZW1haWxzLmZpbHRlcihlID0+IGUub3JkZW0gIT09IGVtYWlsUGFyYUV4Y2x1aXIub3JkZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoYW1hIHN1YSBmdW7Dp8OjbyBleGlzdGVudGUgcXVlIHJlLWNhbGN1bGEgYXMgb3JkZW5zIGUgZW1pdGUgYSBsaXN0YVxyXG4gICAgdGhpcy5hdHVhbGl6YXJPcmRlbSgpO1xyXG4gIH1cclxuXHJcbiAgZWRpdGFyKGVtYWlsOiBVbmJQZXNzb2FFbWFpbFRpcG8pIHtcclxuICAgIHRoaXMub3BlbkZvcm1EaWFsb2coZW1haWwpO1xyXG4gIH1cclxuXHJcblxyXG4gIGF0dWFsaXphck9yZGVtKCkge1xyXG4gICAgdGhpcy5lbWFpbHMuZm9yRWFjaCgoZW1haWwsIGlkeCkgPT4ge1xyXG4gICAgICBlbWFpbC5vcmRlbSA9IGlkeCArIDE7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmVtYWlsc0VtaXR0ZWQuZW1pdChbLi4udGhpcy5lbWFpbHNdKTtcclxuICB9XHJcblxyXG4gIG9wZW5Gb3JtRGlhbG9nKGVtYWlsVG9FZGl0OiBhbnkpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVW5iUGVzc29hRW1haWxGb3JtQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnOTAwcHgnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZW1haWw6IGVtYWlsVG9FZGl0LCAvLyBFLW1haWwgYSBzZXIgZWRpdGFkbyBvdSB2YXppbyBwYXJhIG5vdm9cclxuICAgICAgICBlbWFpbHNMaXN0OiB0aGlzLmVtYWlscyAvLyBBIHN1YSBsaXN0YSBDT01QTEVUQSBkZSBlLW1haWxzXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICByZXR1cm47IC8vIFVzdcOhcmlvIGNsaWNvdSBlbSAnRmVjaGFyJyBvdSAnQ2FuY2VsYXInXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vICdyZXN1bHQnIMOpIG8gb2JqZXRvIHJldG9ybmFkbyBwZWxvIGRpYWxvZyAoZWRpdGFkbyBvdSBub3ZvKVxyXG4gICAgICBsZXQgaW5kZXggPSAtMTtcclxuXHJcbiAgICAgIC8vIDEuIFRlbnRhIGVuY29udHJhciBwZWxvICdjb2RpZ28nIChwYXJhIGl0ZW5zIHF1ZSBqw6EgdmllcmFtIGRvIGJhbmNvKVxyXG4gICAgICBpZiAocmVzdWx0LmNvZGlnbykge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5lbWFpbHMuZmluZEluZGV4KGUgPT4gZS5jb2RpZ28gPT09IHJlc3VsdC5jb2RpZ28pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyAyLiBTZSBuw6NvIGFjaG91IHBlbG8gJ2NvZGlnbycsIHRlbnRhIHBlbGEgJ29yZGVtJy5cclxuICAgICAgaWYgKGluZGV4ID09PSAtMSAmJiByZXN1bHQub3JkZW0pIHtcclxuICAgICAgICBpbmRleCA9IHRoaXMuZW1haWxzLmZpbmRJbmRleChlID0+IGUub3JkZW0gPT09IHJlc3VsdC5vcmRlbSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgLy8gRU5DT05UUk9VIChwZWxvICdjb2RpZ28nIG91IHBlbGEgJ29yZGVtJyk6IEF0dWFsaXphIG8gaXRlbSBleGlzdGVudGVcclxuICAgICAgICB0aGlzLmVtYWlsc1tpbmRleF0gPSByZXN1bHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gTsODTyBFTkNPTlRST1U6IMOJIHVtIGl0ZW0gMTAwJSBub3ZvIChuw6NvIHVtYSBlZGnDp8OjbylcclxuICAgICAgICB0aGlzLmVtYWlscy5wdXNoKHJlc3VsdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFJlLW9yZGVuYSBhIGxpc3RhIHBlbGEgJ29yZGVtJyBlIGVtaXRlIHVtYSAqbm92YSBjw7NwaWEqXHJcbiAgICAgIHRoaXMuZW1haWxzLnNvcnQoKGEsIGIpID0+IChhLm9yZGVtID8/IDApIC0gKGIub3JkZW0gPz8gMCkpO1xyXG4gICAgICB0aGlzLmVtYWlsc0VtaXR0ZWQuZW1pdChbLi4udGhpcy5lbWFpbHNdKTsgLy8gPC0tIEVtaXRlIG5vdmEgY8OzcGlhXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1vdmVyTGluaGEoZXZlbnQ6IENka0RyYWdEcm9wPGFueVtdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZW1haWxzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgdGhpcy5hdHVhbGl6YXJPcmRlbSgpXHJcbiAgfVxyXG5cclxucHJpdmF0ZSBzb3J0QW5kQXNzaWduT3JkZXIoKTogdm9pZCB7XHJcbiAgICAvLyAxLiBDcmllIHVtYSBjw7NwaWEgZGEgbGlzdGFcclxuICAgIGNvbnN0IHRlbXBFbWFpbHMgPSBbLi4udGhpcy5lbWFpbHNdOyAvLyA8LS0gTk9NRSBDT1JSSUdJRE9cclxuXHJcbiAgICAvLyAyLiBNYXBlaWUgYXMgb3JkZW5zIGV4aXN0ZW50ZXNcclxuICAgIGNvbnN0IG9yZGVyTWFwID0gbmV3IE1hcDxudW1iZXIsIFVuYlBlc3NvYUVtYWlsW10+KCk7XHJcbiAgICBjb25zdCBlbWFpbHNXaXRob3V0T3JkZXI6IFVuYlBlc3NvYUVtYWlsW10gPSBbXTtcclxuXHJcbiAgICB0ZW1wRW1haWxzLmZvckVhY2goZW1haWwgPT4ge1xyXG4gICAgICAvLyBDT1JSRcOHw4NPIEFRVUk6ICdvcmRlbScgZW0gdmV6IGRlICdvcmRlbUVtYWlsJ1xyXG4gICAgICBpZiAoZW1haWwub3JkZW0gIT09IHVuZGVmaW5lZCAmJiBlbWFpbC5vcmRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmICghb3JkZXJNYXAuaGFzKGVtYWlsLm9yZGVtKSkge1xyXG4gICAgICAgICAgb3JkZXJNYXAuc2V0KGVtYWlsLm9yZGVtLCBbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9yZGVyTWFwLmdldChlbWFpbC5vcmRlbSk/LnB1c2goZW1haWwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVtYWlsc1dpdGhvdXRPcmRlci5wdXNoKGVtYWlsKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gMy4gLi4uIChGdW7Dp8O1ZXMgJ2ZpbmFsVXNlZE9yZGVycycsICduZXh0QXZhaWxhYmxlT3JkZXInIGNvbnRpbnVhbSBpZ3VhaXMpIC4uLlxyXG4gICAgY29uc3QgZmluYWxVc2VkT3JkZXJzID0gbmV3IFNldDxudW1iZXI+KCk7XHJcbiAgICBsZXQgbmV4dEF2YWlsYWJsZU9yZGVyID0gMDtcclxuICAgIGNvbnN0IGdldE5leHRBdmFpbGFibGVPcmRlciA9ICgpID0+IHtcclxuICAgICAgd2hpbGUgKGZpbmFsVXNlZE9yZGVycy5oYXMobmV4dEF2YWlsYWJsZU9yZGVyKSkge1xyXG4gICAgICAgIG5leHRBdmFpbGFibGVPcmRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuZXh0QXZhaWxhYmxlT3JkZXIrKztcclxuICAgIH07XHJcblxyXG4gICAgLy8gNC4gUHJvY2Vzc2UgZW1haWxzIGNvbSBvcmRlbSBkZWZpbmlkYTpcclxuICAgIHRoaXMuZW1haWxzLmZvckVhY2goZW1haWwgPT4geyAvLyA8LS0gTk9NRSBDT1JSSUdJRE9cclxuICAgICAgLy8gQ09SUkXDh8ODTyBBUVVJOiAnb3JkZW0nIGVtIHZleiBkZSAnb3JkZW1FbWFpbCdcclxuICAgICAgaWYgKGVtYWlsLm9yZGVtICE9PSB1bmRlZmluZWQgJiYgZW1haWwub3JkZW0gIT09IG51bGwpIHtcclxuICAgICAgICBpZiAoIWZpbmFsVXNlZE9yZGVycy5oYXMoZW1haWwub3JkZW0pKSB7XHJcbiAgICAgICAgICBmaW5hbFVzZWRPcmRlcnMuYWRkKGVtYWlsLm9yZGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gRHVwbGljYXRhLCBhdHJpYnVhIHVtYSBub3ZhXHJcbiAgICAgICAgICBlbWFpbC5vcmRlbSA9IGdldE5leHRBdmFpbGFibGVPcmRlcigpO1xyXG4gICAgICAgICAgZmluYWxVc2VkT3JkZXJzLmFkZChlbWFpbC5vcmRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyA1LiBBdHJpYnVhIG9yZGVucyBwYXJhIGVtYWlscyBxdWUgbsOjbyB0aW5oYW0gb3JkZW1cclxuICAgIGVtYWlsc1dpdGhvdXRPcmRlci5mb3JFYWNoKGVtYWlsID0+IHsgLy8gPC0tIE5PTUUgQ09SUklHSURPXHJcbiAgICAgIGVtYWlsLm9yZGVtID0gZ2V0TmV4dEF2YWlsYWJsZU9yZGVyKCk7IFxyXG4gICAgICBmaW5hbFVzZWRPcmRlcnMuYWRkKGVtYWlsLm9yZGVtKTsgXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyA2LiBGaW5hbG1lbnRlLCBvcmRlbmUgYSBsaXN0YVxyXG4gICAgdGhpcy5lbWFpbHMuc29ydCgoYSwgYikgPT4gKGEub3JkZW0gPz8gMCkgLSAoYi5vcmRlbSA/PyAwKSk7IC8vIDwtLSAnb3JkZW0nXHJcbiAgICB9XHJcbiAgfSIsIjxkaXYgY2xhc3M9XCJtZXMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXMtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0dWxvXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBlbWFpbHM/Lmxlbmd0aCA9PT0gMSA/ICdFbWFpbCBDYWRhc3RyYWRvJyA6ICdFLW1haWxzIENhZGFzdHJhZG9zJyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0dWxvXCI+KHt7IGVtYWlscz8ubGVuZ3RoIHx8IDAgfX0pPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRUb29sdGlwPVwiTm92byBFbWFpbFwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbkZvcm1EaWFsb2cobnVsbClcIj5cclxuICAgICAgICAgICAgQ2FkYXN0cmFyIE5vdm8gRW1haWxcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRXhpYmUgYSB0YWJlbGEgZGUgZGVzcGVzYXMgc29tZW50ZSBzZSBob3V2ZXIgZGVzcGVzYXMgLS0+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJteS10YWJsZVwiICpuZ0lmPVwiZW1haWxzICYmIGVtYWlscy5sZW5ndGggPiAwXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJtb3ZlckxpbmhhKCRldmVudClcIj5cclxuXHJcbiAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2U0ZTNlM2NjO1wiPlxyXG4gICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNSU7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5PcmRlbTwvdGg+XHJcbiAgICAgICAgICAgIDx0aD5FLW1haWw8L3RoPlxyXG4gICAgICAgICAgICA8dGg+VGlwbzwvdGg+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAxJTsgdGV4dC1hbGlnbjogY2VudGVyO1wiPkHDp8O1ZXM8L3RoPlxyXG4gICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdmFsb3Igb2YgZW1haWxzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJteS10clwiIGNka0RyYWc+XHJcblxyXG4gICAgICAgICAgICA8dGQgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1jZWxsXCIgY2RrRHJhZ0hhbmRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGkgKyAxIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+e3sgdmFsb3IuZW1haWwgfX08L3RkPlxyXG5cclxuICAgICAgICAgICAgPHRkPnt7IHZhbG9yLnRpcG8/LnRvVXBwZXJDYXNlKCkgfX08L3RkPlxyXG5cclxuICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJTYWx2YXJcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZWRpdGFyKHZhbG9yKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJEZWxldGFyXCIgY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cImV4Y2x1aXIodmFsb3IpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PiJdfQ==
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFNekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVMsTUFBaUI7UUFBbEYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQVA3RixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBTS9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsd0VBQXdFO0lBQ3JHLENBQUM7SUFFRCw4REFBOEQ7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UUFDckQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztZQUN0QyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDM0UsQ0FBQzs4R0F6SlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIscU5DaEJ4Qyw4akVBaURNOzsyRkRqQ08sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7dUlBTTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWwsIFVuYlBlc3NvYUVtYWlsVGlwbyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW1haWwubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi91bmItcGVzc29hLWVtYWlsLWZvcm0nO1xyXG5pbXBvcnQgeyBUaXBvUGVzc29hRW51bSB9IGZyb20gJy4uL3VuYi10aXBvLXBlc3NvYS5lbnVtJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgc2VsZWN0b3I6ICdsaWItdW5iLXBlc3NvYS1lbWFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWVtYWlsLWxpc3QuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hRW1haWxMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBwb2RlRWRpdGFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbWFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJhY2tlbmRVUkw6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbWFpbHNFbWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxVbmJQZXNzb2FFbWFpbFtdPigpO1xyXG5cclxuICB0aXBvRW1haWwhOiBPYnNlcnZhYmxlPFVuYlBlc3NvYUVtYWlsVGlwb1tdPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgc2VydmljZTogVW5CUGVzc29hU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpcG9FbWFpbCA9IHRoaXMuc2VydmljZS5nZXRUaXBvRW1haWwoKTtcclxuXHJcbiAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpOyAvLyBvcmdhbml6YSBhIGxpc3RhIGRlIGVtYWlscy4gQXMgdmV6ZXMgdGVtIG9yZGVtIGR1cGxpY2FkYSBvdSBmYWx0YW5kby5cclxuICB9XHJcblxyXG4gIC8vIHRlbSBxdWUgZmF6ZXIgaXNzbyBwcSBubyBvbiBpbml0IGV1IGFpbmRhIG5hbyB0ZW5obyBhIGxpc3RhXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gVmVyaWZpY2Egc2UgYSBwcm9wcmllZGFkZSAnZW1haWxzJyBtdWRvdVxyXG4gICAgaWYgKGNoYW5nZXNbJ2VtYWlscyddICYmIHRoaXMuZW1haWxzKSB7XHJcbiAgICAgIC8vIGNoYW1hZGEgcXVhbmRvIG9zIGRhZG9zIHJlYWxtZW50ZSBjaGVnYXJlbVxyXG4gICAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhjbHVpcihlbWFpbFBhcmFFeGNsdWlyOiBVbmJQZXNzb2FFbWFpbCkgeyAvLyA8LS0gVElQTyBDT1JSSUdJRE9cclxuXHJcbiAgICBpZiAoZW1haWxQYXJhRXhjbHVpci5jb2RpZ28pIHtcclxuICAgICAgLy8gU2UgdGVtIGPDs2RpZ28sIHJlbW92ZSBwb3IgZWxlXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5jb2RpZ28gIT09IGVtYWlsUGFyYUV4Y2x1aXIuY29kaWdvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFNlIG7Do28gdGVtIGPDs2RpZ28gKG5vdm8gaXRlbSksIHJlbW92ZSBwZWxhIG9yZGVtXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5vcmRlbSAhPT0gZW1haWxQYXJhRXhjbHVpci5vcmRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hhbWEgc3VhIGZ1bsOnw6NvIGV4aXN0ZW50ZSBxdWUgcmUtY2FsY3VsYSBhcyBvcmRlbnMgZSBlbWl0ZSBhIGxpc3RhXHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0YXIoZW1haWw6IFVuYlBlc3NvYUVtYWlsVGlwbykge1xyXG4gICAgdGhpcy5vcGVuRm9ybURpYWxvZyhlbWFpbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXR1YWxpemFyT3JkZW0oKSB7XHJcbiAgICB0aGlzLmVtYWlscy5mb3JFYWNoKChlbWFpbCwgaWR4KSA9PiB7XHJcbiAgICAgIGVtYWlsLm9yZGVtID0gaWR4ICsgMTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkZvcm1EaWFsb2coZW1haWxUb0VkaXQ6IGFueSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVbmJQZXNzb2FFbWFpbEZvcm1Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc5MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBlbWFpbDogZW1haWxUb0VkaXQsIC8vIEUtbWFpbCBhIHNlciBlZGl0YWRvIG91IHZhemlvIHBhcmEgbm92b1xyXG4gICAgICAgIGVtYWlsc0xpc3Q6IHRoaXMuZW1haWxzIC8vIEEgc3VhIGxpc3RhIENPTVBMRVRBIGRlIGUtbWFpbHNcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybjsgLy8gVXN1w6FyaW8gY2xpY291IGVtICdGZWNoYXInIG91ICdDYW5jZWxhcidcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gJ3Jlc3VsdCcgw6kgbyBvYmpldG8gcmV0b3JuYWRvIHBlbG8gZGlhbG9nIChlZGl0YWRvIG91IG5vdm8pXHJcbiAgICAgIGxldCBpbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gMS4gVGVudGEgZW5jb250cmFyIHBlbG8gJ2NvZGlnbycgKHBhcmEgaXRlbnMgcXVlIGrDoSB2aWVyYW0gZG8gYmFuY28pXHJcbiAgICAgIGlmIChyZXN1bHQuY29kaWdvKSB7XHJcbiAgICAgICAgaW5kZXggPSB0aGlzLmVtYWlscy5maW5kSW5kZXgoZSA9PiBlLmNvZGlnbyA9PT0gcmVzdWx0LmNvZGlnbyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIDIuIFNlIG7Do28gYWNob3UgcGVsbyAnY29kaWdvJywgdGVudGEgcGVsYSAnb3JkZW0nLlxyXG4gICAgICBpZiAoaW5kZXggPT09IC0xICYmIHJlc3VsdC5vcmRlbSkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5lbWFpbHMuZmluZEluZGV4KGUgPT4gZS5vcmRlbSA9PT0gcmVzdWx0Lm9yZGVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAvLyBFTkNPTlRST1UgKHBlbG8gJ2NvZGlnbycgb3UgcGVsYSAnb3JkZW0nKTogQXR1YWxpemEgbyBpdGVtIGV4aXN0ZW50ZVxyXG4gICAgICAgIHRoaXMuZW1haWxzW2luZGV4XSA9IHJlc3VsdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBOw4NPIEVOQ09OVFJPVTogw4kgdW0gaXRlbSAxMDAlIG5vdm8gKG7Do28gdW1hIGVkacOnw6NvKVxyXG4gICAgICAgIHRoaXMuZW1haWxzLnB1c2gocmVzdWx0KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmUtb3JkZW5hIGEgbGlzdGEgcGVsYSAnb3JkZW0nIGUgZW1pdGUgdW1hICpub3ZhIGPDs3BpYSpcclxuICAgICAgdGhpcy5lbWFpbHMuc29ydCgoYSwgYikgPT4gKGEub3JkZW0gPz8gMCkgLSAoYi5vcmRlbSA/PyAwKSk7XHJcbiAgICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pOyAvLyA8LS0gRW1pdGUgbm92YSBjw7NwaWFcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZXJMaW5oYShldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lbWFpbHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKClcclxuICB9XHJcblxyXG5wcml2YXRlIHNvcnRBbmRBc3NpZ25PcmRlcigpOiB2b2lkIHtcclxuICAgIC8vIDEuIENyaWUgdW1hIGPDs3BpYSBkYSBsaXN0YVxyXG4gICAgY29uc3QgdGVtcEVtYWlscyA9IFsuLi50aGlzLmVtYWlsc107IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG5cclxuICAgIC8vIDIuIE1hcGVpZSBhcyBvcmRlbnMgZXhpc3RlbnRlc1xyXG4gICAgY29uc3Qgb3JkZXJNYXAgPSBuZXcgTWFwPG51bWJlciwgVW5iUGVzc29hRW1haWxbXT4oKTtcclxuICAgIGNvbnN0IGVtYWlsc1dpdGhvdXRPcmRlcjogVW5iUGVzc29hRW1haWxbXSA9IFtdO1xyXG5cclxuICAgIHRlbXBFbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7XHJcbiAgICAgIC8vIENPUlJFw4fDg08gQVFVSTogJ29yZGVtJyBlbSB2ZXogZGUgJ29yZGVtRW1haWwnXHJcbiAgICAgIGlmIChlbWFpbC5vcmRlbSAhPT0gdW5kZWZpbmVkICYmIGVtYWlsLm9yZGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFvcmRlck1hcC5oYXMoZW1haWwub3JkZW0pKSB7XHJcbiAgICAgICAgICBvcmRlck1hcC5zZXQoZW1haWwub3JkZW0sIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3JkZXJNYXAuZ2V0KGVtYWlsLm9yZGVtKT8ucHVzaChlbWFpbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW1haWxzV2l0aG91dE9yZGVyLnB1c2goZW1haWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAzLiAuLi4gKEZ1bsOnw7VlcyAnZmluYWxVc2VkT3JkZXJzJywgJ25leHRBdmFpbGFibGVPcmRlcicgY29udGludWFtIGlndWFpcykgLi4uXHJcbiAgICBjb25zdCBmaW5hbFVzZWRPcmRlcnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuICAgIGxldCBuZXh0QXZhaWxhYmxlT3JkZXIgPSAwO1xyXG4gICAgY29uc3QgZ2V0TmV4dEF2YWlsYWJsZU9yZGVyID0gKCkgPT4ge1xyXG4gICAgICB3aGlsZSAoZmluYWxVc2VkT3JkZXJzLmhhcyhuZXh0QXZhaWxhYmxlT3JkZXIpKSB7XHJcbiAgICAgICAgbmV4dEF2YWlsYWJsZU9yZGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5leHRBdmFpbGFibGVPcmRlcisrO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyA0LiBQcm9jZXNzZSBlbWFpbHMgY29tIG9yZGVtIGRlZmluaWRhOlxyXG4gICAgdGhpcy5lbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG4gICAgICAvLyBDT1JSRcOHw4NPIEFRVUk6ICdvcmRlbScgZW0gdmV6IGRlICdvcmRlbUVtYWlsJ1xyXG4gICAgICBpZiAoZW1haWwub3JkZW0gIT09IHVuZGVmaW5lZCAmJiBlbWFpbC5vcmRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmICghZmluYWxVc2VkT3JkZXJzLmhhcyhlbWFpbC5vcmRlbSkpIHtcclxuICAgICAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBEdXBsaWNhdGEsIGF0cmlidWEgdW1hIG5vdmFcclxuICAgICAgICAgIGVtYWlsLm9yZGVtID0gZ2V0TmV4dEF2YWlsYWJsZU9yZGVyKCk7XHJcbiAgICAgICAgICBmaW5hbFVzZWRPcmRlcnMuYWRkKGVtYWlsLm9yZGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDUuIEF0cmlidWEgb3JkZW5zIHBhcmEgZW1haWxzIHF1ZSBuw6NvIHRpbmhhbSBvcmRlbVxyXG4gICAgZW1haWxzV2l0aG91dE9yZGVyLmZvckVhY2goZW1haWwgPT4geyAvLyA8LS0gTk9NRSBDT1JSSUdJRE9cclxuICAgICAgZW1haWwub3JkZW0gPSBnZXROZXh0QXZhaWxhYmxlT3JkZXIoKTsgXHJcbiAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pOyBcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDYuIEZpbmFsbWVudGUsIG9yZGVuZSBhIGxpc3RhXHJcbiAgICB0aGlzLmVtYWlscy5zb3J0KChhLCBiKSA9PiAoYS5vcmRlbSA/PyAwKSAtIChiLm9yZGVtID8/IDApKTsgLy8gPC0tICdvcmRlbSdcclxuICAgIH1cclxuICB9IiwiPGRpdiBjbGFzcz1cIm1lcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj5cclxuICAgICAgICAgICAgICAgIHt7IGVtYWlscz8ubGVuZ3RoID09PSAxID8gJ0VtYWlsIENhZGFzdHJhZG8nIDogJ0UtbWFpbHMgQ2FkYXN0cmFkb3MnIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj4oe3sgZW1haWxzPy5sZW5ndGggfHwgMCB9fSk8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJOb3ZvIEVtYWlsXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuRm9ybURpYWxvZyhudWxsKVwiPlxyXG4gICAgICAgICAgICBDYWRhc3RyYXIgTm92byBFbWFpbFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFeGliZSBhIHRhYmVsYSBkZSBkZXNwZXNhcyBzb21lbnRlIHNlIGhvdXZlciBkZXNwZXNhcyAtLT5cclxuICAgIDx0YWJsZSBjbGFzcz1cIm15LXRhYmxlXCIgKm5nSWY9XCJlbWFpbHMgJiYgZW1haWxzLmxlbmd0aCA+IDBcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVyTGluaGEoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlM2UzY2M7XCI+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA1JTsgdGV4dC1hbGlnbjogY2VudGVyO1wiPk9yZGVtPC90aD5cclxuICAgICAgICAgICAgPHRoPkUtbWFpbDwvdGg+XHJcbiAgICAgICAgICAgIDx0aD5UaXBvPC90aD5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDElOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+QcOnw7VlczwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB2YWxvciBvZiBlbWFpbHM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cIm15LXRyXCIgY2RrRHJhZz5cclxuXHJcbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWNlbGxcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaSArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgIDx0ZD57eyB2YWxvci5lbWFpbCB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+e3sgdmFsb3IudGlwbz8udG9VcHBlckNhc2UoKSB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlNhbHZhclwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJlZGl0YXIodmFsb3IpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkRlbGV0YXJcIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiZXhjbHVpcih2YWxvcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+Il19
|