@vendure/admin-ui 3.0.5 → 3.0.7
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/core/common/version.d.ts +1 -1
- package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +1 -0
- package/core/shared/components/product-variant-selector/product-variant-selector.component.d.ts +1 -1
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +1 -1
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +1 -1
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +11 -11
- package/esm2022/catalog/components/product-list/product-list.component.mjs +1 -1
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +13 -13
- package/esm2022/core/common/base-list.component.mjs +1 -1
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/data/data.module.mjs +1 -1
- package/esm2022/core/data/providers/base-data.service.mjs +1 -1
- package/esm2022/core/data/providers/collection-data.service.mjs +1 -1
- package/esm2022/core/data/providers/data.service.mjs +1 -1
- package/esm2022/core/data/providers/product-data.service.mjs +1 -1
- package/esm2022/core/data/utils/add-custom-fields.mjs +1 -1
- package/esm2022/core/providers/data-table/data-table-config.service.mjs +1 -1
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +1 -1
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +23 -3
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +2 -2
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +7 -1
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +11 -11
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +24 -24
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +11 -11
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -1
- package/esm2022/order/components/order-list/order-list.component.mjs +1 -1
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +3 -3
- package/esm2022/order/order.routes.mjs +1 -2
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +30 -30
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +11 -11
- package/esm2022/settings/components/country-list/country-list.component.mjs +19 -19
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +19 -19
- package/esm2022/settings/components/role-list/role-list.component.mjs +11 -11
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +16 -16
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +19 -19
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +17 -17
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +11 -11
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +11 -11
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +16 -16
- package/fesm2022/vendure-admin-ui-catalog.mjs +22 -22
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +32 -6
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +33 -33
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +10 -10
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +2 -3
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +169 -169
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/package.json +2 -2
- package/static/i18n-messages/sv.json +12 -12
|
@@ -164,10 +164,10 @@ export class RefundOrderDialogComponent {
|
|
|
164
164
|
}));
|
|
165
165
|
}
|
|
166
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RefundOrderDialogComponent, deps: [{ token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"], dependencies: [{ kind: "component", type: i2.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i2.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: i6.LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: i7.PaymentForRefundSelectorComponent, selector: "vdr-payment-for-refund-selector", inputs: ["refundablePayments", "order"], outputs: ["paymentSelected"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RefundOrderDialogComponent, selector: "vdr-refund-order-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"], dependencies: [{ kind: "component", type: i2.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i2.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i2.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "directive", type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "component", type: i6.LineRefundsComponent, selector: "vdr-line-refunds", inputs: ["line", "payments"] }, { kind: "component", type: i7.PaymentForRefundSelectorComponent, selector: "vdr-payment-for-refund-selector", inputs: ["refundablePayments", "order"], outputs: ["paymentSelected"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.AssetPreviewPipe, name: "assetPreview" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i1.LocaleCurrencyPipe, name: "localeCurrency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RefundOrderDialogComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
171
|
-
args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"] }]
|
|
171
|
+
args: [{ selector: 'vdr-refund-order-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'order.refund-and-cancel-order' | translate }}</ng-template>\r\n\r\n<div class=\"refund-wrapper\">\r\n <vdr-data-table-2 id=\"refund-order\" [items]=\"order.lines\">\r\n <!-- Here we define all the available columns -->\r\n <vdr-dt2-column id=\"id\" [heading]=\"'common.id' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"created-at\" [heading]=\"'common.created-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"updated-at\" [heading]=\"'common.updated-at' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.image' | translate\" id=\"image\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"image-placeholder\">\r\n <img\r\n *ngIf=\"line.featuredAsset as asset; else imagePlaceholder\"\r\n [src]=\"asset | assetPreview : 'tiny'\"\r\n />\r\n <ng-template #imagePlaceholder>\r\n <div class=\"placeholder\">\r\n <clr-icon shape=\"image\" size=\"48\"></clr-icon>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-name\" [heading]=\"'order.product-name' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.name }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"product-sku\" [heading]=\"'order.product-sku' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.productVariant.sku }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"unit-price\" [heading]=\"'order.unit-price' | translate\" [hiddenByDefault]=\"true\">\r\n <ng-template let-line=\"item\">\r\n {{ line.unitPriceWithTax | localeCurrency : order.currencyCode }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"prorated-unit-price\" [heading]=\"'order.prorated-unit-price' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.proratedUnitPriceWithTax | localeCurrency : order.currencyCode }}\r\n <ng-container *ngIf=\"line.discounts as discounts\">\r\n <vdr-dropdown *ngIf=\"discounts.length\">\r\n <div class=\"promotions-label\" vdrDropdownTrigger>\r\n <button class=\"icon-button\"><clr-icon shape=\"info\"></clr-icon></button>\r\n </div>\r\n <vdr-dropdown-menu>\r\n <div class=\"line-promotion\" *ngFor=\"let discount of discounts\">\r\n {{ discount.description }}\r\n <div class=\"promotion-amount\">\r\n {{\r\n discount.amount / 100 / line.quantity\r\n | number : '1.0-2'\r\n | currency : order.currencyCode\r\n }}\r\n </div>\r\n </div>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </ng-container>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"quantity\" [heading]=\"'order.quantity' | translate\">\r\n <ng-template let-line=\"item\">\r\n {{ line.quantity }}\r\n <vdr-line-refunds [line]=\"line\" [payments]=\"order.payments\"></vdr-line-refunds>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"refund-quantity\" [heading]=\"'order.refund' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <input\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n [ngModel]=\"lineQuantities[line.id].quantity\"\r\n type=\"number\"\r\n [max]=\"line.quantity\"\r\n min=\"0\"\r\n (ngModelChange)=\"onRefundQuantityChange(line.id, $event)\"\r\n />\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column id=\"cancel\" [heading]=\"'order.return-to-stock' | translate\" [optional]=\"false\">\r\n <ng-template let-line=\"item\">\r\n <div class=\"cancel-checkbox-wrapper\">\r\n <label class=\"flex center\">\r\n <input\r\n type=\"checkbox\"\r\n *ngIf=\"lineCanBeRefundedOrCancelled(line)\"\r\n clrCheckbox\r\n [disabled]=\"0 === lineQuantities[line.id].quantity\"\r\n [(ngModel)]=\"lineQuantities[line.id].cancel\"\r\n />\r\n <span class=\"ml-1\">{{ 'order.return-to-stock' | translate }}</span></label\r\n >\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n </vdr-data-table-2>\r\n\r\n <div class=\"refund-details mt-4\">\r\n <div>\r\n <vdr-card>\r\n <label class=\"flex mb-2\" *ngFor=\"let shippingLine of order.shippingLines\">\r\n <input type=\"checkbox\" clrCheckbox (change)=\"toggleShippingRefund(shippingLine.id)\" />\r\n <div class=\"ml-1\">\r\n {{ 'order.refund-shipping' | translate }}\r\n <span>{{ shippingLine.shippingMethod.name }}:</span>\r\n <span class=\"ml-1\"\r\n >{{ shippingLine.discountedPriceWithTax | localeCurrency : order.currencyCode }}\r\n </span>\r\n </div></label\r\n >\r\n <vdr-form-field [label]=\"'order.refund-cancellation-reason' | translate\" class=\"mb-2\">\r\n <ng-select\r\n [items]=\"reasons\"\r\n bindLabel=\"name\"\r\n autofocus\r\n [placeholder]=\"'order.refund-cancellation-reason-required' | translate\"\r\n bindValue=\"id\"\r\n [addTag]=\"true\"\r\n [(ngModel)]=\"reason\"\r\n ></ng-select>\r\n </vdr-form-field>\r\n <vdr-form-field\r\n [label]=\"'order.refund-total' | translate\"\r\n [readOnlyToggle]=\"true\"\r\n (readOnlyToggleChange)=\"manuallySetRefundTotal = !$event\"\r\n >\r\n <vdr-currency-input\r\n [readonly]=\"!manuallySetRefundTotal\"\r\n [currencyCode]=\"order.currencyCode\"\r\n [(ngModel)]=\"refundTotal\"\r\n (ngModelChange)=\"updateRefundTotal()\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </vdr-card>\r\n </div>\r\n <div class=\"\">\r\n <vdr-payment-for-refund-selector\r\n [refundablePayments]=\"refundablePayments\"\r\n (paymentSelected)=\"onPaymentSelected($event.payment, $event.selected)\"\r\n [order]=\"order\"\r\n ></vdr-payment-for-refund-selector>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <div>\r\n <div class=\"errors\">\r\n <clr-alert\r\n *ngIf=\"refundTotal < 0 || totalRefundableAmount < refundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{\r\n 'order.refund-total-error'\r\n | translate\r\n : {\r\n min: 0 | currency : order.currencyCode,\r\n max: totalRefundableAmount | localeCurrency : order.currencyCode\r\n }\r\n }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal < refundTotal || refundTotal < amountToRefundTotal\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-total-warning' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n <clr-alert\r\n *ngIf=\"amountToRefundTotal && !reason\"\r\n [clrAlertType]=\"'danger'\"\r\n [clrAlertClosable]=\"false\"\r\n >\r\n <clr-alert-item>\r\n {{ 'order.refund-cancellation-reason-required' | translate }}\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"modal-buttons\">\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"select()\" [disabled]=\"!canSubmit()\" class=\"btn btn-primary\">\r\n {{\r\n 'order.refund-with-amount'\r\n | translate : { amount: amountToRefundTotal | localeCurrency : order.currencyCode }\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;min-height:64vh}.refund-wrapper{flex:1;flex-direction:column}.refund-wrapper .order-table{flex:1;overflow-y:auto}.refund-wrapper .order-table table{margin-top:0}.refund-wrapper tr.ignore{color:var(--color-grey-300)}::ng-deep .refund-wrapper .table-wrapper{max-width:initial!important}.quantity-col{background-color:var(--color-warning-100)}.cancel-checkbox-wrapper{display:flex;align-items:center;justify-content:center}clr-checkbox-wrapper{margin-top:12px;margin-bottom:12px;display:block}.refund-details{display:flex;flex-direction:column;padding-bottom:var(--space-unit);gap:calc(var(--space-unit) * 2);justify-content:space-between}@media screen and (min-width: 992px){.refund-details{flex-direction:row}}.refund-details vdr-card.unselected{opacity:.8}.refund-details>*{flex:1}.errors{display:flex;justify-content:flex-end;gap:calc(var(--space-unit) * 2);margin:calc(var(--space-unit) * 2) 0}.prorated-wrapper{display:flex;justify-content:center}.line-promotion{display:flex;justify-content:space-between;font-size:12px;padding:3px 6px}.line-promotion .promotion-amount{margin-inline-start:12px}vdr-card.faded{opacity:.8}.modal-buttons{display:flex;justify-content:flex-end;gap:.6rem;gap:var(--clr-modal-footer-gap, .6rem)}\n"] }]
|
|
172
172
|
}], ctorParameters: () => [{ type: i1.I18nService }] });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FNZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQXFCLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFVaEcsTUFBTSxPQUFPLDBCQUEwQjtJQWdCbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWNUMsbUJBQWMsR0FBd0MsRUFBRSxDQUFDO1FBQ3pELHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFDN0MsMEJBQXFCLEdBQWEsRUFBRSxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSTtZQUM1QyxDQUFDLENBQUMsc0NBQXNDLENBQUM7WUFDekMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3pDLENBQUM7UUFDRiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFHWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUks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QzNCLFdBQVc7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDOytHQTlMUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrREN4QnZDLDh3VUErTUE7OzRGRHZMYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBDYW5jZWxPcmRlcklucHV0LFxyXG4gICAgRGlhbG9nLFxyXG4gICAgZ2V0QXBwQ29uZmlnLFxyXG4gICAgSTE4blNlcnZpY2UsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgT3JkZXJMaW5lSW5wdXQsXHJcbiAgICBQYXltZW50V2l0aFJlZnVuZHNGcmFnbWVudCxcclxuICAgIFJlZnVuZE9yZGVySW5wdXQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHN1bW1hdGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IGdldFJlZnVuZGFibGVQYXltZW50cywgUmVmdW5kYWJsZVBheW1lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2V0LXJlZnVuZGFibGUtcGF5bWVudHMnO1xyXG5cclxudHlwZSBTZWxlY3Rpb25MaW5lID0geyBxdWFudGl0eTogbnVtYmVyOyBjYW5jZWw6IGJvb2xlYW4gfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcmVmdW5kLW9yZGVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmRzOiBSZWZ1bmRPcmRlcklucHV0W10gfT5cclxue1xyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmRzOiBSZWZ1bmRPcmRlcklucHV0W10gfSkgPT4gdm9pZDtcclxuICAgIHJlYXNvbjogc3RyaW5nO1xyXG4gICAgbGluZVF1YW50aXRpZXM6IHsgW2xpbmVJZDogc3RyaW5nXTogU2VsZWN0aW9uTGluZSB9ID0ge307XHJcbiAgICByZWZ1bmRhYmxlUGF5bWVudHM6IFJlZnVuZGFibGVQYXltZW50W10gPSBbXTtcclxuICAgIHJlZnVuZFNoaXBwaW5nTGluZUlkczogc3RyaW5nW10gPSBbXTtcclxuICAgIHJlYXNvbnMgPSBnZXRBcHBDb25maWcoKS5jYW5jZWxsYXRpb25SZWFzb25zID8/IFtcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLWN1c3RvbWVyLXJlcXVlc3QnKSxcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLW5vdC1hdmFpbGFibGUnKSxcclxuICAgIF07XHJcbiAgICBtYW51YWxseVNldFJlZnVuZFRvdGFsID0gZmFsc2U7XHJcbiAgICByZWZ1bmRUb3RhbCA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMubWFwKHIgPT4gdGhpcy5pMThuU2VydmljZS50cmFuc2xhdGUocikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0b3RhbFJlZnVuZGFibGVBbW91bnQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gc3VtbWF0ZSh0aGlzLnJlZnVuZGFibGVQYXltZW50cywgJ3JlZnVuZGFibGVBbW91bnQnKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW1vdW50VG9SZWZ1bmRUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgcGF5bWVudCkgPT4gdG90YWwgKyBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZTogT3JkZXJEZXRhaWxGcmFnbWVudFsnbGluZXMnXVtudW1iZXJdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVmdW5kZWRDb3VudCA9XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXIucGF5bWVudHNcclxuICAgICAgICAgICAgICAgID8ucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgIChhbGwsIHBheW1lbnQpID0+IFsuLi5hbGwsIC4uLnBheW1lbnQucmVmdW5kc10sXHJcbiAgICAgICAgICAgICAgICAgICAgW10gYXMgUGF5bWVudFdpdGhSZWZ1bmRzRnJhZ21lbnRbJ3JlZnVuZHMnXSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIocmVmdW5kID0+IHJlZnVuZC5zdGF0ZSAhPT0gJ0ZhaWxlZCcpXHJcbiAgICAgICAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgIChhbGwsIHJlZnVuZCkgPT4gWy4uLmFsbCwgLi4ucmVmdW5kLmxpbmVzXSxcclxuICAgICAgICAgICAgICAgICAgICBbXSBhcyBBcnJheTx7IG9yZGVyTGluZUlkOiBzdHJpbmc7IHF1YW50aXR5OiBudW1iZXIgfT4sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHJlZnVuZExpbmUgPT4gcmVmdW5kTGluZS5vcmRlckxpbmVJZCA9PT0gbGluZS5pZClcclxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHN1bSwgcmVmdW5kTGluZSkgPT4gc3VtICsgcmVmdW5kTGluZS5xdWFudGl0eSwgMCkgPz8gMDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlZnVuZGVkQ291bnQgPCBsaW5lLm9yZGVyUGxhY2VkUXVhbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5saW5lUXVhbnRpdGllcyA9IHRoaXMub3JkZXIubGluZXMucmVkdWNlKFxyXG4gICAgICAgICAgICAocmVzdWx0LCBsaW5lKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgW2xpbmUuaWRdOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVmdW5kOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnJlZnVuZGFibGVQYXltZW50cyA9IGdldFJlZnVuZGFibGVQYXltZW50cyh0aGlzLm9yZGVyLnBheW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVSZWZ1bmRUb3RhbCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubWFudWFsbHlTZXRSZWZ1bmRUb3RhbCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtVG90YWwgPSB0aGlzLm9yZGVyLmxpbmVzLnJlZHVjZSgodG90YWwsIGxpbmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVSZWYgPSB0aGlzLmxpbmVRdWFudGl0aWVzW2xpbmUuaWRdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmdW5kQ291bnQgPSBsaW5lUmVmLnF1YW50aXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCAqIHJlZnVuZENvdW50O1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXIuc2hpcHBpbmdMaW5lcy5yZWR1Y2UoKHRvdGFsLCBsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMuaW5jbHVkZXMobGluZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLmRpc2NvdW50ZWRQcmljZVdpdGhUYXg7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVmdW5kVG90YWwgPSBpdGVtVG90YWwgKyBzaGlwcGluZ1RvdGFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYWxsb2NhdGUgdGhlIHJlZnVuZCB0b3RhbCBhY3Jvc3MgdGhlIHJlZnVuZGFibGUgcGF5bWVudHNcclxuICAgICAgICBjb25zdCByZWZ1bmRhYmxlUGF5bWVudHMgPSB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5maWx0ZXIocCA9PiBwLnNlbGVjdGVkKTtcclxuICAgICAgICBsZXQgcmVmdW5kc0FsbG9jYXRlZCA9IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBwYXltZW50IG9mIHJlZnVuZGFibGVQYXltZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBhbW91bnRUb1JlZnVuZCA9IE1hdGgubWluKHBheW1lbnQucmVmdW5kYWJsZUFtb3VudCwgdGhpcy5yZWZ1bmRUb3RhbCAtIHJlZnVuZHNBbGxvY2F0ZWQpO1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShhbW91bnRUb1JlZnVuZCk7XHJcbiAgICAgICAgICAgIHJlZnVuZHNBbGxvY2F0ZWQgKz0gYW1vdW50VG9SZWZ1bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNoaXBwaW5nUmVmdW5kKGxpbmVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlZnVuZFNoaXBwaW5nTGluZUlkcy5pbmRleE9mKGxpbmVJZCk7XHJcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnVuZFNoaXBwaW5nTGluZUlkcy5wdXNoKGxpbmVJZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGVSZWZ1bmRUb3RhbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVmdW5kUXVhbnRpdHlDaGFuZ2Uob3JkZXJMaW5lSWQ6IHN0cmluZywgcXVhbnRpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlTZXRSZWZ1bmRUb3RhbCA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkxpbmUgPSB0aGlzLmxpbmVRdWFudGl0aWVzW29yZGVyTGluZUlkXTtcclxuICAgICAgICBpZiAoc2VsZWN0aW9uTGluZSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c1F1YW50aXR5ID0gc2VsZWN0aW9uTGluZS5xdWFudGl0eTtcclxuICAgICAgICAgICAgaWYgKHF1YW50aXR5ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaW5lLmNhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByZXZpb3VzUXVhbnRpdHkgPT09IDAgJiYgcXVhbnRpdHkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaW5lLmNhbmNlbCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VsZWN0aW9uTGluZS5xdWFudGl0eSA9IHF1YW50aXR5O1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlZnVuZFRvdGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGF5bWVudFNlbGVjdGVkKHBheW1lbnQ6IFJlZnVuZGFibGVQYXltZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnVuZFRvdGFsIC1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihwID0+IHAuaWQgIT09IHBheW1lbnQuaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgodG90YWwsIHApID0+IHRvdGFsICsgcC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUsIDApO1xyXG4gICAgICAgICAgICBpZiAoMCA8IG91dHN0YW5kaW5nUmVmdW5kQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCwgcGF5bWVudC5yZWZ1bmRhYmxlQW1vdW50KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZWZ1bmRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxpbmVRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChpc1JlZnVuZGluZywgbGluZSkgPT4gaXNSZWZ1bmRpbmcgfHwgMCA8IGxpbmUucXVhbnRpdHksXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBpc0NhbmNlbGxpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxpbmVRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChpc0NhbmNlbGxpbmcsIGxpbmUpID0+IGlzQ2FuY2VsbGluZyB8fCAoMCA8IGxpbmUucXVhbnRpdHkgJiYgbGluZS5jYW5jZWwpLFxyXG4gICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAwIDwgdGhpcy5yZWZ1bmRUb3RhbCAmJiB0aGlzLmFtb3VudFRvUmVmdW5kVG90YWwgPT09IHRoaXMucmVmdW5kVG90YWwgJiYgISF0aGlzLnJlYXNvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3QoKSB7XHJcbiAgICAgICAgY29uc3QgcmVmdW5kTGluZXMgPSB0aGlzLmdldE9yZGVyTGluZUlucHV0KCgpID0+IHRydWUpO1xyXG4gICAgICAgIGNvbnN0IGNhbmNlbExpbmVzID0gdGhpcy5nZXRPcmRlckxpbmVJbnB1dChsaW5lID0+IGxpbmUuY2FuY2VsKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgIHJlZnVuZHM6IHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHJwID0+IHJwLnNlbGVjdGVkICYmIDAgPCBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAubWFwKHBheW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzOiByZWZ1bmRMaW5lcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiB0aGlzLnJlYXNvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudElkOiBwYXltZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHBheW1lbnQuYW1vdW50VG9SZWZ1bmRDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZzogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0bWVudDogMCxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhbmNlbDoge1xyXG4gICAgICAgICAgICAgICAgbGluZXM6IGNhbmNlbExpbmVzLFxyXG4gICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlci5pZCxcclxuICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWFzb24sXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxTaGlwcGluZzogdGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMubGVuZ3RoID4gMCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0T3JkZXJMaW5lSW5wdXQoZmlsdGVyRm46IChsaW5lOiBTZWxlY3Rpb25MaW5lKSA9PiBib29sZWFuKTogT3JkZXJMaW5lSW5wdXRbXSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMubGluZVF1YW50aXRpZXMpXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+IDAgPCBsaW5lLnF1YW50aXR5ICYmIGZpbHRlckZuKGxpbmUpKVxyXG4gICAgICAgICAgICAubWFwKChbb3JkZXJMaW5lSWQsIGxpbmVdKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3JkZXJMaW5lSWQsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogbGluZS5xdWFudGl0eSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT57eyAnb3JkZXIucmVmdW5kLWFuZC1jYW5jZWwtb3JkZXInIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJyZWZ1bmQtd3JhcHBlclwiPlxyXG4gICAgPHZkci1kYXRhLXRhYmxlLTIgaWQ9XCJyZWZ1bmQtb3JkZXJcIiBbaXRlbXNdPVwib3JkZXIubGluZXNcIj5cclxuICAgICAgICA8IS0tIEhlcmUgd2UgZGVmaW5lIGFsbCB0aGUgYXZhaWxhYmxlIGNvbHVtbnMgLS0+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwiaWRcIiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLmlkIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJjcmVhdGVkLWF0XCIgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLmNyZWF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJ1cGRhdGVkLWF0XCIgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pbWFnZScgfCB0cmFuc2xhdGVcIiBpZD1cImltYWdlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1wbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lLmZlYXR1cmVkQXNzZXQgYXMgYXNzZXQ7IGVsc2UgaW1hZ2VQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiAndGlueSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjQ4XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwicHJvZHVjdC1uYW1lXCIgW2hlYWRpbmddPVwiJ29yZGVyLnByb2R1Y3QtbmFtZScgfCB0cmFuc2xhdGVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5wcm9kdWN0VmFyaWFudC5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJwcm9kdWN0LXNrdVwiIFtoZWFkaW5nXT1cIidvcmRlci5wcm9kdWN0LXNrdScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5wcm9kdWN0VmFyaWFudC5za3UgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBpZD1cInVuaXQtcHJpY2VcIiBbaGVhZGluZ109XCInb3JkZXIudW5pdC1wcmljZScgfCB0cmFuc2xhdGVcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS51bml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBpZD1cInByb3JhdGVkLXVuaXQtcHJpY2VcIiBbaGVhZGluZ109XCInb3JkZXIucHJvcmF0ZWQtdW5pdC1wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS51bml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaW5lLmRpc2NvdW50cyBhcyBkaXNjb3VudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duICpuZ0lmPVwiZGlzY291bnRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90aW9ucy1sYWJlbFwiIHZkckRyb3Bkb3duVHJpZ2dlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiPjxjbHItaWNvbiBzaGFwZT1cImluZm9cIj48L2Nsci1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpbmUtcHJvbW90aW9uXCIgKm5nRm9yPVwibGV0IGRpc2NvdW50IG9mIGRpc2NvdW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc2NvdW50LmRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGlvbi1hbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdW50LmFtb3VudCAvIDEwMCAvIGxpbmUucXVhbnRpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG51bWJlciA6ICcxLjAtMidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwicXVhbnRpdHlcIiBbaGVhZGluZ109XCInb3JkZXIucXVhbnRpdHknIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIHt7IGxpbmUucXVhbnRpdHkgfX1cclxuICAgICAgICAgICAgICAgIDx2ZHItbGluZS1yZWZ1bmRzIFtsaW5lXT1cImxpbmVcIiBbcGF5bWVudHNdPVwib3JkZXIucGF5bWVudHNcIj48L3Zkci1saW5lLXJlZnVuZHM+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJyZWZ1bmQtcXVhbnRpdHlcIiBbaGVhZGluZ109XCInb3JkZXIucmVmdW5kJyB8IHRyYW5zbGF0ZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLnF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImxpbmUucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVmdW5kUXVhbnRpdHlDaGFuZ2UobGluZS5pZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwiY2FuY2VsXCIgW2hlYWRpbmddPVwiJ29yZGVyLnJldHVybi10by1zdG9jaycgfCB0cmFuc2xhdGVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbmNlbC1jaGVja2JveC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lQ2FuQmVSZWZ1bmRlZE9yQ2FuY2VsbGVkKGxpbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiMCA9PT0gbGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5jYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTFcIj57eyAnb3JkZXIucmV0dXJuLXRvLXN0b2NrJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L2xhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDwvdmRyLWRhdGEtdGFibGUtMj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmVmdW5kLWRldGFpbHMgbXQtNFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDx2ZHItY2FyZD5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggbWItMlwiICpuZ0Zvcj1cImxldCBzaGlwcGluZ0xpbmUgb2Ygb3JkZXIuc2hpcHBpbmdMaW5lc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbHJDaGVja2JveCAoY2hhbmdlKT1cInRvZ2dsZVNoaXBwaW5nUmVmdW5kKHNoaXBwaW5nTGluZS5pZClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtc2hpcHBpbmcnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNoaXBwaW5nTGluZS5zaGlwcGluZ01ldGhvZC5uYW1lIH19Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBzaGlwcGluZ0xpbmUuZGlzY291bnRlZFByaWNlV2l0aFRheCB8IGxvY2FsZUN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2xhYmVsXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbicgfCB0cmFuc2xhdGVcIiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJyZWFzb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uLXJlcXVpcmVkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FkZFRhZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZWFzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGRcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ29yZGVyLnJlZnVuZC10b3RhbCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkT25seVRvZ2dsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVhZE9ubHlUb2dnbGVDaGFuZ2UpPVwibWFudWFsbHlTZXRSZWZ1bmRUb3RhbCA9ICEkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiFtYW51YWxseVNldFJlZnVuZFRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5Q29kZV09XCJvcmRlci5jdXJyZW5jeUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlZnVuZFRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUmVmdW5kVG90YWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWN1cnJlbmN5LWlucHV0PlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDx2ZHItcGF5bWVudC1mb3ItcmVmdW5kLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICBbcmVmdW5kYWJsZVBheW1lbnRzXT1cInJlZnVuZGFibGVQYXltZW50c1wiXHJcbiAgICAgICAgICAgICAgICAocGF5bWVudFNlbGVjdGVkKT1cIm9uUGF5bWVudFNlbGVjdGVkKCRldmVudC5wYXltZW50LCAkZXZlbnQuc2VsZWN0ZWQpXCJcclxuICAgICAgICAgICAgICAgIFtvcmRlcl09XCJvcmRlclwiXHJcbiAgICAgICAgICAgID48L3Zkci1wYXltZW50LWZvci1yZWZ1bmQtc2VsZWN0b3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yc1wiPlxyXG4gICAgICAgICAgICA8Y2xyLWFsZXJ0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJlZnVuZFRvdGFsIDwgMCB8fCB0b3RhbFJlZnVuZGFibGVBbW91bnQgPCByZWZ1bmRUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICBbY2xyQWxlcnRUeXBlXT1cIidkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydENsb3NhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdvcmRlci5yZWZ1bmQtdG90YWwtZXJyb3InXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogMCB8IGN1cnJlbmN5IDogb3JkZXIuY3VycmVuY3lDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heDogdG90YWxSZWZ1bmRhYmxlQW1vdW50IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYW1vdW50VG9SZWZ1bmRUb3RhbCA8IHJlZnVuZFRvdGFsIHx8IHJlZnVuZFRvdGFsIDwgYW1vdW50VG9SZWZ1bmRUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICBbY2xyQWxlcnRUeXBlXT1cIidkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydENsb3NhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtdG90YWwtd2FybmluZycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0PlxyXG4gICAgICAgICAgICA8Y2xyLWFsZXJ0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFtb3VudFRvUmVmdW5kVG90YWwgJiYgIXJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICBbY2xyQWxlcnRUeXBlXT1cIidkYW5nZXInXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydENsb3NhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdvcmRlci5yZWZ1bmQtY2FuY2VsbGF0aW9uLXJlYXNvbi1yZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzZWxlY3QoKVwiIFtkaXNhYmxlZF09XCIhY2FuU3VibWl0KClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAnb3JkZXIucmVmdW5kLXdpdGgtYW1vdW50J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZSA6IHsgYW1vdW50OiBhbW91bnRUb1JlZnVuZFRvdGFsIHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL29yZGVyL3NyYy9jb21wb25lbnRzL3JlZnVuZC1vcmRlci1kaWFsb2cvcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUdILFlBQVksR0FNZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQXFCLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFVaEcsTUFBTSxPQUFPLDBCQUEwQjtJQWdCbkMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWNUMsbUJBQWMsR0FBd0MsRUFBRSxDQUFDO1FBQ3pELHVCQUFrQixHQUF3QixFQUFFLENBQUM7UUFDN0MsMEJBQXFCLEdBQWEsRUFBRSxDQUFDO1FBQ3JDLFlBQU8sR0FBRyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSTtZQUM1QyxDQUFDLENBQUMsc0NBQXNDLENBQUM7WUFDekMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3pDLENBQUM7UUFDRiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFHWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUks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QzNCLFdBQVc7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDOytHQTlMUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrREN4QnZDLHN4VUErTUE7OzRGRHZMYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBDYW5jZWxPcmRlcklucHV0LFxyXG4gICAgRGlhbG9nLFxyXG4gICAgZ2V0QXBwQ29uZmlnLFxyXG4gICAgSTE4blNlcnZpY2UsXHJcbiAgICBPcmRlckRldGFpbEZyYWdtZW50LFxyXG4gICAgT3JkZXJMaW5lSW5wdXQsXHJcbiAgICBQYXltZW50V2l0aFJlZnVuZHNGcmFnbWVudCxcclxuICAgIFJlZnVuZE9yZGVySW5wdXQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHN1bW1hdGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IGdldFJlZnVuZGFibGVQYXltZW50cywgUmVmdW5kYWJsZVBheW1lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2V0LXJlZnVuZGFibGUtcGF5bWVudHMnO1xyXG5cclxudHlwZSBTZWxlY3Rpb25MaW5lID0geyBxdWFudGl0eTogbnVtYmVyOyBjYW5jZWw6IGJvb2xlYW4gfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItcmVmdW5kLW9yZGVyLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVmdW5kLW9yZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9yZWZ1bmQtb3JkZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlZnVuZE9yZGVyRGlhbG9nQ29tcG9uZW50XHJcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmRzOiBSZWZ1bmRPcmRlcklucHV0W10gfT5cclxue1xyXG4gICAgb3JkZXI6IE9yZGVyRGV0YWlsRnJhZ21lbnQ7XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IHsgY2FuY2VsOiBDYW5jZWxPcmRlcklucHV0OyByZWZ1bmRzOiBSZWZ1bmRPcmRlcklucHV0W10gfSkgPT4gdm9pZDtcclxuICAgIHJlYXNvbjogc3RyaW5nO1xyXG4gICAgbGluZVF1YW50aXRpZXM6IHsgW2xpbmVJZDogc3RyaW5nXTogU2VsZWN0aW9uTGluZSB9ID0ge307XHJcbiAgICByZWZ1bmRhYmxlUGF5bWVudHM6IFJlZnVuZGFibGVQYXltZW50W10gPSBbXTtcclxuICAgIHJlZnVuZFNoaXBwaW5nTGluZUlkczogc3RyaW5nW10gPSBbXTtcclxuICAgIHJlYXNvbnMgPSBnZXRBcHBDb25maWcoKS5jYW5jZWxsYXRpb25SZWFzb25zID8/IFtcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLWN1c3RvbWVyLXJlcXVlc3QnKSxcclxuICAgICAgICBfKCdvcmRlci5yZWZ1bmQtcmVhc29uLW5vdC1hdmFpbGFibGUnKSxcclxuICAgIF07XHJcbiAgICBtYW51YWxseVNldFJlZnVuZFRvdGFsID0gZmFsc2U7XHJcbiAgICByZWZ1bmRUb3RhbCA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMubWFwKHIgPT4gdGhpcy5pMThuU2VydmljZS50cmFuc2xhdGUocikpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0b3RhbFJlZnVuZGFibGVBbW91bnQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gc3VtbWF0ZSh0aGlzLnJlZnVuZGFibGVQYXltZW50cywgJ3JlZnVuZGFibGVBbW91bnQnKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYW1vdW50VG9SZWZ1bmRUb3RhbCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5yZWR1Y2UoXHJcbiAgICAgICAgICAgICh0b3RhbCwgcGF5bWVudCkgPT4gdG90YWwgKyBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZTogT3JkZXJEZXRhaWxGcmFnbWVudFsnbGluZXMnXVtudW1iZXJdKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVmdW5kZWRDb3VudCA9XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXIucGF5bWVudHNcclxuICAgICAgICAgICAgICAgID8ucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgIChhbGwsIHBheW1lbnQpID0+IFsuLi5hbGwsIC4uLnBheW1lbnQucmVmdW5kc10sXHJcbiAgICAgICAgICAgICAgICAgICAgW10gYXMgUGF5bWVudFdpdGhSZWZ1bmRzRnJhZ21lbnRbJ3JlZnVuZHMnXSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIocmVmdW5kID0+IHJlZnVuZC5zdGF0ZSAhPT0gJ0ZhaWxlZCcpXHJcbiAgICAgICAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgIChhbGwsIHJlZnVuZCkgPT4gWy4uLmFsbCwgLi4ucmVmdW5kLmxpbmVzXSxcclxuICAgICAgICAgICAgICAgICAgICBbXSBhcyBBcnJheTx7IG9yZGVyTGluZUlkOiBzdHJpbmc7IHF1YW50aXR5OiBudW1iZXIgfT4sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHJlZnVuZExpbmUgPT4gcmVmdW5kTGluZS5vcmRlckxpbmVJZCA9PT0gbGluZS5pZClcclxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHN1bSwgcmVmdW5kTGluZSkgPT4gc3VtICsgcmVmdW5kTGluZS5xdWFudGl0eSwgMCkgPz8gMDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlZnVuZGVkQ291bnQgPCBsaW5lLm9yZGVyUGxhY2VkUXVhbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5saW5lUXVhbnRpdGllcyA9IHRoaXMub3JkZXIubGluZXMucmVkdWNlKFxyXG4gICAgICAgICAgICAocmVzdWx0LCBsaW5lKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgW2xpbmUuaWRdOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVmdW5kOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnJlZnVuZGFibGVQYXltZW50cyA9IGdldFJlZnVuZGFibGVQYXltZW50cyh0aGlzLm9yZGVyLnBheW1lbnRzKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVSZWZ1bmRUb3RhbCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMubWFudWFsbHlTZXRSZWZ1bmRUb3RhbCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtVG90YWwgPSB0aGlzLm9yZGVyLmxpbmVzLnJlZHVjZSgodG90YWwsIGxpbmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVSZWYgPSB0aGlzLmxpbmVRdWFudGl0aWVzW2xpbmUuaWRdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVmdW5kQ291bnQgPSBsaW5lUmVmLnF1YW50aXR5IHx8IDA7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLnByb3JhdGVkVW5pdFByaWNlV2l0aFRheCAqIHJlZnVuZENvdW50O1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXIuc2hpcHBpbmdMaW5lcy5yZWR1Y2UoKHRvdGFsLCBsaW5lKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMuaW5jbHVkZXMobGluZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgKyBsaW5lLmRpc2NvdW50ZWRQcmljZVdpdGhUYXg7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVmdW5kVG90YWwgPSBpdGVtVG90YWwgKyBzaGlwcGluZ1RvdGFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gYWxsb2NhdGUgdGhlIHJlZnVuZCB0b3RhbCBhY3Jvc3MgdGhlIHJlZnVuZGFibGUgcGF5bWVudHNcclxuICAgICAgICBjb25zdCByZWZ1bmRhYmxlUGF5bWVudHMgPSB0aGlzLnJlZnVuZGFibGVQYXltZW50cy5maWx0ZXIocCA9PiBwLnNlbGVjdGVkKTtcclxuICAgICAgICBsZXQgcmVmdW5kc0FsbG9jYXRlZCA9IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBwYXltZW50IG9mIHJlZnVuZGFibGVQYXltZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBhbW91bnRUb1JlZnVuZCA9IE1hdGgubWluKHBheW1lbnQucmVmdW5kYWJsZUFtb3VudCwgdGhpcy5yZWZ1bmRUb3RhbCAtIHJlZnVuZHNBbGxvY2F0ZWQpO1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShhbW91bnRUb1JlZnVuZCk7XHJcbiAgICAgICAgICAgIHJlZnVuZHNBbGxvY2F0ZWQgKz0gYW1vdW50VG9SZWZ1bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVNoaXBwaW5nUmVmdW5kKGxpbmVJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlZnVuZFNoaXBwaW5nTGluZUlkcy5pbmRleE9mKGxpbmVJZCk7XHJcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnVuZFNoaXBwaW5nTGluZUlkcy5wdXNoKGxpbmVJZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGVSZWZ1bmRUb3RhbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVmdW5kUXVhbnRpdHlDaGFuZ2Uob3JkZXJMaW5lSWQ6IHN0cmluZywgcXVhbnRpdHk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubWFudWFsbHlTZXRSZWZ1bmRUb3RhbCA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkxpbmUgPSB0aGlzLmxpbmVRdWFudGl0aWVzW29yZGVyTGluZUlkXTtcclxuICAgICAgICBpZiAoc2VsZWN0aW9uTGluZSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c1F1YW50aXR5ID0gc2VsZWN0aW9uTGluZS5xdWFudGl0eTtcclxuICAgICAgICAgICAgaWYgKHF1YW50aXR5ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaW5lLmNhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByZXZpb3VzUXVhbnRpdHkgPT09IDAgJiYgcXVhbnRpdHkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25MaW5lLmNhbmNlbCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2VsZWN0aW9uTGluZS5xdWFudGl0eSA9IHF1YW50aXR5O1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlZnVuZFRvdGFsKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGF5bWVudFNlbGVjdGVkKHBheW1lbnQ6IFJlZnVuZGFibGVQYXltZW50LCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnVuZFRvdGFsIC1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihwID0+IHAuaWQgIT09IHBheW1lbnQuaWQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgodG90YWwsIHApID0+IHRvdGFsICsgcC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUsIDApO1xyXG4gICAgICAgICAgICBpZiAoMCA8IG91dHN0YW5kaW5nUmVmdW5kQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZShcclxuICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihvdXRzdGFuZGluZ1JlZnVuZEFtb3VudCwgcGF5bWVudC5yZWZ1bmRhYmxlQW1vdW50KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXltZW50LmFtb3VudFRvUmVmdW5kQ29udHJvbC5zZXRWYWx1ZSgwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZWZ1bmRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxpbmVRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChpc1JlZnVuZGluZywgbGluZSkgPT4gaXNSZWZ1bmRpbmcgfHwgMCA8IGxpbmUucXVhbnRpdHksXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBpc0NhbmNlbGxpbmcoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmxpbmVRdWFudGl0aWVzKS5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChpc0NhbmNlbGxpbmcsIGxpbmUpID0+IGlzQ2FuY2VsbGluZyB8fCAoMCA8IGxpbmUucXVhbnRpdHkgJiYgbGluZS5jYW5jZWwpLFxyXG4gICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAwIDwgdGhpcy5yZWZ1bmRUb3RhbCAmJiB0aGlzLmFtb3VudFRvUmVmdW5kVG90YWwgPT09IHRoaXMucmVmdW5kVG90YWwgJiYgISF0aGlzLnJlYXNvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3QoKSB7XHJcbiAgICAgICAgY29uc3QgcmVmdW5kTGluZXMgPSB0aGlzLmdldE9yZGVyTGluZUlucHV0KCgpID0+IHRydWUpO1xyXG4gICAgICAgIGNvbnN0IGNhbmNlbExpbmVzID0gdGhpcy5nZXRPcmRlckxpbmVJbnB1dChsaW5lID0+IGxpbmUuY2FuY2VsKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgIHJlZnVuZHM6IHRoaXMucmVmdW5kYWJsZVBheW1lbnRzXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHJwID0+IHJwLnNlbGVjdGVkICYmIDAgPCBycC5hbW91bnRUb1JlZnVuZENvbnRyb2wudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAubWFwKHBheW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzOiByZWZ1bmRMaW5lcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiB0aGlzLnJlYXNvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGF5bWVudElkOiBwYXltZW50LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IHBheW1lbnQuYW1vdW50VG9SZWZ1bmRDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGlwcGluZzogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWRqdXN0bWVudDogMCxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhbmNlbDoge1xyXG4gICAgICAgICAgICAgICAgbGluZXM6IGNhbmNlbExpbmVzLFxyXG4gICAgICAgICAgICAgICAgb3JkZXJJZDogdGhpcy5vcmRlci5pZCxcclxuICAgICAgICAgICAgICAgIHJlYXNvbjogdGhpcy5yZWFzb24sXHJcbiAgICAgICAgICAgICAgICBjYW5jZWxTaGlwcGluZzogdGhpcy5yZWZ1bmRTaGlwcGluZ0xpbmVJZHMubGVuZ3RoID4gMCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0T3JkZXJMaW5lSW5wdXQoZmlsdGVyRm46IChsaW5lOiBTZWxlY3Rpb25MaW5lKSA9PiBib29sZWFuKTogT3JkZXJMaW5lSW5wdXRbXSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMubGluZVF1YW50aXRpZXMpXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKFtvcmRlckxpbmVJZCwgbGluZV0pID0+IDAgPCBsaW5lLnF1YW50aXR5ICYmIGZpbHRlckZuKGxpbmUpKVxyXG4gICAgICAgICAgICAubWFwKChbb3JkZXJMaW5lSWQsIGxpbmVdKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgb3JkZXJMaW5lSWQsXHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogbGluZS5xdWFudGl0eSxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT57eyAnb3JkZXIucmVmdW5kLWFuZC1jYW5jZWwtb3JkZXInIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJyZWZ1bmQtd3JhcHBlclwiPlxyXG4gICAgPHZkci1kYXRhLXRhYmxlLTIgaWQ9XCJyZWZ1bmQtb3JkZXJcIiBbaXRlbXNdPVwib3JkZXIubGluZXNcIj5cclxuICAgICAgICA8IS0tIEhlcmUgd2UgZGVmaW5lIGFsbCB0aGUgYXZhaWxhYmxlIGNvbHVtbnMgLS0+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwiaWRcIiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLmlkIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJjcmVhdGVkLWF0XCIgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLmNyZWF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJ1cGRhdGVkLWF0XCIgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5lLnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pbWFnZScgfCB0cmFuc2xhdGVcIiBpZD1cImltYWdlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1wbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsaW5lLmZlYXR1cmVkQXNzZXQgYXMgYXNzZXQ7IGVsc2UgaW1hZ2VQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiAndGlueSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbWFnZVBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjQ4XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICAgICAgPHZkci1kdDItY29sdW1uIGlkPVwicHJvZHVjdC1uYW1lXCIgW2hlYWRpbmddPVwiJ29yZGVyLnByb2R1Y3QtbmFtZScgfCB0cmFuc2xhdGVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5wcm9kdWN0VmFyaWFudC5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJwcm9kdWN0LXNrdVwiIFtoZWFkaW5nXT1cIidvcmRlci5wcm9kdWN0LXNrdScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5wcm9kdWN0VmFyaWFudC5za3UgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBpZD1cInVuaXQtcHJpY2VcIiBbaGVhZGluZ109XCInb3JkZXIudW5pdC1wcmljZScgfCB0cmFuc2xhdGVcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS51bml0UHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBpZD1cInByb3JhdGVkLXVuaXQtcHJpY2VcIiBbaGVhZGluZ109XCInb3JkZXIucHJvcmF0ZWQtdW5pdC1wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5wcm9yYXRlZFVuaXRQcmljZVdpdGhUYXggfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuZGlzY291bnRzIGFzIGRpc2NvdW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24gKm5nSWY9XCJkaXNjb3VudHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb3Rpb25zLWxhYmVsXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCI+PGNsci1pY29uIHNoYXBlPVwiaW5mb1wiPjwvY2xyLWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1wcm9tb3Rpb25cIiAqbmdGb3I9XCJsZXQgZGlzY291bnQgb2YgZGlzY291bnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzY291bnQuZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90aW9uLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY291bnQuYW1vdW50IC8gMTAwIC8gbGluZS5xdWFudGl0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbnVtYmVyIDogJzEuMC0yJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci1kcm9wZG93bi1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJxdWFudGl0eVwiIFtoZWFkaW5nXT1cIidvcmRlci5xdWFudGl0eScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1saW5lPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluZS5xdWFudGl0eSB9fVxyXG4gICAgICAgICAgICAgICAgPHZkci1saW5lLXJlZnVuZHMgW2xpbmVdPVwibGluZVwiIFtwYXltZW50c109XCJvcmRlci5wYXltZW50c1wiPjwvdmRyLWxpbmUtcmVmdW5kcz5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgICAgIDx2ZHItZHQyLWNvbHVtbiBpZD1cInJlZnVuZC1xdWFudGl0eVwiIFtoZWFkaW5nXT1cIidvcmRlci5yZWZ1bmQnIHwgdHJhbnNsYXRlXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbGluZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGluZUNhbkJlUmVmdW5kZWRPckNhbmNlbGxlZChsaW5lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibGluZVF1YW50aXRpZXNbbGluZS5pZF0ucXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwibGluZS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWZ1bmRRdWFudGl0eUNoYW5nZShsaW5lLmlkLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgICAgICA8dmRyLWR0Mi1jb2x1bW4gaWQ9XCJjYW5jZWxcIiBbaGVhZGluZ109XCInb3JkZXIucmV0dXJuLXRvLXN0b2NrJyB8IHRyYW5zbGF0ZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWxpbmU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWNoZWNrYm94LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmbGV4IGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxpbmVDYW5CZVJlZnVuZGVkT3JDYW5jZWxsZWQobGluZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIwID09PSBsaW5lUXVhbnRpdGllc1tsaW5lLmlkXS5xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpbmVRdWFudGl0aWVzW2xpbmUuaWRdLmNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMVwiPnt7ICdvcmRlci5yZXR1cm4tdG8tc3RvY2snIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbGFiZWxcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPC92ZHItZGF0YS10YWJsZS0yPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyZWZ1bmQtZGV0YWlscyBtdC00XCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHZkci1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBtYi0yXCIgKm5nRm9yPVwibGV0IHNoaXBwaW5nTGluZSBvZiBvcmRlci5zaGlwcGluZ0xpbmVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsckNoZWNrYm94IChjaGFuZ2UpPVwidG9nZ2xlU2hpcHBpbmdSZWZ1bmQoc2hpcHBpbmdMaW5lLmlkKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC1zaGlwcGluZycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2hpcHBpbmdMaW5lLnNoaXBwaW5nTWV0aG9kLm5hbWUgfX06PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IHNoaXBwaW5nTGluZS5kaXNjb3VudGVkUHJpY2VXaXRoVGF4IHwgbG9jYWxlQ3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvbGFiZWxcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInJlYXNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInb3JkZXIucmVmdW5kLWNhbmNlbGxhdGlvbi1yZWFzb24tcmVxdWlyZWQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWRkVGFnXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlYXNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZFxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInb3JkZXIucmVmdW5kLXRvdGFsJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5VG9nZ2xlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyZWFkT25seVRvZ2dsZUNoYW5nZSk9XCJtYW51YWxseVNldFJlZnVuZFRvdGFsID0gISRldmVudFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1jdXJyZW5jeS1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiIW1hbnVhbGx5U2V0UmVmdW5kVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVuY3lDb2RlXT1cIm9yZGVyLmN1cnJlbmN5Q29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVmdW5kVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVSZWZ1bmRUb3RhbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC92ZHItY3VycmVuY3ktaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgPHZkci1wYXltZW50LWZvci1yZWZ1bmQtc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgIFtyZWZ1bmRhYmxlUGF5bWVudHNdPVwicmVmdW5kYWJsZVBheW1lbnRzXCJcclxuICAgICAgICAgICAgICAgIChwYXltZW50U2VsZWN0ZWQpPVwib25QYXltZW50U2VsZWN0ZWQoJGV2ZW50LnBheW1lbnQsICRldmVudC5zZWxlY3RlZClcIlxyXG4gICAgICAgICAgICAgICAgW29yZGVyXT1cIm9yZGVyXCJcclxuICAgICAgICAgICAgPjwvdmRyLXBheW1lbnQtZm9yLXJlZnVuZC1zZWxlY3Rvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwicmVmdW5kVG90YWwgPCAwIHx8IHRvdGFsUmVmdW5kYWJsZUFtb3VudCA8IHJlZnVuZFRvdGFsXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydFR5cGVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyLnJlZnVuZC10b3RhbC1lcnJvcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluOiAwIHwgY3VycmVuY3kgOiBvcmRlci5jdXJyZW5jeUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiB0b3RhbFJlZnVuZGFibGVBbW91bnQgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Nsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICA8L2Nsci1hbGVydD5cclxuICAgICAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhbW91bnRUb1JlZnVuZFRvdGFsIDwgcmVmdW5kVG90YWwgfHwgcmVmdW5kVG90YWwgPCBhbW91bnRUb1JlZnVuZFRvdGFsXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydFR5cGVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC10b3RhbC13YXJuaW5nJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnRcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYW1vdW50VG9SZWZ1bmRUb3RhbCAmJiAhcmVhc29uXCJcclxuICAgICAgICAgICAgICAgIFtjbHJBbGVydFR5cGVdPVwiJ2RhbmdlcidcIlxyXG4gICAgICAgICAgICAgICAgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ29yZGVyLnJlZnVuZC1jYW5jZWxsYXRpb24tcmVhc29uLXJlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNlbGVjdCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5TdWJtaXQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICdvcmRlci5yZWZ1bmQtd2l0aC1hbW91bnQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlIDogeyBhbW91bnQ6IGFtb3VudFRvUmVmdW5kVG90YWwgfCBsb2NhbGVDdXJyZW5jeSA6IG9yZGVyLmN1cnJlbmN5Q29kZSB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -5,7 +5,6 @@ export const createRoutes = (pageService) => [
|
|
|
5
5
|
{
|
|
6
6
|
path: '',
|
|
7
7
|
component: PageComponent,
|
|
8
|
-
pathMatch: 'full',
|
|
9
8
|
data: {
|
|
10
9
|
locationId: 'order-list',
|
|
11
10
|
breadcrumb: _('breadcrumb.orders'),
|
|
@@ -53,4 +52,4 @@ export const createRoutes = (pageService) => [
|
|
|
53
52
|
children: pageService.getPageTabRoutes('modify-order'),
|
|
54
53
|
},
|
|
55
54
|
];
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9vcmRlci9zcmMvb3JkZXIucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUF3QixFQUFXLEVBQUUsQ0FBQztJQUMvRDtRQUNJLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGFBQWE7UUFDeEIsSUFBSSxFQUFFO1lBQ0YsVUFBVSxFQUFFLFlBQVk7WUFDeEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztTQUNyQztRQUNELFFBQVEsRUFBRSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0tBQ3ZEO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsV0FBVztRQUNqQixTQUFTLEVBQUUsYUFBYTtRQUN4QixXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDekIsSUFBSSxFQUFFO1lBQ0YsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7U0FDL0Q7UUFDRCxRQUFRLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO0tBQy9EO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsS0FBSztRQUNYLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUN6QixJQUFJLEVBQUU7WUFDRixVQUFVLEVBQUUsY0FBYztZQUMxQixVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7U0FDL0Q7UUFDRCxRQUFRLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUN6RDtJQUNEO1FBQ0ksSUFBSSxFQUFFLHFDQUFxQztRQUMzQyxTQUFTLEVBQUUsYUFBYTtRQUN4QixXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDekIsSUFBSSxFQUFFO1lBQ0YsVUFBVSxFQUFFLGNBQWM7WUFDMUIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO1NBQy9EO1FBQ0QsUUFBUSxFQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7S0FDekQ7SUFDRDtRQUNJLElBQUksRUFBRSxZQUFZO1FBQ2xCLFNBQVMsRUFBRSxhQUFhO1FBQ3hCLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUN6QixJQUFJLEVBQUU7WUFDRixVQUFVLEVBQUUsY0FBYztZQUMxQixVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7U0FDL0Q7UUFDRCxRQUFRLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUN6RDtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XG5pbXBvcnQgeyBQYWdlQ29tcG9uZW50LCBQYWdlU2VydmljZSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xuaW1wb3J0IHsgT3JkZXJHdWFyZCB9IGZyb20gJy4vcHJvdmlkZXJzL3JvdXRpbmcvb3JkZXIuZ3VhcmQnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUm91dGVzID0gKHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSk6IFJvdXRlW10gPT4gW1xuICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogUGFnZUNvbXBvbmVudCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbG9jYXRpb25JZDogJ29yZGVyLWxpc3QnLFxuICAgICAgICAgICAgYnJlYWRjcnVtYjogXygnYnJlYWRjcnVtYi5vcmRlcnMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IHBhZ2VTZXJ2aWNlLmdldFBhZ2VUYWJSb3V0ZXMoJ29yZGVyLWxpc3QnKSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJ2RyYWZ0LzppZCcsXG4gICAgICAgIGNvbXBvbmVudDogUGFnZUNvbXBvbmVudCxcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtPcmRlckd1YXJkXSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbG9jYXRpb25JZDogJ2RyYWZ0LW9yZGVyLWRldGFpbCcsXG4gICAgICAgICAgICBicmVhZGNydW1iOiB7IGxhYmVsOiBfKCdicmVhZGNydW1iLm9yZGVycycpLCBsaW5rOiBbJy4uLyddIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBwYWdlU2VydmljZS5nZXRQYWdlVGFiUm91dGVzKCdkcmFmdC1vcmRlci1kZXRhaWwnKSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJzppZCcsXG4gICAgICAgIGNvbXBvbmVudDogUGFnZUNvbXBvbmVudCxcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtPcmRlckd1YXJkXSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbG9jYXRpb25JZDogJ29yZGVyLWRldGFpbCcsXG4gICAgICAgICAgICBicmVhZGNydW1iOiB7IGxhYmVsOiBfKCdicmVhZGNydW1iLm9yZGVycycpLCBsaW5rOiBbJy4uLyddIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBwYWdlU2VydmljZS5nZXRQYWdlVGFiUm91dGVzKCdvcmRlci1kZXRhaWwnKSxcbiAgICB9LFxuICAgIHtcbiAgICAgICAgcGF0aDogJzphZ2dyZWdhdGVPcmRlcklkL3NlbGxlci1vcmRlcnMvOmlkJyxcbiAgICAgICAgY29tcG9uZW50OiBQYWdlQ29tcG9uZW50LFxuICAgICAgICBjYW5BY3RpdmF0ZTogW09yZGVyR3VhcmRdLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBsb2NhdGlvbklkOiAnb3JkZXItZGV0YWlsJyxcbiAgICAgICAgICAgIGJyZWFkY3J1bWI6IHsgbGFiZWw6IF8oJ2JyZWFkY3J1bWIub3JkZXJzJyksIGxpbms6IFsnLi4vJ10gfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IHBhZ2VTZXJ2aWNlLmdldFBhZ2VUYWJSb3V0ZXMoJ29yZGVyLWRldGFpbCcpLFxuICAgIH0sXG4gICAge1xuICAgICAgICBwYXRoOiAnOmlkL21vZGlmeScsXG4gICAgICAgIGNvbXBvbmVudDogUGFnZUNvbXBvbmVudCxcbiAgICAgICAgY2FuQWN0aXZhdGU6IFtPcmRlckd1YXJkXSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbG9jYXRpb25JZDogJ21vZGlmeS1vcmRlcicsXG4gICAgICAgICAgICBicmVhZGNydW1iOiB7IGxhYmVsOiBfKCdicmVhZGNydW1iLm9yZGVycycpLCBsaW5rOiBbJy4uLyddIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBwYWdlU2VydmljZS5nZXRQYWdlVGFiUm91dGVzKCdtb2RpZnktb3JkZXInKSxcbiAgICB9LFxuXTtcbiJdfQ==
|
|
@@ -8,35 +8,35 @@ import * as i2 from "@angular/common";
|
|
|
8
8
|
import * as i3 from "@angular/router";
|
|
9
9
|
import * as i4 from "@vendure/admin-ui/core";
|
|
10
10
|
import * as i5 from "@ngx-translate/core";
|
|
11
|
-
export const GET_ADMINISTRATOR_LIST = gql `
|
|
12
|
-
query GetAdministratorList($options: AdministratorListOptions) {
|
|
13
|
-
administrators(options: $options) {
|
|
14
|
-
items {
|
|
15
|
-
...AdministratorListItem
|
|
16
|
-
}
|
|
17
|
-
totalItems
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
fragment AdministratorListItem on Administrator {
|
|
21
|
-
id
|
|
22
|
-
createdAt
|
|
23
|
-
updatedAt
|
|
24
|
-
firstName
|
|
25
|
-
lastName
|
|
26
|
-
emailAddress
|
|
27
|
-
user {
|
|
28
|
-
id
|
|
29
|
-
identifier
|
|
30
|
-
lastLogin
|
|
31
|
-
roles {
|
|
32
|
-
id
|
|
33
|
-
createdAt
|
|
34
|
-
updatedAt
|
|
35
|
-
code
|
|
36
|
-
description
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
11
|
+
export const GET_ADMINISTRATOR_LIST = gql `
|
|
12
|
+
query GetAdministratorList($options: AdministratorListOptions) {
|
|
13
|
+
administrators(options: $options) {
|
|
14
|
+
items {
|
|
15
|
+
...AdministratorListItem
|
|
16
|
+
}
|
|
17
|
+
totalItems
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
fragment AdministratorListItem on Administrator {
|
|
21
|
+
id
|
|
22
|
+
createdAt
|
|
23
|
+
updatedAt
|
|
24
|
+
firstName
|
|
25
|
+
lastName
|
|
26
|
+
emailAddress
|
|
27
|
+
user {
|
|
28
|
+
id
|
|
29
|
+
identifier
|
|
30
|
+
lastLogin
|
|
31
|
+
roles {
|
|
32
|
+
id
|
|
33
|
+
createdAt
|
|
34
|
+
updatedAt
|
|
35
|
+
code
|
|
36
|
+
description
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
40
|
`;
|
|
41
41
|
export class AdministratorListComponent extends TypedBaseListComponent {
|
|
42
42
|
constructor() {
|
|
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
118
118
|
type: Component,
|
|
119
119
|
args: [{ selector: 'vdr-administrator-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left> </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"administrator-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n *vdrIfPermissions=\"['CreateAdministrator']\"\r\n [routerLink]=\"['./', 'create']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'admin.create-new-administrator' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"administrator-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"administrator-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n />\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n />\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('lastName')\">\r\n <ng-template let-administrator=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', administrator.id]\"\r\n ><span>{{ administrator.firstName }} {{ administrator.lastName }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.email-address' | translate\" id=\"email-address\" [sort]=\"sorts.get('emailAddress')\">\r\n <ng-template let-administrator=\"item\">\r\n {{ administrator.emailAddress }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'settings.roles' | translate\" id=\"roles\">\r\n <ng-template let-administrator=\"item\">\r\n <vdr-chip *ngFor=\"let role of administrator.user.roles\">{{ role.description }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column\r\n *ngFor=\"let customField of customFields\"\r\n [customField]=\"customField\"\r\n [sorts]=\"sorts\"\r\n />\r\n</vdr-data-table-2>\r\n", styles: [".search-input{min-width:300px}\n"] }]
|
|
120
120
|
}], ctorParameters: () => [] });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5pc3RyYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2V0dGluZ3Mvc3JjL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRvci1saXN0L2FkbWluaXN0cmF0b3ItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NldHRpbmdzL3NyYy9jb21wb25lbnRzL2FkbWluaXN0cmF0b3ItbGlzdC9hZG1pbmlzdHJhdG9yLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkJ4QyxDQUFDO0FBT0YsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUcvQztJQW9DRztRQUNJLEtBQUssRUFBRSxDQUFDO1FBcENaLG9CQUFlLEdBQUcsb0JBQW9CLENBQUM7UUFDOUIsaUJBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUQsWUFBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTthQUMzQyxXQUFXLEVBQUU7YUFDYixjQUFjLEVBQUU7YUFDaEIsU0FBUyxDQUFDO1lBQ1AsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBQy9CLFdBQVcsRUFBRSxXQUFXO1NBQzNCLENBQUM7YUFDRCxTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsVUFBVTtZQUNoQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDOUIsV0FBVyxFQUFFLFVBQVU7U0FDMUIsQ0FBQzthQUNELFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxjQUFjO1lBQ3BCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDdEIsS0FBSyxFQUFFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztZQUNsQyxXQUFXLEVBQUUsY0FBYztTQUM5QixDQUFDO2FBQ0QscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN4QyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLFVBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7YUFDdkMsV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7YUFDaEMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDN0IsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO2FBQ2pDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUk1QixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ1osUUFBUSxFQUFFLDRCQUE0QjtZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYztZQUNyQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1lBQzlGLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDN0UsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsVUFBeUI7UUFDbkUsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksY0FBYyxHQUFvQixlQUFlLENBQUMsR0FBRyxDQUFDO1FBRTFELElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixPQUFPLEdBQUc7Z0JBQ04sWUFBWSxFQUFFO29CQUNWLFFBQVEsRUFBRSxVQUFVO2lCQUN2QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7aUJBQ3ZCO2dCQUNELFFBQVEsRUFBRTtvQkFDTixRQUFRLEVBQUUsVUFBVTtpQkFDdkI7YUFDSixDQUFDO1lBQ0YsY0FBYyxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU87WUFDSCxPQUFPLEVBQUU7Z0JBQ0wsSUFBSTtnQkFDSixJQUFJO2dCQUNKLE1BQU0sRUFBRTtvQkFDSixHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2lCQUN0QztnQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xDLGNBQWM7YUFDakI7U0FDSixDQUFDO0lBQ04sQ0FBQzsrR0EvRVEsMEJBQTBCO21HQUExQiwwQkFBMEIscUZDOUN2QyxpbUhBcUZBOzs0RkR2Q2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xuaW1wb3J0IHtcbiAgICBBRE1JTklTVFJBVE9SX0ZSQUdNRU5ULFxuICAgIEdldEFkbWluaXN0cmF0b3JMaXN0RG9jdW1lbnQsXG4gICAgTG9naWNhbE9wZXJhdG9yLFxuICAgIFR5cGVkQmFzZUxpc3RDb21wb25lbnQsXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuXG5leHBvcnQgY29uc3QgR0VUX0FETUlOSVNUUkFUT1JfTElTVCA9IGdxbGBcbiAgICBxdWVyeSBHZXRBZG1pbmlzdHJhdG9yTGlzdCgkb3B0aW9uczogQWRtaW5pc3RyYXRvckxpc3RPcHRpb25zKSB7XG4gICAgICAgIGFkbWluaXN0cmF0b3JzKG9wdGlvbnM6ICRvcHRpb25zKSB7XG4gICAgICAgICAgICBpdGVtcyB7XG4gICAgICAgICAgICAgICAgLi4uQWRtaW5pc3RyYXRvckxpc3RJdGVtXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b3RhbEl0ZW1zXG4gICAgICAgIH1cbiAgICB9XG4gICAgZnJhZ21lbnQgQWRtaW5pc3RyYXRvckxpc3RJdGVtIG9uIEFkbWluaXN0cmF0b3Ige1xuICAgICAgICBpZFxuICAgICAgICBjcmVhdGVkQXRcbiAgICAgICAgdXBkYXRlZEF0XG4gICAgICAgIGZpcnN0TmFtZVxuICAgICAgICBsYXN0TmFtZVxuICAgICAgICBlbWFpbEFkZHJlc3NcbiAgICAgICAgdXNlciB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgaWRlbnRpZmllclxuICAgICAgICAgICAgbGFzdExvZ2luXG4gICAgICAgICAgICByb2xlcyB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICBjcmVhdGVkQXRcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcbiAgICAgICAgICAgICAgICBjb2RlXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLWFkbWluaXN0cmF0b3ItbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkbWluaXN0cmF0b3ItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRtaW5pc3RyYXRvci1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluaXN0cmF0b3JMaXN0Q29tcG9uZW50IGV4dGVuZHMgVHlwZWRCYXNlTGlzdENvbXBvbmVudDxcbiAgICB0eXBlb2YgR2V0QWRtaW5pc3RyYXRvckxpc3REb2N1bWVudCxcbiAgICAnYWRtaW5pc3RyYXRvcnMnXG4+IHtcbiAgICBkYXRhVGFibGVMaXN0SWQgPSAnYWRtaW5pc3RyYXRvci1saXN0JztcbiAgICByZWFkb25seSBjdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdBZG1pbmlzdHJhdG9yJyk7XG4gICAgcmVhZG9ubHkgZmlsdGVycyA9IHRoaXMuY3JlYXRlRmlsdGVyQ29sbGVjdGlvbigpXG4gICAgICAgIC5hZGRJZEZpbHRlcigpXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXG4gICAgICAgIC5hZGRGaWx0ZXIoe1xuICAgICAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICd0ZXh0JyB9LFxuICAgICAgICAgICAgbGFiZWw6IF8oJ3NldHRpbmdzLmZpcnN0LW5hbWUnKSxcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnZmlyc3ROYW1lJyxcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZEZpbHRlcih7XG4gICAgICAgICAgICBuYW1lOiAnbGFzdE5hbWUnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcbiAgICAgICAgICAgIGxhYmVsOiBfKCdzZXR0aW5ncy5sYXN0LW5hbWUnKSxcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnbGFzdE5hbWUnLFxuICAgICAgICB9KVxuICAgICAgICAuYWRkRmlsdGVyKHtcbiAgICAgICAgICAgIG5hbWU6ICdlbWFpbEFkZHJlc3MnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcbiAgICAgICAgICAgIGxhYmVsOiBfKCdzZXR0aW5ncy5lbWFpbC1hZGRyZXNzJyksXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2VtYWlsQWRkcmVzcycsXG4gICAgICAgIH0pXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZEZpbHRlcnModGhpcy5jdXN0b21GaWVsZHMpXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcblxuICAgIHJlYWRvbmx5IHNvcnRzID0gdGhpcy5jcmVhdGVTb3J0Q29sbGVjdGlvbigpXG4gICAgICAgIC5kZWZhdWx0U29ydCgnY3JlYXRlZEF0JywgJ0RFU0MnKVxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICdjcmVhdGVkQXQnIH0pXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSlcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnbGFzdE5hbWUnIH0pXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2VtYWlsQWRkcmVzcycgfSlcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzdXBlci5jb25maWd1cmUoe1xuICAgICAgICAgICAgZG9jdW1lbnQ6IEdldEFkbWluaXN0cmF0b3JMaXN0RG9jdW1lbnQsXG4gICAgICAgICAgICBnZXRJdGVtczogZGF0YSA9PiBkYXRhLmFkbWluaXN0cmF0b3JzLFxuICAgICAgICAgICAgc2V0VmFyaWFibGVzOiAoc2tpcCwgdGFrZSkgPT4gdGhpcy5jcmVhdGVTZWFyY2hRdWVyeShza2lwLCB0YWtlLCB0aGlzLnNlYXJjaFRlcm1Db250cm9sLnZhbHVlKSxcbiAgICAgICAgICAgIHJlZnJlc2hMaXN0T25DaGFuZ2VzOiBbdGhpcy5maWx0ZXJzLnZhbHVlQ2hhbmdlcywgdGhpcy5zb3J0cy52YWx1ZUNoYW5nZXNdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjcmVhdGVTZWFyY2hRdWVyeShza2lwOiBudW1iZXIsIHRha2U6IG51bWJlciwgc2VhcmNoVGVybTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBsZXQgX2ZpbHRlciA9IHt9O1xuICAgICAgICBsZXQgZmlsdGVyT3BlcmF0b3I6IExvZ2ljYWxPcGVyYXRvciA9IExvZ2ljYWxPcGVyYXRvci5BTkQ7XG5cbiAgICAgICAgaWYgKHNlYXJjaFRlcm0pIHtcbiAgICAgICAgICAgIF9maWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgZW1haWxBZGRyZXNzOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmlyc3ROYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbGFzdE5hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHNlYXJjaFRlcm0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmaWx0ZXJPcGVyYXRvciA9IExvZ2ljYWxPcGVyYXRvci5PUjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHNraXAsXG4gICAgICAgICAgICAgICAgdGFrZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uKF9maWx0ZXIgPz8ge30pLFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpbHRlcnMuY3JlYXRlRmlsdGVySW5wdXQoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNvcnQ6IHRoaXMuc29ydHMuY3JlYXRlU29ydElucHV0KCksXG4gICAgICAgICAgICAgICAgZmlsdGVyT3BlcmF0b3IsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhcj5cclxuICAgICAgICA8dmRyLWFiLWxlZnQ+IDwvdmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWl0ZW1zIGxvY2F0aW9uSWQ9XCJhZG1pbmlzdHJhdG9yLWxpc3RcIiAvPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgKnZkcklmUGVybWlzc2lvbnM9XCJbJ0NyZWF0ZUFkbWluaXN0cmF0b3InXVwiXHJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy4vJywgJ2NyZWF0ZSddXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyAnYWRtaW4uY3JlYXRlLW5ldy1hZG1pbmlzdHJhdG9yJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDx2ZHItYWN0aW9uLWJhci1kcm9wZG93bi1tZW51IGxvY2F0aW9uSWQ9XCJhZG1pbmlzdHJhdG9yLWxpc3RcIiAvPlxyXG4gICAgICAgIDwvdmRyLWFiLXJpZ2h0PlxyXG4gICAgPC92ZHItYWN0aW9uLWJhcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuPHZkci1kYXRhLXRhYmxlLTJcclxuICAgIGNsYXNzPVwibXQtMlwiXHJcbiAgICBbaWRdPVwiZGF0YVRhYmxlTGlzdElkXCJcclxuICAgIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZSQgfCBhc3luY1wiXHJcbiAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXHJcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cInNldFBhZ2VOdW1iZXIoJGV2ZW50KVwiXHJcbiAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cInNldEl0ZW1zUGVyUGFnZSgkZXZlbnQpXCJcclxuICAgICh2aXNpYmxlQ29sdW1uc0NoYW5nZSk9XCJzZXRWaXNpYmxlQ29sdW1ucygkZXZlbnQpXCJcclxuPlxyXG4gICAgPHZkci1idWxrLWFjdGlvbi1tZW51XHJcbiAgICAgICAgbG9jYXRpb25JZD1cImFkbWluaXN0cmF0b3ItbGlzdFwiXHJcbiAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXHJcbiAgICAgICAgW3NlbGVjdGlvbk1hbmFnZXJdPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAgICAvPlxyXG4gICAgPHZkci1kdDItc2VhcmNoXHJcbiAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAvPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uaWQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJpZFwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtYWRtaW5pc3RyYXRvcj1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgYWRtaW5pc3RyYXRvci5pZCB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwiY3JlYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ2NyZWF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWFkbWluaXN0cmF0b3I9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IGFkbWluaXN0cmF0b3IuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCd1cGRhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1hZG1pbmlzdHJhdG9yPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBhZG1pbmlzdHJhdG9yLnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiIGlkPVwibmFtZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnbGFzdE5hbWUnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtYWRtaW5pc3RyYXRvcj1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJidXR0b24tZ2hvc3RcIiBbcm91dGVyTGlua109XCJbJy4vJywgYWRtaW5pc3RyYXRvci5pZF1cIlxyXG4gICAgICAgICAgICAgICAgPjxzcGFuPnt7IGFkbWluaXN0cmF0b3IuZmlyc3ROYW1lIH19IHt7IGFkbWluaXN0cmF0b3IubGFzdE5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInc2V0dGluZ3MuZW1haWwtYWRkcmVzcycgfCB0cmFuc2xhdGVcIiBpZD1cImVtYWlsLWFkZHJlc3NcIiBbc29ydF09XCJzb3J0cy5nZXQoJ2VtYWlsQWRkcmVzcycpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1hZG1pbmlzdHJhdG9yPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBhZG1pbmlzdHJhdG9yLmVtYWlsQWRkcmVzcyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidzZXR0aW5ncy5yb2xlcycgfCB0cmFuc2xhdGVcIiBpZD1cInJvbGVzXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1hZG1pbmlzdHJhdG9yPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nRm9yPVwibGV0IHJvbGUgb2YgYWRtaW5pc3RyYXRvci51c2VyLnJvbGVzXCI+e3sgcm9sZS5kZXNjcmlwdGlvbiB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jdXN0b20tZmllbGQtY29sdW1uXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGN1c3RvbUZpZWxkIG9mIGN1c3RvbUZpZWxkc1wiXHJcbiAgICAgICAgW2N1c3RvbUZpZWxkXT1cImN1c3RvbUZpZWxkXCJcclxuICAgICAgICBbc29ydHNdPVwic29ydHNcIlxyXG4gICAgLz5cclxuPC92ZHItZGF0YS10YWJsZS0yPlxyXG4iXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5pc3RyYXRvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2V0dGluZ3Mvc3JjL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRvci1saXN0L2FkbWluaXN0cmF0b3ItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NldHRpbmdzL3NyYy9jb21wb25lbnRzL2FkbWluaXN0cmF0b3ItbGlzdC9hZG1pbmlzdHJhdG9yLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkJ4QyxDQUFDO0FBT0YsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUcvQztJQW9DRztRQUNJLEtBQUssRUFBRSxDQUFDO1FBcENaLG9CQUFlLEdBQUcsb0JBQW9CLENBQUM7UUFDOUIsaUJBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUQsWUFBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTthQUMzQyxXQUFXLEVBQUU7YUFDYixjQUFjLEVBQUU7YUFDaEIsU0FBUyxDQUFDO1lBQ1AsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN0QixLQUFL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dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7XHJcbiAgICBBRE1JTklTVFJBVE9SX0ZSQUdNRU5ULFxyXG4gICAgR2V0QWRtaW5pc3RyYXRvckxpc3REb2N1bWVudCxcclxuICAgIExvZ2ljYWxPcGVyYXRvcixcclxuICAgIFR5cGVkQmFzZUxpc3RDb21wb25lbnQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcbmV4cG9ydCBjb25zdCBHRVRfQURNSU5JU1RSQVRPUl9MSVNUID0gZ3FsYFxyXG4gICAgcXVlcnkgR2V0QWRtaW5pc3RyYXRvckxpc3QoJG9wdGlvbnM6IEFkbWluaXN0cmF0b3JMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGFkbWluaXN0cmF0b3JzKG9wdGlvbnM6ICRvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zIHtcclxuICAgICAgICAgICAgICAgIC4uLkFkbWluaXN0cmF0b3JMaXN0SXRlbVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRvdGFsSXRlbXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBmcmFnbWVudCBBZG1pbmlzdHJhdG9yTGlzdEl0ZW0gb24gQWRtaW5pc3RyYXRvciB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICBjcmVhdGVkQXRcclxuICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgIGVtYWlsQWRkcmVzc1xyXG4gICAgICAgIHVzZXIge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICBpZGVudGlmaWVyXHJcbiAgICAgICAgICAgIGxhc3RMb2dpblxyXG4gICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVkQXRcclxuICAgICAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFkbWluaXN0cmF0b3ItbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRtaW5pc3RyYXRvci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FkbWluaXN0cmF0b3ItbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtaW5pc3RyYXRvckxpc3RDb21wb25lbnQgZXh0ZW5kcyBUeXBlZEJhc2VMaXN0Q29tcG9uZW50PFxyXG4gICAgdHlwZW9mIEdldEFkbWluaXN0cmF0b3JMaXN0RG9jdW1lbnQsXHJcbiAgICAnYWRtaW5pc3RyYXRvcnMnXHJcbj4ge1xyXG4gICAgZGF0YVRhYmxlTGlzdElkID0gJ2FkbWluaXN0cmF0b3ItbGlzdCc7XHJcbiAgICByZWFkb25seSBjdXN0b21GaWVsZHMgPSB0aGlzLmdldEN1c3RvbUZpZWxkQ29uZmlnKCdBZG1pbmlzdHJhdG9yJyk7XHJcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcclxuICAgICAgICAuYWRkSWRGaWx0ZXIoKVxyXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXHJcbiAgICAgICAgLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdmaXJzdE5hbWUnLFxyXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICd0ZXh0JyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnc2V0dGluZ3MuZmlyc3QtbmFtZScpLFxyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2ZpcnN0TmFtZScsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgbmFtZTogJ2xhc3ROYW1lJyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ3NldHRpbmdzLmxhc3QtbmFtZScpLFxyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2xhc3ROYW1lJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAnZW1haWxBZGRyZXNzJyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAndGV4dCcgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ3NldHRpbmdzLmVtYWlsLWFkZHJlc3MnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICdlbWFpbEFkZHJlc3MnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkRmlsdGVycyh0aGlzLmN1c3RvbUZpZWxkcylcclxuICAgICAgICAuY29ubmVjdFRvUm91dGUodGhpcy5yb3V0ZSk7XHJcblxyXG4gICAgcmVhZG9ubHkgc29ydHMgPSB0aGlzLmNyZWF0ZVNvcnRDb2xsZWN0aW9uKClcclxuICAgICAgICAuZGVmYXVsdFNvcnQoJ2NyZWF0ZWRBdCcsICdERVNDJylcclxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICdjcmVhdGVkQXQnIH0pXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAndXBkYXRlZEF0JyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2xhc3ROYW1lJyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2VtYWlsQWRkcmVzcycgfSlcclxuICAgICAgICAuYWRkQ3VzdG9tRmllbGRTb3J0cyh0aGlzLmN1c3RvbUZpZWxkcylcclxuICAgICAgICAuY29ubmVjdFRvUm91dGUodGhpcy5yb3V0ZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBzdXBlci5jb25maWd1cmUoe1xyXG4gICAgICAgICAgICBkb2N1bWVudDogR2V0QWRtaW5pc3RyYXRvckxpc3REb2N1bWVudCxcclxuICAgICAgICAgICAgZ2V0SXRlbXM6IGRhdGEgPT4gZGF0YS5hZG1pbmlzdHJhdG9ycyxcclxuICAgICAgICAgICAgc2V0VmFyaWFibGVzOiAoc2tpcCwgdGFrZSkgPT4gdGhpcy5jcmVhdGVTZWFyY2hRdWVyeShza2lwLCB0YWtlLCB0aGlzLnNlYXJjaFRlcm1Db250cm9sLnZhbHVlKSxcclxuICAgICAgICAgICAgcmVmcmVzaExpc3RPbkNoYW5nZXM6IFt0aGlzLmZpbHRlcnMudmFsdWVDaGFuZ2VzLCB0aGlzLnNvcnRzLnZhbHVlQ2hhbmdlc10sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlU2VhcmNoUXVlcnkoc2tpcDogbnVtYmVyLCB0YWtlOiBudW1iZXIsIHNlYXJjaFRlcm06IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICBsZXQgX2ZpbHRlciA9IHt9O1xyXG4gICAgICAgIGxldCBmaWx0ZXJPcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yID0gTG9naWNhbE9wZXJhdG9yLkFORDtcclxuXHJcbiAgICAgICAgaWYgKHNlYXJjaFRlcm0pIHtcclxuICAgICAgICAgICAgX2ZpbHRlciA9IHtcclxuICAgICAgICAgICAgICAgIGVtYWlsQWRkcmVzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZpcnN0TmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGxhc3ROYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IHNlYXJjaFRlcm0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmaWx0ZXJPcGVyYXRvciA9IExvZ2ljYWxPcGVyYXRvci5PUjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAuLi4oX2ZpbHRlciA/PyB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLmNyZWF0ZUZpbHRlcklucHV0KCksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc29ydDogdGhpcy5zb3J0cy5jcmVhdGVTb3J0SW5wdXQoKSxcclxuICAgICAgICAgICAgICAgIGZpbHRlck9wZXJhdG9yLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1wYWdlLWJsb2NrPlxyXG4gICAgPHZkci1hY3Rpb24tYmFyPlxyXG4gICAgICAgIDx2ZHItYWItbGVmdD4gPC92ZHItYWItbGVmdD5cclxuICAgICAgICA8dmRyLWFiLXJpZ2h0PlxyXG4gICAgICAgICAgICA8dmRyLWFjdGlvbi1iYXItaXRlbXMgbG9jYXRpb25JZD1cImFkbWluaXN0cmF0b3ItbGlzdFwiIC8+XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cIlsnQ3JlYXRlQWRtaW5pc3RyYXRvciddXCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi8nLCAnY3JlYXRlJ11cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIHt7ICdhZG1pbi5jcmVhdGUtbmV3LWFkbWluaXN0cmF0b3InIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWRyb3Bkb3duLW1lbnUgbG9jYXRpb25JZD1cImFkbWluaXN0cmF0b3ItbGlzdFwiIC8+XHJcbiAgICAgICAgPC92ZHItYWItcmlnaHQ+XHJcbiAgICA8L3Zkci1hY3Rpb24tYmFyPlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG48dmRyLWRhdGEtdGFibGUtMlxyXG4gICAgY2xhc3M9XCJtdC0yXCJcclxuICAgIFtpZF09XCJkYXRhVGFibGVMaXN0SWRcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwic2V0SXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4gICAgKHZpc2libGVDb2x1bW5zQ2hhbmdlKT1cInNldFZpc2libGVDb2x1bW5zKCRldmVudClcIlxyXG4+XHJcbiAgICA8dmRyLWJ1bGstYWN0aW9uLW1lbnVcclxuICAgICAgICBsb2NhdGlvbklkPVwiYWRtaW5pc3RyYXRvci1saXN0XCJcclxuICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgICBbc2VsZWN0aW9uTWFuYWdlcl09XCJzZWxlY3Rpb25NYW5hZ2VyXCJcclxuICAgIC8+XHJcbiAgICA8dmRyLWR0Mi1zZWFyY2hcclxuICAgICAgICBbc2VhcmNoVGVybUNvbnRyb2xdPVwic2VhcmNoVGVybUNvbnRyb2xcIlxyXG4gICAgICAgIFtzZWFyY2hUZXJtUGxhY2Vob2xkZXJdPVwiJ2NhdGFsb2cuZmlsdGVyLWJ5LW5hbWUnIHwgdHJhbnNsYXRlXCJcclxuICAgIC8+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBpZD1cImlkXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1hZG1pbmlzdHJhdG9yPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBhZG1pbmlzdHJhdG9yLmlkIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW5cclxuICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLmNyZWF0ZWQtYXQnIHwgdHJhbnNsYXRlXCIgaWQ9XCJjcmVhdGVkLWF0XCJcclxuICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxyXG4gICAgICAgIFtzb3J0XT1cInNvcnRzLmdldCgnY3JlYXRlZEF0JylcIlxyXG4gICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtYWRtaW5pc3RyYXRvcj1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgYWRtaW5pc3RyYXRvci5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwidXBkYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3VwZGF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWFkbWluaXN0cmF0b3I9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IGFkbWluaXN0cmF0b3IudXBkYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCdsYXN0TmFtZScpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1hZG1pbmlzdHJhdG9yPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImJ1dHRvbi1naG9zdFwiIFtyb3V0ZXJMaW5rXT1cIlsnLi8nLCBhZG1pbmlzdHJhdG9yLmlkXVwiXHJcbiAgICAgICAgICAgICAgICA+PHNwYW4+e3sgYWRtaW5pc3RyYXRvci5maXJzdE5hbWUgfX0ge3sgYWRtaW5pc3RyYXRvci5sYXN0TmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidzZXR0aW5ncy5lbWFpbC1hZGRyZXNzJyB8IHRyYW5zbGF0ZVwiIGlkPVwiZW1haWwtYWRkcmVzc1wiIFtzb3J0XT1cInNvcnRzLmdldCgnZW1haWxBZGRyZXNzJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWFkbWluaXN0cmF0b3I9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IGFkbWluaXN0cmF0b3IuZW1haWxBZGRyZXNzIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ3NldHRpbmdzLnJvbGVzJyB8IHRyYW5zbGF0ZVwiIGlkPVwicm9sZXNcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWFkbWluaXN0cmF0b3I9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdGb3I9XCJsZXQgcm9sZSBvZiBhZG1pbmlzdHJhdG9yLnVzZXIucm9sZXNcIj57eyByb2xlLmRlc2NyaXB0aW9uIH19PC92ZHItY2hpcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWN1c3RvbS1maWVsZC1jb2x1bW5cclxuICAgICAgICAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2YgY3VzdG9tRmllbGRzXCJcclxuICAgICAgICBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIlxyXG4gICAgICAgIFtzb3J0c109XCJzb3J0c1wiXHJcbiAgICAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|