valtech-components 2.0.585 → 2.0.587
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/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +20 -2
- package/esm2022/lib/components/organisms/toolbar/types.mjs +1 -1
- package/esm2022/lib/components/templates/page-content/page-content.component.mjs +15 -2
- package/esm2022/lib/components/templates/page-content/types.mjs +1 -1
- package/esm2022/lib/services/auth/auth.service.mjs +40 -1
- package/esm2022/lib/services/auth/types.mjs +1 -1
- package/fesm2022/valtech-components.mjs +73 -4
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/toolbar/toolbar.component.d.ts +26 -0
- package/lib/components/organisms/toolbar/types.d.ts +4 -0
- package/lib/components/templates/page-content/page-content.component.d.ts +14 -2
- package/lib/components/templates/page-content/types.d.ts +7 -0
- package/lib/services/auth/auth.service.d.ts +23 -1
- package/lib/services/auth/types.d.ts +14 -0
- package/package.json +1 -1
|
@@ -714,7 +714,7 @@ export class DataTableComponent {
|
|
|
714
714
|
</div>
|
|
715
715
|
}
|
|
716
716
|
</div>
|
|
717
|
-
`, isInline: true, styles: [":host{display:block}.data-table-container{--dt-elevation-none: none;--dt-elevation-low: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--dt-elevation-medium: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--dt-elevation-high: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--dt-primary: var(--ion-color-primary, #4f46e5);--dt-primary-rgb: var(--ion-color-primary-rgb, 79, 70, 229);--dt-surface: var(--ion-background-color, #ffffff);--dt-surface-variant: #f8fafc;--dt-border: #e2e8f0;--dt-text-primary: #1e293b;--dt-text-secondary: #64748b;--dt-text-muted: #94a3b8;--dt-gradient-start: #6366f1;--dt-gradient-end: #8b5cf6;--dt-border-radius: 16px;--dt-cell-padding-x: 16px;--dt-cell-padding-y: 14px;--dt-header-padding-y: 12px}.data-table-container{position:relative;background:var(--dt-surface);border-radius:var(--dt-border-radius);box-shadow:var(--dt-elevation-medium);border:1px solid var(--dt-border);overflow:hidden}.data-table-container.elevation-none{box-shadow:var(--dt-elevation-none)}.data-table-container.elevation-low{box-shadow:var(--dt-elevation-low)}.data-table-container.elevation-high{box-shadow:var(--dt-elevation-high)}.data-table-container.header-gradient:before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--dt-gradient-start),var(--dt-gradient-end));border-radius:var(--dt-border-radius) var(--dt-border-radius) 0 0;z-index:2}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.loading-overlay ion-spinner{--color: var(--dt-primary);width:32px;height:32px}.loading-message{font-size:14px;font-weight:500;color:var(--dt-text-secondary)}.table-wrapper{overflow-x:auto;max-height:var(--max-height)}.table-wrapper.is-loading{opacity:.5;pointer-events:none}.table-wrapper::-webkit-scrollbar{height:8px;width:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--dt-surface-variant);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--dt-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--dt-text-muted)}table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}th,td{padding:var(--dt-cell-padding-y) var(--dt-cell-padding-x);text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}thead{background:var(--dt-surface-variant)}thead th{font-weight:600;font-size:13px;color:var(--dt-text-secondary);white-space:nowrap;position:relative;border-bottom:1px solid var(--dt-border);padding:var(--dt-header-padding-y) var(--dt-cell-padding-x);transition:all .2s ease}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{background:#00000008;color:var(--dt-text-primary)}thead th.sorted{color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04)}.header-content{display:flex;align-items:center;gap:8px}.sort-icons{display:flex;flex-direction:column;gap:0;opacity:.4;transition:opacity .2s ease}.sortable:hover .sort-icons{opacity:.7}.sorted .sort-icons{opacity:1}.sort-icons ion-icon{font-size:12px;color:var(--dt-text-muted);margin:-3px 0;transition:all .2s ease}.sort-icons ion-icon.active{color:var(--dt-primary);transform:scale(1.2)}tbody tr{border-bottom:1px solid var(--dt-border);transition:background-color .2s ease;position:relative}tbody tr:last-child{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.selected{background:rgba(var(--dt-primary-rgb),.06)}tbody tr.selected:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--dt-primary)}tbody td{color:var(--dt-text-primary);font-size:14px}.row-highlight-border tbody tr.selected{background:transparent}.row-highlight-border tbody tr.selected:before{width:4px}.row-highlight-both tbody tr.selected:before{width:4px}.hoverable tbody tr:hover:not(.empty-row){background:var(--dt-surface-variant)}.hoverable tbody tr:hover:not(.empty-row).selected{background:rgba(var(--dt-primary-rgb),.08)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.selection-cell{width:52px;min-width:52px;max-width:52px;text-align:center;padding:8px 12px;box-sizing:border-box}.selection-cell ion-checkbox{--size: 20px;--border-radius: 50%;--border-width: 2px;--border-color: var(--dt-border);--border-color-checked: var(--dt-primary);--background: transparent;--background-checked: var(--dt-primary);--checkmark-color: white;--checkmark-width: 2px;margin:0;display:block}.selection-cell ion-checkbox::part(container){border-radius:50%}.selection-cell input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--dt-primary);margin:0;display:block}.checkbox-circular .selection-cell ion-checkbox{--border-radius: 50%}.checkbox-circular .selection-cell ion-checkbox::part(container){border-radius:50%}.row-number-cell{width:60px;text-align:center;color:var(--dt-text-muted);font-size:12px;font-weight:500}.actions-cell{text-align:center;white-space:nowrap}.sticky-start{position:sticky;left:0;background:inherit;z-index:1;box-shadow:2px 0 4px #0000000d}.sticky-end{position:sticky;right:0;background:inherit;z-index:1;box-shadow:-2px 0 4px #0000000d}.empty-row td{padding:64px 16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dt-text-secondary)}.empty-icon{font-size:56px;margin-bottom:20px;opacity:.4;color:var(--dt-text-muted)}.empty-title{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--dt-text-primary)}.empty-description{font-size:14px;margin:0;max-width:320px;color:var(--dt-text-secondary);line-height:1.5}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap;gap:16px}.pagination-info{display:flex;align-items:center;gap:20px;font-size:14px;color:var(--dt-text-secondary)}.pagination-info span{font-weight:500}.page-size-select{--padding-start: 12px;--padding-end: 12px;font-size:14px;min-width:140px;--background: var(--dt-surface-variant);--border-radius: 8px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls ion-button{--padding-start: 10px;--padding-end: 10px;--border-radius: 8px;--background: var(--dt-surface-variant);--background-hover: var(--dt-border);--color: var(--dt-text-secondary);--color-hover: var(--dt-text-primary);margin:0;height:36px;min-width:36px}.pagination-controls ion-button:disabled{opacity:.4}.pagination-controls ion-button ion-icon{font-size:16px}.page-indicator{padding:0 16px;font-size:14px;color:var(--dt-text-primary);font-weight:600;background:var(--dt-surface-variant);border-radius:8px;height:36px;display:flex;align-items:center;min-width:80px;justify-content:center}.bordered th,.bordered td{border:1px solid var(--dt-border)}.striped tbody tr:nth-child(2n){background:var(--dt-surface-variant)}.striped tbody tr:nth-child(2n).selected{background:rgba(var(--dt-primary-rgb),.08)}.sticky-header .table-wrapper{overflow-y:auto}.sticky-header thead{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 var(--dt-border)}.size-small{--dt-cell-padding-x: 12px;--dt-cell-padding-y: 10px;--dt-header-padding-y: 10px}.size-small th,.size-small td{font-size:13px}.size-small thead th{font-size:12px}.size-small .selection-cell{width:44px;padding:6px 8px}.size-small .selection-cell ion-checkbox{--size: 18px}.size-small .row-number-cell{width:48px;font-size:11px}.size-small .pagination-container{padding:12px 16px}.size-small .pagination-info,.size-small .page-indicator{font-size:13px}.size-small .pagination-controls ion-button{height:32px;min-width:32px}.size-small .page-indicator{height:32px;min-width:70px}.size-large{--dt-cell-padding-x: 20px;--dt-cell-padding-y: 18px;--dt-header-padding-y: 16px}.size-large th,.size-large td{font-size:15px}.size-large thead th{font-size:14px}.size-large .selection-cell{width:60px;padding:12px 16px}.size-large .selection-cell ion-checkbox{--size: 24px}.size-large .row-number-cell{width:72px;font-size:14px}.size-large .pagination-container{padding:20px 24px}.size-large .pagination-info,.size-large .page-indicator{font-size:15px}.size-large .pagination-controls ion-button{height:40px;min-width:40px}.size-large .page-indicator{height:40px;min-width:90px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.data-table-container{--dt-border-radius: 12px}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info{justify-content:space-between}.pagination-controls{justify-content:center}}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap}.table-toolbar:empty{display:none}@media (max-width: 576px){.table-toolbar{flex-direction:column;align-items:stretch;padding:16px}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.status-badge--success{background:#dcfce7;color:#15803d}.status-badge--warning{background:#fef3c7;color:#b45309}.status-badge--danger{background:#fee2e2;color:#dc2626}.status-badge--primary{background:#e0e7ff;color:#4338ca}.status-badge--secondary{background:#f1f5f9;color:#475569}.status-badge--medium{background:#f1f5f9;color:#64748b}.status-badge--tertiary{background:#f3e8ff;color:#7c3aed}.status-badge--filled.status-badge--success{background:#22c55e;color:#fff}.status-badge--filled.status-badge--warning{background:#f59e0b;color:#fff}.status-badge--filled.status-badge--danger{background:#ef4444;color:#fff}.status-badge--filled.status-badge--primary{background:var(--dt-primary);color:#fff}.status-badge--outlined{background:transparent;border:1.5px solid currentColor}.status-badge--outlined.status-badge--success{color:#16a34a}.status-badge--outlined.status-badge--warning{color:#d97706}.status-badge--outlined.status-badge--danger{color:#dc2626}.status-badge--outlined.status-badge--primary{color:var(--dt-primary)}.action-buttons{display:flex;gap:6px;justify-content:center}.action-buttons ion-button{--padding-start: 8px;--padding-end: 8px;--border-radius: 8px;margin:0}.action-buttons ion-button ion-icon{font-size:18px}.card-list{display:none;padding:12px;gap:12px}.data-card{background:var(--dt-surface);border:1px solid var(--dt-border);border-radius:12px;padding:16px;margin-bottom:12px;transition:all .2s ease}.data-card.selected{border-color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04);box-shadow:0 0 0 1px var(--dt-primary)}.data-card.clickable{cursor:pointer}.data-card.clickable:hover{box-shadow:var(--dt-elevation-medium);transform:translateY(-2px)}.data-card.clickable:active{transform:translateY(0)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--dt-border)}.card-selection{display:flex;align-items:center}.card-body{display:flex;flex-direction:column;gap:12px}.card-field{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-field__label{font-size:12px;font-weight:600;color:var(--dt-text-muted);flex-shrink:0}.card-field__value{font-size:14px;color:var(--dt-text-primary);text-align:right;word-break:break-word;font-weight:500}.card-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--dt-border)}@media (max-width: 768px){.responsive-cards .table-wrapper{display:none}.responsive-cards .card-list{display:block}}@media (prefers-color-scheme: dark){.data-table-container{--dt-surface: #1e293b;--dt-surface-variant: #334155;--dt-border: #475569;--dt-text-primary: #f1f5f9;--dt-text-secondary: #94a3b8;--dt-text-muted: #64748b}.loading-overlay{background:#1e293be6}.status-badge--success{background:#22c55e33;color:#4ade80}.status-badge--warning{background:#f59e0b33;color:#fbbf24}.status-badge--danger{background:#ef444433;color:#f87171}.status-badge--primary{background:#6366f133;color:#a5b4fc}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
717
|
+
`, isInline: true, styles: [":host{display:block}.data-table-container{--dt-elevation-none: none;--dt-elevation-low: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--dt-elevation-medium: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--dt-elevation-high: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--dt-primary: var(--ion-color-primary, #4f46e5);--dt-primary-rgb: var(--ion-color-primary-rgb, 79, 70, 229);--dt-surface: var(--ion-background-color, #ffffff);--dt-surface-variant: #f8fafc;--dt-border: #e2e8f0;--dt-text-primary: #1e293b;--dt-text-secondary: #64748b;--dt-text-muted: #94a3b8;--dt-gradient-start: #6366f1;--dt-gradient-end: #8b5cf6;--dt-border-radius: 16px;--dt-cell-padding-x: 16px;--dt-cell-padding-y: 14px;--dt-header-padding-y: 12px}.data-table-container{position:relative;background:var(--dt-surface);border-radius:var(--dt-border-radius);box-shadow:var(--dt-elevation-medium);border:1px solid var(--dt-border);overflow:hidden}.data-table-container.elevation-none{box-shadow:var(--dt-elevation-none)}.data-table-container.elevation-low{box-shadow:var(--dt-elevation-low)}.data-table-container.elevation-high{box-shadow:var(--dt-elevation-high)}.data-table-container.header-gradient:before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--dt-gradient-start),var(--dt-gradient-end));border-radius:var(--dt-border-radius) var(--dt-border-radius) 0 0;z-index:2}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.loading-overlay ion-spinner{--color: var(--dt-primary);width:32px;height:32px}.loading-message{font-size:14px;font-weight:500;color:var(--dt-text-secondary)}.table-wrapper{overflow-x:auto;max-height:var(--max-height)}.table-wrapper.is-loading{opacity:.5;pointer-events:none}.table-wrapper::-webkit-scrollbar{height:8px;width:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--dt-surface-variant);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--dt-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--dt-text-muted)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:var(--dt-cell-padding-y) var(--dt-cell-padding-x);text-align:left;vertical-align:middle}thead{background:var(--dt-surface-variant)}thead th{font-weight:600;font-size:13px;color:var(--dt-text-secondary);white-space:nowrap;position:relative;border-bottom:1px solid var(--dt-border);padding:var(--dt-header-padding-y) var(--dt-cell-padding-x);transition:all .2s ease}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{background:#00000008;color:var(--dt-text-primary)}thead th.sorted{color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04)}.header-content{display:flex;align-items:center;gap:8px}.sort-icons{display:flex;flex-direction:column;gap:0;opacity:.4;transition:opacity .2s ease}.sortable:hover .sort-icons{opacity:.7}.sorted .sort-icons{opacity:1}.sort-icons ion-icon{font-size:12px;color:var(--dt-text-muted);margin:-3px 0;transition:all .2s ease}.sort-icons ion-icon.active{color:var(--dt-primary);transform:scale(1.2)}tbody tr{border-bottom:1px solid var(--dt-border)}tbody tr:last-child{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.selected{background:rgba(var(--dt-primary-rgb),.06)}tbody td{color:var(--dt-text-primary);font-size:14px}.hoverable tbody tr:hover:not(.empty-row){background:var(--dt-surface-variant)}.hoverable tbody tr:hover:not(.empty-row).selected{background:rgba(var(--dt-primary-rgb),.08)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.selection-cell{width:52px;min-width:52px;max-width:52px;text-align:center;padding:8px 12px;box-sizing:border-box}.selection-cell ion-checkbox{--size: 20px;--border-radius: 50%;--border-width: 2px;--border-color: var(--dt-border);--border-color-checked: var(--dt-primary);--background: transparent;--background-checked: var(--dt-primary);--checkmark-color: white;--checkmark-width: 2px;margin:0;display:block}.selection-cell ion-checkbox::part(container){border-radius:50%}.selection-cell input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--dt-primary);margin:0;display:block}.checkbox-circular .selection-cell ion-checkbox{--border-radius: 50%}.checkbox-circular .selection-cell ion-checkbox::part(container){border-radius:50%}.row-number-cell{width:60px;text-align:center;color:var(--dt-text-muted);font-size:12px;font-weight:500}.actions-cell{text-align:center;white-space:nowrap}.sticky-start{position:sticky;left:0;background:inherit;z-index:1;box-shadow:2px 0 4px #0000000d}.sticky-end{position:sticky;right:0;background:inherit;z-index:1;box-shadow:-2px 0 4px #0000000d}.empty-row td{padding:64px 16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dt-text-secondary)}.empty-icon{font-size:56px;margin-bottom:20px;opacity:.4;color:var(--dt-text-muted)}.empty-title{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--dt-text-primary)}.empty-description{font-size:14px;margin:0;max-width:320px;color:var(--dt-text-secondary);line-height:1.5}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap;gap:16px}.pagination-info{display:flex;align-items:center;gap:20px;font-size:14px;color:var(--dt-text-secondary)}.pagination-info span{font-weight:500}.page-size-select{--padding-start: 12px;--padding-end: 12px;font-size:14px;min-width:140px;--background: var(--dt-surface-variant);--border-radius: 8px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls ion-button{--padding-start: 10px;--padding-end: 10px;--border-radius: 8px;--background: var(--dt-surface-variant);--background-hover: var(--dt-border);--color: var(--dt-text-secondary);--color-hover: var(--dt-text-primary);margin:0;height:36px;min-width:36px}.pagination-controls ion-button:disabled{opacity:.4}.pagination-controls ion-button ion-icon{font-size:16px}.page-indicator{padding:0 16px;font-size:14px;color:var(--dt-text-primary);font-weight:600;background:var(--dt-surface-variant);border-radius:8px;height:36px;display:flex;align-items:center;min-width:80px;justify-content:center}.bordered th,.bordered td{border:1px solid var(--dt-border)}.striped tbody tr:nth-child(2n){background:var(--dt-surface-variant)}.striped tbody tr:nth-child(2n).selected{background:rgba(var(--dt-primary-rgb),.08)}.sticky-header .table-wrapper{overflow-y:auto}.sticky-header thead{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 var(--dt-border)}.size-small{--dt-cell-padding-x: 12px;--dt-cell-padding-y: 10px;--dt-header-padding-y: 10px}.size-small th,.size-small td{font-size:13px}.size-small thead th{font-size:12px}.size-small .selection-cell{width:44px;padding:6px 8px}.size-small .selection-cell ion-checkbox{--size: 18px}.size-small .row-number-cell{width:48px;font-size:11px}.size-small .pagination-container{padding:12px 16px}.size-small .pagination-info,.size-small .page-indicator{font-size:13px}.size-small .pagination-controls ion-button{height:32px;min-width:32px}.size-small .page-indicator{height:32px;min-width:70px}.size-large{--dt-cell-padding-x: 20px;--dt-cell-padding-y: 18px;--dt-header-padding-y: 16px}.size-large th,.size-large td{font-size:15px}.size-large thead th{font-size:14px}.size-large .selection-cell{width:60px;padding:12px 16px}.size-large .selection-cell ion-checkbox{--size: 24px}.size-large .row-number-cell{width:72px;font-size:14px}.size-large .pagination-container{padding:20px 24px}.size-large .pagination-info,.size-large .page-indicator{font-size:15px}.size-large .pagination-controls ion-button{height:40px;min-width:40px}.size-large .page-indicator{height:40px;min-width:90px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.data-table-container{--dt-border-radius: 12px}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info{justify-content:space-between}.pagination-controls{justify-content:center}}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap}.table-toolbar:empty{display:none}@media (max-width: 576px){.table-toolbar{flex-direction:column;align-items:stretch;padding:16px}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.status-badge--success{background:#dcfce7;color:#15803d}.status-badge--warning{background:#fef3c7;color:#b45309}.status-badge--danger{background:#fee2e2;color:#dc2626}.status-badge--primary{background:#e0e7ff;color:#4338ca}.status-badge--secondary{background:#f1f5f9;color:#475569}.status-badge--medium{background:#f1f5f9;color:#64748b}.status-badge--tertiary{background:#f3e8ff;color:#7c3aed}.status-badge--filled.status-badge--success{background:#22c55e;color:#fff}.status-badge--filled.status-badge--warning{background:#f59e0b;color:#fff}.status-badge--filled.status-badge--danger{background:#ef4444;color:#fff}.status-badge--filled.status-badge--primary{background:var(--dt-primary);color:#fff}.status-badge--outlined{background:transparent;border:1.5px solid currentColor}.status-badge--outlined.status-badge--success{color:#16a34a}.status-badge--outlined.status-badge--warning{color:#d97706}.status-badge--outlined.status-badge--danger{color:#dc2626}.status-badge--outlined.status-badge--primary{color:var(--dt-primary)}.action-buttons{display:flex;gap:6px;justify-content:center}.action-buttons ion-button{--padding-start: 8px;--padding-end: 8px;--border-radius: 8px;margin:0}.action-buttons ion-button ion-icon{font-size:18px}.card-list{display:none;padding:12px;gap:12px}.data-card{background:var(--dt-surface);border:1px solid var(--dt-border);border-radius:12px;padding:16px;margin-bottom:12px;transition:all .2s ease}.data-card.selected{border-color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04);box-shadow:0 0 0 1px var(--dt-primary)}.data-card.clickable{cursor:pointer}.data-card.clickable:hover{box-shadow:var(--dt-elevation-medium);transform:translateY(-2px)}.data-card.clickable:active{transform:translateY(0)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--dt-border)}.card-selection{display:flex;align-items:center}.card-body{display:flex;flex-direction:column;gap:12px}.card-field{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-field__label{font-size:12px;font-weight:600;color:var(--dt-text-muted);flex-shrink:0}.card-field__value{font-size:14px;color:var(--dt-text-primary);text-align:right;word-break:break-word;font-weight:500}.card-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--dt-border)}@media (max-width: 768px){.responsive-cards .table-wrapper{display:none}.responsive-cards .card-list{display:block}}@media (prefers-color-scheme: dark){.data-table-container{--dt-surface: #1e293b;--dt-surface-variant: #334155;--dt-border: #475569;--dt-text-primary: #f1f5f9;--dt-text-secondary: #94a3b8;--dt-text-muted: #64748b}.loading-overlay{background:#1e293be6}.status-badge--success{background:#22c55e33;color:#4ade80}.status-badge--warning{background:#f59e0b33;color:#fbbf24}.status-badge--danger{background:#ef444433;color:#f87171}.status-badge--primary{background:#6366f133;color:#a5b4fc}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
718
718
|
}
|
|
719
719
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataTableComponent, decorators: [{
|
|
720
720
|
type: Component,
|
|
@@ -1066,7 +1066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1066
1066
|
</div>
|
|
1067
1067
|
}
|
|
1068
1068
|
</div>
|
|
1069
|
-
`, styles: [":host{display:block}.data-table-container{--dt-elevation-none: none;--dt-elevation-low: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--dt-elevation-medium: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--dt-elevation-high: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--dt-primary: var(--ion-color-primary, #4f46e5);--dt-primary-rgb: var(--ion-color-primary-rgb, 79, 70, 229);--dt-surface: var(--ion-background-color, #ffffff);--dt-surface-variant: #f8fafc;--dt-border: #e2e8f0;--dt-text-primary: #1e293b;--dt-text-secondary: #64748b;--dt-text-muted: #94a3b8;--dt-gradient-start: #6366f1;--dt-gradient-end: #8b5cf6;--dt-border-radius: 16px;--dt-cell-padding-x: 16px;--dt-cell-padding-y: 14px;--dt-header-padding-y: 12px}.data-table-container{position:relative;background:var(--dt-surface);border-radius:var(--dt-border-radius);box-shadow:var(--dt-elevation-medium);border:1px solid var(--dt-border);overflow:hidden}.data-table-container.elevation-none{box-shadow:var(--dt-elevation-none)}.data-table-container.elevation-low{box-shadow:var(--dt-elevation-low)}.data-table-container.elevation-high{box-shadow:var(--dt-elevation-high)}.data-table-container.header-gradient:before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--dt-gradient-start),var(--dt-gradient-end));border-radius:var(--dt-border-radius) var(--dt-border-radius) 0 0;z-index:2}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.loading-overlay ion-spinner{--color: var(--dt-primary);width:32px;height:32px}.loading-message{font-size:14px;font-weight:500;color:var(--dt-text-secondary)}.table-wrapper{overflow-x:auto;max-height:var(--max-height)}.table-wrapper.is-loading{opacity:.5;pointer-events:none}.table-wrapper::-webkit-scrollbar{height:8px;width:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--dt-surface-variant);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--dt-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--dt-text-muted)}table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}th,td{padding:var(--dt-cell-padding-y) var(--dt-cell-padding-x);text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}thead{background:var(--dt-surface-variant)}thead th{font-weight:600;font-size:13px;color:var(--dt-text-secondary);white-space:nowrap;position:relative;border-bottom:1px solid var(--dt-border);padding:var(--dt-header-padding-y) var(--dt-cell-padding-x);transition:all .2s ease}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{background:#00000008;color:var(--dt-text-primary)}thead th.sorted{color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04)}.header-content{display:flex;align-items:center;gap:8px}.sort-icons{display:flex;flex-direction:column;gap:0;opacity:.4;transition:opacity .2s ease}.sortable:hover .sort-icons{opacity:.7}.sorted .sort-icons{opacity:1}.sort-icons ion-icon{font-size:12px;color:var(--dt-text-muted);margin:-3px 0;transition:all .2s ease}.sort-icons ion-icon.active{color:var(--dt-primary);transform:scale(1.2)}tbody tr{border-bottom:1px solid var(--dt-border);transition:background-color .2s ease;position:relative}tbody tr:last-child{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.selected{background:rgba(var(--dt-primary-rgb),.06)}tbody tr.selected:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--dt-primary)}tbody td{color:var(--dt-text-primary);font-size:14px}.row-highlight-border tbody tr.selected{background:transparent}.row-highlight-border tbody tr.selected:before{width:4px}.row-highlight-both tbody tr.selected:before{width:4px}.hoverable tbody tr:hover:not(.empty-row){background:var(--dt-surface-variant)}.hoverable tbody tr:hover:not(.empty-row).selected{background:rgba(var(--dt-primary-rgb),.08)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.selection-cell{width:52px;min-width:52px;max-width:52px;text-align:center;padding:8px 12px;box-sizing:border-box}.selection-cell ion-checkbox{--size: 20px;--border-radius: 50%;--border-width: 2px;--border-color: var(--dt-border);--border-color-checked: var(--dt-primary);--background: transparent;--background-checked: var(--dt-primary);--checkmark-color: white;--checkmark-width: 2px;margin:0;display:block}.selection-cell ion-checkbox::part(container){border-radius:50%}.selection-cell input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--dt-primary);margin:0;display:block}.checkbox-circular .selection-cell ion-checkbox{--border-radius: 50%}.checkbox-circular .selection-cell ion-checkbox::part(container){border-radius:50%}.row-number-cell{width:60px;text-align:center;color:var(--dt-text-muted);font-size:12px;font-weight:500}.actions-cell{text-align:center;white-space:nowrap}.sticky-start{position:sticky;left:0;background:inherit;z-index:1;box-shadow:2px 0 4px #0000000d}.sticky-end{position:sticky;right:0;background:inherit;z-index:1;box-shadow:-2px 0 4px #0000000d}.empty-row td{padding:64px 16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dt-text-secondary)}.empty-icon{font-size:56px;margin-bottom:20px;opacity:.4;color:var(--dt-text-muted)}.empty-title{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--dt-text-primary)}.empty-description{font-size:14px;margin:0;max-width:320px;color:var(--dt-text-secondary);line-height:1.5}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap;gap:16px}.pagination-info{display:flex;align-items:center;gap:20px;font-size:14px;color:var(--dt-text-secondary)}.pagination-info span{font-weight:500}.page-size-select{--padding-start: 12px;--padding-end: 12px;font-size:14px;min-width:140px;--background: var(--dt-surface-variant);--border-radius: 8px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls ion-button{--padding-start: 10px;--padding-end: 10px;--border-radius: 8px;--background: var(--dt-surface-variant);--background-hover: var(--dt-border);--color: var(--dt-text-secondary);--color-hover: var(--dt-text-primary);margin:0;height:36px;min-width:36px}.pagination-controls ion-button:disabled{opacity:.4}.pagination-controls ion-button ion-icon{font-size:16px}.page-indicator{padding:0 16px;font-size:14px;color:var(--dt-text-primary);font-weight:600;background:var(--dt-surface-variant);border-radius:8px;height:36px;display:flex;align-items:center;min-width:80px;justify-content:center}.bordered th,.bordered td{border:1px solid var(--dt-border)}.striped tbody tr:nth-child(2n){background:var(--dt-surface-variant)}.striped tbody tr:nth-child(2n).selected{background:rgba(var(--dt-primary-rgb),.08)}.sticky-header .table-wrapper{overflow-y:auto}.sticky-header thead{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 var(--dt-border)}.size-small{--dt-cell-padding-x: 12px;--dt-cell-padding-y: 10px;--dt-header-padding-y: 10px}.size-small th,.size-small td{font-size:13px}.size-small thead th{font-size:12px}.size-small .selection-cell{width:44px;padding:6px 8px}.size-small .selection-cell ion-checkbox{--size: 18px}.size-small .row-number-cell{width:48px;font-size:11px}.size-small .pagination-container{padding:12px 16px}.size-small .pagination-info,.size-small .page-indicator{font-size:13px}.size-small .pagination-controls ion-button{height:32px;min-width:32px}.size-small .page-indicator{height:32px;min-width:70px}.size-large{--dt-cell-padding-x: 20px;--dt-cell-padding-y: 18px;--dt-header-padding-y: 16px}.size-large th,.size-large td{font-size:15px}.size-large thead th{font-size:14px}.size-large .selection-cell{width:60px;padding:12px 16px}.size-large .selection-cell ion-checkbox{--size: 24px}.size-large .row-number-cell{width:72px;font-size:14px}.size-large .pagination-container{padding:20px 24px}.size-large .pagination-info,.size-large .page-indicator{font-size:15px}.size-large .pagination-controls ion-button{height:40px;min-width:40px}.size-large .page-indicator{height:40px;min-width:90px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.data-table-container{--dt-border-radius: 12px}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info{justify-content:space-between}.pagination-controls{justify-content:center}}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap}.table-toolbar:empty{display:none}@media (max-width: 576px){.table-toolbar{flex-direction:column;align-items:stretch;padding:16px}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.status-badge--success{background:#dcfce7;color:#15803d}.status-badge--warning{background:#fef3c7;color:#b45309}.status-badge--danger{background:#fee2e2;color:#dc2626}.status-badge--primary{background:#e0e7ff;color:#4338ca}.status-badge--secondary{background:#f1f5f9;color:#475569}.status-badge--medium{background:#f1f5f9;color:#64748b}.status-badge--tertiary{background:#f3e8ff;color:#7c3aed}.status-badge--filled.status-badge--success{background:#22c55e;color:#fff}.status-badge--filled.status-badge--warning{background:#f59e0b;color:#fff}.status-badge--filled.status-badge--danger{background:#ef4444;color:#fff}.status-badge--filled.status-badge--primary{background:var(--dt-primary);color:#fff}.status-badge--outlined{background:transparent;border:1.5px solid currentColor}.status-badge--outlined.status-badge--success{color:#16a34a}.status-badge--outlined.status-badge--warning{color:#d97706}.status-badge--outlined.status-badge--danger{color:#dc2626}.status-badge--outlined.status-badge--primary{color:var(--dt-primary)}.action-buttons{display:flex;gap:6px;justify-content:center}.action-buttons ion-button{--padding-start: 8px;--padding-end: 8px;--border-radius: 8px;margin:0}.action-buttons ion-button ion-icon{font-size:18px}.card-list{display:none;padding:12px;gap:12px}.data-card{background:var(--dt-surface);border:1px solid var(--dt-border);border-radius:12px;padding:16px;margin-bottom:12px;transition:all .2s ease}.data-card.selected{border-color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04);box-shadow:0 0 0 1px var(--dt-primary)}.data-card.clickable{cursor:pointer}.data-card.clickable:hover{box-shadow:var(--dt-elevation-medium);transform:translateY(-2px)}.data-card.clickable:active{transform:translateY(0)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--dt-border)}.card-selection{display:flex;align-items:center}.card-body{display:flex;flex-direction:column;gap:12px}.card-field{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-field__label{font-size:12px;font-weight:600;color:var(--dt-text-muted);flex-shrink:0}.card-field__value{font-size:14px;color:var(--dt-text-primary);text-align:right;word-break:break-word;font-weight:500}.card-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--dt-border)}@media (max-width: 768px){.responsive-cards .table-wrapper{display:none}.responsive-cards .card-list{display:block}}@media (prefers-color-scheme: dark){.data-table-container{--dt-surface: #1e293b;--dt-surface-variant: #334155;--dt-border: #475569;--dt-text-primary: #f1f5f9;--dt-text-secondary: #94a3b8;--dt-text-muted: #64748b}.loading-overlay{background:#1e293be6}.status-badge--success{background:#22c55e33;color:#4ade80}.status-badge--warning{background:#f59e0b33;color:#fbbf24}.status-badge--danger{background:#ef444433;color:#f87171}.status-badge--primary{background:#6366f133;color:#a5b4fc}}\n"] }]
|
|
1069
|
+
`, styles: [":host{display:block}.data-table-container{--dt-elevation-none: none;--dt-elevation-low: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--dt-elevation-medium: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--dt-elevation-high: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--dt-primary: var(--ion-color-primary, #4f46e5);--dt-primary-rgb: var(--ion-color-primary-rgb, 79, 70, 229);--dt-surface: var(--ion-background-color, #ffffff);--dt-surface-variant: #f8fafc;--dt-border: #e2e8f0;--dt-text-primary: #1e293b;--dt-text-secondary: #64748b;--dt-text-muted: #94a3b8;--dt-gradient-start: #6366f1;--dt-gradient-end: #8b5cf6;--dt-border-radius: 16px;--dt-cell-padding-x: 16px;--dt-cell-padding-y: 14px;--dt-header-padding-y: 12px}.data-table-container{position:relative;background:var(--dt-surface);border-radius:var(--dt-border-radius);box-shadow:var(--dt-elevation-medium);border:1px solid var(--dt-border);overflow:hidden}.data-table-container.elevation-none{box-shadow:var(--dt-elevation-none)}.data-table-container.elevation-low{box-shadow:var(--dt-elevation-low)}.data-table-container.elevation-high{box-shadow:var(--dt-elevation-high)}.data-table-container.header-gradient:before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--dt-gradient-start),var(--dt-gradient-end));border-radius:var(--dt-border-radius) var(--dt-border-radius) 0 0;z-index:2}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10}.loading-overlay ion-spinner{--color: var(--dt-primary);width:32px;height:32px}.loading-message{font-size:14px;font-weight:500;color:var(--dt-text-secondary)}.table-wrapper{overflow-x:auto;max-height:var(--max-height)}.table-wrapper.is-loading{opacity:.5;pointer-events:none}.table-wrapper::-webkit-scrollbar{height:8px;width:8px}.table-wrapper::-webkit-scrollbar-track{background:var(--dt-surface-variant);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb{background:var(--dt-border);border-radius:4px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--dt-text-muted)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:var(--dt-cell-padding-y) var(--dt-cell-padding-x);text-align:left;vertical-align:middle}thead{background:var(--dt-surface-variant)}thead th{font-weight:600;font-size:13px;color:var(--dt-text-secondary);white-space:nowrap;position:relative;border-bottom:1px solid var(--dt-border);padding:var(--dt-header-padding-y) var(--dt-cell-padding-x);transition:all .2s ease}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{background:#00000008;color:var(--dt-text-primary)}thead th.sorted{color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04)}.header-content{display:flex;align-items:center;gap:8px}.sort-icons{display:flex;flex-direction:column;gap:0;opacity:.4;transition:opacity .2s ease}.sortable:hover .sort-icons{opacity:.7}.sorted .sort-icons{opacity:1}.sort-icons ion-icon{font-size:12px;color:var(--dt-text-muted);margin:-3px 0;transition:all .2s ease}.sort-icons ion-icon.active{color:var(--dt-primary);transform:scale(1.2)}tbody tr{border-bottom:1px solid var(--dt-border)}tbody tr:last-child{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.selected{background:rgba(var(--dt-primary-rgb),.06)}tbody td{color:var(--dt-text-primary);font-size:14px}.hoverable tbody tr:hover:not(.empty-row){background:var(--dt-surface-variant)}.hoverable tbody tr:hover:not(.empty-row).selected{background:rgba(var(--dt-primary-rgb),.08)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.selection-cell{width:52px;min-width:52px;max-width:52px;text-align:center;padding:8px 12px;box-sizing:border-box}.selection-cell ion-checkbox{--size: 20px;--border-radius: 50%;--border-width: 2px;--border-color: var(--dt-border);--border-color-checked: var(--dt-primary);--background: transparent;--background-checked: var(--dt-primary);--checkmark-color: white;--checkmark-width: 2px;margin:0;display:block}.selection-cell ion-checkbox::part(container){border-radius:50%}.selection-cell input[type=radio]{width:20px;height:20px;cursor:pointer;accent-color:var(--dt-primary);margin:0;display:block}.checkbox-circular .selection-cell ion-checkbox{--border-radius: 50%}.checkbox-circular .selection-cell ion-checkbox::part(container){border-radius:50%}.row-number-cell{width:60px;text-align:center;color:var(--dt-text-muted);font-size:12px;font-weight:500}.actions-cell{text-align:center;white-space:nowrap}.sticky-start{position:sticky;left:0;background:inherit;z-index:1;box-shadow:2px 0 4px #0000000d}.sticky-end{position:sticky;right:0;background:inherit;z-index:1;box-shadow:-2px 0 4px #0000000d}.empty-row td{padding:64px 16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--dt-text-secondary)}.empty-icon{font-size:56px;margin-bottom:20px;opacity:.4;color:var(--dt-text-muted)}.empty-title{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--dt-text-primary)}.empty-description{font-size:14px;margin:0;max-width:320px;color:var(--dt-text-secondary);line-height:1.5}.pagination-container{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap;gap:16px}.pagination-info{display:flex;align-items:center;gap:20px;font-size:14px;color:var(--dt-text-secondary)}.pagination-info span{font-weight:500}.page-size-select{--padding-start: 12px;--padding-end: 12px;font-size:14px;min-width:140px;--background: var(--dt-surface-variant);--border-radius: 8px}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls ion-button{--padding-start: 10px;--padding-end: 10px;--border-radius: 8px;--background: var(--dt-surface-variant);--background-hover: var(--dt-border);--color: var(--dt-text-secondary);--color-hover: var(--dt-text-primary);margin:0;height:36px;min-width:36px}.pagination-controls ion-button:disabled{opacity:.4}.pagination-controls ion-button ion-icon{font-size:16px}.page-indicator{padding:0 16px;font-size:14px;color:var(--dt-text-primary);font-weight:600;background:var(--dt-surface-variant);border-radius:8px;height:36px;display:flex;align-items:center;min-width:80px;justify-content:center}.bordered th,.bordered td{border:1px solid var(--dt-border)}.striped tbody tr:nth-child(2n){background:var(--dt-surface-variant)}.striped tbody tr:nth-child(2n).selected{background:rgba(var(--dt-primary-rgb),.08)}.sticky-header .table-wrapper{overflow-y:auto}.sticky-header thead{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 var(--dt-border)}.size-small{--dt-cell-padding-x: 12px;--dt-cell-padding-y: 10px;--dt-header-padding-y: 10px}.size-small th,.size-small td{font-size:13px}.size-small thead th{font-size:12px}.size-small .selection-cell{width:44px;padding:6px 8px}.size-small .selection-cell ion-checkbox{--size: 18px}.size-small .row-number-cell{width:48px;font-size:11px}.size-small .pagination-container{padding:12px 16px}.size-small .pagination-info,.size-small .page-indicator{font-size:13px}.size-small .pagination-controls ion-button{height:32px;min-width:32px}.size-small .page-indicator{height:32px;min-width:70px}.size-large{--dt-cell-padding-x: 20px;--dt-cell-padding-y: 18px;--dt-header-padding-y: 16px}.size-large th,.size-large td{font-size:15px}.size-large thead th{font-size:14px}.size-large .selection-cell{width:60px;padding:12px 16px}.size-large .selection-cell ion-checkbox{--size: 24px}.size-large .row-number-cell{width:72px;font-size:14px}.size-large .pagination-container{padding:20px 24px}.size-large .pagination-info,.size-large .page-indicator{font-size:15px}.size-large .pagination-controls ion-button{height:40px;min-width:40px}.size-large .page-indicator{height:40px;min-width:90px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){.data-table-container{--dt-border-radius: 12px}.pagination-container{flex-direction:column;align-items:stretch;gap:12px}.pagination-info{justify-content:space-between}.pagination-controls{justify-content:center}}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--dt-border);background:var(--dt-surface);flex-wrap:wrap}.table-toolbar:empty{display:none}@media (max-width: 576px){.table-toolbar{flex-direction:column;align-items:stretch;padding:16px}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9999px;font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.025em}.status-badge--success{background:#dcfce7;color:#15803d}.status-badge--warning{background:#fef3c7;color:#b45309}.status-badge--danger{background:#fee2e2;color:#dc2626}.status-badge--primary{background:#e0e7ff;color:#4338ca}.status-badge--secondary{background:#f1f5f9;color:#475569}.status-badge--medium{background:#f1f5f9;color:#64748b}.status-badge--tertiary{background:#f3e8ff;color:#7c3aed}.status-badge--filled.status-badge--success{background:#22c55e;color:#fff}.status-badge--filled.status-badge--warning{background:#f59e0b;color:#fff}.status-badge--filled.status-badge--danger{background:#ef4444;color:#fff}.status-badge--filled.status-badge--primary{background:var(--dt-primary);color:#fff}.status-badge--outlined{background:transparent;border:1.5px solid currentColor}.status-badge--outlined.status-badge--success{color:#16a34a}.status-badge--outlined.status-badge--warning{color:#d97706}.status-badge--outlined.status-badge--danger{color:#dc2626}.status-badge--outlined.status-badge--primary{color:var(--dt-primary)}.action-buttons{display:flex;gap:6px;justify-content:center}.action-buttons ion-button{--padding-start: 8px;--padding-end: 8px;--border-radius: 8px;margin:0}.action-buttons ion-button ion-icon{font-size:18px}.card-list{display:none;padding:12px;gap:12px}.data-card{background:var(--dt-surface);border:1px solid var(--dt-border);border-radius:12px;padding:16px;margin-bottom:12px;transition:all .2s ease}.data-card.selected{border-color:var(--dt-primary);background:rgba(var(--dt-primary-rgb),.04);box-shadow:0 0 0 1px var(--dt-primary)}.data-card.clickable{cursor:pointer}.data-card.clickable:hover{box-shadow:var(--dt-elevation-medium);transform:translateY(-2px)}.data-card.clickable:active{transform:translateY(0)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--dt-border)}.card-selection{display:flex;align-items:center}.card-body{display:flex;flex-direction:column;gap:12px}.card-field{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-field__label{font-size:12px;font-weight:600;color:var(--dt-text-muted);flex-shrink:0}.card-field__value{font-size:14px;color:var(--dt-text-primary);text-align:right;word-break:break-word;font-weight:500}.card-actions{display:flex;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid var(--dt-border)}@media (max-width: 768px){.responsive-cards .table-wrapper{display:none}.responsive-cards .card-list{display:block}}@media (prefers-color-scheme: dark){.data-table-container{--dt-surface: #1e293b;--dt-surface-variant: #334155;--dt-border: #475569;--dt-text-primary: #f1f5f9;--dt-text-secondary: #94a3b8;--dt-text-muted: #64748b}.loading-overlay{background:#1e293be6}.status-badge--success{background:#22c55e33;color:#4ade80}.status-badge--warning{background:#f59e0b33;color:#fbbf24}.status-badge--danger{background:#ef444433;color:#f87171}.status-badge--primary{background:#6366f133;color:#a5b4fc}}\n"] }]
|
|
1070
1070
|
}], propDecorators: { props: [{
|
|
1071
1071
|
type: Input
|
|
1072
1072
|
}], rowClick: [{
|
|
@@ -1078,4 +1078,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1078
1078
|
}], pageChange: [{
|
|
1079
1079
|
type: Output
|
|
1080
1080
|
}] } });
|
|
1081
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBSVosTUFBTSxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFdBQVcsRUFDWCxVQUFVLEVBQ1YsU0FBUyxFQUNULGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBU0wseUJBQXlCLEdBQzFCLE1BQU0sU0FBUyxDQUFDOzs7QUFFakIsUUFBUSxDQUFDO0lBQ1AsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDO0FBc1dIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBL1kvQjtRQWtaWSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDekQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBb0MsQ0FBQztRQUN2RSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDMUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBRXBFLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQXlCLElBQUksQ0FBQztRQUN6QyxpQkFBWSxHQUFhLElBQUksR0FBRyxFQUFFLENBQUM7UUFFbkMsNkNBQTZDO1FBQ3JDLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztRQUUzQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWtXcEM7SUFoV0MsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRTNFLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUUzQyx1QkFBdUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsNEJBQTRCO1FBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25ELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFekIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDbkUsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTVDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQztpQkFDaEQsSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDO2lCQUNuQyxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDcEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xFLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1lBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE1BQU0saUJBQWlCLEdBQXdCO1lBQzdDLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7U0FDM0MsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksaUJBQWlCLENBQUM7SUFDcEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLHFCQUFxQjtRQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3hJLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGVBQWUsSUFBSSx5QkFBeUIsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdkYsT0FBTyxhQUFhLEdBQUcsQ0FBQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQU0sRUFBRSxNQUEwQjtRQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFNLEVBQUUsTUFBMEI7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBMEI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsR0FBRztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyRixDQUFDO1FBQ0QsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBTTtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQTBCO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFN0IsSUFBSSxTQUFTLEdBQTBCLEtBQUssQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUN6QyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUc7WUFDbEIsU0FBUztTQUNWLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFNLEVBQUUsS0FBYSxFQUFFLEtBQWlCO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEdBQUc7WUFDSCxLQUFLO1lBQ0wsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBa0I7UUFDaEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBTSxFQUFFLEtBQWtCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBTTtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQ3pCLE1BQTJELEVBQzNELFVBQWM7UUFFZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsUUFBUTtZQUNSLFVBQVU7WUFDVixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRW5DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDeEMsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDckMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVuQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFFaEQsOENBQThDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsV0FBVztZQUNyQixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDOytHQWpYVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzUEFqWW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtVlQsbW5ZQTVWQyxZQUFZLHFNQUNaLFdBQVcsK0JBQ1gsU0FBUyxvUEFDVCxPQUFPLDJKQUNQLFdBQVcscU1BQ1gsVUFBVSx5R0FDVixTQUFTLGtWQUNULGVBQWU7OzRGQW1ZTixrQkFBa0I7a0JBL1k5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1WVDs4QkErQ1EsS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBpbmplY3QsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uSWNvbixcbiAgSW9uQ2hlY2tib3gsXG4gIElvblNwaW5uZXIsXG4gIElvblNlbGVjdCxcbiAgSW9uU2VsZWN0T3B0aW9uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hldnJvblVwT3V0bGluZSxcbiAgY2hldnJvbkRvd25PdXRsaW5lLFxuICBjaGV2cm9uQmFja091dGxpbmUsXG4gIGNoZXZyb25Gb3J3YXJkT3V0bGluZSxcbiAgZG9jdW1lbnRPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHtcbiAgRGF0YVRhYmxlTWV0YWRhdGEsXG4gIERhdGFUYWJsZUNvbHVtbixcbiAgRGF0YVRhYmxlU29ydCxcbiAgRGF0YVRhYmxlUm93Q2xpY2tFdmVudCxcbiAgRGF0YVRhYmxlU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gIERhdGFUYWJsZVNvcnRDaGFuZ2VFdmVudCxcbiAgRGF0YVRhYmxlUGFnZUNoYW5nZUV2ZW50LFxuICBEYXRhVGFibGVFbXB0eVN0YXRlLFxuICBERUZBVUxUX1BBR0VfU0laRV9PUFRJT05TLFxufSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoe1xuICBjaGV2cm9uVXBPdXRsaW5lLFxuICBjaGV2cm9uRG93bk91dGxpbmUsXG4gIGNoZXZyb25CYWNrT3V0bGluZSxcbiAgY2hldnJvbkZvcndhcmRPdXRsaW5lLFxuICBkb2N1bWVudE91dGxpbmUsXG59KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRhdGEtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBJb25DaGVja2JveCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicHJvcHMuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLnN0cmlwZWRdPVwicHJvcHMuc3RyaXBlZFwiXG4gICAgICBbY2xhc3MuaG92ZXJhYmxlXT1cInByb3BzLmhvdmVyYWJsZSAhPT0gZmFsc2VcIlxuICAgICAgW2NsYXNzLnN0aWNreS1oZWFkZXJdPVwicHJvcHMuc3RpY2t5SGVhZGVyXCJcbiAgICAgIFtjbGFzcy5yZXNwb25zaXZlLWNhcmRzXT1cInByb3BzLnJlc3BvbnNpdmVNb2RlID09PSAnY2FyZHMnXCJcbiAgICAgIFtjbGFzcy5lbGV2YXRpb24tbm9uZV09XCJwcm9wcy5lbGV2YXRpb24gPT09ICdub25lJ1wiXG4gICAgICBbY2xhc3MuZWxldmF0aW9uLWxvd109XCJwcm9wcy5lbGV2YXRpb24gPT09ICdsb3cnXCJcbiAgICAgIFtjbGFzcy5lbGV2YXRpb24taGlnaF09XCJwcm9wcy5lbGV2YXRpb24gPT09ICdoaWdoJ1wiXG4gICAgICBbY2xhc3MuaGVhZGVyLWdyYWRpZW50XT1cInByb3BzLmhlYWRlckdyYWRpZW50XCJcbiAgICAgIFtjbGFzcy5jaGVja2JveC1jaXJjdWxhcl09XCJwcm9wcy5jaGVja2JveFN0eWxlID09PSAnY2lyY3VsYXInXCJcbiAgICAgIFtjbGFzcy5yb3ctaGlnaGxpZ2h0LWJvcmRlcl09XCJwcm9wcy5yb3dIaWdobGlnaHRTdHlsZSA9PT0gJ2JvcmRlci1sZWZ0J1wiXG4gICAgICBbY2xhc3Mucm93LWhpZ2hsaWdodC1ib3RoXT1cInByb3BzLnJvd0hpZ2hsaWdodFN0eWxlID09PSAnYm90aCdcIlxuICAgICAgW3N0eWxlLi0tbWF4LWhlaWdodF09XCJwcm9wcy5tYXhIZWlnaHRcIlxuICAgID5cbiAgICAgIDwhLS0gVG9vbGJhciBzbG90IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXRvb2xiYXJcIiAjdG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTG9hZGluZyBvdmVybGF5IC0tPlxuICAgICAgQGlmIChwcm9wcy5sb2FkaW5nU3RhdGU/LmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgIEBpZiAocHJvcHMubG9hZGluZ1N0YXRlPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvYWRpbmctbWVzc2FnZVwiPnt7IHByb3BzLmxvYWRpbmdTdGF0ZS5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCIgW2NsYXNzLmlzLWxvYWRpbmddPVwicHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nXCI+XG4gICAgICAgIDx0YWJsZVxuICAgICAgICAgIHJvbGU9XCJncmlkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb3BzLmFyaWFMYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb3BzLmNhcHRpb24pIHtcbiAgICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPVwic3Itb25seVwiPnt7IHByb3BzLmNhcHRpb24gfX08L2NhcHRpb24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8IS0tIFNlbGVjdGlvbiBjb2x1bW4gLS0+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlbGVjdGlvbkNvbHVtbiAmJiBwcm9wcy5zZWxlY3Rpb24/Lm1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJzZWxlY3Rpb24tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZWxlY3Rpb25Db2x1bW4gJiYgcHJvcHMuc2VsZWN0aW9uPy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInNlbGVjdGlvbi1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwhLS0gUm93IG51bWJlciBjb2x1bW4gLS0+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1Jvd051bWJlcnMpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJyb3ctbnVtYmVyLWNlbGxcIj4jPC90aD5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwhLS0gRGF0YSBjb2x1bW5zIC0tPlxuICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzcyhjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ubWF4V2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc29ydGVkXT1cImN1cnJlbnRTb3J0Py5jb2x1bW4gPT09IGNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zb3J0YWJsZSA/IG9uU29ydChjb2x1bW4pIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNvcnRdPVwiZ2V0QXJpYVNvcnQoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4uaGVhZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5zb3J0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzb3J0LWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXVwLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFNvcnQ/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJiBjdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnYXNjJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFNvcnQ/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJiBjdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb25zIGNvbHVtbiAtLT5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWNlbGxcIiBbc3R5bGUud2lkdGhdPVwicHJvcHMuYWN0aW9uc1dpZHRoIHx8ICcxMDBweCdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldEFjdGlvbnNMYWJlbCgpIH19XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgQGlmIChkaXNwbGF5ZWREYXRhLmxlbmd0aCA9PT0gMCAmJiAhcHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nKSB7XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImVtcHR5LXJvd1wiPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cInRvdGFsQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVN0YXRlLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZW1wdHlTdGF0ZS5pY29uXCIgY2xhc3M9XCJlbXB0eS1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChlbXB0eVN0YXRlLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJlbXB0eS10aXRsZVwiPnt7IGVtcHR5U3RhdGUudGl0bGUgfX08L2g0PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGVtcHR5U3RhdGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktZGVzY3JpcHRpb25cIj57eyBlbXB0eVN0YXRlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBAZm9yIChyb3cgb2YgZGlzcGxheWVkRGF0YTsgdHJhY2sgdHJhY2tCeUZuKHJvdyk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5jbGlja2FibGVdPVwicHJvcHMucm93Q2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKHJvdywgaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3Rpb24gY2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlbGVjdGlvbkNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3Rpb24tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAocHJvcHMuc2VsZWN0aW9uPy5tb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzUm93U2VsZWN0ZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwidG9nZ2xlUm93U2VsZWN0aW9uKHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHByb3BzLnNlbGVjdGlvbj8ubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc1Jvd1NlbGVjdGVkKHJvdylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2luZ2xlUm93KHJvdyk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPCEtLSBSb3cgbnVtYmVyIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93Um93TnVtYmVycykge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJyb3ctbnVtYmVyLWNlbGxcIj57eyBnZXRSb3dOdW1iZXIoaSkgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICA8IS0tIERhdGEgY2VsbHMgLS0+XG4gICAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldENvbHVtbkNsYXNzKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi5hbGlnblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5jZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdywgY29sdW1uLCB2YWx1ZTogZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRGb3JtYXR0ZWRWYWx1ZShyb3csIGNvbHVtbikgfX1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9ucyBjZWxsIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9ucy1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb3BzLmFjdGlvbnNUZW1wbGF0ZTsgY29udGV4dDogeyByb3csIGluZGV4OiBpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENhcmQgdmlldyAocmVzcG9uc2l2ZSBtb2JpbGUpIC0tPlxuICAgICAgQGlmIChwcm9wcy5yZXNwb25zaXZlTW9kZSA9PT0gJ2NhcmRzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0XCI+XG4gICAgICAgICAgQGlmIChkaXNwbGF5ZWREYXRhLmxlbmd0aCA9PT0gMCAmJiAhcHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgQGlmIChlbXB0eVN0YXRlLmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZW1wdHlTdGF0ZS5pY29uXCIgY2xhc3M9XCJlbXB0eS1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKGVtcHR5U3RhdGUudGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJlbXB0eS10aXRsZVwiPnt7IGVtcHR5U3RhdGUudGl0bGUgfX08L2g0PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktZGVzY3JpcHRpb25cIj57eyBlbXB0eVN0YXRlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBkaXNwbGF5ZWREYXRhOyB0cmFjayB0cmFja0J5Rm4ocm93KTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5tb2JpbGVDYXJkVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvcHMubW9iaWxlQ2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdywgaW5kZXg6IGksIGNvbHVtbnM6IHZpc2libGVDb2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhLWNhcmRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzUm93U2VsZWN0ZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cInByb3BzLnJvd0NsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3csIGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBoZWFkZXIgd2l0aCBzZWxlY3Rpb24gLS0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZWxlY3Rpb25Db2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByb3BzLnNlbGVjdGlvbj8ubW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW9uQ2hhbmdlKT1cInRvZ2dsZVJvd1NlbGVjdGlvbihyb3csICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChwcm9wcy5zZWxlY3Rpb24/Lm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2luZ2xlUm93KHJvdyk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93Um93TnVtYmVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctbnVtYmVyXCI+e3sgZ2V0Um93TnVtYmVyKGkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBib2R5IHdpdGggZmllbGRzIC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWZpZWxkX19sYWJlbFwiPnt7IGNvbHVtbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1maWVsZF9fdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgcm93LCBjb2x1bW4sIHZhbHVlOiBnZXRDZWxsVmFsdWUocm93LCBjb2x1bW4pIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0Rm9ybWF0dGVkVmFsdWUocm93LCBjb2x1bW4pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBhY3Rpb25zIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9wcy5hY3Rpb25zVGVtcGxhdGU7IGNvbnRleHQ6IHsgcm93LCBpbmRleDogaSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxuICAgICAgQGlmIChwcm9wcy5zaG93UGFnaW5hdGlvbiAmJiBwcm9wcy5wYWdpbmF0aW9uKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWluZm9cIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7eyBnZXRQYWdpbmF0aW9uSW5mb1RleHQoKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICBAaWYgKHBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0XG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BzLnBhZ2luYXRpb24ucGFnZVNpemVcIlxuICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBpbnRlcmZhY2U9XCJwb3BvdmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2Utc2l6ZS1zZWxlY3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAoc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnM7IHRyYWNrIHNpemUpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwic2l6ZVwiPnt7IGdldFBlclBhZ2VUZXh0KHNpemUpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMucGFnaW5hdGlvbi5wYWdlID09PSAwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKDApXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRGaXJzdFBhZ2VMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWJhY2stb3V0bGluZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMnB4XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLnBhZ2luYXRpb24ucGFnZSA9PT0gMFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUGFnZShwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0UHJldmlvdXNQYWdlTGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICB7eyBwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKyAxIH19IC8ge3sgdG90YWxQYWdlcyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMucGFnaW5hdGlvbi5wYWdlID49IHRvdGFsUGFnZXMgLSAxXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHByb3BzLnBhZ2luYXRpb24ucGFnZSArIDEpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXROZXh0UGFnZUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgPj0gdG90YWxQYWdlcyAtIDFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UodG90YWxQYWdlcyAtIDEpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRMYXN0UGFnZUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZC1vdXRsaW5lXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTEycHhcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWRhdGEtdGFibGVcbiAqXG4gKiBBIGZsZXhpYmxlIGRhdGEgdGFibGUgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIHRhYnVsYXIgZGF0YSB3aXRoIHNvcnRpbmcsXG4gKiBwYWdpbmF0aW9uLCBhbmQgc2VsZWN0aW9uIGZlYXR1cmVzLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWRhdGEtdGFibGVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb2x1bW5zOiBbXG4gKiAgICAgICB7IGtleTogJ25hbWUnLCBsYWJlbDogJ05vbWJyZScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gKiAgICAgICB7IGtleTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcgfSxcbiAqICAgICAgIHsga2V5OiAnc3RhdHVzJywgbGFiZWw6ICdFc3RhZG8nIH1cbiAqICAgICBdLFxuICogICAgIGRhdGE6IHVzZXJzXG4gKiAgIH1cIlxuICogPjwvdmFsLWRhdGEtdGFibGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHBhZ2luYXRpb24gYW5kIHNlbGVjdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1kYXRhLXRhYmxlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgY29sdW1uczogY29sdW1ucyxcbiAqICAgICBkYXRhOiBwYXJ0aWNpcGFudHMsXG4gKiAgICAgc2hvd1BhZ2luYXRpb246IHRydWUsXG4gKiAgICAgcGFnaW5hdGlvbjoge1xuICogICAgICAgcGFnZTogMCxcbiAqICAgICAgIHBhZ2VTaXplOiAyNSxcbiAqICAgICAgIHRvdGFsOiB0b3RhbENvdW50XG4gKiAgICAgfSxcbiAqICAgICBzZWxlY3Rpb246IHtcbiAqICAgICAgIG1vZGU6ICdtdWx0aXBsZScsXG4gKiAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRQYXJ0aWNpcGFudHNcbiAqICAgICB9LFxuICogICAgIHNob3dTZWxlY3Rpb25Db2x1bW46IHRydWVcbiAqICAgfVwiXG4gKiAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gKiAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1kYXRhLXRhYmxlPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHByb3BzOiBEYXRhVGFibGVNZXRhZGF0YTxUPjtcblxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZVJvd0NsaWNrRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZVNlbGVjdGlvbkNoYW5nZUV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlU29ydENoYW5nZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlUGFnZUNoYW5nZUV2ZW50PigpO1xuXG4gIGRpc3BsYXllZERhdGE6IFRbXSA9IFtdO1xuICBjdXJyZW50U29ydDogRGF0YVRhYmxlU29ydCB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RlZFJvd3M6IFNldDxhbnk+ID0gbmV3IFNldCgpO1xuXG4gIC8qKiBDYWNoZWQgdmlzaWJsZSBjb2x1bW5zIGZvciBwZXJmb3JtYW5jZSAqL1xuICBwcml2YXRlIF92aXNpYmxlQ29sdW1uczogRGF0YVRhYmxlQ29sdW1uPFQ+W10gPSBbXTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplU3RhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZERhdGEoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplU3RhdGUoKTtcbiAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIC8vIENhY2hlIHZpc2libGUgY29sdW1ucyBmb3IgcGVyZm9ybWFuY2VcbiAgICB0aGlzLl92aXNpYmxlQ29sdW1ucyA9IHRoaXMucHJvcHMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUgIT09IGZhbHNlKTtcblxuICAgIC8vIEluaXRpYWxpemUgc29ydFxuICAgIHRoaXMuY3VycmVudFNvcnQgPSB0aGlzLnByb3BzLnNvcnQgfHwgbnVsbDtcblxuICAgIC8vIEluaXRpYWxpemUgc2VsZWN0aW9uXG4gICAgaWYgKHRoaXMucHJvcHMuc2VsZWN0aW9uPy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBuZXcgU2V0KFxuICAgICAgICB0aGlzLnByb3BzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAocm93ID0+IHRoaXMuZ2V0Um93SWQocm93KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5ZWREYXRhKCk6IHZvaWQge1xuICAgIGxldCBkYXRhID0gWy4uLnRoaXMucHJvcHMuZGF0YV07XG5cbiAgICAvLyBBcHBseSBjbGllbnQtc2lkZSBzb3J0aW5nXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50U29ydCAmJiB0aGlzLmN1cnJlbnRTb3J0KSB7XG4gICAgICBkYXRhID0gdGhpcy5zb3J0RGF0YShkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBjbGllbnQtc2lkZSBwYWdpbmF0aW9uXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50UGFnaW5hdGlvbiAmJiB0aGlzLnByb3BzLnBhZ2luYXRpb24pIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlU2l6ZTtcbiAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNvcnREYXRhKGRhdGE6IFRbXSk6IFRbXSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRTb3J0KSByZXR1cm4gZGF0YTtcblxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMucHJvcHMuY29sdW1ucy5maW5kKGMgPT4gYy5rZXkgPT09IHRoaXMuY3VycmVudFNvcnQ/LmNvbHVtbik7XG4gICAgaWYgKCFjb2x1bW4pIHJldHVybiBkYXRhO1xuXG4gICAgcmV0dXJuIFsuLi5kYXRhXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLnNvcnRGbikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjb2x1bW4uc29ydEZuKGEsIGIpO1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYycgPyAtcmVzdWx0IDogcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZUEgPSB0aGlzLmdldENlbGxWYWx1ZShhLCBjb2x1bW4pO1xuICAgICAgY29uc3QgdmFsdWVCID0gdGhpcy5nZXRDZWxsVmFsdWUoYiwgY29sdW1uKTtcblxuICAgICAgbGV0IGNvbXBhcmlzb24gPSAwO1xuICAgICAgaWYgKHZhbHVlQSA9PSBudWxsICYmIHZhbHVlQiA9PSBudWxsKSBjb21wYXJpc29uID0gMDtcbiAgICAgIGVsc2UgaWYgKHZhbHVlQSA9PSBudWxsKSBjb21wYXJpc29uID0gMTtcbiAgICAgIGVsc2UgaWYgKHZhbHVlQiA9PSBudWxsKSBjb21wYXJpc29uID0gLTE7XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWVBID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWVCID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb21wYXJpc29uID0gdmFsdWVBLmxvY2FsZUNvbXBhcmUodmFsdWVCKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBhcmlzb24gPSB2YWx1ZUEgPCB2YWx1ZUIgPyAtMSA6IHZhbHVlQSA+IHZhbHVlQiA/IDEgOiAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYycgPyAtY29tcGFyaXNvbiA6IGNvbXBhcmlzb247XG4gICAgfSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUNvbHVtbnMoKTogRGF0YVRhYmxlQ29sdW1uPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1ucztcbiAgfVxuXG4gIGdldCB0b3RhbENvbHVtbnMoKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSB0aGlzLnZpc2libGVDb2x1bW5zLmxlbmd0aDtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93U2VsZWN0aW9uQ29sdW1uKSBjb3VudCsrO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dSb3dOdW1iZXJzKSBjb3VudCsrO1xuICAgIGlmICh0aGlzLnByb3BzLmFjdGlvbnNUZW1wbGF0ZSkgY291bnQrKztcbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBnZXQgZW1wdHlTdGF0ZSgpOiBEYXRhVGFibGVFbXB0eVN0YXRlIHtcbiAgICBjb25zdCBkZWZhdWx0RW1wdHlTdGF0ZTogRGF0YVRhYmxlRW1wdHlTdGF0ZSA9IHtcbiAgICAgIGljb246ICdkb2N1bWVudC1vdXRsaW5lJyxcbiAgICAgIHRpdGxlOiB0aGlzLmkxOG4udCgnbm9EYXRhJyksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5pMThuLnQoJ25vUmVjb3Jkc0ZvdW5kJyksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eVN0YXRlIHx8IGRlZmF1bHRFbXB0eVN0YXRlO1xuICB9XG5cbiAgLyoqIEdldCBhY3Rpb25zIGNvbHVtbiBsYWJlbCAqL1xuICBnZXRBY3Rpb25zTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hY3Rpb25zTGFiZWwgfHwgdGhpcy5pMThuLnQoJ2FjdGlvbnMnKTtcbiAgfVxuXG4gIC8qKiBHZXQgcGFnaW5hdGlvbiBpbmZvIHRleHQgKi9cbiAgZ2V0UGFnaW5hdGlvbkluZm9UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaTE4bi50KCdzaG93aW5nJyl9ICR7dGhpcy5wYWdpbmF0aW9uU3RhcnR9LSR7dGhpcy5wYWdpbmF0aW9uRW5kfSAke3RoaXMuaTE4bi50KCdvZicpfSAke3RoaXMucHJvcHMucGFnaW5hdGlvbj8udG90YWx9YDtcbiAgfVxuXG4gIC8qKiBHZXQgcGVyIHBhZ2UgdGV4dCAqL1xuICBnZXRQZXJQYWdlVGV4dChzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzaXplfSAke3RoaXMuaTE4bi50KCdwZXJQYWdlJyl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgZmlyc3QgcGFnZSBhcmlhIGxhYmVsICovXG4gIGdldEZpcnN0UGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdmaXJzdFBhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgcHJldmlvdXMgcGFnZSBhcmlhIGxhYmVsICovXG4gIGdldFByZXZpb3VzUGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwcmV2aW91c1BhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgbmV4dCBwYWdlIGFyaWEgbGFiZWwgKi9cbiAgZ2V0TmV4dFBhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbmV4dFBhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgbGFzdCBwYWdlIGFyaWEgbGFiZWwgKi9cbiAgZ2V0TGFzdFBhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbGFzdFBhZ2UnKTtcbiAgfVxuXG4gIGdldCBwYWdlU2l6ZU9wdGlvbnMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBhZ2luYXRpb24/LnBhZ2VTaXplT3B0aW9ucyB8fCBERUZBVUxUX1BBR0VfU0laRV9PUFRJT05TO1xuICB9XG5cbiAgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuIDE7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnByb3BzLnBhZ2luYXRpb24udG90YWwgLyB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9XG5cbiAgZ2V0IHBhZ2luYXRpb25TdGFydCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5wcm9wcy5wYWdpbmF0aW9uKSByZXR1cm4gMTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgKyAxO1xuICB9XG5cbiAgZ2V0IHBhZ2luYXRpb25FbmQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuIHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGg7XG4gICAgcmV0dXJuIE1hdGgubWluKFxuICAgICAgKHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlICsgMSkgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUsXG4gICAgICB0aGlzLnByb3BzLnBhZ2luYXRpb24udG90YWxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWREYXRhLmV2ZXJ5KHJvdyA9PiB0aGlzLmlzUm93U2VsZWN0ZWQocm93KSk7XG4gIH1cblxuICBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnQgPSB0aGlzLmRpc3BsYXllZERhdGEuZmlsdGVyKHJvdyA9PiB0aGlzLmlzUm93U2VsZWN0ZWQocm93KSkubGVuZ3RoO1xuICAgIHJldHVybiBzZWxlY3RlZENvdW50ID4gMCAmJiBzZWxlY3RlZENvdW50IDwgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aDtcbiAgfVxuXG4gIGdldENlbGxWYWx1ZShyb3c6IFQsIGNvbHVtbjogRGF0YVRhYmxlQ29sdW1uPFQ+KTogYW55IHtcbiAgICBjb25zdCBmaWVsZCA9IGNvbHVtbi5maWVsZCB8fCBjb2x1bW4ua2V5O1xuICAgIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgob2JqOiBhbnksIGtleSkgPT4gb2JqPy5ba2V5XSwgcm93KTtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFZhbHVlKHJvdzogVCwgY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDZWxsVmFsdWUocm93LCBjb2x1bW4pO1xuICAgIGlmIChjb2x1bW4uZm9ybWF0KSB7XG4gICAgICByZXR1cm4gY29sdW1uLmZvcm1hdCh2YWx1ZSwgcm93KTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID8/ICcnO1xuICB9XG5cbiAgZ2V0Q29sdW1uQ2xhc3MoY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbY29sdW1uLmNzc0NsYXNzIHx8ICcnXTtcbiAgICBpZiAoY29sdW1uLnN0aWNreSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGBzdGlja3ktJHtjb2x1bW4uc3RpY2t5fWApO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFsaWduKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYGFsaWduLSR7Y29sdW1uLmFsaWdufWApO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9XG5cbiAgZ2V0QXJpYVNvcnQoY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNvbHVtbi5zb3J0YWJsZSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKHRoaXMuY3VycmVudFNvcnQ/LmNvbHVtbiAhPT0gY29sdW1uLmtleSkgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09ICdhc2MnID8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZyc7XG4gIH1cblxuICBnZXRSb3dOdW1iZXIoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnByb3BzLnJvd051bWJlclN0YXJ0ID8/IDE7XG4gICAgaWYgKHRoaXMucHJvcHMucGFnaW5hdGlvbikge1xuICAgICAgcmV0dXJuIHN0YXJ0ICsgdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgKyBpbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0ICsgaW5kZXg7XG4gIH1cblxuICBnZXRSb3dJZChyb3c6IFQpOiBhbnkge1xuICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGlvbj8udHJhY2tCeSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuc2VsZWN0aW9uLnRyYWNrQnkocm93KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdztcbiAgfVxuXG4gIHRyYWNrQnlGbihyb3c6IFQpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldFJvd0lkKHJvdyk7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGVkKHJvdzogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93cy5oYXModGhpcy5nZXRSb3dJZChyb3cpKTtcbiAgfVxuXG4gIG9uU29ydChjb2x1bW46IERhdGFUYWJsZUNvbHVtbjxUPik6IHZvaWQge1xuICAgIGlmICghY29sdW1uLnNvcnRhYmxlKSByZXR1cm47XG5cbiAgICBsZXQgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSAnYXNjJztcblxuICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0Py5jb2x1bW4gPT09IGNvbHVtbi5rZXkpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0LmRpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgZGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlyZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlyZWN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0geyBjb2x1bW46IGNvbHVtbi5rZXksIGRpcmVjdGlvbiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XG4gICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICBkaXJlY3Rpb24sXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGllbnRTb3J0KSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc3BsYXllZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBvblJvd0NsaWNrKHJvdzogVCwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucm93Q2xpY2thYmxlKSByZXR1cm47XG5cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoe1xuICAgICAgcm93LFxuICAgICAgaW5kZXgsXG4gICAgICBldmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XG5cbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHRoaXMuZ2V0Um93SWQocm93KSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZGVsZXRlKHRoaXMuZ2V0Um93SWQocm93KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoY2hlY2tlZCA/ICdzZWxlY3RBbGwnIDogJ2Rlc2VsZWN0QWxsJyk7XG4gIH1cblxuICB0b2dnbGVSb3dTZWxlY3Rpb24ocm93OiBULCBldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByb3dJZCA9IHRoaXMuZ2V0Um93SWQocm93KTtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XG5cbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHJvd0lkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZGVsZXRlKHJvd0lkKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoY2hlY2tlZCA/ICdzZWxlY3QnIDogJ2Rlc2VsZWN0Jywgcm93KTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZVJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICBjb25zdCByb3dJZCA9IHRoaXMuZ2V0Um93SWQocm93KTtcbiAgICBjb25zdCB3YXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzLmhhcyhyb3dJZCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUm93cy5jbGVhcigpO1xuXG4gICAgaWYgKCF3YXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHJvd0lkKTtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgnc2VsZWN0Jywgcm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCdkZXNlbGVjdCcsIHJvdyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlKFxuICAgIGFjdGlvbjogJ3NlbGVjdCcgfCAnZGVzZWxlY3QnIHwgJ3NlbGVjdEFsbCcgfCAnZGVzZWxlY3RBbGwnLFxuICAgIGNoYW5nZWRSb3c/OiBUXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5wcm9wcy5kYXRhLmZpbHRlcihyb3cgPT4gdGhpcy5pc1Jvd1NlbGVjdGVkKHJvdykpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZCxcbiAgICAgIGNoYW5nZWRSb3csXG4gICAgICBhY3Rpb24sXG4gICAgfSk7XG4gIH1cblxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2U7XG4gICAgY29uc3QgbWF4UGFnZSA9IHRoaXMudG90YWxQYWdlcyAtIDE7XG4gICAgY29uc3QgbmV3UGFnZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKHBhZ2UsIG1heFBhZ2UpKTtcblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHtcbiAgICAgIHBhZ2U6IG5ld1BhZ2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgcHJldmlvdXNQYWdlLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50UGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgPSBuZXdQYWdlO1xuICAgICAgdGhpcy51cGRhdGVEaXNwbGF5ZWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3UGFnZVNpemUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2U7XG5cbiAgICAvLyBSZWNhbGN1bGF0ZSBwYWdlIHRvIGtlZXAgZmlyc3QgdmlzaWJsZSBpdGVtXG4gICAgY29uc3QgZmlyc3RJdGVtID0gcHJldmlvdXNQYWdlICogdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2VTaXplO1xuICAgIGNvbnN0IG5ld1BhZ2UgPSBNYXRoLmZsb29yKGZpcnN0SXRlbSAvIG5ld1BhZ2VTaXplKTtcblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHtcbiAgICAgIHBhZ2U6IG5ld1BhZ2UsXG4gICAgICBwYWdlU2l6ZTogbmV3UGFnZVNpemUsXG4gICAgICBwcmV2aW91c1BhZ2UsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGllbnRQYWdpbmF0aW9uKSB7XG4gICAgICB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgPSBuZXdQYWdlU2l6ZTtcbiAgICAgIHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlID0gbmV3UGFnZTtcbiAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkRGF0YSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
1081
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBSVosTUFBTSxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFdBQVcsRUFDWCxVQUFVLEVBQ1YsU0FBUyxFQUNULGVBQWUsR0FDaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsZUFBZSxHQUNoQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBU0wseUJBQXlCLEdBQzFCLE1BQU0sU0FBUyxDQUFDOzs7QUFFakIsUUFBUSxDQUFDO0lBQ1AsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIscUJBQXFCO0lBQ3JCLGVBQWU7Q0FDaEIsQ0FBQyxDQUFDO0FBc1dIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBL1kvQjtRQWtaWSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDekQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBb0MsQ0FBQztRQUN2RSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDMUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO1FBRXBFLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGdCQUFXLEdBQXlCLElBQUksQ0FBQztRQUN6QyxpQkFBWSxHQUFhLElBQUksR0FBRyxFQUFFLENBQUM7UUFFbkMsNkNBQTZDO1FBQ3JDLG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztRQUUzQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWtXcEM7SUFoV0MsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBRTNFLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUUzQyx1QkFBdUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM3RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsNEJBQTRCO1FBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMxRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ25ELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFekIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDbkUsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTVDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQztpQkFDaEQsSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxVQUFVLEdBQUcsQ0FBQyxDQUFDO2lCQUNuQyxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDcEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xFLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1lBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtZQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE1BQU0saUJBQWlCLEdBQXdCO1lBQzdDLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7U0FDM0MsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksaUJBQWlCLENBQUM7SUFDcEQsQ0FBQztJQUVELCtCQUErQjtJQUMvQixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLHFCQUFxQjtRQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3hJLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLGVBQWUsSUFBSSx5QkFBeUIsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdkYsT0FBTyxhQUFhLEdBQUcsQ0FBQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQU0sRUFBRSxNQUEwQjtRQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxHQUFNLEVBQUUsTUFBMEI7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBMEI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsR0FBRztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMzRSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyRixDQUFDO1FBQ0QsT0FBTyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBTTtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQTBCO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFN0IsSUFBSSxTQUFTLEdBQTBCLEtBQUssQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUN6QyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUc7WUFDbEIsU0FBUztTQUNWLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFNLEVBQUUsS0FBYSxFQUFFLEtBQWlCO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEdBQUc7WUFDSCxLQUFLO1lBQ0wsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBa0I7UUFDaEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBTSxFQUFFLEtBQWtCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFckMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBTTtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQ3pCLE1BQTJELEVBQzNELFVBQWM7UUFFZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDeEIsUUFBUTtZQUNSLFVBQVU7WUFDVixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRW5DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDeEMsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7WUFDckMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVuQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFFaEQsOENBQThDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsV0FBVztZQUNyQixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDOytHQWpYVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixzUEFqWW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtVlQsMnNYQTVWQyxZQUFZLHFNQUNaLFdBQVcsK0JBQ1gsU0FBUyxvUEFDVCxPQUFPLDJKQUNQLFdBQVcscU1BQ1gsVUFBVSx5R0FDVixTQUFTLGtWQUNULGVBQWU7OzRGQW1ZTixrQkFBa0I7a0JBL1k5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1WVDs4QkErQ1EsS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBpbmplY3QsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uSWNvbixcbiAgSW9uQ2hlY2tib3gsXG4gIElvblNwaW5uZXIsXG4gIElvblNlbGVjdCxcbiAgSW9uU2VsZWN0T3B0aW9uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hldnJvblVwT3V0bGluZSxcbiAgY2hldnJvbkRvd25PdXRsaW5lLFxuICBjaGV2cm9uQmFja091dGxpbmUsXG4gIGNoZXZyb25Gb3J3YXJkT3V0bGluZSxcbiAgZG9jdW1lbnRPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHtcbiAgRGF0YVRhYmxlTWV0YWRhdGEsXG4gIERhdGFUYWJsZUNvbHVtbixcbiAgRGF0YVRhYmxlU29ydCxcbiAgRGF0YVRhYmxlUm93Q2xpY2tFdmVudCxcbiAgRGF0YVRhYmxlU2VsZWN0aW9uQ2hhbmdlRXZlbnQsXG4gIERhdGFUYWJsZVNvcnRDaGFuZ2VFdmVudCxcbiAgRGF0YVRhYmxlUGFnZUNoYW5nZUV2ZW50LFxuICBEYXRhVGFibGVFbXB0eVN0YXRlLFxuICBERUZBVUxUX1BBR0VfU0laRV9PUFRJT05TLFxufSBmcm9tICcuL3R5cGVzJztcblxuYWRkSWNvbnMoe1xuICBjaGV2cm9uVXBPdXRsaW5lLFxuICBjaGV2cm9uRG93bk91dGxpbmUsXG4gIGNoZXZyb25CYWNrT3V0bGluZSxcbiAgY2hldnJvbkZvcndhcmRPdXRsaW5lLFxuICBkb2N1bWVudE91dGxpbmUsXG59KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRhdGEtdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgICBJb25DaGVja2JveCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicHJvcHMuYm9yZGVyZWRcIlxuICAgICAgW2NsYXNzLnN0cmlwZWRdPVwicHJvcHMuc3RyaXBlZFwiXG4gICAgICBbY2xhc3MuaG92ZXJhYmxlXT1cInByb3BzLmhvdmVyYWJsZSAhPT0gZmFsc2VcIlxuICAgICAgW2NsYXNzLnN0aWNreS1oZWFkZXJdPVwicHJvcHMuc3RpY2t5SGVhZGVyXCJcbiAgICAgIFtjbGFzcy5yZXNwb25zaXZlLWNhcmRzXT1cInByb3BzLnJlc3BvbnNpdmVNb2RlID09PSAnY2FyZHMnXCJcbiAgICAgIFtjbGFzcy5lbGV2YXRpb24tbm9uZV09XCJwcm9wcy5lbGV2YXRpb24gPT09ICdub25lJ1wiXG4gICAgICBbY2xhc3MuZWxldmF0aW9uLWxvd109XCJwcm9wcy5lbGV2YXRpb24gPT09ICdsb3cnXCJcbiAgICAgIFtjbGFzcy5lbGV2YXRpb24taGlnaF09XCJwcm9wcy5lbGV2YXRpb24gPT09ICdoaWdoJ1wiXG4gICAgICBbY2xhc3MuaGVhZGVyLWdyYWRpZW50XT1cInByb3BzLmhlYWRlckdyYWRpZW50XCJcbiAgICAgIFtjbGFzcy5jaGVja2JveC1jaXJjdWxhcl09XCJwcm9wcy5jaGVja2JveFN0eWxlID09PSAnY2lyY3VsYXInXCJcbiAgICAgIFtjbGFzcy5yb3ctaGlnaGxpZ2h0LWJvcmRlcl09XCJwcm9wcy5yb3dIaWdobGlnaHRTdHlsZSA9PT0gJ2JvcmRlci1sZWZ0J1wiXG4gICAgICBbY2xhc3Mucm93LWhpZ2hsaWdodC1ib3RoXT1cInByb3BzLnJvd0hpZ2hsaWdodFN0eWxlID09PSAnYm90aCdcIlxuICAgICAgW3N0eWxlLi0tbWF4LWhlaWdodF09XCJwcm9wcy5tYXhIZWlnaHRcIlxuICAgID5cbiAgICAgIDwhLS0gVG9vbGJhciBzbG90IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXRvb2xiYXJcIiAjdG9vbGJhckNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTG9hZGluZyBvdmVybGF5IC0tPlxuICAgICAgQGlmIChwcm9wcy5sb2FkaW5nU3RhdGU/LmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICAgIEBpZiAocHJvcHMubG9hZGluZ1N0YXRlPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvYWRpbmctbWVzc2FnZVwiPnt7IHByb3BzLmxvYWRpbmdTdGF0ZS5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCIgW2NsYXNzLmlzLWxvYWRpbmddPVwicHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nXCI+XG4gICAgICAgIDx0YWJsZVxuICAgICAgICAgIHJvbGU9XCJncmlkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb3BzLmFyaWFMYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHByb3BzLmNhcHRpb24pIHtcbiAgICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPVwic3Itb25seVwiPnt7IHByb3BzLmNhcHRpb24gfX08L2NhcHRpb24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8IS0tIFNlbGVjdGlvbiBjb2x1bW4gLS0+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlbGVjdGlvbkNvbHVtbiAmJiBwcm9wcy5zZWxlY3Rpb24/Lm1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJzZWxlY3Rpb24tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZWxlY3Rpb25Db2x1bW4gJiYgcHJvcHMuc2VsZWN0aW9uPy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cInNlbGVjdGlvbi1jZWxsXCI+PC90aD5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwhLS0gUm93IG51bWJlciBjb2x1bW4gLS0+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1Jvd051bWJlcnMpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJyb3ctbnVtYmVyLWNlbGxcIj4jPC90aD5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwhLS0gRGF0YSBjb2x1bW5zIC0tPlxuICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzcyhjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aF09XCJjb2x1bW4ubWF4V2lkdGhcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc29ydGVkXT1cImN1cnJlbnRTb3J0Py5jb2x1bW4gPT09IGNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zb3J0YWJsZSA/IG9uU29ydChjb2x1bW4pIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNvcnRdPVwiZ2V0QXJpYVNvcnQoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4uaGVhZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW4gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5zb3J0YWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzb3J0LWljb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjaGV2cm9uLXVwLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFNvcnQ/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJiBjdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnYXNjJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1kb3duLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFNvcnQ/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJiBjdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBBY3Rpb25zIGNvbHVtbiAtLT5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWNlbGxcIiBbc3R5bGUud2lkdGhdPVwicHJvcHMuYWN0aW9uc1dpZHRoIHx8ICcxMDBweCdcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldEFjdGlvbnNMYWJlbCgpIH19XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgQGlmIChkaXNwbGF5ZWREYXRhLmxlbmd0aCA9PT0gMCAmJiAhcHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nKSB7XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImVtcHR5LXJvd1wiPlxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cInRvdGFsQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS50ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVN0YXRlLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZW1wdHlTdGF0ZS5pY29uXCIgY2xhc3M9XCJlbXB0eS1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChlbXB0eVN0YXRlLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJlbXB0eS10aXRsZVwiPnt7IGVtcHR5U3RhdGUudGl0bGUgfX08L2g0PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGVtcHR5U3RhdGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktZGVzY3JpcHRpb25cIj57eyBlbXB0eVN0YXRlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBAZm9yIChyb3cgb2YgZGlzcGxheWVkRGF0YTsgdHJhY2sgdHJhY2tCeUZuKHJvdyk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5jbGlja2FibGVdPVwicHJvcHMucm93Q2xpY2thYmxlXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKHJvdywgaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3Rpb24gY2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NlbGVjdGlvbkNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJzZWxlY3Rpb24tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAocHJvcHMuc2VsZWN0aW9uPy5tb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzUm93U2VsZWN0ZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwidG9nZ2xlUm93U2VsZWN0aW9uKHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHByb3BzLnNlbGVjdGlvbj8ubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc1Jvd1NlbGVjdGVkKHJvdylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2luZ2xlUm93KHJvdyk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPCEtLSBSb3cgbnVtYmVyIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93Um93TnVtYmVycykge1xuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJyb3ctbnVtYmVyLWNlbGxcIj57eyBnZXRSb3dOdW1iZXIoaSkgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICA8IS0tIERhdGEgY2VsbHMgLS0+XG4gICAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldENvbHVtbkNsYXNzKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbHVtbi5hbGlnblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5jZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdywgY29sdW1uLCB2YWx1ZTogZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRGb3JtYXR0ZWRWYWx1ZShyb3csIGNvbHVtbikgfX1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9ucyBjZWxsIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYWN0aW9ucy1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByb3BzLmFjdGlvbnNUZW1wbGF0ZTsgY29udGV4dDogeyByb3csIGluZGV4OiBpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIENhcmQgdmlldyAocmVzcG9uc2l2ZSBtb2JpbGUpIC0tPlxuICAgICAgQGlmIChwcm9wcy5yZXNwb25zaXZlTW9kZSA9PT0gJ2NhcmRzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0XCI+XG4gICAgICAgICAgQGlmIChkaXNwbGF5ZWREYXRhLmxlbmd0aCA9PT0gMCAmJiAhcHJvcHMubG9hZGluZ1N0YXRlPy5sb2FkaW5nKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgQGlmIChlbXB0eVN0YXRlLmljb24pIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZW1wdHlTdGF0ZS5pY29uXCIgY2xhc3M9XCJlbXB0eS1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKGVtcHR5U3RhdGUudGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJlbXB0eS10aXRsZVwiPnt7IGVtcHR5U3RhdGUudGl0bGUgfX08L2g0PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoZW1wdHlTdGF0ZS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHktZGVzY3JpcHRpb25cIj57eyBlbXB0eVN0YXRlLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBkaXNwbGF5ZWREYXRhOyB0cmFjayB0cmFja0J5Rm4ocm93KTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5tb2JpbGVDYXJkVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvcHMubW9iaWxlQ2FyZFRlbXBsYXRlOyBjb250ZXh0OiB7IHJvdywgaW5kZXg6IGksIGNvbHVtbnM6IHZpc2libGVDb2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkYXRhLWNhcmRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzUm93U2VsZWN0ZWQocm93KVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cInByb3BzLnJvd0NsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhyb3csIGksICRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBoZWFkZXIgd2l0aCBzZWxlY3Rpb24gLS0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHByb3BzLnNob3dTZWxlY3Rpb25Db2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByb3BzLnNlbGVjdGlvbj8ubW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW9uQ2hhbmdlKT1cInRvZ2dsZVJvd1NlbGVjdGlvbihyb3csICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChwcm9wcy5zZWxlY3Rpb24/Lm1vZGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNSb3dTZWxlY3RlZChyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2luZ2xlUm93KHJvdyk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5zaG93Um93TnVtYmVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb3ctbnVtYmVyXCI+e3sgZ2V0Um93TnVtYmVyKGkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBib2R5IHdpdGggZmllbGRzIC0tPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjb2x1bW4gb2YgdmlzaWJsZUNvbHVtbnM7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWZpZWxkX19sYWJlbFwiPnt7IGNvbHVtbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1maWVsZF9fdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4uY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5jZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgcm93LCBjb2x1bW4sIHZhbHVlOiBnZXRDZWxsVmFsdWUocm93LCBjb2x1bW4pIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0Rm9ybWF0dGVkVmFsdWUocm93LCBjb2x1bW4pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gQ2FyZCBhY3Rpb25zIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9wcy5hY3Rpb25zVGVtcGxhdGU7IGNvbnRleHQ6IHsgcm93LCBpbmRleDogaSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBQYWdpbmF0aW9uIC0tPlxuICAgICAgQGlmIChwcm9wcy5zaG93UGFnaW5hdGlvbiAmJiBwcm9wcy5wYWdpbmF0aW9uKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWluZm9cIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7eyBnZXRQYWdpbmF0aW9uSW5mb1RleHQoKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICBAaWYgKHBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIDxpb24tc2VsZWN0XG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BzLnBhZ2luYXRpb24ucGFnZVNpemVcIlxuICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBpbnRlcmZhY2U9XCJwb3BvdmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2Utc2l6ZS1zZWxlY3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAoc2l6ZSBvZiBwYWdlU2l6ZU9wdGlvbnM7IHRyYWNrIHNpemUpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwic2l6ZVwiPnt7IGdldFBlclBhZ2VUZXh0KHNpemUpIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvaW9uLXNlbGVjdD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMucGFnaW5hdGlvbi5wYWdlID09PSAwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKDApXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRGaXJzdFBhZ2VMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWJhY2stb3V0bGluZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMnB4XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInByb3BzLnBhZ2luYXRpb24ucGFnZSA9PT0gMFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUGFnZShwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgLSAxKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0UHJldmlvdXNQYWdlTGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICB7eyBwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKyAxIH19IC8ge3sgdG90YWxQYWdlcyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMucGFnaW5hdGlvbi5wYWdlID49IHRvdGFsUGFnZXMgLSAxXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHByb3BzLnBhZ2luYXRpb24ucGFnZSArIDEpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXROZXh0UGFnZUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5wYWdpbmF0aW9uLnBhZ2UgPj0gdG90YWxQYWdlcyAtIDFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UodG90YWxQYWdlcyAtIDEpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRMYXN0UGFnZUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZC1vdXRsaW5lXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTEycHhcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWRhdGEtdGFibGVcbiAqXG4gKiBBIGZsZXhpYmxlIGRhdGEgdGFibGUgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIHRhYnVsYXIgZGF0YSB3aXRoIHNvcnRpbmcsXG4gKiBwYWdpbmF0aW9uLCBhbmQgc2VsZWN0aW9uIGZlYXR1cmVzLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWRhdGEtdGFibGVcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb2x1bW5zOiBbXG4gKiAgICAgICB7IGtleTogJ25hbWUnLCBsYWJlbDogJ05vbWJyZScsIHNvcnRhYmxlOiB0cnVlIH0sXG4gKiAgICAgICB7IGtleTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcgfSxcbiAqICAgICAgIHsga2V5OiAnc3RhdHVzJywgbGFiZWw6ICdFc3RhZG8nIH1cbiAqICAgICBdLFxuICogICAgIGRhdGE6IHVzZXJzXG4gKiAgIH1cIlxuICogPjwvdmFsLWRhdGEtdGFibGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHBhZ2luYXRpb24gYW5kIHNlbGVjdGlvblxuICogYGBgaHRtbFxuICogPHZhbC1kYXRhLXRhYmxlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgY29sdW1uczogY29sdW1ucyxcbiAqICAgICBkYXRhOiBwYXJ0aWNpcGFudHMsXG4gKiAgICAgc2hvd1BhZ2luYXRpb246IHRydWUsXG4gKiAgICAgcGFnaW5hdGlvbjoge1xuICogICAgICAgcGFnZTogMCxcbiAqICAgICAgIHBhZ2VTaXplOiAyNSxcbiAqICAgICAgIHRvdGFsOiB0b3RhbENvdW50XG4gKiAgICAgfSxcbiAqICAgICBzZWxlY3Rpb246IHtcbiAqICAgICAgIG1vZGU6ICdtdWx0aXBsZScsXG4gKiAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRQYXJ0aWNpcGFudHNcbiAqICAgICB9LFxuICogICAgIHNob3dTZWxlY3Rpb25Db2x1bW46IHRydWVcbiAqICAgfVwiXG4gKiAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gKiAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAqID48L3ZhbC1kYXRhLXRhYmxlPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHByb3BzOiBEYXRhVGFibGVNZXRhZGF0YTxUPjtcblxuICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZVJvd0NsaWNrRXZlbnQ8VD4+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFUYWJsZVNlbGVjdGlvbkNoYW5nZUV2ZW50PFQ+PigpO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlU29ydENoYW5nZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlUGFnZUNoYW5nZUV2ZW50PigpO1xuXG4gIGRpc3BsYXllZERhdGE6IFRbXSA9IFtdO1xuICBjdXJyZW50U29ydDogRGF0YVRhYmxlU29ydCB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RlZFJvd3M6IFNldDxhbnk+ID0gbmV3IFNldCgpO1xuXG4gIC8qKiBDYWNoZWQgdmlzaWJsZSBjb2x1bW5zIGZvciBwZXJmb3JtYW5jZSAqL1xuICBwcml2YXRlIF92aXNpYmxlQ29sdW1uczogRGF0YVRhYmxlQ29sdW1uPFQ+W10gPSBbXTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplU3RhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZERhdGEoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvcHMnXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplU3RhdGUoKTtcbiAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIC8vIENhY2hlIHZpc2libGUgY29sdW1ucyBmb3IgcGVyZm9ybWFuY2VcbiAgICB0aGlzLl92aXNpYmxlQ29sdW1ucyA9IHRoaXMucHJvcHMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUgIT09IGZhbHNlKTtcblxuICAgIC8vIEluaXRpYWxpemUgc29ydFxuICAgIHRoaXMuY3VycmVudFNvcnQgPSB0aGlzLnByb3BzLnNvcnQgfHwgbnVsbDtcblxuICAgIC8vIEluaXRpYWxpemUgc2VsZWN0aW9uXG4gICAgaWYgKHRoaXMucHJvcHMuc2VsZWN0aW9uPy5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSBuZXcgU2V0KFxuICAgICAgICB0aGlzLnByb3BzLnNlbGVjdGlvbi5zZWxlY3RlZC5tYXAocm93ID0+IHRoaXMuZ2V0Um93SWQocm93KSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5ZWREYXRhKCk6IHZvaWQge1xuICAgIGxldCBkYXRhID0gWy4uLnRoaXMucHJvcHMuZGF0YV07XG5cbiAgICAvLyBBcHBseSBjbGllbnQtc2lkZSBzb3J0aW5nXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50U29ydCAmJiB0aGlzLmN1cnJlbnRTb3J0KSB7XG4gICAgICBkYXRhID0gdGhpcy5zb3J0RGF0YShkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBjbGllbnQtc2lkZSBwYWdpbmF0aW9uXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50UGFnaW5hdGlvbiAmJiB0aGlzLnByb3BzLnBhZ2luYXRpb24pIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlU2l6ZTtcbiAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNvcnREYXRhKGRhdGE6IFRbXSk6IFRbXSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRTb3J0KSByZXR1cm4gZGF0YTtcblxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMucHJvcHMuY29sdW1ucy5maW5kKGMgPT4gYy5rZXkgPT09IHRoaXMuY3VycmVudFNvcnQ/LmNvbHVtbik7XG4gICAgaWYgKCFjb2x1bW4pIHJldHVybiBkYXRhO1xuXG4gICAgcmV0dXJuIFsuLi5kYXRhXS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICBpZiAoY29sdW1uLnNvcnRGbikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjb2x1bW4uc29ydEZuKGEsIGIpO1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYycgPyAtcmVzdWx0IDogcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZUEgPSB0aGlzLmdldENlbGxWYWx1ZShhLCBjb2x1bW4pO1xuICAgICAgY29uc3QgdmFsdWVCID0gdGhpcy5nZXRDZWxsVmFsdWUoYiwgY29sdW1uKTtcblxuICAgICAgbGV0IGNvbXBhcmlzb24gPSAwO1xuICAgICAgaWYgKHZhbHVlQSA9PSBudWxsICYmIHZhbHVlQiA9PSBudWxsKSBjb21wYXJpc29uID0gMDtcbiAgICAgIGVsc2UgaWYgKHZhbHVlQSA9PSBudWxsKSBjb21wYXJpc29uID0gMTtcbiAgICAgIGVsc2UgaWYgKHZhbHVlQiA9PSBudWxsKSBjb21wYXJpc29uID0gLTE7XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWVBID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWVCID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb21wYXJpc29uID0gdmFsdWVBLmxvY2FsZUNvbXBhcmUodmFsdWVCKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBhcmlzb24gPSB2YWx1ZUEgPCB2YWx1ZUIgPyAtMSA6IHZhbHVlQSA+IHZhbHVlQiA/IDEgOiAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydD8uZGlyZWN0aW9uID09PSAnZGVzYycgPyAtY29tcGFyaXNvbiA6IGNvbXBhcmlzb247XG4gICAgfSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZUNvbHVtbnMoKTogRGF0YVRhYmxlQ29sdW1uPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1ucztcbiAgfVxuXG4gIGdldCB0b3RhbENvbHVtbnMoKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSB0aGlzLnZpc2libGVDb2x1bW5zLmxlbmd0aDtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93U2VsZWN0aW9uQ29sdW1uKSBjb3VudCsrO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dSb3dOdW1iZXJzKSBjb3VudCsrO1xuICAgIGlmICh0aGlzLnByb3BzLmFjdGlvbnNUZW1wbGF0ZSkgY291bnQrKztcbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBnZXQgZW1wdHlTdGF0ZSgpOiBEYXRhVGFibGVFbXB0eVN0YXRlIHtcbiAgICBjb25zdCBkZWZhdWx0RW1wdHlTdGF0ZTogRGF0YVRhYmxlRW1wdHlTdGF0ZSA9IHtcbiAgICAgIGljb246ICdkb2N1bWVudC1vdXRsaW5lJyxcbiAgICAgIHRpdGxlOiB0aGlzLmkxOG4udCgnbm9EYXRhJyksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5pMThuLnQoJ25vUmVjb3Jkc0ZvdW5kJyksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbXB0eVN0YXRlIHx8IGRlZmF1bHRFbXB0eVN0YXRlO1xuICB9XG5cbiAgLyoqIEdldCBhY3Rpb25zIGNvbHVtbiBsYWJlbCAqL1xuICBnZXRBY3Rpb25zTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hY3Rpb25zTGFiZWwgfHwgdGhpcy5pMThuLnQoJ2FjdGlvbnMnKTtcbiAgfVxuXG4gIC8qKiBHZXQgcGFnaW5hdGlvbiBpbmZvIHRleHQgKi9cbiAgZ2V0UGFnaW5hdGlvbkluZm9UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaTE4bi50KCdzaG93aW5nJyl9ICR7dGhpcy5wYWdpbmF0aW9uU3RhcnR9LSR7dGhpcy5wYWdpbmF0aW9uRW5kfSAke3RoaXMuaTE4bi50KCdvZicpfSAke3RoaXMucHJvcHMucGFnaW5hdGlvbj8udG90YWx9YDtcbiAgfVxuXG4gIC8qKiBHZXQgcGVyIHBhZ2UgdGV4dCAqL1xuICBnZXRQZXJQYWdlVGV4dChzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzaXplfSAke3RoaXMuaTE4bi50KCdwZXJQYWdlJyl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgZmlyc3QgcGFnZSBhcmlhIGxhYmVsICovXG4gIGdldEZpcnN0UGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdmaXJzdFBhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgcHJldmlvdXMgcGFnZSBhcmlhIGxhYmVsICovXG4gIGdldFByZXZpb3VzUGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwcmV2aW91c1BhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgbmV4dCBwYWdlIGFyaWEgbGFiZWwgKi9cbiAgZ2V0TmV4dFBhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbmV4dFBhZ2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgbGFzdCBwYWdlIGFyaWEgbGFiZWwgKi9cbiAgZ2V0TGFzdFBhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbGFzdFBhZ2UnKTtcbiAgfVxuXG4gIGdldCBwYWdlU2l6ZU9wdGlvbnMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBhZ2luYXRpb24/LnBhZ2VTaXplT3B0aW9ucyB8fCBERUZBVUxUX1BBR0VfU0laRV9PUFRJT05TO1xuICB9XG5cbiAgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuIDE7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnByb3BzLnBhZ2luYXRpb24udG90YWwgLyB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUpO1xuICB9XG5cbiAgZ2V0IHBhZ2luYXRpb25TdGFydCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5wcm9wcy5wYWdpbmF0aW9uKSByZXR1cm4gMTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgKyAxO1xuICB9XG5cbiAgZ2V0IHBhZ2luYXRpb25FbmQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuIHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGg7XG4gICAgcmV0dXJuIE1hdGgubWluKFxuICAgICAgKHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlICsgMSkgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUsXG4gICAgICB0aGlzLnByb3BzLnBhZ2luYXRpb24udG90YWxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWREYXRhLmV2ZXJ5KHJvdyA9PiB0aGlzLmlzUm93U2VsZWN0ZWQocm93KSk7XG4gIH1cblxuICBnZXQgaXNJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ291bnQgPSB0aGlzLmRpc3BsYXllZERhdGEuZmlsdGVyKHJvdyA9PiB0aGlzLmlzUm93U2VsZWN0ZWQocm93KSkubGVuZ3RoO1xuICAgIHJldHVybiBzZWxlY3RlZENvdW50ID4gMCAmJiBzZWxlY3RlZENvdW50IDwgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aDtcbiAgfVxuXG4gIGdldENlbGxWYWx1ZShyb3c6IFQsIGNvbHVtbjogRGF0YVRhYmxlQ29sdW1uPFQ+KTogYW55IHtcbiAgICBjb25zdCBmaWVsZCA9IGNvbHVtbi5maWVsZCB8fCBjb2x1bW4ua2V5O1xuICAgIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgob2JqOiBhbnksIGtleSkgPT4gb2JqPy5ba2V5XSwgcm93KTtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFZhbHVlKHJvdzogVCwgY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRDZWxsVmFsdWUocm93LCBjb2x1bW4pO1xuICAgIGlmIChjb2x1bW4uZm9ybWF0KSB7XG4gICAgICByZXR1cm4gY29sdW1uLmZvcm1hdCh2YWx1ZSwgcm93KTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlID8/ICcnO1xuICB9XG5cbiAgZ2V0Q29sdW1uQ2xhc3MoY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbY29sdW1uLmNzc0NsYXNzIHx8ICcnXTtcbiAgICBpZiAoY29sdW1uLnN0aWNreSkge1xuICAgICAgY2xhc3Nlcy5wdXNoKGBzdGlja3ktJHtjb2x1bW4uc3RpY2t5fWApO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLmFsaWduKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYGFsaWduLSR7Y29sdW1uLmFsaWdufWApO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9XG5cbiAgZ2V0QXJpYVNvcnQoY29sdW1uOiBEYXRhVGFibGVDb2x1bW48VD4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNvbHVtbi5zb3J0YWJsZSkgcmV0dXJuIG51bGw7XG4gICAgaWYgKHRoaXMuY3VycmVudFNvcnQ/LmNvbHVtbiAhPT0gY29sdW1uLmtleSkgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydC5kaXJlY3Rpb24gPT09ICdhc2MnID8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZyc7XG4gIH1cblxuICBnZXRSb3dOdW1iZXIoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLnByb3BzLnJvd051bWJlclN0YXJ0ID8/IDE7XG4gICAgaWYgKHRoaXMucHJvcHMucGFnaW5hdGlvbikge1xuICAgICAgcmV0dXJuIHN0YXJ0ICsgdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgKiB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgKyBpbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXJ0ICsgaW5kZXg7XG4gIH1cblxuICBnZXRSb3dJZChyb3c6IFQpOiBhbnkge1xuICAgIGlmICh0aGlzLnByb3BzLnNlbGVjdGlvbj8udHJhY2tCeSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuc2VsZWN0aW9uLnRyYWNrQnkocm93KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdztcbiAgfVxuXG4gIHRyYWNrQnlGbihyb3c6IFQpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldFJvd0lkKHJvdyk7XG4gIH1cblxuICBpc1Jvd1NlbGVjdGVkKHJvdzogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93cy5oYXModGhpcy5nZXRSb3dJZChyb3cpKTtcbiAgfVxuXG4gIG9uU29ydChjb2x1bW46IERhdGFUYWJsZUNvbHVtbjxUPik6IHZvaWQge1xuICAgIGlmICghY29sdW1uLnNvcnRhYmxlKSByZXR1cm47XG5cbiAgICBsZXQgZGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSAnYXNjJztcblxuICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0Py5jb2x1bW4gPT09IGNvbHVtbi5rZXkpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0LmRpcmVjdGlvbiA9PT0gJ2FzYycpIHtcbiAgICAgICAgZGlyZWN0aW9uID0gJ2Rlc2MnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlyZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGlyZWN0aW9uKSB7XG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0geyBjb2x1bW46IGNvbHVtbi5rZXksIGRpcmVjdGlvbiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRTb3J0ID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XG4gICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICBkaXJlY3Rpb24sXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGllbnRTb3J0KSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc3BsYXllZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBvblJvd0NsaWNrKHJvdzogVCwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucm93Q2xpY2thYmxlKSByZXR1cm47XG5cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoe1xuICAgICAgcm93LFxuICAgICAgaW5kZXgsXG4gICAgICBldmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XG5cbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHRoaXMuZ2V0Um93SWQocm93KSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZGVsZXRlKHRoaXMuZ2V0Um93SWQocm93KSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoY2hlY2tlZCA/ICdzZWxlY3RBbGwnIDogJ2Rlc2VsZWN0QWxsJyk7XG4gIH1cblxuICB0b2dnbGVSb3dTZWxlY3Rpb24ocm93OiBULCBldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByb3dJZCA9IHRoaXMuZ2V0Um93SWQocm93KTtcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuZGV0YWlsLmNoZWNrZWQ7XG5cbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHJvd0lkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZGVsZXRlKHJvd0lkKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoY2hlY2tlZCA/ICdzZWxlY3QnIDogJ2Rlc2VsZWN0Jywgcm93KTtcbiAgfVxuXG4gIHNlbGVjdFNpbmdsZVJvdyhyb3c6IFQpOiB2b2lkIHtcbiAgICBjb25zdCByb3dJZCA9IHRoaXMuZ2V0Um93SWQocm93KTtcbiAgICBjb25zdCB3YXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzLmhhcyhyb3dJZCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkUm93cy5jbGVhcigpO1xuXG4gICAgaWYgKCF3YXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuYWRkKHJvd0lkKTtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgnc2VsZWN0Jywgcm93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCdkZXNlbGVjdCcsIHJvdyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlKFxuICAgIGFjdGlvbjogJ3NlbGVjdCcgfCAnZGVzZWxlY3QnIHwgJ3NlbGVjdEFsbCcgfCAnZGVzZWxlY3RBbGwnLFxuICAgIGNoYW5nZWRSb3c/OiBUXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5wcm9wcy5kYXRhLmZpbHRlcihyb3cgPT4gdGhpcy5pc1Jvd1NlbGVjdGVkKHJvdykpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZCxcbiAgICAgIGNoYW5nZWRSb3csXG4gICAgICBhY3Rpb24sXG4gICAgfSk7XG4gIH1cblxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2U7XG4gICAgY29uc3QgbWF4UGFnZSA9IHRoaXMudG90YWxQYWdlcyAtIDE7XG4gICAgY29uc3QgbmV3UGFnZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKHBhZ2UsIG1heFBhZ2UpKTtcblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHtcbiAgICAgIHBhZ2U6IG5ld1BhZ2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgcHJldmlvdXNQYWdlLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xpZW50UGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2UgPSBuZXdQYWdlO1xuICAgICAgdGhpcy51cGRhdGVEaXNwbGF5ZWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucGFnaW5hdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3UGFnZVNpemUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2U7XG5cbiAgICAvLyBSZWNhbGN1bGF0ZSBwYWdlIHRvIGtlZXAgZmlyc3QgdmlzaWJsZSBpdGVtXG4gICAgY29uc3QgZmlyc3RJdGVtID0gcHJldmlvdXNQYWdlICogdGhpcy5wcm9wcy5wYWdpbmF0aW9uLnBhZ2VTaXplO1xuICAgIGNvbnN0IG5ld1BhZ2UgPSBNYXRoLmZsb29yKGZpcnN0SXRlbSAvIG5ld1BhZ2VTaXplKTtcblxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHtcbiAgICAgIHBhZ2U6IG5ld1BhZ2UsXG4gICAgICBwYWdlU2l6ZTogbmV3UGFnZVNpemUsXG4gICAgICBwcmV2aW91c1BhZ2UsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbGllbnRQYWdpbmF0aW9uKSB7XG4gICAgICB0aGlzLnByb3BzLnBhZ2luYXRpb24ucGFnZVNpemUgPSBuZXdQYWdlU2l6ZTtcbiAgICAgIHRoaXMucHJvcHMucGFnaW5hdGlvbi5wYWdlID0gbmV3UGFnZTtcbiAgICAgIHRoaXMudXBkYXRlRGlzcGxheWVkRGF0YSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -5,6 +5,7 @@ import { addIcons } from 'ionicons';
|
|
|
5
5
|
import { chevronBackOutline } from 'ionicons/icons';
|
|
6
6
|
import { AvatarComponent } from '../../atoms/avatar/avatar.component';
|
|
7
7
|
import { ImageComponent } from '../../atoms/image/image.component';
|
|
8
|
+
import { LanguageSelectorComponent } from '../../molecules/language-selector/language-selector.component';
|
|
8
9
|
import { ToolbarActionType } from '../../types';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@ionic/angular";
|
|
@@ -70,6 +71,16 @@ export class ToolbarComponent {
|
|
|
70
71
|
leftActions() {
|
|
71
72
|
return this.props.actions.filter(x => x.position === 'left');
|
|
72
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Language selector props with 'icon' mode as default for toolbar display.
|
|
76
|
+
*/
|
|
77
|
+
get languageSelectorProps() {
|
|
78
|
+
return {
|
|
79
|
+
mode: 'icon',
|
|
80
|
+
color: this.props.textColor || 'dark',
|
|
81
|
+
...this.props.languageSelector,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
73
84
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.NavController }, { token: i2.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
85
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToolbarComponent, isStandalone: true, selector: "val-toolbar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
|
|
75
86
|
<ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
|
|
@@ -104,6 +115,9 @@ export class ToolbarComponent {
|
|
|
104
115
|
>{{ action.description }}</ion-button
|
|
105
116
|
>
|
|
106
117
|
</ng-container>
|
|
118
|
+
@if (props.languageSelector) {
|
|
119
|
+
<val-language-selector [props]="languageSelectorProps"></val-language-selector>
|
|
120
|
+
}
|
|
107
121
|
@if (props.withMenu) {
|
|
108
122
|
<ion-menu-button color="dark"></ion-menu-button>
|
|
109
123
|
}
|
|
@@ -133,7 +147,7 @@ export class ToolbarComponent {
|
|
|
133
147
|
<!-- experimental -->
|
|
134
148
|
<ng-content select="[toolbar-bottom]"></ng-content>
|
|
135
149
|
</ion-toolbar>
|
|
136
|
-
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }] }); }
|
|
150
|
+
`, isInline: true, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: LanguageSelectorComponent, selector: "val-language-selector", inputs: ["props"], outputs: ["languageChange"] }] }); }
|
|
137
151
|
}
|
|
138
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToolbarComponent, decorators: [{
|
|
139
153
|
type: Component,
|
|
@@ -148,6 +162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
148
162
|
AvatarComponent,
|
|
149
163
|
ImageComponent,
|
|
150
164
|
IonMenuButton,
|
|
165
|
+
LanguageSelectorComponent,
|
|
151
166
|
], template: `
|
|
152
167
|
<ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
|
|
153
168
|
<ng-container *ngIf="props.withBack">
|
|
@@ -181,6 +196,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
181
196
|
>{{ action.description }}</ion-button
|
|
182
197
|
>
|
|
183
198
|
</ng-container>
|
|
199
|
+
@if (props.languageSelector) {
|
|
200
|
+
<val-language-selector [props]="languageSelectorProps"></val-language-selector>
|
|
201
|
+
}
|
|
184
202
|
@if (props.withMenu) {
|
|
185
203
|
<ion-menu-button color="dark"></ion-menu-button>
|
|
186
204
|
}
|
|
@@ -216,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
216
234
|
}], onClick: [{
|
|
217
235
|
type: Output
|
|
218
236
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGFBQWEsRUFDYixPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUcvRDs7Ozs7Ozs7Ozs7R0FXRztBQWlGSCxNQUFNLE9BQU8sZ0JBQWdCO0lBZTNCLFlBQ1UsT0FBc0IsRUFDOUIsSUFBaUI7UUFEVCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBVGhDOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckMsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQU05QixRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRWI7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7K0dBakVVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG9JQWpFakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOERULGt1RkF6RUMsWUFBWSxnUUFDWixVQUFVLG1GQUNWLFVBQVUsOEVBQ1YsU0FBUyxvUEFDVCxPQUFPLDJKQUNQLE9BQU8sZ0ZBQ1AsUUFBUSxpRkFDUixlQUFlLDBHQUNmLGNBQWMseUVBQ2QsYUFBYTs7NEZBbUVKLGdCQUFnQjtrQkFoRjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOERUOzRHQVFELEtBQUs7c0JBREosS0FBSztnQkFPTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uSWNvbixcbiAgSW9uTWVudUJ1dHRvbixcbiAgSW9uVGV4dCxcbiAgSW9uVGl0bGUsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uQmFja091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbGJhckFjdGlvbiwgVG9vbGJhckFjdGlvblR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBUb29sYmFyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUb29sYmFyQ29tcG9uZW50XG4gKlxuICogQ29tcG9uZW50ZSBkZSBiYXJyYSBkZSBoZXJyYW1pZW50YXMgcmV1dGlsaXphYmxlIHBhcmEgZW5jYWJlemFkb3MgeSBwaWVzIGRlIHDDoWdpbmEuXG4gKiBQZXJtaXRlIGFjY2lvbmVzLCBib3TDs24gZGUgcmV0cm9jZXNvLCBtZW7DuiB5IHBlcnNvbmFsaXphY2nDs24gZGUgY29sb3JlcyB5IHTDrXR1bG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtdG9vbGJhciBbcHJvcHNdPVwieyB0aXRsZTogJ01pIEFwcCcsIHdpdGhCYWNrOiB0cnVlLCBhY3Rpb25zOiBbLi4uXSB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlVG9vbGJhckFjdGlvbigkZXZlbnQpXCI+PC92YWwtdG9vbGJhcj5cbiAqXG4gKiBAaW5wdXQgcHJvcHMge1Rvb2xiYXJNZXRhZGF0YX0gLSBNZXRhZGF0b3MgZGUgbGEgYmFycmEgZGUgaGVycmFtaWVudGFzLlxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdG9vbGJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25JY29uLFxuICAgIElvblRleHQsXG4gICAgSW9uVGl0bGUsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIElvbk1lbnVCdXR0b24sXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi10b29sYmFyIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiIFtjbGFzcy5iYWNrZ3JvdW5kXT1cInByb3BzLmNvbG9yID09PSAnYmFja2dyb3VuZCdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy53aXRoQmFja1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgY2xhc3M9XCJsZWZ0LWJ1dHRvbnNcIiBzbG90PVwic3RhcnRcIiAqbmdJZj1cInByb3BzLndpdGhCYWNrXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgKGNsaWNrKT1cImdvQmFjaygpXCIgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDhweDtcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIiBbc2xvdF09XCJwcm9wcy5iYWNrVGV4dCA/ICdzdGFydCcgOiAnaWNvbi1vbmx5J1wiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLXRleHQgKm5nSWY9XCJwcm9wcy5iYWNrVGV4dFwiPnt7IHByb3BzLmJhY2tUZXh0IH19PC9pb24tdGV4dD5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wcy53aXRoQWN0aW9uc1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwic29tZUluUmlnaHQoKSB8fCBwcm9wcy53aXRoTWVudVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByaWdodEFjdGlvbnMoKVwiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgICAgPnt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fTwvaW9uLWJ1dHRvblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIEBpZiAocHJvcHMud2l0aE1lbnUpIHtcbiAgICAgICAgICAgIDxpb24tbWVudS1idXR0b24gY29sb3I9XCJkYXJrXCI+PC9pb24tbWVudS1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJzb21lSW5MZWZ0KClcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNHB4O1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBsZWZ0QWN0aW9ucygpXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JQ09OXCIgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCIgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8dmFsLWF2YXRhclxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBpbWFnZTogYWN0aW9uLmRlc2NyaXB0aW9uLCBkZWZhdWx0OiAnJyB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSU1BR0VcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwiYWN0aW9uLmltYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1pbWFnZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiPnt7XG4gICAgICAgICAgICAgIGFjdGlvbi5kZXNjcmlwdGlvblxuICAgICAgICAgICAgfX08L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxpb24tdGl0bGUgKm5nSWY9XCJwcm9wcy50aXRsZVwiIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIj57eyBwcm9wcy50aXRsZSB9fTwvaW9uLXRpdGxlPlxuICAgICAgPCEtLSBleHBlcmltZW50YWwgLS0+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbGJhci1ib3R0b21dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvaW9uLXRvb2xiYXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBNZXRhZGF0b3MgZGUgbGEgYmFycmEgZGUgaGVycmFtaWVudGFzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IFRvb2xiYXJNZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnRvIGVtaXRpZG8gYWwgaGFjZXIgY2xpY2sgZW4gdW5hIGFjY2nDs24gbyBib3TDs24gZGUgbGEgYmFycmEuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGFjdGlvblR5cGVzID0gVG9vbGJhckFjdGlvblR5cGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyLFxuICAgIGljb246IEljb25TZXJ2aWNlXG4gICkge1xuICAgIGFkZEljb25zKHsgY2hldnJvbkJhY2tPdXRsaW5lIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIC8qKlxuICAgKiBFbWl0ZSBlbCB0b2tlbiBkZSBsYSBhY2Npw7NuIGNsaWNhZGEuXG4gICAqIEBwYXJhbSB0b2tlbiBUb2tlbiBkZSBsYSBhY2Npw7NuXG4gICAqL1xuICBjbGlja0hhbmRsZXIodG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogTmF2ZWdhIGhhY2lhIGF0csOhcyB1c2FuZG8gTmF2Q29udHJvbGxlci5cbiAgICovXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLm5hdkN0cmwuYmFjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluYSBzaSBoYXkgYWNjaW9uZXMgYSBsYSBkZXJlY2hhLlxuICAgKi9cbiAgc29tZUluUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5hY3Rpb25zLmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSAncmlnaHQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmEgc2kgaGF5IGFjY2lvbmVzIGEgbGEgaXpxdWllcmRhLlxuICAgKi9cbiAgc29tZUluTGVmdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnByb3BzLmFjdGlvbnMuZmluZCh4ID0+IHgucG9zaXRpb24gPT09ICdsZWZ0Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGV2dWVsdmUgbGFzIGFjY2lvbmVzIGRlIGxhIGRlcmVjaGEuXG4gICAqL1xuICByaWdodEFjdGlvbnMoKTogVG9vbGJhckFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hY3Rpb25zLmZpbHRlcih4ID0+IHgucG9zaXRpb24gPT09ICdyaWdodCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldnVlbHZlIGxhcyBhY2Npb25lcyBkZSBsYSBpenF1aWVyZGEuXG4gICAqL1xuICBsZWZ0QWN0aW9ucygpOiBUb29sYmFyQWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmFjdGlvbnMuZmlsdGVyKHggPT4geC5wb3NpdGlvbiA9PT0gJ2xlZnQnKTtcbiAgfVxufVxuIl19
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGFBQWEsRUFDYixPQUFPLEVBQ1AsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMxRyxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQUcvRDs7Ozs7Ozs7Ozs7R0FXRztBQXFGSCxNQUFNLE9BQU8sZ0JBQWdCO0lBZTNCLFlBQ1UsT0FBc0IsRUFDOUIsSUFBaUI7UUFEVCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBVGhDOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFckMsZ0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQU05QixRQUFRLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRWI7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUkscUJBQXFCO1FBQ3ZCLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBZTtZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNyQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO1NBQy9CLENBQUM7SUFDSixDQUFDOytHQTVFVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixvSUFwRWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFVCxrdUZBN0VDLFlBQVksZ1FBQ1osVUFBVSxtRkFDVixVQUFVLDhFQUNWLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxPQUFPLGdGQUNQLFFBQVEsaUZBQ1IsZUFBZSwwR0FDZixjQUFjLHlFQUNkLGFBQWEsK0hBQ2IseUJBQXlCOzs0RkFzRWhCLGdCQUFnQjtrQkFwRjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsVUFBVTt3QkFDVixTQUFTO3dCQUNULE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLHlCQUF5QjtxQkFDMUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7NEdBUUQsS0FBSztzQkFESixLQUFLO2dCQU9OLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25JY29uLFxuICBJb25NZW51QnV0dG9uLFxuICBJb25UZXh0LFxuICBJb25UaXRsZSxcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNoZXZyb25CYWNrT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQWN0aW9uLCBUb29sYmFyQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFRvb2xiYXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRvb2xiYXJDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIGRlIGJhcnJhIGRlIGhlcnJhbWllbnRhcyByZXV0aWxpemFibGUgcGFyYSBlbmNhYmV6YWRvcyB5IHBpZXMgZGUgcMOhZ2luYS5cbiAqIFBlcm1pdGUgYWNjaW9uZXMsIGJvdMOzbiBkZSByZXRyb2Nlc28sIG1lbsO6IHkgcGVyc29uYWxpemFjacOzbiBkZSBjb2xvcmVzIHkgdMOtdHVsby5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC10b29sYmFyIFtwcm9wc109XCJ7IHRpdGxlOiAnTWkgQXBwJywgd2l0aEJhY2s6IHRydWUsIGFjdGlvbnM6IFsuLi5dIH1cIiAob25DbGljayk9XCJoYW5kbGVUb29sYmFyQWN0aW9uKCRldmVudClcIj48L3ZhbC10b29sYmFyPlxuICpcbiAqIEBpbnB1dCBwcm9wcyB7VG9vbGJhck1ldGFkYXRhfSAtIE1ldGFkYXRvcyBkZSBsYSBiYXJyYSBkZSBoZXJyYW1pZW50YXMuXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0ZSBlbCB0b2tlbiBkZSBsYSBhY2Npw7NuIGNsaWNhZGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC10b29sYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uVGV4dCxcbiAgICBJb25UaXRsZSxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgSW9uTWVudUJ1dHRvbixcbiAgICBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tdG9vbGJhciBbY29sb3JdPVwicHJvcHMuY29sb3JcIiBbY2xhc3MuYmFja2dyb3VuZF09XCJwcm9wcy5jb2xvciA9PT0gJ2JhY2tncm91bmQnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcHMud2l0aEJhY2tcIj5cbiAgICAgICAgPGlvbi1idXR0b25zIGNsYXNzPVwibGVmdC1idXR0b25zXCIgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJwcm9wcy53aXRoQmFja1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIChjbGljayk9XCJnb0JhY2soKVwiIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA4cHg7XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tYmFjay1vdXRsaW5lXCIgW3Nsb3RdPVwicHJvcHMuYmFja1RleHQgPyAnc3RhcnQnIDogJ2ljb24tb25seSdcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwicHJvcHMuYmFja1RleHRcIj57eyBwcm9wcy5iYWNrVGV4dCB9fTwvaW9uLXRleHQ+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcHMud2l0aEFjdGlvbnNcIj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIiAqbmdJZj1cInNvbWVJblJpZ2h0KCkgfHwgcHJvcHMud2l0aE1lbnVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmlnaHRBY3Rpb25zKClcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkFWQVRBUlwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5JTUFHRVwiXG4gICAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgW2NvbG9yXT1cInByb3BzLnRleHRDb2xvclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLkJVVFRPTlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICAgID57eyBhY3Rpb24uZGVzY3JpcHRpb24gfX08L2lvbi1idXR0b25cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhbmd1YWdlU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIDx2YWwtbGFuZ3VhZ2Utc2VsZWN0b3IgW3Byb3BzXT1cImxhbmd1YWdlU2VsZWN0b3JQcm9wc1wiPjwvdmFsLWxhbmd1YWdlLXNlbGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzLndpdGhNZW51KSB7XG4gICAgICAgICAgICA8aW9uLW1lbnUtYnV0dG9uIGNvbG9yPVwiZGFya1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiICpuZ0lmPVwic29tZUluTGVmdCgpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDRweDtcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgbGVmdEFjdGlvbnMoKVwiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIFtjb2xvcl09XCJwcm9wcy50ZXh0Q29sb3JcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIiAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKGFjdGlvbi50b2tlbilcIj57e1xuICAgICAgICAgICAgICBhY3Rpb24uZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH19PC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLXRpdGxlICpuZ0lmPVwicHJvcHMudGl0bGVcIiBbY29sb3JdPVwicHJvcHMudGV4dENvbG9yXCI+e3sgcHJvcHMudGl0bGUgfX08L2lvbi10aXRsZT5cbiAgICAgIDwhLS0gZXhwZXJpbWVudGFsIC0tPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Rvb2xiYXItYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICA8L2lvbi10b29sYmFyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogTWV0YWRhdG9zIGRlIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBUb29sYmFyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50byBlbWl0aWRvIGFsIGhhY2VyIGNsaWNrIGVuIHVuYSBhY2Npw7NuIG8gYm90w7NuIGRlIGxhIGJhcnJhLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBhY3Rpb25UeXBlcyA9IFRvb2xiYXJBY3Rpb25UeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBpY29uOiBJY29uU2VydmljZVxuICApIHtcbiAgICBhZGRJY29ucyh7IGNoZXZyb25CYWNrT3V0bGluZSB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICAvKipcbiAgICogRW1pdGUgZWwgdG9rZW4gZGUgbGEgYWNjacOzbiBjbGljYWRhLlxuICAgKiBAcGFyYW0gdG9rZW4gVG9rZW4gZGUgbGEgYWNjacOzblxuICAgKi9cbiAgY2xpY2tIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQodG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmVnYSBoYWNpYSBhdHLDoXMgdXNhbmRvIE5hdkNvbnRyb2xsZXIuXG4gICAqL1xuICBnb0JhY2soKSB7XG4gICAgdGhpcy5uYXZDdHJsLmJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmEgc2kgaGF5IGFjY2lvbmVzIGEgbGEgZGVyZWNoYS5cbiAgICovXG4gIHNvbWVJblJpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMuYWN0aW9ucy5maW5kKHggPT4geC5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5hIHNpIGhheSBhY2Npb25lcyBhIGxhIGl6cXVpZXJkYS5cbiAgICovXG4gIHNvbWVJbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5wcm9wcy5hY3Rpb25zLmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSAnbGVmdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldnVlbHZlIGxhcyBhY2Npb25lcyBkZSBsYSBkZXJlY2hhLlxuICAgKi9cbiAgcmlnaHRBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWN0aW9ucy5maWx0ZXIoeCA9PiB4LnBvc2l0aW9uID09PSAncmlnaHQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBsYXMgYWNjaW9uZXMgZGUgbGEgaXpxdWllcmRhLlxuICAgKi9cbiAgbGVmdEFjdGlvbnMoKTogVG9vbGJhckFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5hY3Rpb25zLmZpbHRlcih4ID0+IHgucG9zaXRpb24gPT09ICdsZWZ0Jyk7XG4gIH1cblxuICAvKipcbiAgICogTGFuZ3VhZ2Ugc2VsZWN0b3IgcHJvcHMgd2l0aCAnaWNvbicgbW9kZSBhcyBkZWZhdWx0IGZvciB0b29sYmFyIGRpc3BsYXkuXG4gICAqL1xuICBnZXQgbGFuZ3VhZ2VTZWxlY3RvclByb3BzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtb2RlOiAnaWNvbicgYXMgY29uc3QsXG4gICAgICBjb2xvcjogdGhpcy5wcm9wcy50ZXh0Q29sb3IgfHwgJ2RhcmsnLFxuICAgICAgLi4udGhpcy5wcm9wcy5sYW5ndWFnZVNlbGVjdG9yLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGlwb3MgeSBtZXRhZGF0b3MgcGFyYSBlbCBjb21wb25lbnRlIFRvb2xiYXJDb21wb25lbnQuXG4gKiBQZXJtaXRlbiBkZWZpbmlyIGVsIHTDrXR1bG8sIGFjY2lvbmVzLCBjb2xvcmVzIHkgb3BjaW9uZXMgZGUgbmF2ZWdhY2nDs24gZGUgbGEgYmFycmEgZGUgaGVycmFtaWVudGFzLlxuICovXG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvdHlwZXMnO1xuXG4vKipcbiAqIE1ldGFkYXRvcyBwYXJhIGxhIGJhcnJhIGRlIGhlcnJhbWllbnRhcy5cbiAqIEBwcm9wZXJ0eSB3aXRoQmFjayBTaSBtdWVzdHJhIGJvdMOzbiBkZSByZXRyb2Nlc28uXG4gKiBAcHJvcGVydHkgd2l0aE1lbnUgKG9wY2lvbmFsKSBTaSBtdWVzdHJhIGJvdMOzbiBkZSBtZW7Dui5cbiAqIEBwcm9wZXJ0eSBiYWNrVGV4dCAob3BjaW9uYWwpIFRleHRvIGRlbCBib3TDs24gZGUgcmV0cm9jZXNvLlxuICogQHByb3BlcnR5IHdpdGhBY3Rpb25zIFNpIG11ZXN0cmEgYWNjaW9uZXMuXG4gKiBAcHJvcGVydHkgY29sb3IgKG9wY2lvbmFsKSBDb2xvciBkZSBmb25kby5cbiAqIEBwcm9wZXJ0eSB0ZXh0Q29sb3IgKG9wY2lvbmFsKSBDb2xvciBkZWwgdGV4dG8uXG4gKiBAcHJvcGVydHkgdGl0bGUgVMOtdHVsbyBkZSBsYSBiYXJyYS5cbiAqIEBwcm9wZXJ0eSBhY3Rpb25zIEFjY2lvbmVzIGRpc3BvbmlibGVzIGVuIGxhIGJhcnJhLlxuICogQHByb3BlcnR5IGxhbmd1YWdlU2VsZWN0b3IgKG9wY2lvbmFsKSBDb25maWd1cmFjacOzbiBkZWwgc2VsZWN0b3IgZGUgaWRpb21hLlxuICovXG5leHBvcnQgdHlwZSBUb29sYmFyTWV0YWRhdGEgPSB7XG4gIHdpdGhCYWNrOiBib29sZWFuO1xuICB3aXRoTWVudT86IGJvb2xlYW47XG4gIGJhY2tUZXh0Pzogc3RyaW5nO1xuICB3aXRoQWN0aW9uczogYm9vbGVhbjtcbiAgY29sb3I/OiBDb2xvcjtcbiAgdGV4dENvbG9yPzogQ29sb3I7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGFjdGlvbnM6IFRvb2xiYXJBY3Rpb25bXTtcbiAgLyoqIExhbmd1YWdlIHNlbGVjdG9yIGNvbmZpZ3VyYXRpb24uIERpc3BsYXlzIHRvIHRoZSBsZWZ0IG9mIG1lbnUgYnV0dG9uIHdoZW4gcHJvdmlkZWQuICovXG4gIGxhbmd1YWdlU2VsZWN0b3I/OiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGE7XG59O1xuIl19
|