@hitsoft/e-donusum 1.0.117 → 1.0.118
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/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.mjs +3 -3
- package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.component.mjs +2 -2
- package/fesm2015/hitsoft-e-donusum.mjs +4 -4
- package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
- package/fesm2020/hitsoft-e-donusum.mjs +4 -4
- package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -169,10 +169,10 @@ export class HitInboundDespatchComponent {
|
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
HitInboundDespatchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInboundDespatchComponent, deps: [{ token: i1.ListService }, { token: i2.HitInboundDespatchService }, { token: i3.HitDespatchLineService }, { token: i4.HitInvoiceService }, { token: i5.FormBuilder }, { token: i6.ToasterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
-
HitInboundDespatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitInboundDespatchComponent, selector: "lib-inbound-despatch", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxInboundDespatchInstance", first: true, predicate: ["dxInboundDespatchInstance"], descendants: true }, { propertyName: "dxDespatchRowsInstance", first: true, predicate: ["dxDespatchRowsInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::InboundDespatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"downloadPDFMultiple()\">\r\n <i class=\"fa fa-download me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::DownloadPDFMultiple' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInboundDespatches()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckInboundDespatches' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <p>Entegrat\u00F6rden al\u0131nan irsaliyeleri listeleyen ekran</p>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInboundDespatchInstance [dataSource]=\"inboundDespatchDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\"\r\n [columnHidingEnabled]=\"true\" [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <!--<button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button> -->\r\n <button ngbDropdownItem (click)=\"getInboundDespatchPreview(row.data)\"\r\n *ngIf=\"row.data.status == 600 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"openResponseModal(row.data)\"\r\n *ngIf=\"row.data.profileId == 'TEMELIRSALIYE' && row.data.receiverResponse == 4 && row.data.status == 600\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::Response' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"despatchId\" caption=\"{{'eDonusum::DespatchId'|abpLocalization}}\"\r\n aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyName\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyName'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyVknTckn\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyVknTckn'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\" aria-hidden=\"true\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : data.data.receiverResponse == '3' ? 'orange' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n\r\n </div>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::DespatchProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"despatchAdviceTypeCode\"\r\n caption=\"{{'eDonusum::DespatchAdviceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'm' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"invoice-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-accept\" formControlName=\"isAccepted\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-accept\" class=\"form-check-label\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-reject\" formControlName=\"isRejected\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-reject\" class=\"form-check-label\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-warning\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(false)\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-success\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(true)\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'xl' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"despatch-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxDespatchRowsInstance [dataSource]=\"despatchRowsDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\"\r\n [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\" columnResizingMode=\"widget\"\r\n [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"false\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 50vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-editing mode=\"batch\" useIcons=\"true\" [allowUpdating]=\"true\" [allowAdding]=\"false\"\r\n [hidden]=\"true\" [allowDeleting]=\"false\">\r\n </dxo-editing>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemKeyword\"\r\n caption=\"{{'eDonusum::ItemCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemName\"\r\n caption=\"{{'eDonusum::ItemName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"despatchdQuantity\"\r\n caption=\"{{'eDonusum::DespatchedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"unitCode\"\r\n caption=\"{{'eDonusum::UnitCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"acceptedQuantity\" value='0'\r\n caption=\"{{'eDonusum::AcceptedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectedQuantity\" value='0'\r\n caption=\"{{'eDonusum::RejectedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectDescription\"\r\n caption=\"{{'eDonusum::RejectDescription'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-times\" class=\"btn btn-warning\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(2)\">\r\n {{ 'eDonusum::RejectAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-primary\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(1)\">\r\n {{ 'eDonusum::AcceptAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-pencil\" class=\"btn btn-success\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(0)\">\r\n {{ 'eDonusum::PartialAccept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i11.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i11.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i11.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i11.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i11.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i11.DxoEditingComponent, selector: "dxo-editing", inputs: ["allowAdding", "allowDeleting", "allowUpdating", "changes", "confirmDelete", "editColumnName", "editRowKey", "form", "mode", "newRowPosition", "popup", "refreshMode", "selectTextOnEditStart", "startEditAction", "texts", "useIcons", "allowAddShape", "allowChangeConnection", "allowChangeConnectorPoints", "allowChangeConnectorText", "allowChangeShapeText", "allowDeleteConnector", "allowDeleteShape", "allowMoveShape", "allowResizeShape", "allowDependencyAdding", "allowDependencyDeleting", "allowResourceAdding", "allowResourceDeleting", "allowResourceUpdating", "allowTaskAdding", "allowTaskDeleting", "allowTaskResourceUpdating", "allowTaskUpdating", "enabled", "allowDragging", "allowResizing", "allowTimeZoneEditing"], outputs: ["changesChange", "editColumnNameChange", "editRowKeyChange"] }, { kind: "component", type: i11.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i11.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i11.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i11.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i11.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i11.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i11.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i11.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i11.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i11.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i11.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i12.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i13.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i13.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
172
|
+
HitInboundDespatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitInboundDespatchComponent, selector: "lib-inbound-despatch", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], viewQueries: [{ propertyName: "dxInboundDespatchInstance", first: true, predicate: ["dxInboundDespatchInstance"], descendants: true }, { propertyName: "dxDespatchRowsInstance", first: true, predicate: ["dxDespatchRowsInstance"], descendants: true }], ngImport: i0, template: "<abp-page [title]=\"'eDonusum::InboundDespatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.Despatches'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"viewPDFsMultiple()\">\r\n <i class=\"fa fa-eye me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::ViewPDFMultiple' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInboundDespatches()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckInboundDespatches' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <p>Entegrat\u00F6rden al\u0131nan irsaliyeleri listeleyen ekran</p>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInboundDespatchInstance [dataSource]=\"inboundDespatchDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\"\r\n [columnHidingEnabled]=\"true\" [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <!--<button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button> -->\r\n <button ngbDropdownItem (click)=\"getInboundDespatchPreview(row.data)\"\r\n *ngIf=\"row.data.status == 600 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"openResponseModal(row.data)\"\r\n *ngIf=\"row.data.profileId == 'TEMELIRSALIYE' && row.data.receiverResponse == 4 && row.data.status == 600\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::Response' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"despatchId\" caption=\"{{'eDonusum::DespatchId'|abpLocalization}}\"\r\n aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyName\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyName'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyVknTckn\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyVknTckn'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\" aria-hidden=\"true\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : data.data.receiverResponse == '3' ? 'orange' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n\r\n </div>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::DespatchProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"despatchAdviceTypeCode\"\r\n caption=\"{{'eDonusum::DespatchAdviceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'm' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"invoice-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-accept\" formControlName=\"isAccepted\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-accept\" class=\"form-check-label\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-reject\" formControlName=\"isRejected\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-reject\" class=\"form-check-label\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-warning\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(false)\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-success\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(true)\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'xl' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"despatch-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxDespatchRowsInstance [dataSource]=\"despatchRowsDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\"\r\n [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\" columnResizingMode=\"widget\"\r\n [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"false\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 50vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-editing mode=\"batch\" useIcons=\"true\" [allowUpdating]=\"true\" [allowAdding]=\"false\"\r\n [hidden]=\"true\" [allowDeleting]=\"false\">\r\n </dxo-editing>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemKeyword\"\r\n caption=\"{{'eDonusum::ItemCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemName\"\r\n caption=\"{{'eDonusum::ItemName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"despatchdQuantity\"\r\n caption=\"{{'eDonusum::DespatchedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"unitCode\"\r\n caption=\"{{'eDonusum::UnitCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"acceptedQuantity\" value='0'\r\n caption=\"{{'eDonusum::AcceptedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectedQuantity\" value='0'\r\n caption=\"{{'eDonusum::RejectedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectDescription\"\r\n caption=\"{{'eDonusum::RejectDescription'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-times\" class=\"btn btn-warning\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(2)\">\r\n {{ 'eDonusum::RejectAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-primary\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(1)\">\r\n {{ 'eDonusum::AcceptAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-pencil\" class=\"btn btn-success\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(0)\">\r\n {{ 'eDonusum::PartialAccept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>", dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i6.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i11.DxoColumnChooserComponent, selector: "dxo-column-chooser", inputs: ["allowSearch", "emptyPanelText", "enabled", "height", "mode", "searchTimeout", "sortOrder", "title", "width"] }, { kind: "component", type: i11.DxoColumnFixingComponent, selector: "dxo-column-fixing", inputs: ["enabled", "texts"] }, { kind: "component", type: i11.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i11.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "dataSource", "groupInterval", "height", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i11.DxoLookupComponent, selector: "dxo-lookup", inputs: ["allowClearing", "calculateCellValue", "dataSource", "displayExpr", "valueExpr"] }, { kind: "component", type: i11.DxoEditingComponent, selector: "dxo-editing", inputs: ["allowAdding", "allowDeleting", "allowUpdating", "changes", "confirmDelete", "editColumnName", "editRowKey", "form", "mode", "newRowPosition", "popup", "refreshMode", "selectTextOnEditStart", "startEditAction", "texts", "useIcons", "allowAddShape", "allowChangeConnection", "allowChangeConnectorPoints", "allowChangeConnectorText", "allowChangeShapeText", "allowDeleteConnector", "allowDeleteShape", "allowMoveShape", "allowResizeShape", "allowDependencyAdding", "allowDependencyDeleting", "allowResourceAdding", "allowResourceDeleting", "allowResourceUpdating", "allowTaskAdding", "allowTaskDeleting", "allowTaskResourceUpdating", "allowTaskUpdating", "enabled", "allowDragging", "allowResizing", "allowTimeZoneEditing"], outputs: ["changesChange", "editColumnNameChange", "editRowKeyChange"] }, { kind: "component", type: i11.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i11.DxoFilterBuilderComponent, selector: "dxo-filter-builder", inputs: ["accessKey", "activeStateEnabled", "allowHierarchicalFields", "customOperations", "disabled", "elementAttr", "fields", "filterOperationDescriptions", "focusStateEnabled", "groupOperationDescriptions", "groupOperations", "height", "hint", "hoverStateEnabled", "maxGroupLevel", "onContentReady", "onDisposing", "onEditorPrepared", "onEditorPreparing", "onInitialized", "onOptionChanged", "onValueChanged", "rtlEnabled", "tabIndex", "value", "visible", "width"], outputs: ["valueChange"] }, { kind: "component", type: i11.DxoFilterPanelComponent, selector: "dxo-filter-panel", inputs: ["customizeText", "filterEnabled", "texts", "visible"], outputs: ["filterEnabledChange"] }, { kind: "component", type: i11.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i11.DxoGroupingComponent, selector: "dxo-grouping", inputs: ["allowCollapsing", "autoExpandAll", "contextMenuEnabled", "expandMode", "texts"] }, { kind: "component", type: i11.DxoGroupPanelComponent, selector: "dxo-group-panel", inputs: ["allowColumnDragging", "emptyPanelText", "visible"], outputs: ["visibleChange"] }, { kind: "component", type: i11.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i11.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i11.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i11.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "deferred", "mode", "selectAllMode", "showCheckBoxesMode", "recursive"] }, { kind: "component", type: i11.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i12.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i10.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i13.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i13.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
173
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInboundDespatchComponent, decorators: [{
|
|
174
174
|
type: Component,
|
|
175
|
-
args: [{ selector: 'lib-inbound-despatch', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::InboundDespatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"downloadPDFMultiple()\">\r\n <i class=\"fa fa-download me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::DownloadPDFMultiple' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInboundDespatches()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckInboundDespatches' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <p>Entegrat\u00F6rden al\u0131nan irsaliyeleri listeleyen ekran</p>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInboundDespatchInstance [dataSource]=\"inboundDespatchDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\"\r\n [columnHidingEnabled]=\"true\" [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <!--<button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button> -->\r\n <button ngbDropdownItem (click)=\"getInboundDespatchPreview(row.data)\"\r\n *ngIf=\"row.data.status == 600 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"openResponseModal(row.data)\"\r\n *ngIf=\"row.data.profileId == 'TEMELIRSALIYE' && row.data.receiverResponse == 4 && row.data.status == 600\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::Response' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"despatchId\" caption=\"{{'eDonusum::DespatchId'|abpLocalization}}\"\r\n aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyName\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyName'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyVknTckn\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyVknTckn'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\" aria-hidden=\"true\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : data.data.receiverResponse == '3' ? 'orange' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n\r\n </div>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::DespatchProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"despatchAdviceTypeCode\"\r\n caption=\"{{'eDonusum::DespatchAdviceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'm' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"invoice-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-accept\" formControlName=\"isAccepted\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-accept\" class=\"form-check-label\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-reject\" formControlName=\"isRejected\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-reject\" class=\"form-check-label\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-warning\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(false)\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-success\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(true)\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'xl' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"despatch-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxDespatchRowsInstance [dataSource]=\"despatchRowsDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\"\r\n [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\" columnResizingMode=\"widget\"\r\n [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"false\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 50vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-editing mode=\"batch\" useIcons=\"true\" [allowUpdating]=\"true\" [allowAdding]=\"false\"\r\n [hidden]=\"true\" [allowDeleting]=\"false\">\r\n </dxo-editing>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemKeyword\"\r\n caption=\"{{'eDonusum::ItemCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemName\"\r\n caption=\"{{'eDonusum::ItemName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"despatchdQuantity\"\r\n caption=\"{{'eDonusum::DespatchedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"unitCode\"\r\n caption=\"{{'eDonusum::UnitCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"acceptedQuantity\" value='0'\r\n caption=\"{{'eDonusum::AcceptedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectedQuantity\" value='0'\r\n caption=\"{{'eDonusum::RejectedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectDescription\"\r\n caption=\"{{'eDonusum::RejectDescription'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-times\" class=\"btn btn-warning\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(2)\">\r\n {{ 'eDonusum::RejectAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-primary\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(1)\">\r\n {{ 'eDonusum::AcceptAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-pencil\" class=\"btn btn-success\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(0)\">\r\n {{ 'eDonusum::PartialAccept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>" }]
|
|
175
|
+
args: [{ selector: 'lib-inbound-despatch', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'eDonusum::InboundDespatches' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button *abpPermission=\"'eDonusum.Despatches'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"viewPDFsMultiple()\">\r\n <i class=\"fa fa-eye me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::ViewPDFMultiple' | abpLocalization }}\r\n </button>\r\n <button *abpPermission=\"'eDonusum.Despatches.Create'\" class=\"btn btn-primary btn-sm\" type=\"button\"\r\n style=\"margin-right: 5px;\" (click)=\"getInboundDespatches()\">\r\n <i class=\"fa fa-envelope me-1\" aria-hidden=\"true\"></i>\r\n {{ 'eDonusum::CheckInboundDespatches' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <p>Entegrat\u00F6rden al\u0131nan irsaliyeleri listeleyen ekran</p>\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxInboundDespatchInstance [dataSource]=\"inboundDespatchDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\" [repaintChangesOnly]=\"true\"\r\n [allowColumnResizing]=\"true\" columnResizingMode=\"widget\" [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\"\r\n [columnHidingEnabled]=\"true\" [rowAlternationEnabled]=\"true\" style=\"height: 75vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\" [showNavigationButtons]=\"true\"\r\n [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\" showCheckBoxesMode=\"always\">\r\n </dxo-selection>\r\n <dxo-column-chooser [allowSearch]=\"true\" [enabled]=\"true\" mode=\"select\"></dxo-column-chooser>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-group-panel [visible]=\"true\" [allowColumnDragging]=\"true\"></dxo-group-panel>\r\n <dxo-grouping #expand [autoExpandAll]=\"false\" [allowCollapsing]=\"true\"\r\n [contextMenuEnabled]=\"true\"></dxo-grouping>\r\n <dxo-header-filter [allowSearch]=\"true\" [visible]=\"true\"></dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-export [enabled]=\"true\" [allowExportSelectedData]=\"false\"></dxo-export>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n <dxo-filter-builder [allowHierarchicalFields]=\"true\"></dxo-filter-builder>\r\n <dxo-filter-panel [visible]=\"true\"></dxo-filter-panel>\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [fixed]=\"true\" dataField=\"id\" width=\"120\" [allowGrouping]=\"false\" [allowFiltering]=\"false\"\r\n [allowHeaderFiltering]=\"false\" [allowHiding]=\"false\" [allowReordering]=\"false\"\r\n cellTemplate=\"operationTemplate\" caption=\"{{ 'AbpUi::Actions' | abpLocalization }}\">\r\n <div *dxTemplate=\"let row of 'operationTemplate'\">\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n ngbDropdownToggle [disabled]=\"disabledIdColumn\">\r\n <i class=\"fa fa-cog mr-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <!--<button ngbDropdownItem (click)=\"update(row.data)\">\r\n <i class=\"fa fa-edit\" aria-hidden=\"true\"></i> {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"delete(row.data)\">\r\n <i class=\"fa fa-trash\" aria-hidden=\"true\"></i> {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button> -->\r\n <button ngbDropdownItem (click)=\"getInboundDespatchPreview(row.data)\"\r\n *ngIf=\"row.data.status == 600 || row.data.status == 700\">\r\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i> {{ 'eDonusum::GetView' | abpLocalization }}\r\n </button>\r\n <button ngbDropdownItem (click)=\"openResponseModal(row.data)\"\r\n *ngIf=\"row.data.profileId == 'TEMELIRSALIYE' && row.data.receiverResponse == 4 && row.data.status == 600\">\r\n <i class=\"fa fa-envelope\" aria-hidden=\"true\"></i> {{ 'eDonusum::Response' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </dxi-column>\r\n <dxi-column dataField=\"despatchId\" caption=\"{{'eDonusum::DespatchId'|abpLocalization}}\"\r\n aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyName\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyName'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"despatchSupplierPartyVknTckn\"\r\n caption=\"{{'eDonusum::DeliveryCustomerPartyVknTckn'|abpLocalization}}\" aria-hidden=\"true\"></dxi-column>\r\n <dxi-column dataField=\"status\" caption=\"{{'eDonusum::Status'|abpLocalization}}\" aria-hidden=\"true\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchStatusLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <dxi-column dataField=\"receiverResponse\" caption=\"{{'eDonusum::ReceiverResponse'|abpLocalization}}\"\r\n cellTemplate=\"iconTemplate\">\r\n <dxo-lookup [dataSource]=\"inboundDespatchReceiverResponseLookup\" valueExpr=\"id\" displayExpr=\"displayName\">\r\n </dxo-lookup>\r\n </dxi-column>\r\n <div *dxTemplate=\"let data of 'iconTemplate'\">\r\n <i [ngClass]=\"getIconClass(data.data.receiverResponse)\"\r\n [ngStyle]=\"{'color':data.data.receiverResponse == '1' ? 'green' : data.data.receiverResponse == '2' ? 'red' : data.data.receiverResponse == '3' ? 'orange' : 'gray'}\"></i>\r\n {{getReceiverResponseName(data.data.receiverResponse)}}\r\n\r\n </div>\r\n <dxi-column dataField=\"profileId\" caption=\"{{'eDonusum::DespatchProfileId'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"despatchAdviceTypeCode\"\r\n caption=\"{{'eDonusum::DespatchAdviceTypeCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"issueDate\" dataType=\"date\"\r\n caption=\"{{'eDonusum::IssueDate'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"uuId\" caption=\"{{'eDonusum::UuId'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'm' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"invoice-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-accept\" formControlName=\"isAccepted\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-accept\" class=\"form-check-label\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md\">\r\n <div class=\"form-check mb-3\">\r\n <input type=\"checkbox\" id=\"invoice-response-invoice-reject\" formControlName=\"isRejected\"\r\n name=\"responseCheck\" (change)=\"checkBoxChanged($event)\" class=\"form-check-input\" />\r\n \r\n <label for=\"invoice-response-invoice-reject\" class=\"form-check-label\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </label>\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-warning\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(false)\">\r\n {{ 'eDonusum::Reject' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-success\" formName=\"invoice-response\"\r\n (click)=\"sendInvoiceResponse(true)\">\r\n {{ 'eDonusum::Accept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>\r\n\r\n<abp-modal [busy]=\"isModalBusyForResponse\" [(visible)]=\"isModalOpenForResponse\" [options]=\"{ size: 'xl' }\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ 'eDonusum::SendResponse' | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"formResponse\" id=\"despatch-response\" validateOnSubmit>\r\n <div class=\"container-fluid\">\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"row\" style=\"margin-top:20px\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-id\">\r\n {{'eDonusum::Id'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-id\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"id\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"invoice-response-invoice-uuid\">\r\n {{'eDonusum::UuId'|abpLocalization}}\r\n </label>\r\n\r\n <dx-text-box id=\"invoice-response-invoice-uuid\" [disabled]=\"true\" class=\"form-control\"\r\n formControlName=\"invoiceUUID\" maxlength=\"256\" autofocus></dx-text-box>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md\">\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <dx-data-grid #dxDespatchRowsInstance [dataSource]=\"despatchRowsDataSource\" [showRowLines]=\"true\"\r\n [showBorders]=\"true\" [remoteOperations]=\"true\" [hoverStateEnabled]=\"true\"\r\n [repaintChangesOnly]=\"true\" [allowColumnResizing]=\"true\" columnResizingMode=\"widget\"\r\n [allowColumnReordering]=\"true\" [columnAutoWidth]=\"true\" [columnHidingEnabled]=\"false\"\r\n [rowAlternationEnabled]=\"true\" style=\"height: 50vh;\">\r\n <dxo-pager [visible]=\"true\" [showInfo]=\"true\" [allowedPageSizes]=\"[50,100,200]\"\r\n [showNavigationButtons]=\"true\" [showPageSizeSelector]=\"true\">\r\n </dxo-pager>\r\n <dxo-editing mode=\"batch\" useIcons=\"true\" [allowUpdating]=\"true\" [allowAdding]=\"false\"\r\n [hidden]=\"true\" [allowDeleting]=\"false\">\r\n </dxo-editing>\r\n <dxo-paging [pageSize]=\"50\"></dxo-paging>\r\n <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\r\n\r\n <dxo-sorting mode=\"single\"></dxo-sorting>\r\n <dxo-scrolling mode=\"horizontal\" showScrollbar=\"always\"></dxo-scrolling>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemKeyword\"\r\n caption=\"{{'eDonusum::ItemCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"itemName\"\r\n caption=\"{{'eDonusum::ItemName'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"despatchdQuantity\"\r\n caption=\"{{'eDonusum::DespatchedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column [allowEditing]=\"false\" dataField=\"unitCode\"\r\n caption=\"{{'eDonusum::UnitCode'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"acceptedQuantity\" value='0'\r\n caption=\"{{'eDonusum::AcceptedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectedQuantity\" value='0'\r\n caption=\"{{'eDonusum::RejectedQuantity'|abpLocalization}}\"></dxi-column>\r\n <dxi-column dataField=\"rejectDescription\"\r\n caption=\"{{'eDonusum::RejectDescription'|abpLocalization}}\"></dxi-column>\r\n </dx-data-grid>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-times\" class=\"btn btn-warning\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(2)\">\r\n {{ 'eDonusum::RejectAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-check\" class=\"btn btn-primary\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(1)\">\r\n {{ 'eDonusum::AcceptAll' | abpLocalization }}\r\n </button>\r\n <button type=\"button\" iconClass=\"fa fa-pencil\" class=\"btn btn-success\" formName=\"despatch-response\"\r\n (click)=\"sendDespatchResponse(0)\">\r\n {{ 'eDonusum::PartialAccept' | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n</abp-modal>" }]
|
|
176
176
|
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i2.HitInboundDespatchService }, { type: i3.HitDespatchLineService }, { type: i4.HitInvoiceService }, { type: i5.FormBuilder }, { type: i6.ToasterService }]; }, propDecorators: { dxInboundDespatchInstance: [{
|
|
177
177
|
type: ViewChild,
|
|
178
178
|
args: ['dxInboundDespatchInstance', { static: false }]
|
|
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
180
180
|
type: ViewChild,
|
|
181
181
|
args: ['dxDespatchRowsInstance', { static: false }]
|
|
182
182
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtZGVzcGF0Y2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW5ib3VuZC1kZXNwYXRjaGVzL2hpdC1pbmJvdW5kLWRlc3BhdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWluYm91bmQtZGVzcGF0Y2hlcy9oaXQtaW5ib3VuZC1kZXNwYXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlDLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWtCNUQsTUFBTSxPQUFPLDJCQUEyQjtJQWVwQyxZQUNvQixJQUFpQixFQUNoQixlQUEwQyxFQUMxQyxtQkFBMkMsRUFDM0MsY0FBaUMsRUFDakMsV0FBd0IsRUFDeEIsY0FBOEI7UUFML0IsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDMUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWm5ELDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUMvQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7SUFZM0IsQ0FBQztJQUVMLFFBQVE7UUFDSixJ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QUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFDOUQsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELFVBQVU7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUtHLGdCQUFnQjtRQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUTthQUN2RCxjQUFjLEVBQUU7YUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDL0QsT0FBTztTQUNWO1FBRUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3RSxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUUvRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksTUFBTSxFQUFFO29CQUNSLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLE1BQU0sNkRBQTZELENBQUM7aUJBQ3hIO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3dIQXpMWSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwrQ0FKekIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxxUkNqQmhGLGtzZkFvUlk7MkZEL1BDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBQ2YsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO3NRQUtqQix5QkFBeUI7c0JBQW5GLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNELHNCQUFzQjtzQkFBN0UsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGlzTnVsbE9yRW1wdHksIGlzTnVsbE9yVW5kZWZpbmVkLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbnZvaWNlcy9oaXQtaW52b2ljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUsIGdldExvY2FsZURhdGVGb3JtYXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIaXRJbmJvdW5kRGVzcGF0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbmJvdW5kLWRlc3BhdGNoZXMvaGl0LWluYm91bmQtZGVzcGF0Y2guc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdERlc3BhdGNoTGluZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWRlc3BhdGNoLWxpbmVzL2hpdC1kZXNwYXRjaC1saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXNwYXRjaExpbmVSZXNwb25zZUR0bywgRGVzcGF0Y2hNYWluUmVzcG9uc2VEdG8gfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWluYm91bmQtZGVzcGF0Y2hlcy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1pbmJvdW5kLWRlc3BhdGNoJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICAgIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGl0LWluYm91bmQtZGVzcGF0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEluYm91bmREZXNwYXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeEluYm91bmREZXNwYXRjaEluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4SW5ib3VuZERlc3BhdGNoSW5zdGFuY2U6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4RGVzcGF0Y2hSb3dzSW5zdGFuY2UnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHhEZXNwYXRjaFJvd3NJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG5cclxuICAgIGluYm91bmREZXNwYXRjaERhdGFTb3VyY2U6IGFueVxyXG4gICAgZGVzcGF0Y2hSb3dzRGF0YVNvdXJjZTogYW55O1xyXG4gICAgaW5ib3VuZERlc3BhdGNoU3RhdHVzTG9va3VwOiBhbnlcclxuICAgIGluYm91bmREZXNwYXRjaFJlY2VpdmVyUmVzcG9uc2VMb29rdXA6IGFueVxyXG5cclxuICAgIGlzTW9kYWxCdXN5Rm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuRm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuXHJcbiAgICBmYXR1cmFPbml6bGVtZTogYW55O1xyXG4gICAgZm9ybVJlc3BvbnNlOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzcGF0Y2hTZXJ2aWNlOiBIaXRJbmJvdW5kRGVzcGF0Y2hTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzcGF0Y2hMaW5lU2VydmljZTogSGl0RGVzcGF0Y2hMaW5lU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VTZXJ2aWNlOiBIaXRJbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluYm91bmREZXNwYXRjaERhdGFTb3VyY2UgPSB0aGlzLmRlc3BhdGNoU2VydmljZS5Mb2FkSW5ib3VuZERlc3BhdGNoZXM7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRTdGF0dXNlcygpLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbmJvdW5kRGVzcGF0Y2hTdGF0dXNMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UmVjZWl2ZXJSZXNwb25zZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZERlc3BhdGNoUmVjZWl2ZXJSZXNwb25zZUxvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmVzcG9uc2VNb2RhbChyZWNvcmQpIHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybShyZWNvcmQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JSZXNwb25zZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRGb3JtKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGlkOiByZWNvcmQuaWQsXHJcbiAgICAgICAgICAgIGludm9pY2VVVUlEOiByZWNvcmQudXVJZCxcclxuICAgICAgICAgICAgaXNBY2NlcHRlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzUmVqZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBpdGVtS2V5d29yZDogJydcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoUm93c0RhdGFTb3VyY2UgPSB0aGlzLmRlc3BhdGNoTGluZVNlcnZpY2UuTG9hZERlc3BhdGNoTGluZXMocmVjb3JkLmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kRGVzcGF0Y2hSZXNwb25zZShhY2NlcHRUeXBlKSB7XHJcbiAgICAgICAgZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vMCBLxLFzbWkgS2FidWxcclxuICAgICAgICAvLzEgVGFtYW3EsSBrYWJ1bFxyXG4gICAgICAgIC8vMiBUYW1hbcSxIFJlZFxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIGxldCBtYWluUmVzcG9uc2U6IERlc3BhdGNoTWFpblJlc3BvbnNlRHRvID0geyBkZXNwYXRjaFVVSUQ6IHRoaXMuZm9ybVJlc3BvbnNlLnZhbHVlLmlkLCBsaW5lUmVzcG9uc2U6IFtdIH0gYXMgRGVzcGF0Y2hNYWluUmVzcG9uc2VEdG87XHJcbiAgICAgICAgbGV0IGxpbmVSZXNwb25zZSA9IFtdXHJcblxyXG4gICAgICAgIHRoaXMuZHhEZXNwYXRjaFJvd3NJbnN0YW5jZS5pbnN0YW5jZS5nZXRWaXNpYmxlUm93cygpLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIGxpbmVSZXNwb25zZS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGl0ZW1Db2RlOiBlbGVtZW50LmRhdGEuaXRlbUtleXdvcmQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogZWxlbWVudC5kYXRhLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRRdWFudGl0eTogYWNjZXB0VHlwZSA9PSAwID8gZWxlbWVudC5kYXRhLmFjY2VwdGVkUXVhbnRpdHkgOiAoYWNjZXB0VHlwZSA9PSAxID8gZWxlbWVudC5kYXRhLmRlc3BhdGNoZFF1YW50aXR5IDogMCksXHJcbiAgICAgICAgICAgICAgICByZWplY3RlZFF1YW50aXR5OiBhY2NlcHRUeXBlID09IDAgPyBlbGVtZW50LmRhdGEucmVqZWN0ZWRRdWFudGl0eSA6IChhY2NlcHRUeXBlID09IDEgPyAwIDogZWxlbWVudC5kYXRhLmRlc3BhdGNoZFF1YW50aXR5KSxcclxuICAgICAgICAgICAgICAgIHJlamVjdFJlYXNvbjogYWNjZXB0VHlwZSA9PSAwID8gZWxlbWVudC5kYXRhLnJlamVjdERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIG1haW5SZXNwb25zZS5saW5lUmVzcG9uc2UgPSBsaW5lUmVzcG9uc2VcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2cobWFpblJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5zZW5kRGVzcGF0Y2hSZXNwb25zZShtYWluUmVzcG9uc2UpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNb2RhbEJ1c3lGb3JSZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKFwixLByc2FsaXllIHlhbsSxdMSxIGfDtm5kZXJpbGRpLlwiKTtcclxuICAgICAgICAgICAgdGhpcy5keEluYm91bmREZXNwYXRjaEluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB0aGlzLnNlcnZpY2Uuc2VuZEludm9pY2VSZXNwb25zZShyZXN1bHQuaW52b2ljZVVVSUQsIHJlc3BvbnNlLCByZXN1bHQuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pc01vZGFsT3BlbkZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbmJvdW5kRGVzcGF0Y2hlcygpIHtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5nZXRJbmJvdW5kRGVzcGF0Y2gobmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmR4SW5ib3VuZERlc3BhdGNoSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRSZWNlaXZlclJlc3BvbnNlTmFtZShyZXNwb25zZUlkKSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLmluYm91bmREZXNwYXRjaFJlY2VpdmVyUmVzcG9uc2VMb29rdXAuZmluZCgoeCkgPT4geC5pZCA9PT0gcmVzcG9uc2VJZCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kaXNwbGF5TmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SWNvbkNsYXNzKHJlc3BvbnNlSWQpIHtcclxuICAgICAgICBpZiAocmVzcG9uc2VJZCA9PSAwIHx8IHJlc3BvbnNlSWQgPT0gNCkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2xvY2tcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS1jaGVjay1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS10aW1lcy1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS1taW51cy1jaXJjbGVcIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbmJvdW5kRGVzcGF0Y2hQcmV2aWV3KHJlY29yZCkge1xyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgIHRoaXMuZGVzcGF0Y2hTZXJ2aWNlLmdldERlc3BhdGNoUHJldmlld0luYm91bmQocmVjb3JkLmlkLCkuc3Vic2NyaWJlKGRlc3BhdGNoID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2Rlc3BhdGNoLnByZXZpZXdIVE1MfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBuZXdUYWIgPSB3aW5kb3cub3BlbigpO1xyXG4gICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQudGl0bGUgPSByZWNvcmQuaWRcclxuICAgICAgICAgICAgbmV3VGFiLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gYDxpZnJhbWUgc3JjPVwiJHtzb3VyY2V9XCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwiYm9yZGVyOm5vbmU7XCI+PC9pZnJhbWU+YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuZG93bmxvYWRQREZNdWx0aXBsZSgpIHtcclxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZHhJbmJvdW5kRGVzcGF0Y2hJbnN0YW5jZS5pbnN0YW5jZVxyXG4gICAgICAgIC5nZXRWaXNpYmxlUm93cygpXHJcbiAgICAgICAgLmZpbHRlcihpID0+IGkuaXNTZWxlY3RlZClcclxuICAgICAgICAubWFwKGkgPT4gaS5kYXRhLmlkKTtcclxuXHJcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybihcIkzDvHRmZW4gZW4gYXogYmlyIGthecSxdCBzZcOnaW5pei5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGVzcGF0Y2hTZXJ2aWNlLmdldEluY29taW5nRGVzcGF0Y2hQZGZzTXVsdGlwbGUoaWRzKS5zdWJzY3JpYmUoYmxvYiA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgYS5kb3dubG9hZCA9ICdHZWxlbklyc2FsaXllbGVyLScgKyB0aGlzLmdldFppcERhdGUoKSArICcuemlwJztcclxuICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyBaYW1hbiBkYW1nYXPEsSBmb25rc2l5b251ICh6aXAgZG9zeWFzxLFuYSBla2xlbWVrIGnDp2luKVxyXG5nZXRaaXBEYXRlKCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gU3RyaW5nKGRhdGUuZ2V0U2Vjb25kcygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgcmV0dXJuIGAke3llYXJ9LiR7bW9udGh9LiR7ZGF5fS0ke2hvdXJzfS4ke21pbnV0ZXN9LiR7c2Vjb25kc31gO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4gICAgdmlld1BERnNNdWx0aXBsZSgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuZHhJbmJvdW5kRGVzcGF0Y2hJbnN0YW5jZS5pbnN0YW5jZVxyXG4gICAgICAgIC5nZXRWaXNpYmxlUm93cygpXHJcbiAgICAgICAgLmZpbHRlcihpID0+IGkuaXNTZWxlY3RlZCA9PSB0cnVlKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybihcIkzDvHRmZW4gZW4gYXogYmlyIGlyc2FsaXllIHNlw6dpbml6LlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0ZWRSb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5nZXREZXNwYXRjaFByZXZpZXdJbmJvdW5kKHJvdy5kYXRhLmlkKS5zdWJzY3JpYmUoZGVzcGF0Y2ggPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBgZGF0YTp0ZXh0L2h0bWw7YmFzZTY0LCR7ZGVzcGF0Y2gucHJldmlld0hUTUx9YDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhYiA9IHdpbmRvdy5vcGVuKCk7XHJcbiAgICAgICAgICAgIGlmIChuZXdUYWIpIHtcclxuICAgICAgICAgICAgICAgIG5ld1RhYi5kb2N1bWVudC50aXRsZSA9IHJvdy5kYXRhLmRlc3BhdGNoSWQgPz8gcm93LmRhdGEuaWQ7XHJcbiAgICAgICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBgPGlmcmFtZSBzcmM9XCIke3NvdXJjZX1cIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgc3R5bGU9XCJib3JkZXI6bm9uZTtcIj48L2lmcmFtZT5gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxufVxyXG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidlRG9udXN1bTo6SW5ib3VuZERlc3BhdGNoZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG5cclxuICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5EZXNwYXRjaGVzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJkb3dubG9hZFBERk11bHRpcGxlKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWRvd25sb2FkIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ2VEb251c3VtOjpEb3dubG9hZFBERk11bHRpcGxlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5EZXNwYXRjaGVzLkNyZWF0ZSdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiIChjbGljayk9XCJnZXRJbmJvdW5kRGVzcGF0Y2hlcygpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZSBtZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIHt7ICdlRG9udXN1bTo6Q2hlY2tJbmJvdW5kRGVzcGF0Y2hlcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gIDxwPkVudGVncmF0w7ZyZGVuIGFsxLFuYW4gaXJzYWxpeWVsZXJpIGxpc3RlbGV5ZW4gZWtyYW48L3A+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhJbmJvdW5kRGVzcGF0Y2hJbnN0YW5jZSBbZGF0YVNvdXJjZV09XCJpbmJvdW5kRGVzcGF0Y2hEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcclxuICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA3NXZoO1wiPlxyXG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCIgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJtdWx0aXBsZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+XHJcbiAgICAgICAgPC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWdyb3VwLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIiBbYWxsb3dDb2x1bW5EcmFnZ2luZ109XCJ0cnVlXCI+PC9keG8tZ3JvdXAtcGFuZWw+XHJcbiAgICAgICAgPGR4by1ncm91cGluZyAjZXhwYW5kIFthdXRvRXhwYW5kQWxsXT1cImZhbHNlXCIgW2FsbG93Q29sbGFwc2luZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjb250ZXh0TWVudUVuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWdyb3VwaW5nPlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCIgW2FsbG93RXhwb3J0U2VsZWN0ZWREYXRhXT1cImZhbHNlXCI+PC9keG8tZXhwb3J0PlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIFtmaXhlZF09XCJ0cnVlXCIgZGF0YUZpZWxkPVwiaWRcIiB3aWR0aD1cIjEyMFwiIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCIgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wZXJhdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlIFtkaXNhYmxlZF09XCJkaXNhYmxlZElkQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPCEtLTxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJ1cGRhdGUocm93LmRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZGVsZXRlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdBYnBVaTo6RGVsZXRlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZ2V0SW5ib3VuZERlc3BhdGNoUHJldmlldyhyb3cuZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy5kYXRhLnN0YXR1cyA9PSA2MDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWV5ZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2VEb251c3VtOjpHZXRWaWV3JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwib3BlblJlc3BvbnNlTW9kYWwocm93LmRhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cuZGF0YS5wcm9maWxlSWQgPT0gJ1RFTUVMSVJTQUxJWUUnICYmIHJvdy5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gNCAmJiByb3cuZGF0YS5zdGF0dXMgPT0gNjAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6UmVzcG9uc2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZGVzcGF0Y2hJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RGVzcGF0Y2hJZCd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRlc3BhdGNoU3VwcGxpZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEZWxpdmVyeUN1c3RvbWVyUGFydHlOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkZXNwYXRjaFN1cHBsaWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RGVsaXZlcnlDdXN0b21lclBhcnR5VmtuVGNrbid8YWJwTG9jYWxpemF0aW9ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic3RhdHVzXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpTdGF0dXMnfGFicExvY2FsaXphdGlvbn19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJpbmJvdW5kRGVzcGF0Y2hTdGF0dXNMb29rdXBcIiB2YWx1ZUV4cHI9XCJpZFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIDwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVjZWl2ZXJSZXNwb25zZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwiaWNvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJpbmJvdW5kRGVzcGF0Y2hSZWNlaXZlclJlc3BvbnNlTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnaWNvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwiZ2V0SWNvbkNsYXNzKGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlKVwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnY29sb3InOmRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09ICcxJyA/ICdncmVlbicgOiBkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSA9PSAnMicgPyAncmVkJyA6IGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09ICczJyA/ICdvcmFuZ2UnIDogJ2dyYXknfVwiPjwvaT5cclxuICAgICAgICAgIHt7Z2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpfX1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicHJvZmlsZUlkXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEZXNwYXRjaFByb2ZpbGVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZGVzcGF0Y2hBZHZpY2VUeXBlQ29kZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkRlc3BhdGNoQWR2aWNlVHlwZUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzc3VlRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Oklzc3VlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidXVJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VXVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzTW9kYWxCdXN5Rm9yUmVzcG9uc2VcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuRm9yUmVzcG9uc2VcIiBbb3B0aW9uc109XCJ7IHNpemU6ICdtJyB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6U2VuZFJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1SZXNwb25zZVwiIGlkPVwiaW52b2ljZS1yZXNwb25zZVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLXRvcDoyMHB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1pZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6SWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1pZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpZFwiIG1heGxlbmd0aD1cIjI1NlwiIGF1dG9mb2N1cz48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtdXVpZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6VXVJZCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXV1aWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW52b2ljZVVVSURcIiBtYXhsZW5ndGg9XCIyNTZcIiBhdXRvZm9jdXM+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWFjY2VwdFwiIGZvcm1Db250cm9sTmFtZT1cImlzQWNjZXB0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZXNwb25zZUNoZWNrXCIgKGNoYW5nZSk9XCJjaGVja0JveENoYW5nZWQoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIC8+XHJcbiAgXHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtYWNjZXB0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NlcHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1yZWplY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJpc1JlamVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVzcG9uc2VDaGVja1wiIChjaGFuZ2UpPVwiY2hlY2tCb3hDaGFuZ2VkKCRldmVudClcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiAvPlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXJlamVjdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVqZWN0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nXCIgZm9ybU5hbWU9XCJpbnZvaWNlLXJlc3BvbnNlXCJcclxuICAgICAgKGNsaWNrKT1cInNlbmRJbnZvaWNlUmVzcG9uc2UoZmFsc2UpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6UmVqZWN0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgZm9ybU5hbWU9XCJpbnZvaWNlLXJlc3BvbnNlXCJcclxuICAgICAgKGNsaWNrKT1cInNlbmRJbnZvaWNlUmVzcG9uc2UodHJ1ZSlcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpBY2NlcHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lGb3JSZXNwb25zZVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5Gb3JSZXNwb25zZVwiIFtvcHRpb25zXT1cInsgc2l6ZTogJ3hsJyB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6U2VuZFJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1SZXNwb25zZVwiIGlkPVwiZGVzcGF0Y2gtcmVzcG9uc2VcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OklkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiBtYXhsZW5ndGg9XCIyNTZcIiBhdXRvZm9jdXM+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXV1aWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlV1SWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS11dWlkXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VVVUlEXCIgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeERlc3BhdGNoUm93c0luc3RhbmNlIFtkYXRhU291cmNlXT1cImRlc3BhdGNoUm93c0RhdGFTb3VyY2VcIiBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCIgW3JlbW90ZU9wZXJhdGlvbnNdPVwidHJ1ZVwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIiBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIiBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIiBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCIgc3R5bGU9XCJoZWlnaHQ6IDUwdmg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdlciBbdmlzaWJsZV09XCJ0cnVlXCIgW3Nob3dJbmZvXT1cInRydWVcIiBbYWxsb3dlZFBhZ2VTaXplc109XCJbNTAsMTAwLDIwMF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCIgW3Nob3dQYWdlU2l6ZVNlbGVjdG9yXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2R4by1wYWdlcj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLWVkaXRpbmcgbW9kZT1cImJhdGNoXCIgdXNlSWNvbnM9XCJ0cnVlXCIgW2FsbG93VXBkYXRpbmddPVwidHJ1ZVwiIFthbGxvd0FkZGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cInRydWVcIiBbYWxsb3dEZWxldGluZ109XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHhvLWVkaXRpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCIgZGF0YUZpZWxkPVwiaXRlbUtleXdvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJdGVtQ29kZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2FsbG93RWRpdGluZ109XCJmYWxzZVwiIGRhdGFGaWVsZD1cIml0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXRlbU5hbWUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIiBkYXRhRmllbGQ9XCJkZXNwYXRjaGRRdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkRlc3BhdGNoZWRRdWFudGl0eSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2FsbG93RWRpdGluZ109XCJmYWxzZVwiIGRhdGFGaWVsZD1cInVuaXRDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VW5pdENvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImFjY2VwdGVkUXVhbnRpdHlcIiB2YWx1ZT0nMCdcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6QWNjZXB0ZWRRdWFudGl0eSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVqZWN0ZWRRdWFudGl0eVwiIHZhbHVlPScwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpSZWplY3RlZFF1YW50aXR5J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJyZWplY3REZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlamVjdERlc2NyaXB0aW9uJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uQ2xhc3M9XCJmYSBmYS10aW1lc1wiIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nXCIgZm9ybU5hbWU9XCJkZXNwYXRjaC1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kRGVzcGF0Y2hSZXNwb25zZSgyKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlJlamVjdEFsbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIGZvcm1OYW1lPVwiZGVzcGF0Y2gtcmVzcG9uc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VuZERlc3BhdGNoUmVzcG9uc2UoMSlcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpBY2NlcHRBbGwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGljb25DbGFzcz1cImZhIGZhLXBlbmNpbFwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgZm9ybU5hbWU9XCJkZXNwYXRjaC1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kRGVzcGF0Y2hSZXNwb25zZSgwKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlBhcnRpYWxBY2NlcHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtZGVzcGF0Y2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW5ib3VuZC1kZXNwYXRjaGVzL2hpdC1pbmJvdW5kLWRlc3BhdGNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LWluYm91bmQtZGVzcGF0Y2hlcy9oaXQtaW5ib3VuZC1kZXNwYXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlDLFdBQVcsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQWtCNUQsTUFBTSxPQUFPLDJCQUEyQjtJQWVwQyxZQUNvQixJQUFpQixFQUNoQixlQUEwQyxFQUMxQyxtQkFBMkMsRUFDM0MsY0FBaUMsRUFDakMsV0FBd0IsRUFDeEIsY0FBOEI7UUFML0IsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDMUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBWm5ELDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUMvQiwyQkFBc0IsR0FBRyxLQUFLLENBQUM7SUFZM0IsQ0FBQztJQUVMLFFBQVE7UUFDSixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQztRQUM1RSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMscUNBQXFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQU07UUFDcEIsUUFBUSxDQUFDO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTTtRQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdkMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3hCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxFQUFFO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVO1FBQzNCLFFBQVEsQ0FBQztRQUVULGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUV0QyxJQUFJLFlBQVksR0FBNEIsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQTZCLENBQUM7UUFDdEksSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFBO1FBRXJCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BFLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVztnQkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDL0IsZ0JBQWdCLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFILGdCQUFnQixFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO2dCQUMxSCxZQUFZLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUN0RSxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtRQUVGLFlBQVksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO1FBRXhDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25FLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7WUFDcEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDSCw4RkFBOEY7UUFDOUYsd0RBQXdEO1FBQ3hELDJDQUEyQztRQUMzQyxLQUFLO0lBQ1QsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkcsUUFBUSxDQUFDO1lBQ1QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNyRCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxVQUFVO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDVixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7U0FDL0I7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsVUFBVTtRQUNuQixJQUFJLFVBQVUsSUFBSSxDQUFDLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRTtZQUNwQyxPQUFPLGNBQWMsQ0FBQztTQUN6QjthQUNJLElBQUksVUFBVSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLHFCQUFxQixDQUFDO1NBQ2hDO2FBQ0ksSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8scUJBQXFCLENBQUM7U0FDaEM7YUFDSSxJQUFJLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxxQkFBcUIsQ0FBQTtTQUMvQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELHlCQUF5QixDQUFDLE1BQU07UUFDNUIsUUFBUSxDQUFDO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVFLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFL0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7WUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixNQUFNLDZEQUE2RCxDQUFDO1FBQ3pILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNMLG1CQUFtQjtRQUNmLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRO2FBQzlDLGNBQWMsRUFBRTthQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzVELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsK0JBQStCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLG1CQUFtQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7WUFDOUQsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELFVBQVU7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUtHLGdCQUFnQjtRQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUTthQUN2RCxjQUFjLEVBQUU7YUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUV2QyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDL0QsT0FBTztTQUNWO1FBRUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3RSxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUUvRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLElBQUksTUFBTSxFQUFFO29CQUNSLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLE1BQU0sNkRBQTZELENBQUM7aUJBQ3hIO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3dIQXpMWSwyQkFBMkI7NEdBQTNCLDJCQUEyQiwrQ0FKekIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxxUkNqQmhGLDJxZkFtUlk7MkZEOVBDLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBQ2YsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO3NRQUtqQix5QkFBeUI7c0JBQW5GLFNBQVM7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNELHNCQUFzQjtzQkFBN0UsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGlzTnVsbE9yRW1wdHksIGlzTnVsbE9yVW5kZWZpbmVkLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8gfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBEeERhdGFHcmlkQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdEludm9pY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbnZvaWNlcy9oaXQtaW52b2ljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IGZvcm1hdERhdGUsIGdldExvY2FsZURhdGVGb3JtYXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIaXRJbmJvdW5kRGVzcGF0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1pbmJvdW5kLWRlc3BhdGNoZXMvaGl0LWluYm91bmQtZGVzcGF0Y2guc2VydmljZSc7XHJcbmltcG9ydCB7IEhpdERlc3BhdGNoTGluZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWRlc3BhdGNoLWxpbmVzL2hpdC1kZXNwYXRjaC1saW5lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXNwYXRjaExpbmVSZXNwb25zZUR0bywgRGVzcGF0Y2hNYWluUmVzcG9uc2VEdG8gfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWluYm91bmQtZGVzcGF0Y2hlcy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1pbmJvdW5kLWRlc3BhdGNoJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICAgIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGl0LWluYm91bmQtZGVzcGF0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEluYm91bmREZXNwYXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdkeEluYm91bmREZXNwYXRjaEluc3RhbmNlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4SW5ib3VuZERlc3BhdGNoSW5zdGFuY2U6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4RGVzcGF0Y2hSb3dzSW5zdGFuY2UnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHhEZXNwYXRjaFJvd3NJbnN0YW5jZTogRHhEYXRhR3JpZENvbXBvbmVudFxyXG5cclxuICAgIGluYm91bmREZXNwYXRjaERhdGFTb3VyY2U6IGFueVxyXG4gICAgZGVzcGF0Y2hSb3dzRGF0YVNvdXJjZTogYW55O1xyXG4gICAgaW5ib3VuZERlc3BhdGNoU3RhdHVzTG9va3VwOiBhbnlcclxuICAgIGluYm91bmREZXNwYXRjaFJlY2VpdmVyUmVzcG9uc2VMb29rdXA6IGFueVxyXG5cclxuICAgIGlzTW9kYWxCdXN5Rm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuRm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuXHJcbiAgICBmYXR1cmFPbml6bGVtZTogYW55O1xyXG4gICAgZm9ybVJlc3BvbnNlOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzcGF0Y2hTZXJ2aWNlOiBIaXRJbmJvdW5kRGVzcGF0Y2hTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzcGF0Y2hMaW5lU2VydmljZTogSGl0RGVzcGF0Y2hMaW5lU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VTZXJ2aWNlOiBIaXRJbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluYm91bmREZXNwYXRjaERhdGFTb3VyY2UgPSB0aGlzLmRlc3BhdGNoU2VydmljZS5Mb2FkSW5ib3VuZERlc3BhdGNoZXM7XHJcbiAgICAgICAgdGhpcy5pbnZvaWNlU2VydmljZS5nZXRTdGF0dXNlcygpLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbmJvdW5kRGVzcGF0Y2hTdGF0dXNMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UmVjZWl2ZXJSZXNwb25zZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZERlc3BhdGNoUmVjZWl2ZXJSZXNwb25zZUxvb2t1cCA9IGxpc3Q7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUmVzcG9uc2VNb2RhbChyZWNvcmQpIHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybShyZWNvcmQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JSZXNwb25zZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRGb3JtKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGlkOiByZWNvcmQuaWQsXHJcbiAgICAgICAgICAgIGludm9pY2VVVUlEOiByZWNvcmQudXVJZCxcclxuICAgICAgICAgICAgaXNBY2NlcHRlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzUmVqZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBpdGVtS2V5d29yZDogJydcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoUm93c0RhdGFTb3VyY2UgPSB0aGlzLmRlc3BhdGNoTGluZVNlcnZpY2UuTG9hZERlc3BhdGNoTGluZXMocmVjb3JkLmlkKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kRGVzcGF0Y2hSZXNwb25zZShhY2NlcHRUeXBlKSB7XHJcbiAgICAgICAgZGVidWdnZXI7XHJcblxyXG4gICAgICAgIC8vMCBLxLFzbWkgS2FidWxcclxuICAgICAgICAvLzEgVGFtYW3EsSBrYWJ1bFxyXG4gICAgICAgIC8vMiBUYW1hbcSxIFJlZFxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIGxldCBtYWluUmVzcG9uc2U6IERlc3BhdGNoTWFpblJlc3BvbnNlRHRvID0geyBkZXNwYXRjaFVVSUQ6IHRoaXMuZm9ybVJlc3BvbnNlLnZhbHVlLmlkLCBsaW5lUmVzcG9uc2U6IFtdIH0gYXMgRGVzcGF0Y2hNYWluUmVzcG9uc2VEdG87XHJcbiAgICAgICAgbGV0IGxpbmVSZXNwb25zZSA9IFtdXHJcblxyXG4gICAgICAgIHRoaXMuZHhEZXNwYXRjaFJvd3NJbnN0YW5jZS5pbnN0YW5jZS5nZXRWaXNpYmxlUm93cygpLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIGxpbmVSZXNwb25zZS5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGl0ZW1Db2RlOiBlbGVtZW50LmRhdGEuaXRlbUtleXdvcmQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogZWxlbWVudC5kYXRhLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVjZWl2ZWRRdWFudGl0eTogYWNjZXB0VHlwZSA9PSAwID8gZWxlbWVudC5kYXRhLmFjY2VwdGVkUXVhbnRpdHkgOiAoYWNjZXB0VHlwZSA9PSAxID8gZWxlbWVudC5kYXRhLmRlc3BhdGNoZFF1YW50aXR5IDogMCksXHJcbiAgICAgICAgICAgICAgICByZWplY3RlZFF1YW50aXR5OiBhY2NlcHRUeXBlID09IDAgPyBlbGVtZW50LmRhdGEucmVqZWN0ZWRRdWFudGl0eSA6IChhY2NlcHRUeXBlID09IDEgPyAwIDogZWxlbWVudC5kYXRhLmRlc3BhdGNoZFF1YW50aXR5KSxcclxuICAgICAgICAgICAgICAgIHJlamVjdFJlYXNvbjogYWNjZXB0VHlwZSA9PSAwID8gZWxlbWVudC5kYXRhLnJlamVjdERlc2NyaXB0aW9uIDogXCJcIlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIG1haW5SZXNwb25zZS5saW5lUmVzcG9uc2UgPSBsaW5lUmVzcG9uc2VcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2cobWFpblJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5zZW5kRGVzcGF0Y2hSZXNwb25zZShtYWluUmVzcG9uc2UpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNb2RhbEJ1c3lGb3JSZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yUmVzcG9uc2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKFwixLByc2FsaXllIHlhbsSxdMSxIGfDtm5kZXJpbGRpLlwiKTtcclxuICAgICAgICAgICAgdGhpcy5keEluYm91bmREZXNwYXRjaEluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyB0aGlzLnNlcnZpY2Uuc2VuZEludm9pY2VSZXNwb25zZShyZXN1bHQuaW52b2ljZVVVSUQsIHJlc3BvbnNlLCByZXN1bHQuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pc01vZGFsT3BlbkZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbmJvdW5kRGVzcGF0Y2hlcygpIHtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5nZXRJbmJvdW5kRGVzcGF0Y2gobmV3IERhdGUoKS50b0lTT1N0cmluZygpLCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmR4SW5ib3VuZERlc3BhdGNoSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRSZWNlaXZlclJlc3BvbnNlTmFtZShyZXNwb25zZUlkKSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLmluYm91bmREZXNwYXRjaFJlY2VpdmVyUmVzcG9uc2VMb29rdXAuZmluZCgoeCkgPT4geC5pZCA9PT0gcmVzcG9uc2VJZCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kaXNwbGF5TmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SWNvbkNsYXNzKHJlc3BvbnNlSWQpIHtcclxuICAgICAgICBpZiAocmVzcG9uc2VJZCA9PSAwIHx8IHJlc3BvbnNlSWQgPT0gNCkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2xvY2tcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS1jaGVjay1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS10aW1lcy1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS1taW51cy1jaXJjbGVcIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbmJvdW5kRGVzcGF0Y2hQcmV2aWV3KHJlY29yZCkge1xyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgIHRoaXMuZGVzcGF0Y2hTZXJ2aWNlLmdldERlc3BhdGNoUHJldmlld0luYm91bmQocmVjb3JkLmlkLCkuc3Vic2NyaWJlKGRlc3BhdGNoID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYGRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2Rlc3BhdGNoLnByZXZpZXdIVE1MfWA7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBuZXdUYWIgPSB3aW5kb3cub3BlbigpO1xyXG4gICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQudGl0bGUgPSByZWNvcmQuaWRcclxuICAgICAgICAgICAgbmV3VGFiLmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gYDxpZnJhbWUgc3JjPVwiJHtzb3VyY2V9XCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwiYm9yZGVyOm5vbmU7XCI+PC9pZnJhbWU+YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuZG93bmxvYWRQREZNdWx0aXBsZSgpIHtcclxuICAgIGNvbnN0IGlkcyA9IHRoaXMuZHhJbmJvdW5kRGVzcGF0Y2hJbnN0YW5jZS5pbnN0YW5jZVxyXG4gICAgICAgIC5nZXRWaXNpYmxlUm93cygpXHJcbiAgICAgICAgLmZpbHRlcihpID0+IGkuaXNTZWxlY3RlZClcclxuICAgICAgICAubWFwKGkgPT4gaS5kYXRhLmlkKTtcclxuXHJcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybihcIkzDvHRmZW4gZW4gYXogYmlyIGthecSxdCBzZcOnaW5pei5cIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGVzcGF0Y2hTZXJ2aWNlLmdldEluY29taW5nRGVzcGF0Y2hQZGZzTXVsdGlwbGUoaWRzKS5zdWJzY3JpYmUoYmxvYiA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBhLmhyZWYgPSB1cmw7XHJcbiAgICAgICAgYS5kb3dubG9hZCA9ICdHZWxlbklyc2FsaXllbGVyLScgKyB0aGlzLmdldFppcERhdGUoKSArICcuemlwJztcclxuICAgICAgICBhLmNsaWNrKCk7XHJcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyBaYW1hbiBkYW1nYXPEsSBmb25rc2l5b251ICh6aXAgZG9zeWFzxLFuYSBla2xlbWVrIGnDp2luKVxyXG5nZXRaaXBEYXRlKCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IGhvdXJzID0gU3RyaW5nKGRhdGUuZ2V0SG91cnMoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gU3RyaW5nKGRhdGUuZ2V0U2Vjb25kcygpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgcmV0dXJuIGAke3llYXJ9LiR7bW9udGh9LiR7ZGF5fS0ke2hvdXJzfS4ke21pbnV0ZXN9LiR7c2Vjb25kc31gO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4gICAgdmlld1BERnNNdWx0aXBsZSgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuZHhJbmJvdW5kRGVzcGF0Y2hJbnN0YW5jZS5pbnN0YW5jZVxyXG4gICAgICAgIC5nZXRWaXNpYmxlUm93cygpXHJcbiAgICAgICAgLmZpbHRlcihpID0+IGkuaXNTZWxlY3RlZCA9PSB0cnVlKTtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uud2FybihcIkzDvHRmZW4gZW4gYXogYmlyIGlyc2FsaXllIHNlw6dpbml6LlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0ZWRSb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICB0aGlzLmRlc3BhdGNoU2VydmljZS5nZXREZXNwYXRjaFByZXZpZXdJbmJvdW5kKHJvdy5kYXRhLmlkKS5zdWJzY3JpYmUoZGVzcGF0Y2ggPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBgZGF0YTp0ZXh0L2h0bWw7YmFzZTY0LCR7ZGVzcGF0Y2gucHJldmlld0hUTUx9YDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhYiA9IHdpbmRvdy5vcGVuKCk7XHJcbiAgICAgICAgICAgIGlmIChuZXdUYWIpIHtcclxuICAgICAgICAgICAgICAgIG5ld1RhYi5kb2N1bWVudC50aXRsZSA9IHJvdy5kYXRhLmRlc3BhdGNoSWQgPz8gcm93LmRhdGEuaWQ7XHJcbiAgICAgICAgICAgICAgICBuZXdUYWIuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSBgPGlmcmFtZSBzcmM9XCIke3NvdXJjZX1cIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgc3R5bGU9XCJib3JkZXI6bm9uZTtcIj48L2lmcmFtZT5gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxufVxyXG4iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidlRG9udXN1bTo6SW5ib3VuZERlc3BhdGNoZXMnIHwgYWJwTG9jYWxpemF0aW9uXCI+XHJcbiAgPGFicC1wYWdlLXRvb2xiYXItY29udGFpbmVyIGNsYXNzPVwiY29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZy1lbmQgcHQtMlwiPlxyXG4gICAgICA8YnV0dG9uICphYnBQZXJtaXNzaW9uPVwiJ2VEb251c3VtLkRlc3BhdGNoZXMnXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiAoY2xpY2spPVwidmlld1BERnNNdWx0aXBsZSgpXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leWUgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnZURvbnVzdW06OlZpZXdQREZNdWx0aXBsZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uRGVzcGF0Y2hlcy5DcmVhdGUnXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiAoY2xpY2spPVwiZ2V0SW5ib3VuZERlc3BhdGNoZXMoKVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGUgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnZURvbnVzdW06OkNoZWNrSW5ib3VuZERlc3BhdGNoZXMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICA8cD5FbnRlZ3JhdMO2cmRlbiBhbMSxbmFuIGlyc2FsaXllbGVyaSBsaXN0ZWxleWVuIGVrcmFuPC9wPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxkeC1kYXRhLWdyaWQgI2R4SW5ib3VuZERlc3BhdGNoSW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwiaW5ib3VuZERlc3BhdGNoRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIiBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBbcm93QWx0ZXJuYXRpb25FbmFibGVkXT1cInRydWVcIiBzdHlsZT1cImhlaWdodDogNzV2aDtcIj5cclxuICAgICAgICA8ZHhvLXBhZ2VyIFt2aXNpYmxlXT1cInRydWVcIiBbc2hvd0luZm9dPVwidHJ1ZVwiIFthbGxvd2VkUGFnZVNpemVzXT1cIls1MCwxMDAsMjAwXVwiIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhvLXBhZ2VyPlxyXG4gICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwibXVsdGlwbGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPlxyXG4gICAgICAgIDwvZHhvLXNlbGVjdGlvbj5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgPGR4by1ncm91cC1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCIgW2FsbG93Q29sdW1uRHJhZ2dpbmddPVwidHJ1ZVwiPjwvZHhvLWdyb3VwLXBhbmVsPlxyXG4gICAgICAgIDxkeG8tZ3JvdXBpbmcgI2V4cGFuZCBbYXV0b0V4cGFuZEFsbF09XCJmYWxzZVwiIFthbGxvd0NvbGxhcHNpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbY29udGV4dE1lbnVFbmFibGVkXT1cInRydWVcIj48L2R4by1ncm91cGluZz5cclxuICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiIFthbGxvd0V4cG9ydFNlbGVjdGVkRGF0YV09XCJmYWxzZVwiPjwvZHhvLWV4cG9ydD5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgPGR4by1maWx0ZXItYnVpbGRlciBbYWxsb3dIaWVyYXJjaGljYWxGaWVsZHNdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1idWlsZGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XHJcbiAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBbZml4ZWRdPVwidHJ1ZVwiIGRhdGFGaWVsZD1cImlkXCIgd2lkdGg9XCIxMjBcIiBbYWxsb3dHcm91cGluZ109XCJmYWxzZVwiIFthbGxvd0ZpbHRlcmluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwiZmFsc2VcIiBbYWxsb3dIaWRpbmddPVwiZmFsc2VcIiBbYWxsb3dSZW9yZGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wZXJhdGlvblRlbXBsYXRlXCIgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgcm93IG9mICdvcGVyYXRpb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRJZENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbXItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgIDwhLS08YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwidXBkYXRlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImdldEluYm91bmREZXNwYXRjaFByZXZpZXcocm93LmRhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cuZGF0YS5zdGF0dXMgPT0gNjAwIHx8IHJvdy5kYXRhLnN0YXR1cyA9PSA3MDBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leWVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6R2V0VmlldycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cIm9wZW5SZXNwb25zZU1vZGFsKHJvdy5kYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LmRhdGEucHJvZmlsZUlkID09ICdURU1FTElSU0FMSVlFJyAmJiByb3cuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09IDQgJiYgcm93LmRhdGEuc3RhdHVzID09IDYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OlJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRlc3BhdGNoSWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRlc3BhdGNoSWQnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkZXNwYXRjaFN1cHBsaWVyUGFydHlOYW1lXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RGVsaXZlcnlDdXN0b21lclBhcnR5TmFtZSd8YWJwTG9jYWxpemF0aW9ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZGVzcGF0Y2hTdXBwbGllclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkRlbGl2ZXJ5Q3VzdG9tZXJQYXJ0eVZrblRja24nfGFicExvY2FsaXphdGlvbn19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInN0YXR1c1wiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6U3RhdHVzJ3xhYnBMb2NhbGl6YXRpb259fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW5ib3VuZERlc3BhdGNoU3RhdHVzTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlY2VpdmVyUmVzcG9uc2VcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlY2VpdmVyUmVzcG9uc2UnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cImljb25UZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgPGR4by1sb29rdXAgW2RhdGFTb3VyY2VdPVwiaW5ib3VuZERlc3BhdGNoUmVjZWl2ZXJSZXNwb25zZUxvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2ljb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cImdldEljb25DbGFzcyhkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSlcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2NvbG9yJzpkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSA9PSAnMScgPyAnZ3JlZW4nIDogZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gJzInID8gJ3JlZCcgOiBkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSA9PSAnMycgPyAnb3JhbmdlJyA6ICdncmF5J31cIj48L2k+XHJcbiAgICAgICAgICB7e2dldFJlY2VpdmVyUmVzcG9uc2VOYW1lKGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlKX19XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInByb2ZpbGVJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RGVzcGF0Y2hQcm9maWxlSWQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRlc3BhdGNoQWR2aWNlVHlwZUNvZGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEZXNwYXRjaEFkdmljZVR5cGVDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpc3N1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJc3N1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInV1SWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlV1SWQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeUZvclJlc3BvbnNlXCIgWyh2aXNpYmxlKV09XCJpc01vZGFsT3BlbkZvclJlc3BvbnNlXCIgW29wdGlvbnNdPVwieyBzaXplOiAnbScgfVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlNlbmRSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtUmVzcG9uc2VcIiBpZD1cImludm9pY2UtcmVzcG9uc2VcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OklkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiBtYXhsZW5ndGg9XCIyNTZcIiBhdXRvZm9jdXM+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXV1aWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlV1SWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS11dWlkXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VVVUlEXCIgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1hY2NlcHRcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0FjY2VwdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVzcG9uc2VDaGVja1wiIChjaGFuZ2UpPVwiY2hlY2tCb3hDaGFuZ2VkKCRldmVudClcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiAvPlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWFjY2VwdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QWNjZXB0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtcmVqZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiaXNSZWplY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInJlc3BvbnNlQ2hlY2tcIiAoY2hhbmdlKT1cImNoZWNrQm94Q2hhbmdlZCgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgLz5cclxuICBcclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1yZWplY3RcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlJlamVjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIGZvcm1OYW1lPVwiaW52b2ljZS1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kSW52b2ljZVJlc3BvbnNlKGZhbHNlKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlJlamVjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGZvcm1OYW1lPVwiaW52b2ljZS1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kSW52b2ljZVJlc3BvbnNlKHRydWUpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6QWNjZXB0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzTW9kYWxCdXN5Rm9yUmVzcG9uc2VcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuRm9yUmVzcG9uc2VcIiBbb3B0aW9uc109XCJ7IHNpemU6ICd4bCcgfVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlNlbmRSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtUmVzcG9uc2VcIiBpZD1cImRlc3BhdGNoLXJlc3BvbnNlXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpJZCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWlkXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkXCIgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS11dWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpVdUlkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtdXVpZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlVVVJRFwiIG1heGxlbmd0aD1cIjI1NlwiIGF1dG9mb2N1cz48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhEZXNwYXRjaFJvd3NJbnN0YW5jZSBbZGF0YVNvdXJjZV09XCJkZXNwYXRjaFJvd3NEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlcGFpbnRDaGFuZ2VzT25seV09XCJ0cnVlXCIgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCIgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA1MHZoO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1lZGl0aW5nIG1vZGU9XCJiYXRjaFwiIHVzZUljb25zPVwidHJ1ZVwiIFthbGxvd1VwZGF0aW5nXT1cInRydWVcIiBbYWxsb3dBZGRpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJ0cnVlXCIgW2FsbG93RGVsZXRpbmddPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2R4by1lZGl0aW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gW2FsbG93RWRpdGluZ109XCJmYWxzZVwiIGRhdGFGaWVsZD1cIml0ZW1LZXl3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXRlbUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIiBkYXRhRmllbGQ9XCJpdGVtTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Okl0ZW1OYW1lJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCIgZGF0YUZpZWxkPVwiZGVzcGF0Y2hkUXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEZXNwYXRjaGVkUXVhbnRpdHknfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIiBkYXRhRmllbGQ9XCJ1bml0Q29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OlVuaXRDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJhY2NlcHRlZFF1YW50aXR5XCIgdmFsdWU9JzAnXHJcbiAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkFjY2VwdGVkUXVhbnRpdHknfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlamVjdGVkUXVhbnRpdHlcIiB2YWx1ZT0nMCdcclxuICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVqZWN0ZWRRdWFudGl0eSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVqZWN0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpSZWplY3REZXNjcmlwdGlvbid8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtdGltZXNcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIGZvcm1OYW1lPVwiZGVzcGF0Y2gtcmVzcG9uc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VuZERlc3BhdGNoUmVzcG9uc2UoMilcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpSZWplY3RBbGwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBmb3JtTmFtZT1cImRlc3BhdGNoLXJlc3BvbnNlXCJcclxuICAgICAgKGNsaWNrKT1cInNlbmREZXNwYXRjaFJlc3BvbnNlKDEpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6QWNjZXB0QWxsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uQ2xhc3M9XCJmYSBmYS1wZW5jaWxcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGZvcm1OYW1lPVwiZGVzcGF0Y2gtcmVzcG9uc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VuZERlc3BhdGNoUmVzcG9uc2UoMClcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpQYXJ0aWFsQWNjZXB0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+Il19
|