ca-components 1.0.76 → 1.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +200 -120
- package/esm2022/lib/components/ca-chart/enums/chart-annotation.enum.mjs +11 -0
- package/esm2022/lib/components/ca-chart/enums/chart-plugin-ids.enum.mjs +2 -1
- package/esm2022/lib/components/ca-chart/enums/index.mjs +2 -1
- package/esm2022/lib/components/ca-chart/models/chart-config.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/models/chart-legend-config.model.mjs +2 -0
- package/esm2022/lib/components/ca-chart/models/chart-legend-property.model.mjs +2 -0
- package/esm2022/lib/components/ca-chart/models/index.mjs +3 -1
- package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +2 -2
- package/esm2022/lib/components/ca-chart-manager/ca-chart-manager.component.mjs +4 -4
- package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +3 -3
- package/esm2022/lib/components/ca-input/ca-input.component.mjs +1 -1
- package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +21 -22
- package/esm2022/lib/components/ca-input-address-dropdown/enums/input-address-basic-string.enum.mjs +6 -0
- package/esm2022/lib/components/ca-map/ca-map.component.mjs +137 -210
- package/esm2022/lib/components/ca-map/enums/google-map.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/enums/map-marker-string.enum.mjs +2 -1
- package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
- package/esm2022/lib/components/ca-map/utils/constants/index.mjs +2 -1
- package/esm2022/lib/components/ca-map/utils/constants/map-marker-icons.constants.mjs +119 -0
- package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +1 -2
- package/esm2022/lib/components/ca-map/utils/helpers/map-marker-icon.helper.mjs +50 -12
- package/esm2022/lib/components/ca-map/utils/services/index.mjs +2 -0
- package/esm2022/lib/components/ca-map/utils/services/map-marker-icon.service.mjs +137 -0
- package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +25 -11
- package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +15 -15
- package/esm2022/lib/constants/map.constant.mjs +131 -131
- package/esm2022/lib/pipes/index.mjs +19 -0
- package/esm2022/lib/pipes/unit-position.pipe.mjs +24 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +993 -653
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-chart/ca-chart.component.d.ts +9 -4
- package/lib/components/ca-chart/enums/chart-annotation.enum.d.ts +10 -0
- package/lib/components/ca-chart/enums/chart-plugin-ids.enum.d.ts +2 -1
- package/lib/components/ca-chart/enums/index.d.ts +1 -0
- package/lib/components/ca-chart/models/chart-config.model.d.ts +1 -0
- package/lib/components/ca-chart/models/chart-legend-config.model.d.ts +6 -0
- package/lib/components/ca-chart/models/chart-legend-property.model.d.ts +7 -0
- package/lib/components/ca-chart/models/index.d.ts +2 -0
- package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
- package/lib/components/ca-input-address-dropdown/enums/input-address-basic-string.enum.d.ts +4 -0
- package/lib/components/ca-map/ca-map.component.d.ts +22 -25
- package/lib/components/ca-map/enums/google-map.enum.d.ts +2 -1
- package/lib/components/ca-map/enums/map-marker-string.enum.d.ts +2 -1
- package/lib/components/ca-map/models/map.model.d.ts +8 -3
- package/lib/components/ca-map/utils/constants/index.d.ts +1 -0
- package/lib/components/ca-map/utils/constants/map-marker-icons.constants.d.ts +6 -0
- package/lib/components/ca-map/utils/helpers/map-marker-icon.helper.d.ts +2 -0
- package/lib/components/ca-map/utils/services/index.d.ts +1 -0
- package/lib/components/ca-map/utils/services/map-marker-icon.service.d.ts +23 -0
- package/lib/components/ca-map-dropdown/ca-map-dropdown.component.d.ts +5 -3
- package/lib/components/ca-progress-bar/ca-progress-bar.component.d.ts +3 -1
- package/lib/pipes/index.d.ts +18 -0
- package/lib/pipes/unit-position.pipe.d.ts +7 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -14,21 +14,21 @@ import { ProgressBarSvgRoutes } from './utils/svg-routes';
|
|
|
14
14
|
// pipes
|
|
15
15
|
import { ThousandSeparatorPipe } from '../../pipes/thousand-separator.pipe';
|
|
16
16
|
import { ConvertMinutesToHoursPipe } from './pipes';
|
|
17
|
-
// helpers
|
|
18
|
-
import { MapMarkerIconHelper } from '../ca-map/utils/helpers';
|
|
19
17
|
// Enums
|
|
20
18
|
import { ProgressBarStringEnum } from './enums';
|
|
21
19
|
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "
|
|
23
|
-
import * as i2 from "angular
|
|
24
|
-
import * as i3 from "
|
|
20
|
+
import * as i1 from "../ca-map/utils/services";
|
|
21
|
+
import * as i2 from "@angular/common";
|
|
22
|
+
import * as i3 from "angular-svg-icon";
|
|
23
|
+
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
25
24
|
export class ProgressBarComponent {
|
|
26
25
|
set gpsProgress(values) {
|
|
27
26
|
this._gpsProgress = values;
|
|
28
27
|
this.setMapMarkers();
|
|
29
28
|
this.calculateGpsIconPosition();
|
|
30
29
|
}
|
|
31
|
-
constructor() {
|
|
30
|
+
constructor(markerIconService) {
|
|
31
|
+
this.markerIconService = markerIconService;
|
|
32
32
|
this.isDropdown = false;
|
|
33
33
|
this.gpsTitle = '';
|
|
34
34
|
this.hoveredGpsIcon = false;
|
|
@@ -100,12 +100,12 @@ export class ProgressBarComponent {
|
|
|
100
100
|
const routeMarkers = [];
|
|
101
101
|
const routePaths = [];
|
|
102
102
|
this._gpsProgress.forEach((loadStop, index) => {
|
|
103
|
-
const
|
|
103
|
+
const markerData = {
|
|
104
104
|
position: { lat: loadStop.latitude, lng: loadStop.longitude },
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
};
|
|
106
|
+
const routeMarker = {
|
|
107
|
+
...markerData,
|
|
108
|
+
content: this.markerIconService.getRoutingMarkerIcon(markerData, loadStop.stopNumber ?? 0, loadStop.type, this.currentPosition >= loadStop.position),
|
|
109
109
|
};
|
|
110
110
|
routeMarkers.push(routeMarker);
|
|
111
111
|
if (index > 0) {
|
|
@@ -156,10 +156,10 @@ export class ProgressBarComponent {
|
|
|
156
156
|
});
|
|
157
157
|
this.gpsIconTopPosition = currentStopPercentage ?? topPosition;
|
|
158
158
|
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, deps: [{ token: i1.MapMarkerIconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
160
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "app-ca-progress-bar", inputs: { isDropdown: "isDropdown", currentPosition: "currentPosition", mileageInfo: "mileageInfo", currentStop: "currentStop", gpsTitle: "gpsTitle", gpsIcon: "gpsIcon", gpsInfo: "gpsInfo", mileagesPercent: "mileagesPercent", totalMiles: "totalMiles", gpsProgress: "gpsProgress", gpsLocationIcon: "gpsLocationIcon", dispatchStatus: "dispatchStatus" }, ngImport: i0, template: "<div class=\"gps-progress-bar\">\n <div\n class=\"gps-progress-holder d-flex align-items-center\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"gpsDropdownPopover\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom-right'\"\n popoverClass=\"gps_dropdown_popover\"\n triggers=\"manual\"\n (click)=\"showDropdownMap(t2)\"\n >\n <div\n class=\"gps-progress-img\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <ng-container *ngIf=\"!hoveredGpsIcon\">\n <div class=\"gps-progress-text\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div class=\"mileages ca-font-bold\">\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div class=\"mileage-normal ca-font-regular\">\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n <ng-container\n *ngFor=\"\n let stop of _gpsProgress;\n let i = index;\n trackBy: identity\n \"\n >\n <div\n class=\"gps-stop\"\n (mouseenter)=\"hoverStop(stop, i, false)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop': currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n </ng-container>\n <div\n class=\"current-pos\"\n (mouseenter)=\"hoverStop(currentStop, -2, true)\"\n (mouseleave)=\"leaveStop()\"\n [ngStyle]=\"{ left: currentPosition + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"currentStop?.location ?? ''\"\n [disableTooltip]=\"!currentStop\"\n position=\"bottom\"\n >\n <svg-icon [src]=\"gpsLocationIcon\"></svg-icon>\n </div>\n </div>\n <div class=\"mileages ca-font-bold\">{{ mileagesPercent }}</div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"hoveredGpsIcon && gpsInfo\">\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-bold\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">{{ gpsInfo.gpsTime }}</div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"map_holder\">\n <app-ca-map [data]=\"Mapdata\"></app-ca-map>\n </div>\n <div class=\"gps_all_hold\">\n <div\n class=\"gps_header d-flex align-items-center\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <div class=\"gps-progress-img\">\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-bold\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <!-- <div class=\"moving_time ca-font-medium\">\n {{ !hoveredGpsIcon ? 'Near Maplewood, MO' : '03:47' }}\n </div> -->\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_progress_hold\">\n <div\n class=\"gps_progress_hold_inner d-flex flex-column justify-content-between align-items-start\"\n >\n <div class=\"progress_line\">\n <div\n class=\"progress_inner_line\"\n [ngStyle]=\"{\n height: gpsIconTopPosition + '%',\n }\"\n ></div>\n\n <ng-container *ngIf=\"!currentStop\">\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: { topPosition: gpsIconTopPosition }\n \"\n ></ng-container>\n </ng-container>\n </div>\n <ng-container\n *ngFor=\"\n let stop of _gpsProgress;\n let stopIndex = index;\n trackBy: identity\n \"\n >\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div class=\"progress_header_inside d-flex\">\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n [ngClass]=\"{\n 'delivery-icon': stop.type === 'delivery',\n 'pickup-icon': stop.type === 'pickup',\n }\"\n >\n <ng-container\n *ngIf=\"!stop.isAtStop; else gpsLocationIconTemplate\"\n >\n <ng-container\n *ngIf=\"\n currentPosition >= stop.position;\n else progressStopNumberTemplate\n \"\n >\n <svg-icon\n [src]=\"getSvgPath('checkRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n </ng-container>\n\n <ng-template #progressStopNumberTemplate>\n <div\n class=\"progress-stop-number text-center\"\n [ngStyle]=\"{\n color:\n stop.type === 'pickup' ? '#86C9C3' : '#ED9292',\n }\"\n >\n {{ stop.stopNumber }}\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"progress_info_hold d-flex flex-column\">\n <div\n class=\"progress_name ca-font-bold\"\n [ngStyle]=\"{\n color:\n (stop.isAtStop || (currentPosition < stop.position))\n ? stop.type === 'pickup'\n ? '#86C9C3'\n : '#ED9292'\n : '#919191',\n }\"\n >\n {{ stop.location }}\n </div>\n <ng-container\n *ngIf=\"!stop.isAtStop; else locationAtStopTemplate\"\n >\n <ng-container *ngIf=\"stop.date\">\n <div\n class=\"progress_time ca-font-regular\"\n [class.visited-stop-text]=\"\n currentPosition >= stop.position && !stop.isAtStop\n \"\n >\n {{ stop.date }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"stop.time\">\n <div\n class=\"progress_time ca-font-regular\"\n [class.visited-stop-text]=\"\n currentPosition >= stop.position && !stop.isAtStop\n \"\n >\n {{ stop.time }}\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #locationAtStopTemplate>\n <div class=\"progress_time ca-font-bold\">\n {{ dispatchStatus }}\n </div>\n <ng-container *ngIf=\"stop.currentWaitTime\">\n <div class=\"progress_time\">\n {{ stop.currentWaitTime | convertMinutesToHours }}\n </div>\n </ng-container>\n </ng-template>\n </div>\n </div>\n <div\n class=\"progress-leg-miles-text\"\n [ngClass]=\"{\n 'visited-stop-text': (currentPosition >= stop.position) && !stop.isAtStop,\n 'ca-font-bold': stopIndex === 0,\n }\"\n >\n {{\n stopIndex === 0\n ? 'LEG mi'\n : stop?.legMiles\n ? '+' + stop.legMiles\n : '+' + 0\n }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"gps_complete_text\">\n {{ staticConstant.completed }}\n </div>\n <div class=\"gps_complete_text_info\">\n {{ staticConstant.total }}\n </div>\n </div>\n <div class=\"gps_complete_second_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ totalMiles | thousandSeparator }} {{ staticConstant.miles }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #gpsLocationIconTemplate let-topPosition=\"topPosition\">\n <div\n class=\"d-flex align-items-center justify-content-center\"\n [class.moving-gps]=\"topPosition !== undefined\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"gpsLocationIcon\"\n [svgStyle]=\"{ 'width.px': 10, 'height.px': 10 }\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.gps-progress-bar{width:100%;max-width:326px}.gps-progress-bar .gps-progress-holder{height:26px;padding:2px}.gps-progress-bar .gps-progress-holder .gps-progress-img{cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-img svg-icon svg{width:22px;height:22px}.gps-progress-bar .gps-progress-holder .gps-progress-text{height:26px;padding:0 2px 0 6px;flex:1}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps{height:12px}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps:last-child{align-items:center}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal{font-size:11px;color:#2f2f2f;-webkit-user-select:none;user-select:none}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages::-moz-selection,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages::selection,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal::selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline{position:relative;margin-right:12px;flex:1;height:2px;background-color:#919191}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop{position:absolute;top:50%;width:4px;height:6px;border-radius:1px;background-color:#dadada;transform:translateY(-50%);cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.pickup-stop{background-color:#56b4ac}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.pickup-stop.visited-stop{background-color:#259f9466}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.delivery-stop{background-color:#e66767}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.delivery-stop.visited-stop{background-color:#df3c3c66}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .current-pos{position:absolute;top:50%;left:0%;transform:translateY(-50%);cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .current-pos svg-icon svg{width:10px;height:10px}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;height:2px;left:0;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps_current_info{position:absolute;background-color:#424242;padding:3px 6px;margin-top:7px;color:#fff;border-radius:3px;z-index:2}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps_current_info .gps_info_title{font-size:10px}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px;flex:1}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side{color:#3074d3;font-size:11px;line-height:11px}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side::selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time{color:#2f2f2f;font-size:11px;line-height:11px}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time::selection{color:#919191;background:#91919120}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.main_dropdown_holder .map_holder{flex:1}.main_dropdown_holder .gps_all_hold{padding:4px;width:224px}.main_dropdown_holder .gps_all_hold .gps_header{margin-bottom:4px;padding:2px;border-radius:2px}.main_dropdown_holder .gps_all_hold .gps_header:hover{background-color:#1d1d1d}.main_dropdown_holder .gps_all_hold .gps_header .gps-progress-img{cursor:pointer}.main_dropdown_holder .gps_all_hold .gps_header .gps-progress-img svg-icon svg{width:22px;height:22px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold{padding:0 10px 0 8px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side{color:#3074d3;font-size:11px;line-height:11px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time{color:#fff;font-size:11px;line-height:11px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_info_border{height:1px;width:100%;background-color:#424242;border-radius:1px}.main_dropdown_holder .gps_all_hold .gps_progress_hold{padding:6px 0}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner{position:relative;overflow-y:auto}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line{position:absolute;left:12px;height:calc(100% - 50px);width:2px;background-color:#ccc3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_inner_line{width:2px;height:0px;transform:translateY(5px);background-color:#ccc}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_moving_dot{position:absolute;left:-4px;top:0;width:10px;height:10px;transform:translateY(50%);background-color:#6692f1;border-radius:100%;z-index:3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_moving_dot .moving_dot_inner{width:4px;height:4px;background-color:#dadada;border-radius:100%}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner{width:100%;height:50px;padding:0 6px 2px;border-radius:1px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:last-child{background:#2f2f2f;z-index:2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside{flex:1}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon{height:18px;width:14px;min-width:14px;background-color:#2f2f2f;z-index:2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon svg-icon svg{display:flex;width:14px;height:14px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon svg-icon svg path{fill:#919191}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon .progress_dot{width:6px;height:6px;border-radius:100%;background-color:#4db6a2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon .progress-stop-number{width:22px;font-size:14px;line-height:18px;background-color:#2f2f2f;-webkit-user-select:none;user-select:none}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon.delivery-icon svg-icon svg path{fill:#e66767}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon.pickup-icon svg-icon svg path{fill:#56b4ac}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold{margin-left:8px;margin-top:2px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name{font-size:11px;line-height:14px;color:#919191}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time{font-size:11px;line-height:14px;color:#fff}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type{height:22px;width:22px;background-color:#aaa;border-radius:100%}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number{color:#fff;line-height:17px;font-size:14px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text{margin-top:2px;font-size:11px;line-height:14px;color:#dadada}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text{color:#919191!important}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text::-moz-selection{color:#919191;background:#91919133}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text::selection{color:#919191;background:#91919133}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover,.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover .progress_header .progress_header_inside .progress_icon,.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover .progress_header .progress_header_inside .progress_icon .progress-stop-number{background-color:#424242}.main_dropdown_holder .gps_all_hold .gps_complete_hold{margin-top:4px;padding:0 4px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row{margin-bottom:2px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text{flex:1;color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info{color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text{flex:1;color:#92b1f5;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text::-moz-selection{color:#92b1f5;background:#3b73ed33}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text::selection{color:#92b1f5;background:#3b73ed33}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info{color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info::selection{color:#dadada;background:#fff3}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
161
161
|
// Modules
|
|
162
|
-
CommonModule }, { kind: "directive", type:
|
|
162
|
+
CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i3.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "ngmodule", type: NgbModule }, { kind: "directive", type: i4.NgbPopover, selector: "[ngbPopover]", inputs: ["animation", "autoClose", "ngbPopover", "popoverTitle", "placement", "popperOptions", "triggers", "positionTarget", "container", "disablePopover", "popoverClass", "popoverContext", "openDelay", "closeDelay"], outputs: ["shown", "hidden"], exportAs: ["ngbPopover"] }, { kind: "directive", type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type:
|
|
163
163
|
// Components
|
|
164
164
|
CaMapComponent, selector: "app-ca-map", inputs: ["data"], outputs: ["resetSelectedMarkerItem", "clusterMarkerClick", "clusterListScrollEvent", "getInfoWindowData", "boundsChanged", "openInMapEvent"] }, { kind: "component", type: CaAppTooltipV2Component, selector: "mainCaTooltip, [mainCaTooltip]", inputs: ["mainCaTooltip", "position", "openTooltipDelay", "tooltipBackground", "tooltipColor", "tooltipTextAlign", "tooltipMarginTop", "disableTooltip"] }, { kind: "pipe", type:
|
|
165
165
|
// Pipes
|
|
@@ -180,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
180
180
|
ThousandSeparatorPipe,
|
|
181
181
|
ConvertMinutesToHoursPipe,
|
|
182
182
|
], template: "<div class=\"gps-progress-bar\">\n <div\n class=\"gps-progress-holder d-flex align-items-center\"\n #t2=\"ngbPopover\"\n [ngbPopover]=\"gpsDropdownPopover\"\n [autoClose]=\"'outside'\"\n container=\"body\"\n [placement]=\"'bottom-right'\"\n popoverClass=\"gps_dropdown_popover\"\n triggers=\"manual\"\n (click)=\"showDropdownMap(t2)\"\n >\n <div\n class=\"gps-progress-img\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <ng-container *ngIf=\"!hoveredGpsIcon\">\n <div class=\"gps-progress-text\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div class=\"mileages ca-font-bold\">\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div class=\"mileage-normal ca-font-regular\">\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n <ng-container\n *ngFor=\"\n let stop of _gpsProgress;\n let i = index;\n trackBy: identity\n \"\n >\n <div\n class=\"gps-stop\"\n (mouseenter)=\"hoverStop(stop, i, false)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop': currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n </ng-container>\n <div\n class=\"current-pos\"\n (mouseenter)=\"hoverStop(currentStop, -2, true)\"\n (mouseleave)=\"leaveStop()\"\n [ngStyle]=\"{ left: currentPosition + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"currentStop?.location ?? ''\"\n [disableTooltip]=\"!currentStop\"\n position=\"bottom\"\n >\n <svg-icon [src]=\"gpsLocationIcon\"></svg-icon>\n </div>\n </div>\n <div class=\"mileages ca-font-bold\">{{ mileagesPercent }}</div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"hoveredGpsIcon && gpsInfo\">\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-bold\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n <div class=\"moving_time ca-font-medium\">{{ gpsInfo.gpsTime }}</div>\n </div>\n </ng-container>\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"map_holder\">\n <app-ca-map [data]=\"Mapdata\"></app-ca-map>\n </div>\n <div class=\"gps_all_hold\">\n <div\n class=\"gps_header d-flex align-items-center\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <div class=\"gps-progress-img\">\n <svg-icon [src]=\"gpsIcon\"></svg-icon>\n </div>\n <div class=\"gps_info_hold d-flex flex-column justify-content-center\">\n <div\n class=\"moving_side ca-font-bold\"\n [ngStyle]=\"{ color: gpsInfo?.gpsheadingColor }\"\n >\n {{ gpsInfo?.gpsheading }}\n </div>\n <!-- <div class=\"moving_time ca-font-medium\">\n {{ !hoveredGpsIcon ? 'Near Maplewood, MO' : '03:47' }}\n </div> -->\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_progress_hold\">\n <div\n class=\"gps_progress_hold_inner d-flex flex-column justify-content-between align-items-start\"\n >\n <div class=\"progress_line\">\n <div\n class=\"progress_inner_line\"\n [ngStyle]=\"{\n height: gpsIconTopPosition + '%',\n }\"\n ></div>\n\n <ng-container *ngIf=\"!currentStop\">\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: { topPosition: gpsIconTopPosition }\n \"\n ></ng-container>\n </ng-container>\n </div>\n <ng-container\n *ngFor=\"\n let stop of _gpsProgress;\n let stopIndex = index;\n trackBy: identity\n \"\n >\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div class=\"progress_header_inside d-flex\">\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n [ngClass]=\"{\n 'delivery-icon': stop.type === 'delivery',\n 'pickup-icon': stop.type === 'pickup',\n }\"\n >\n <ng-container\n *ngIf=\"!stop.isAtStop; else gpsLocationIconTemplate\"\n >\n <ng-container\n *ngIf=\"\n currentPosition >= stop.position;\n else progressStopNumberTemplate\n \"\n >\n <svg-icon\n [src]=\"getSvgPath('checkRoute')\"\n [svgStyle]=\"{ 'width.px': 14, 'height.px': 14 }\"\n ></svg-icon>\n </ng-container>\n\n <ng-template #progressStopNumberTemplate>\n <div\n class=\"progress-stop-number text-center\"\n [ngStyle]=\"{\n color:\n stop.type === 'pickup' ? '#86C9C3' : '#ED9292',\n }\"\n >\n {{ stop.stopNumber }}\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div class=\"progress_info_hold d-flex flex-column\">\n <div\n class=\"progress_name ca-font-bold\"\n [ngStyle]=\"{\n color:\n (stop.isAtStop || (currentPosition < stop.position))\n ? stop.type === 'pickup'\n ? '#86C9C3'\n : '#ED9292'\n : '#919191',\n }\"\n >\n {{ stop.location }}\n </div>\n <ng-container\n *ngIf=\"!stop.isAtStop; else locationAtStopTemplate\"\n >\n <ng-container *ngIf=\"stop.date\">\n <div\n class=\"progress_time ca-font-regular\"\n [class.visited-stop-text]=\"\n currentPosition >= stop.position && !stop.isAtStop\n \"\n >\n {{ stop.date }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"stop.time\">\n <div\n class=\"progress_time ca-font-regular\"\n [class.visited-stop-text]=\"\n currentPosition >= stop.position && !stop.isAtStop\n \"\n >\n {{ stop.time }}\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #locationAtStopTemplate>\n <div class=\"progress_time ca-font-bold\">\n {{ dispatchStatus }}\n </div>\n <ng-container *ngIf=\"stop.currentWaitTime\">\n <div class=\"progress_time\">\n {{ stop.currentWaitTime | convertMinutesToHours }}\n </div>\n </ng-container>\n </ng-template>\n </div>\n </div>\n <div\n class=\"progress-leg-miles-text\"\n [ngClass]=\"{\n 'visited-stop-text': (currentPosition >= stop.position) && !stop.isAtStop,\n 'ca-font-bold': stopIndex === 0,\n }\"\n >\n {{\n stopIndex === 0\n ? 'LEG mi'\n : stop?.legMiles\n ? '+' + stop.legMiles\n : '+' + 0\n }}\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"gps_info_border\"></div>\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"gps_complete_text\">\n {{ staticConstant.completed }}\n </div>\n <div class=\"gps_complete_text_info\">\n {{ staticConstant.total }}\n </div>\n </div>\n <div class=\"gps_complete_second_row d-flex\">\n <div class=\"gps_complete_text ca-font-bold\">\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n <div class=\"gps_complete_text_info ca-font-bold\">\n {{ totalMiles | thousandSeparator }} {{ staticConstant.miles }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n</div>\n\n<ng-template #gpsLocationIconTemplate let-topPosition=\"topPosition\">\n <div\n class=\"d-flex align-items-center justify-content-center\"\n [class.moving-gps]=\"topPosition !== undefined\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon\n class=\"d-flex\"\n [src]=\"gpsLocationIcon\"\n [svgStyle]=\"{ 'width.px': 10, 'height.px': 10 }\"\n ></svg-icon>\n </div>\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.gps-progress-bar{width:100%;max-width:326px}.gps-progress-bar .gps-progress-holder{height:26px;padding:2px}.gps-progress-bar .gps-progress-holder .gps-progress-img{cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-img svg-icon svg{width:22px;height:22px}.gps-progress-bar .gps-progress-holder .gps-progress-text{height:26px;padding:0 2px 0 6px;flex:1}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps{height:12px}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps:last-child{align-items:center}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal{font-size:11px;color:#2f2f2f;-webkit-user-select:none;user-select:none}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages::-moz-selection,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileages::selection,.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .mileage-normal::selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline{position:relative;margin-right:12px;flex:1;height:2px;background-color:#919191}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop{position:absolute;top:50%;width:4px;height:6px;border-radius:1px;background-color:#dadada;transform:translateY(-50%);cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.pickup-stop{background-color:#56b4ac}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.pickup-stop.visited-stop{background-color:#259f9466}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.delivery-stop{background-color:#e66767}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-stop.delivery-stop.visited-stop{background-color:#df3c3c66}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .current-pos{position:absolute;top:50%;left:0%;transform:translateY(-50%);cursor:pointer}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .current-pos svg-icon svg{width:10px;height:10px}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;height:2px;left:0;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps_current_info{position:absolute;background-color:#424242;padding:3px 6px;margin-top:7px;color:#fff;border-radius:3px;z-index:2}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps_current_info .gps_info_title{font-size:10px}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px;flex:1}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side{color:#3074d3;font-size:11px;line-height:11px}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_side::selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time{color:#2f2f2f;font-size:11px;line-height:11px}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time::-moz-selection{color:#919191;background:#91919120}.gps-progress-bar .gps-progress-holder .gps_info_hold .moving_time::selection{color:#919191;background:#91919120}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.main_dropdown_holder .map_holder{flex:1}.main_dropdown_holder .gps_all_hold{padding:4px;width:224px}.main_dropdown_holder .gps_all_hold .gps_header{margin-bottom:4px;padding:2px;border-radius:2px}.main_dropdown_holder .gps_all_hold .gps_header:hover{background-color:#1d1d1d}.main_dropdown_holder .gps_all_hold .gps_header .gps-progress-img{cursor:pointer}.main_dropdown_holder .gps_all_hold .gps_header .gps-progress-img svg-icon svg{width:22px;height:22px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold{padding:0 10px 0 8px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side{color:#3074d3;font-size:11px;line-height:11px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_side::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time{color:#fff;font-size:11px;line-height:11px}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_header .gps_info_hold .moving_time::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_info_border{height:1px;width:100%;background-color:#424242;border-radius:1px}.main_dropdown_holder .gps_all_hold .gps_progress_hold{padding:6px 0}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner{position:relative;overflow-y:auto}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line{position:absolute;left:12px;height:calc(100% - 50px);width:2px;background-color:#ccc3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_inner_line{width:2px;height:0px;transform:translateY(5px);background-color:#ccc}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_moving_dot{position:absolute;left:-4px;top:0;width:10px;height:10px;transform:translateY(50%);background-color:#6692f1;border-radius:100%;z-index:3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_line .progress_moving_dot .moving_dot_inner{width:4px;height:4px;background-color:#dadada;border-radius:100%}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner{width:100%;height:50px;padding:0 6px 2px;border-radius:1px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:last-child{background:#2f2f2f;z-index:2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside{flex:1}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon{height:18px;width:14px;min-width:14px;background-color:#2f2f2f;z-index:2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon svg-icon svg{display:flex;width:14px;height:14px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon svg-icon svg path{fill:#919191}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon .progress_dot{width:6px;height:6px;border-radius:100%;background-color:#4db6a2}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon .progress-stop-number{width:22px;font-size:14px;line-height:18px;background-color:#2f2f2f;-webkit-user-select:none;user-select:none}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon.delivery-icon svg-icon svg path{fill:#e66767}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_icon.pickup-icon svg-icon svg path{fill:#56b4ac}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold{margin-left:8px;margin-top:2px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name{font-size:11px;line-height:14px;color:#919191}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_name::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time{font-size:11px;line-height:14px;color:#fff}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_header_inside .progress_info_hold .progress_time::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type{height:22px;width:22px;background-color:#aaa;border-radius:100%}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number{color:#fff;line-height:17px;font-size:14px}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number::-moz-selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress_type .progress_number::selection{color:#919191;background:#91919120}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text{margin-top:2px;font-size:11px;line-height:14px;color:#dadada}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .progress_header .progress-leg-miles-text::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text{color:#919191!important}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text::-moz-selection{color:#919191;background:#91919133}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner .visited-stop-text::selection{color:#919191;background:#91919133}.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover,.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover .progress_header .progress_header_inside .progress_icon,.main_dropdown_holder .gps_all_hold .gps_progress_hold .gps_progress_hold_inner .progress_inner:hover .progress_header .progress_header_inside .progress_icon .progress-stop-number{background-color:#424242}.main_dropdown_holder .gps_all_hold .gps_complete_hold{margin-top:4px;padding:0 4px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row{margin-bottom:2px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text{flex:1;color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info{color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_row .gps_complete_text_info::selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text{flex:1;color:#92b1f5;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text::-moz-selection{color:#92b1f5;background:#3b73ed33}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text::selection{color:#92b1f5;background:#3b73ed33}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info{color:#dadada;font-size:11px;line-height:14px}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info::-moz-selection{color:#dadada;background:#fff3}.main_dropdown_holder .gps_all_hold .gps_complete_hold .gps_complete_second_row .gps_complete_text_info::selection{color:#dadada;background:#fff3}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"] }]
|
|
183
|
-
}], ctorParameters: () => [], propDecorators: { isDropdown: [{
|
|
183
|
+
}], ctorParameters: () => [{ type: i1.MapMarkerIconService }], propDecorators: { isDropdown: [{
|
|
184
184
|
type: Input
|
|
185
185
|
}], currentPosition: [{
|
|
186
186
|
type: Input
|
|
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
205
205
|
}], dispatchStatus: [{
|
|
206
206
|
type: Input
|
|
207
207
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsVUFBVTtBQUNWLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFL0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixZQUFZO0FBQ1osT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVaEUsYUFBYTtBQUNiLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFELFFBQVE7QUFDUixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFcEQsVUFBVTtBQUNWLE9BQU8sRUFBRSxtQkFB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QWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQU9HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IENhTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwL2NhLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9jb25zdGFudHMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElHcHNQcm9ncmVzcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7XG4gIElDYU1hcFByb3BzLFxuICBJTWFwTWFya2VycyxcbiAgSU1hcFJvdXRlUGF0aCxcbn0gZnJvbSAnLi4vY2EtbWFwL21vZGVscy9tYXAubW9kZWwnO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBUaG91c2FuZFNlcGFyYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90aG91c2FuZC1zZXBhcmF0b3IucGlwZSc7XG5pbXBvcnQgeyBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IE1hcE1hcmtlckljb25IZWxwZXIgfSBmcm9tICcuLi9jYS1tYXAvdXRpbHMvaGVscGVycyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLXByb2dyZXNzLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vIE1vZHVsZXNcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgTmdiTW9kdWxlLFxuICAgIE5nYlRvb2x0aXAsXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIENhTWFwQ29tcG9uZW50LFxuICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgIC8vIFBpcGVzXG4gICAgVGhvdXNhbmRTZXBhcmF0b3JQaXBlLFxuICAgIENvbnZlcnRNaW51dGVzVG9Ib3Vyc1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXJyZW50UG9zaXRpb24hOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbGVhZ2VJbmZvITogc3RyaW5nO1xuICBASW5wdXQoKSBjdXJyZW50U3RvcCE6IElHcHNQcm9ncmVzcztcbiAgQElucHV0KCkgZ3BzVGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBncHNJY29uITogc3RyaW5nO1xuICBASW5wdXQoKSBncHNJbmZvIToge1xuICAgIGdwc2hlYWRpbmc6IHN0cmluZztcbiAgICBncHNUaW1lOiBzdHJpbmc7XG4gICAgZ3BzaGVhZGluZ0NvbG9yPzogc3RyaW5nO1xuICB9O1xuICBASW5wdXQoKSBtaWxlYWdlc1BlcmNlbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsTWlsZXMhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNldCBncHNQcm9ncmVzcyh2YWx1ZXM6IElHcHNQcm9ncmVzc1tdKSB7XG4gICAgdGhpcy5fZ3BzUHJvZ3Jlc3MgPSB2YWx1ZXM7XG5cbiAgICB0aGlzLnNldE1hcE1hcmtlcnMoKTtcblxuICAgIHRoaXMuY2FsY3VsYXRlR3BzSWNvblBvc2l0aW9uKCk7XG4gIH1cbiAgQElucHV0KCkgZ3BzTG9jYXRpb25JY29uITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNwYXRjaFN0YXR1cyE6IHN0cmluZztcbiAgcHVibGljIGhvdmVyZWRHcHNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBob3ZlcmVkR3BzQ3VycmVudFBvc2l0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93RHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZvY3VzZWRJY29uOiBudW1iZXIgPSAtMTtcbiAgcHVibGljIGlzSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBzdGF0aWNDb25zdGFudCA9IFByb2dyZXNzQmFyQ29uc3RhbnRzO1xuICBwdWJsaWMgaG92ZXJlZEdwc1RpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGhvdmVyZWRNaWxlYWdlSW5mbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBob3ZlcmVkU3RvcDogSUdwc1Byb2dyZXNzIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBfZ3BzUHJvZ3Jlc3M6IElHcHNQcm9ncmVzc1tdID0gW107XG4gIHB1YmxpYyBncHNJY29uVG9wUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgcHVibGljIE1hcGRhdGE6IElDYU1hcFByb3BzID0ge1xuICAgIG1hcmtlcnM6IFtdLFxuICAgIGNsdXN0ZXJNYXJrZXJzOiBbXSxcbiAgICByb3V0aW5nTWFya2VyczogW10sXG4gICAgcm91dGVQYXRoczogW10sXG4gICAgZGFya01vZGU6IHRydWUsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBob3ZlclN0b3AoXG4gICAgc3RvcDogSUdwc1Byb2dyZXNzLFxuICAgIGk6IG51bWJlcixcbiAgICBpc0ljb246IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICB0aGlzLmhvdmVyZWRTdG9wID0gc3RvcDtcbiAgICB0aGlzLmhvdmVyZWRHcHNDdXJyZW50UG9zaXRpb24gPSB0cnVlO1xuICAgIHRoaXMuaG92ZXJlZEdwc1RpdGxlID0gc3RvcD8uaXNBdFN0b3BcbiAgICAgID8gUHJvZ3Jlc3NCYXJTdHJpbmdFbnVtLkNVUlJFTlRfTE9DQVRJT05cbiAgICAgIDogc3RvcD8uaGVhZGluZyB8fCBudWxsO1xuICAgIHRoaXMuaG92ZXJlZE1pbGVhZ2VJbmZvID0gIXN0b3A/LmlzQXRTdG9wID8gc3RvcD8ubWlsZWFnZSA6ICcnO1xuICAgIHRoaXMuZm9jdXNlZEljb24gPSBpO1xuICAgIHRoaXMuaXNJY29uID0gaXNJY29uO1xuICAgIHRoaXMuZ2V0VG9vbFRpcCgpO1xuICB9XG5cbiAgcHVibGljIGxlYXZlU3RvcCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvdmVyZWRTdG9wID0gbnVsbDtcbiAgICB0aGlzLmhvdmVyZWRHcHNDdXJyZW50UG9zaXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmhvdmVyZWRHcHNUaXRsZSA9IG51bGw7XG4gICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSBudWxsO1xuICAgIHRoaXMuZm9jdXNlZEljb24gPSAtMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWZ0U3R5bGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0ljb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdG9wLnBvc2l0aW9uICsgJyUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3BzUHJvZ3Jlc3NbdGhpcy5mb2N1c2VkSWNvbl0ucG9zaXRpb24gLSAyMCArICclJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9vbFRpcCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSWNvbikge1xuICAgICAgdGhpcy50b29sdGlwID0gdGhpcy5jdXJyZW50U3RvcD8ubG9jYXRpb247XG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLl9ncHNQcm9ncmVzc1t0aGlzLmZvY3VzZWRJY29uXS5sb2NhdGlvbjtcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RHJvcGRvd25NYXAodDI6IE5nYlBvcG92ZXIpOiB2b2lkIHtcbiAgICB0Mi5vcGVuKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBQcm9ncmVzc0JhclN2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFByb2dyZXNzQmFyU3ZnUm91dGVzW3Byb3BlcnR5TmFtZV0gYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHNldE1hcE1hcmtlcnMoKTogdm9pZCB7XG4gICAgY29uc3Qgcm91dGVNYXJrZXJzOiBJTWFwTWFya2Vyc1tdID0gW107XG4gICAgY29uc3Qgcm91dGVQYXRoczogSU1hcFJvdXRlUGF0aFtdID0gW107XG5cbiAgICB0aGlzLl9ncHNQcm9ncmVzcy5mb3JFYWNoKChsb2FkU3RvcCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHJvdXRlTWFya2VyOiBJTWFwTWFya2VycyA9IHtcbiAgICAgICAgcG9zaXRpb246IHsgbGF0OiBsb2FkU3RvcC5sYXRpdHVkZSwgbG5nOiBsb2FkU3RvcC5sb25naXR1ZGUgfSxcbiAgICAgICAgaWNvbjoge1xuICAgICAgICAgIHVybDogTWFwTWFya2VySWNvbkhlbHBlci5nZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgICAgIGxvYWRTdG9wLnN0b3BOdW1iZXIgPz8gMCxcbiAgICAgICAgICAgIGxvYWRTdG9wLnR5cGUsXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRQb3NpdGlvbiA+PSBsb2FkU3RvcC5wb3NpdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgbGFiZWxPcmlnaW46IG5ldyBnb29nbGUubWFwcy5Qb2ludCg5MCwgMTUpLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgcm91dGVNYXJrZXJzLnB1c2gocm91dGVNYXJrZXIpO1xuXG4gICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aDogSU1hcFJvdXRlUGF0aCA9IHtcbiAgICAgICAgICBwYXRoOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhdDogdGhpcy5fZ3BzUHJvZ3Jlc3NbaW5kZXggLSAxXS5sYXRpdHVkZSEsXG4gICAgICAgICAgICAgIGxuZzogdGhpcy5fZ3BzUHJvZ3Jlc3NbaW5kZXggLSAxXS5sb25naXR1ZGUhLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgbGF0OiBsb2FkU3RvcC5sYXRpdHVkZSEsIGxuZzogbG9hZFN0b3AubG9uZ2l0dWRlISB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3Ryb2tlQ29sb3I6XG4gICAgICAgICAgICBpbmRleCA9PT0gMVxuICAgICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMucm91dGluZ1BhdGhDb2xvcnMuY3VycmVudExvY2F0aW9uXG4gICAgICAgICAgICAgIDogTWFwT3B0aW9uc0NvbnN0YW50cy5yb3V0aW5nUGF0aENvbG9ycy5kZWZhdWx0LFxuICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgc3Ryb2tlV2VpZ2h0OiA0LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJvdXRlUGF0aHMucHVzaChyb3V0ZVBhdGgpO1xuXG4gICAgICAgIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgIHJvdXRlUGF0aHMucHVzaCh7XG4gICAgICAgICAgICAuLi5yb3V0ZVBhdGgsXG4gICAgICAgICAgICBzdHJva2VDb2xvcjogTWFwT3B0aW9uc0NvbnN0YW50cy5yb3V0aW5nUGF0aENvbG9ycy5kZWFkaGVhZCxcbiAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgICBzdHJva2VXZWlnaHQ6IDIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuTWFwZGF0YSA9IHtcbiAgICAgIC4uLnRoaXMuTWFwZGF0YSxcbiAgICAgIGlzWm9vbVNob3duOiB0cnVlLFxuICAgICAgaXNWZXJ0aWNhbFpvb206IHRydWUsXG4gICAgICByb3V0aW5nTWFya2Vyczogcm91dGVNYXJrZXJzLFxuICAgICAgcm91dGVQYXRoczogcm91dGVQYXRocyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGNhbGN1bGF0ZUdwc0ljb25Qb3NpdGlvbigpOiB2b2lkIHtcbiAgICBsZXQgdG9wUG9zaXRpb24gPSAwO1xuICAgIGxldCBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBudWxsO1xuICAgIGNvbnN0IHN0b3BQZXJjZW50YWdlID0gMTAwIC8gKHRoaXMuX2dwc1Byb2dyZXNzLmxlbmd0aCAtIDEpO1xuXG4gICAgdGhpcy5fZ3BzUHJvZ3Jlc3MuZm9yRWFjaCgoc3RvcCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGlzQXREZWFkaGVhZCA9IHN0b3AuaXNBdFN0b3AgJiYgIWluZGV4O1xuXG4gICAgICBpZiAoc3RvcC5pc1Zpc2l0ZWQgJiYgIWlzQXREZWFkaGVhZCkge1xuICAgICAgICB0b3BQb3NpdGlvbiArPSBpbmRleCA/IHN0b3BQZXJjZW50YWdlIDogc3RvcFBlcmNlbnRhZ2UgLyAyO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RvcC5pc0F0U3RvcCkgY3VycmVudFN0b3BQZXJjZW50YWdlID0gc3RvcFBlcmNlbnRhZ2UgKiBpbmRleDtcbiAgICB9KTtcblxuICAgIHRoaXMuZ3BzSWNvblRvcFBvc2l0aW9uID0gY3VycmVudFN0b3BQZXJjZW50YWdlID8/IHRvcFBvc2l0aW9uO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLWJhclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICN0Mj1cIm5nYlBvcG92ZXJcIlxuICAgIFtuZ2JQb3BvdmVyXT1cImdwc0Ryb3Bkb3duUG9wb3ZlclwiXG4gICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgIFtwbGFjZW1lbnRdPVwiJ2JvdHRvbS1yaWdodCdcIlxuICAgIHBvcG92ZXJDbGFzcz1cImdwc19kcm9wZG93bl9wb3BvdmVyXCJcbiAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXG4gICAgKGNsaWNrKT1cInNob3dEcm9wZG93bk1hcCh0MilcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaW1nXCJcbiAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRHcHNJY29uID0gdHJ1ZVwiXG4gICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb24gW3NyY109XCJncHNJY29uXCI+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhvdmVyZWRHcHNJY29uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLXRleHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWxlYWdlcyBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgIHt7IGhvdmVyZWRHcHNUaXRsZSA/PyBncHNUaXRsZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWxlYWdlLW5vcm1hbCBjYS1mb250LXJlZ3VsYXJcIj5cbiAgICAgICAgICAgIHt7IGhvdmVyZWRNaWxlYWdlSW5mbyA/PyBtaWxlYWdlSW5mbyB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHMtdGltZWxpbmVcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJncHMtdGltZWxpbmUtYWN0aXZlXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgc3RvcCBvZiBfZ3BzUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJncHMtc3RvcFwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJTdG9wKHN0b3AsIGksIGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibGVhdmVTdG9wKClcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdwaWNrdXAtc3RvcCc6IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcsXG4gICAgICAgICAgICAgICAgICAnZGVsaXZlcnktc3RvcCc6IHN0b3AudHlwZSA9PT0gJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgICAgICd2aXNpdGVkLXN0b3AnOiBjdXJyZW50UG9zaXRpb24gPj0gc3RvcC5wb3NpdGlvbixcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IHN0b3AucG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cInN0b3A/LmxvY2F0aW9uID8/ICcnXCJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImN1cnJlbnQtcG9zXCJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJTdG9wKGN1cnJlbnRTdG9wLCAtMiwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJjdXJyZW50U3RvcD8ubG9jYXRpb24gPz8gJydcIlxuICAgICAgICAgICAgICBbZGlzYWJsZVRvb2x0aXBdPVwiIWN1cnJlbnRTdG9wXCJcbiAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJncHNMb2NhdGlvbkljb25cIj48L3N2Zy1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2VzIGNhLWZvbnQtYm9sZFwiPnt7IG1pbGVhZ2VzUGVyY2VudCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJob3ZlcmVkR3BzSWNvbiAmJiBncHNJbmZvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJtb3Zpbmdfc2lkZSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZ3BzSW5mby5ncHNoZWFkaW5nIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW92aW5nX3RpbWUgY2EtZm9udC1tZWRpdW1cIj57eyBncHNJbmZvLmdwc1RpbWUgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI2dwc0Ryb3Bkb3duUG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbl9kcm9wZG93bl9ob2xkZXIgZC1mbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFwX2hvbGRlclwiPlxuICAgICAgICA8YXBwLWNhLW1hcCBbZGF0YV09XCJNYXBkYXRhXCI+PC9hcHAtY2EtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2FsbF9ob2xkXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImdwc19oZWFkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZEdwc0ljb24gPSB0cnVlXCJcbiAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaW1nXCI+XG4gICAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJncHNJY29uXCI+PC9zdmctaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1vdmluZ19zaWRlIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8/Lmdwc2hlYWRpbmdDb2xvciB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgZ3BzSW5mbz8uZ3BzaGVhZGluZyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtb3ZpbmdfdGltZSBjYS1mb250LW1lZGl1bVwiPlxuICAgICAgICAgICAgICB7eyAhaG92ZXJlZEdwc0ljb24gPyAnTmVhciBNYXBsZXdvb2QsIE1PJyA6ICcwMzo0NycgfX1cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ib3JkZXJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJncHNfcHJvZ3Jlc3NfaG9sZF9pbm5lciBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19saW5lXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2lubmVyX2xpbmVcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogZ3BzSWNvblRvcFBvc2l0aW9uICsgJyUnLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXJyZW50U3RvcFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHRvcFBvc2l0aW9uOiBncHNJY29uVG9wUG9zaXRpb24gfVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBzdG9wIG9mIF9ncHNQcm9ncmVzcztcbiAgICAgICAgICAgICAgICBsZXQgc3RvcEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgdHJhY2tCeTogaWRlbnRpdHlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2lubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2hlYWRlciBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19oZWFkZXJfaW5zaWRlIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGl2ZXJ5LWljb24nOiBzdG9wLnR5cGUgPT09ICdkZWxpdmVyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncGlja3VwLWljb24nOiBzdG9wLnR5cGUgPT09ICdwaWNrdXAnLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc3RvcC5pc0F0U3RvcDsgZWxzZSBncHNMb2NhdGlvbkljb25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcHJvZ3Jlc3NTdG9wTnVtYmVyVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRTdmdQYXRoKCdjaGVja1JvdXRlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDE0LCAnaGVpZ2h0LnB4JzogMTQgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJvZ3Jlc3NTdG9wTnVtYmVyVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLXN0b3AtbnVtYmVyIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnR5cGUgPT09ICdwaWNrdXAnID8gJyM4NkM5QzMnIDogJyNFRDkyOTInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3Auc3RvcE51bWJlciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfbmFtZSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RvcC5pc0F0U3RvcCB8fCAoY3VycmVudFBvc2l0aW9uIDwgc3RvcC5wb3NpdGlvbikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnIzg2QzlDMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnI0VEOTI5MidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyM5MTkxOTEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5sb2NhdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXN0b3AuaXNBdFN0b3A7IGVsc2UgbG9jYXRpb25BdFN0b3BUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0b3AuZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnZpc2l0ZWQtc3RvcC10ZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49IHN0b3AucG9zaXRpb24gJiYgIXN0b3AuaXNBdFN0b3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5kYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcC50aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmlzaXRlZC1zdG9wLXRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj0gc3RvcC5wb3NpdGlvbiAmJiAhc3RvcC5pc0F0U3RvcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLnRpbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9jYXRpb25BdFN0b3BUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc190aW1lIGNhLWZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNwYXRjaFN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcC5jdXJyZW50V2FpdFRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX3RpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLmN1cnJlbnRXYWl0VGltZSB8IGNvbnZlcnRNaW51dGVzVG9Ib3VycyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtbGVnLW1pbGVzLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgJ3Zpc2l0ZWQtc3RvcC10ZXh0JzogKGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uKSAmJiAhc3RvcC5pc0F0U3RvcCxcbiAgICAgICAgICAgICAgICAgICAgICAnY2EtZm9udC1ib2xkJzogc3RvcEluZGV4ID09PSAwLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICBzdG9wSW5kZXggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ0xFRyBtaSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RvcD8ubGVnTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJysnICsgc3RvcC5sZWdNaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAnKycgKyAwXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ib3JkZXJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9ob2xkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3RleHRcIj5cbiAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQuY29tcGxldGVkIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfdGV4dF9pbmZvXCI+XG4gICAgICAgICAgICAgIHt7IHN0YXRpY0NvbnN0YW50LnRvdGFsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3NlY29uZF9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3RleHQgY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgIHt7IGN1cnJlbnRQb3NpdGlvbiB9fXt7IHN0YXRpY0NvbnN0YW50LnBlcmNlbnRhZ2UgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV90ZXh0X2luZm8gY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgIHt7IHRvdGFsTWlsZXMgfCB0aG91c2FuZFNlcGFyYXRvciB9fSB7eyBzdGF0aWNDb25zdGFudC5taWxlcyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNncHNMb2NhdGlvbkljb25UZW1wbGF0ZSBsZXQtdG9wUG9zaXRpb249XCJ0b3BQb3NpdGlvblwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgIFtjbGFzcy5tb3ZpbmctZ3BzXT1cInRvcFBvc2l0aW9uICE9PSB1bmRlZmluZWRcIlxuICAgIFtzdHlsZS50b3BdPVwidG9wUG9zaXRpb24gKyAnJSdcIlxuICA+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgICBbc3JjXT1cImdwc0xvY2F0aW9uSWNvblwiXG4gICAgICBbc3ZnU3R5bGVdPVwieyAnd2lkdGgucHgnOiAxMCwgJ2hlaWdodC5weCc6IDEwIH1cIlxuICAgID48L3N2Zy1pY29uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsVUFBVTtBQUNWLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFL0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixZQUFZO0FBQ1osT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVaEUsYUFBYTtBQUNiLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFELFFBQVE7QUFDUixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFcEQsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFB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QkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQU9HLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IENhTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwL2NhLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9jb25zdGFudHMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElHcHNQcm9ncmVzcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7XG4gIElDYU1hcFByb3BzLFxuICBJTWFwTWFya2VycyxcbiAgSU1hcFJvdXRlUGF0aCxcbn0gZnJvbSAnLi4vY2EtbWFwL21vZGVscy9tYXAubW9kZWwnO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBUaG91c2FuZFNlcGFyYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90aG91c2FuZC1zZXBhcmF0b3IucGlwZSc7XG5pbXBvcnQgeyBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy8gU2VydmljZXNcbmltcG9ydCB7IE1hcE1hcmtlckljb25TZXJ2aWNlIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNhLXByb2dyZXNzLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vIE1vZHVsZXNcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgTmdiTW9kdWxlLFxuICAgIE5nYlRvb2x0aXAsXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIENhTWFwQ29tcG9uZW50LFxuICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgIC8vIFBpcGVzXG4gICAgVGhvdXNhbmRTZXBhcmF0b3JQaXBlLFxuICAgIENvbnZlcnRNaW51dGVzVG9Ib3Vyc1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXJyZW50UG9zaXRpb24hOiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbGVhZ2VJbmZvITogc3RyaW5nO1xuICBASW5wdXQoKSBjdXJyZW50U3RvcCE6IElHcHNQcm9ncmVzcztcbiAgQElucHV0KCkgZ3BzVGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBncHNJY29uITogc3RyaW5nO1xuICBASW5wdXQoKSBncHNJbmZvIToge1xuICAgIGdwc2hlYWRpbmc6IHN0cmluZztcbiAgICBncHNUaW1lOiBzdHJpbmc7XG4gICAgZ3BzaGVhZGluZ0NvbG9yPzogc3RyaW5nO1xuICB9O1xuICBASW5wdXQoKSBtaWxlYWdlc1BlcmNlbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsTWlsZXMhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNldCBncHNQcm9ncmVzcyh2YWx1ZXM6IElHcHNQcm9ncmVzc1tdKSB7XG4gICAgdGhpcy5fZ3BzUHJvZ3Jlc3MgPSB2YWx1ZXM7XG5cbiAgICB0aGlzLnNldE1hcE1hcmtlcnMoKTtcblxuICAgIHRoaXMuY2FsY3VsYXRlR3BzSWNvblBvc2l0aW9uKCk7XG4gIH1cbiAgQElucHV0KCkgZ3BzTG9jYXRpb25JY29uITogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNwYXRjaFN0YXR1cyE6IHN0cmluZztcbiAgcHVibGljIGhvdmVyZWRHcHNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBob3ZlcmVkR3BzQ3VycmVudFBvc2l0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93RHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZvY3VzZWRJY29uOiBudW1iZXIgPSAtMTtcbiAgcHVibGljIGlzSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBzdGF0aWNDb25zdGFudCA9IFByb2dyZXNzQmFyQ29uc3RhbnRzO1xuICBwdWJsaWMgaG92ZXJlZEdwc1RpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGhvdmVyZWRNaWxlYWdlSW5mbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBob3ZlcmVkU3RvcDogSUdwc1Byb2dyZXNzIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBfZ3BzUHJvZ3Jlc3M6IElHcHNQcm9ncmVzc1tdID0gW107XG4gIHB1YmxpYyBncHNJY29uVG9wUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgcHVibGljIE1hcGRhdGE6IElDYU1hcFByb3BzID0ge1xuICAgIG1hcmtlcnM6IFtdLFxuICAgIGNsdXN0ZXJNYXJrZXJzOiBbXSxcbiAgICByb3V0aW5nTWFya2VyczogW10sXG4gICAgcm91dGVQYXRoczogW10sXG4gICAgZGFya01vZGU6IHRydWUsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXJrZXJJY29uU2VydmljZTogTWFwTWFya2VySWNvblNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGhvdmVyU3RvcChcbiAgICBzdG9wOiBJR3BzUHJvZ3Jlc3MsXG4gICAgaTogbnVtYmVyLFxuICAgIGlzSWNvbjogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZFN0b3AgPSBzdG9wO1xuICAgIHRoaXMuaG92ZXJlZEdwc0N1cnJlbnRQb3NpdGlvbiA9IHRydWU7XG4gICAgdGhpcy5ob3ZlcmVkR3BzVGl0bGUgPSBzdG9wPy5pc0F0U3RvcFxuICAgICAgPyBQcm9ncmVzc0JhclN0cmluZ0VudW0uQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgOiBzdG9wPy5oZWFkaW5nIHx8IG51bGw7XG4gICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSAhc3RvcD8uaXNBdFN0b3AgPyBzdG9wPy5taWxlYWdlIDogJyc7XG4gICAgdGhpcy5mb2N1c2VkSWNvbiA9IGk7XG4gICAgdGhpcy5pc0ljb24gPSBpc0ljb247XG4gICAgdGhpcy5nZXRUb29sVGlwKCk7XG4gIH1cblxuICBwdWJsaWMgbGVhdmVTdG9wKCk6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZFN0b3AgPSBudWxsO1xuICAgIHRoaXMuaG92ZXJlZEdwc0N1cnJlbnRQb3NpdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuaG92ZXJlZEdwc1RpdGxlID0gbnVsbDtcbiAgICB0aGlzLmhvdmVyZWRNaWxlYWdlSW5mbyA9IG51bGw7XG4gICAgdGhpcy5mb2N1c2VkSWNvbiA9IC0xO1xuICB9XG5cbiAgcHVibGljIGdldExlZnRTdHlsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSWNvbikge1xuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0b3AucG9zaXRpb24gKyAnJSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9ncHNQcm9ncmVzc1t0aGlzLmZvY3VzZWRJY29uXS5wb3NpdGlvbiAtIDIwICsgJyUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUb29sVGlwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNJY29uKSB7XG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLmN1cnJlbnRTdG9wPy5sb2NhdGlvbjtcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMuX2dwc1Byb2dyZXNzW3RoaXMuZm9jdXNlZEljb25dLmxvY2F0aW9uO1xuICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaWRlbnRpdHkoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgcHVibGljIHNob3dEcm9wZG93bk1hcCh0MjogTmdiUG9wb3Zlcik6IHZvaWQge1xuICAgIHQyLm9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIFByb2dyZXNzQmFyU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gUHJvZ3Jlc3NCYXJTdmdSb3V0ZXNbcHJvcGVydHlOYW1lXSBhcyBzdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFwTWFya2VycygpOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZU1hcmtlcnM6IElNYXBNYXJrZXJzW10gPSBbXTtcbiAgICBjb25zdCByb3V0ZVBhdGhzOiBJTWFwUm91dGVQYXRoW10gPSBbXTtcblxuICAgIHRoaXMuX2dwc1Byb2dyZXNzLmZvckVhY2goKGxvYWRTdG9wLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgbWFya2VyRGF0YSA9IHtcbiAgICAgICAgcG9zaXRpb246IHsgbGF0OiBsb2FkU3RvcC5sYXRpdHVkZSwgbG5nOiBsb2FkU3RvcC5sb25naXR1ZGUgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJvdXRlTWFya2VyOiBJTWFwTWFya2VycyA9IHtcbiAgICAgICAgLi4ubWFya2VyRGF0YSxcbiAgICAgICAgY29udGVudDogdGhpcy5tYXJrZXJJY29uU2VydmljZS5nZXRSb3V0aW5nTWFya2VySWNvbihcbiAgICAgICAgICBtYXJrZXJEYXRhLFxuICAgICAgICAgIGxvYWRTdG9wLnN0b3BOdW1iZXIgPz8gMCxcbiAgICAgICAgICBsb2FkU3RvcC50eXBlLFxuICAgICAgICAgIHRoaXMuY3VycmVudFBvc2l0aW9uID49IGxvYWRTdG9wLnBvc2l0aW9uXG4gICAgICAgICksXG4gICAgICB9O1xuXG4gICAgICByb3V0ZU1hcmtlcnMucHVzaChyb3V0ZU1hcmtlcik7XG5cbiAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoOiBJTWFwUm91dGVQYXRoID0ge1xuICAgICAgICAgIHBhdGg6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGF0OiB0aGlzLl9ncHNQcm9ncmVzc1tpbmRleCAtIDFdLmxhdGl0dWRlISxcbiAgICAgICAgICAgICAgbG5nOiB0aGlzLl9ncHNQcm9ncmVzc1tpbmRleCAtIDFdLmxvbmdpdHVkZSEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBsYXQ6IGxvYWRTdG9wLmxhdGl0dWRlISwgbG5nOiBsb2FkU3RvcC5sb25naXR1ZGUhIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgIGluZGV4ID09PSAxXG4gICAgICAgICAgICAgID8gTWFwT3B0aW9uc0NvbnN0YW50cy5yb3V0aW5nUGF0aENvbG9ycy5jdXJyZW50TG9jYXRpb25cbiAgICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlZmF1bHQsXG4gICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgICAgICBzdHJva2VXZWlnaHQ6IDQsXG4gICAgICAgIH07XG5cbiAgICAgICAgcm91dGVQYXRocy5wdXNoKHJvdXRlUGF0aCk7XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSAxKSB7XG4gICAgICAgICAgcm91dGVQYXRocy5wdXNoKHtcbiAgICAgICAgICAgIC4uLnJvdXRlUGF0aCxcbiAgICAgICAgICAgIHN0cm9rZUNvbG9yOiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlYWRoZWFkLFxuICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgICAgICAgIHN0cm9rZVdlaWdodDogMixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5NYXBkYXRhID0ge1xuICAgICAgLi4udGhpcy5NYXBkYXRhLFxuICAgICAgaXNab29tU2hvd246IHRydWUsXG4gICAgICBpc1ZlcnRpY2FsWm9vbTogdHJ1ZSxcbiAgICAgIHJvdXRpbmdNYXJrZXJzOiByb3V0ZU1hcmtlcnMsXG4gICAgICByb3V0ZVBhdGhzOiByb3V0ZVBhdGhzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlR3BzSWNvblBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGxldCB0b3BQb3NpdGlvbiA9IDA7XG4gICAgbGV0IGN1cnJlbnRTdG9wUGVyY2VudGFnZSA9IG51bGw7XG4gICAgY29uc3Qgc3RvcFBlcmNlbnRhZ2UgPSAxMDAgLyAodGhpcy5fZ3BzUHJvZ3Jlc3MubGVuZ3RoIC0gMSk7XG5cbiAgICB0aGlzLl9ncHNQcm9ncmVzcy5mb3JFYWNoKChzdG9wLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgaXNBdERlYWRoZWFkID0gc3RvcC5pc0F0U3RvcCAmJiAhaW5kZXg7XG5cbiAgICAgIGlmIChzdG9wLmlzVmlzaXRlZCAmJiAhaXNBdERlYWRoZWFkKSB7XG4gICAgICAgIHRvcFBvc2l0aW9uICs9IGluZGV4ID8gc3RvcFBlcmNlbnRhZ2UgOiBzdG9wUGVyY2VudGFnZSAvIDI7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdG9wLmlzQXRTdG9wKSBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBzdG9wUGVyY2VudGFnZSAqIGluZGV4O1xuICAgIH0pO1xuXG4gICAgdGhpcy5ncHNJY29uVG9wUG9zaXRpb24gPSBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPz8gdG9wUG9zaXRpb247XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtYmFyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImdwcy1wcm9ncmVzcy1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgI3QyPVwibmdiUG9wb3ZlclwiXG4gICAgW25nYlBvcG92ZXJdPVwiZ3BzRHJvcGRvd25Qb3BvdmVyXCJcbiAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgcG9wb3ZlckNsYXNzPVwiZ3BzX2Ryb3Bkb3duX3BvcG92ZXJcIlxuICAgIHRyaWdnZXJzPVwibWFudWFsXCJcbiAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duTWFwKHQyKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImdwcy1wcm9ncmVzcy1pbWdcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZEdwc0ljb24gPSB0cnVlXCJcbiAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWRHcHNJY29uID0gZmFsc2VcIlxuICAgID5cbiAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdwc0ljb25cIj48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaG92ZXJlZEdwc0ljb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtdGV4dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlsZWFnZS1ncHMgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2VzIGNhLWZvbnQtYm9sZFwiPlxuICAgICAgICAgICAge3sgaG92ZXJlZEdwc1RpdGxlID8/IGdwc1RpdGxlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2Utbm9ybWFsIGNhLWZvbnQtcmVndWxhclwiPlxuICAgICAgICAgICAge3sgaG92ZXJlZE1pbGVhZ2VJbmZvID8/IG1pbGVhZ2VJbmZvIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlsZWFnZS1ncHMgZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdwcy10aW1lbGluZVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImdwcy10aW1lbGluZS1hY3RpdmVcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjdXJyZW50UG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBzdG9wIG9mIF9ncHNQcm9ncmVzcztcbiAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xuICAgICAgICAgICAgICAgIHRyYWNrQnk6IGlkZW50aXR5XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdwcy1zdG9wXCJcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3Aoc3RvcCwgaSwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ3BpY2t1cC1zdG9wJzogc3RvcC50eXBlID09PSAncGlja3VwJyxcbiAgICAgICAgICAgICAgICAgICdkZWxpdmVyeS1zdG9wJzogc3RvcC50eXBlID09PSAnZGVsaXZlcnknLFxuICAgICAgICAgICAgICAgICAgJ3Zpc2l0ZWQtc3RvcCc6IGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogc3RvcC5wb3NpdGlvbiArICclJyB9XCJcbiAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjNDI0MjQyJ1wiXG4gICAgICAgICAgICAgICAgW21haW5DYVRvb2x0aXBdPVwic3RvcD8ubG9jYXRpb24gPz8gJydcIlxuICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY3VycmVudC1wb3NcIlxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3AoY3VycmVudFN0b3AsIC0yLCB0cnVlKVwiXG4gICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImxlYXZlU3RvcCgpXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBjdXJyZW50UG9zaXRpb24gKyAnJScgfVwiXG4gICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjNDI0MjQyJ1wiXG4gICAgICAgICAgICAgIFttYWluQ2FUb29sdGlwXT1cImN1cnJlbnRTdG9wPy5sb2NhdGlvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhY3VycmVudFN0b3BcIlxuICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdwc0xvY2F0aW9uSWNvblwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlsZWFnZXMgY2EtZm9udC1ib2xkXCI+e3sgbWlsZWFnZXNQZXJjZW50IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhvdmVyZWRHcHNJY29uICYmIGdwc0luZm9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1vdmluZ19zaWRlIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ3BzSW5mby5ncHNoZWFkaW5nQ29sb3IgfVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBncHNJbmZvLmdwc2hlYWRpbmcgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb3ZpbmdfdGltZSBjYS1mb250LW1lZGl1bVwiPnt7IGdwc0luZm8uZ3BzVGltZSB9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjZ3BzRHJvcGRvd25Qb3BvdmVyIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYWluX2Ryb3Bkb3duX2hvbGRlciBkLWZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXBfaG9sZGVyXCI+XG4gICAgICAgIDxhcHAtY2EtbWFwIFtkYXRhXT1cIk1hcGRhdGFcIj48L2FwcC1jYS1tYXA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncHNfYWxsX2hvbGRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZ3BzX2hlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkR3BzSWNvbiA9IHRydWVcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImhvdmVyZWRHcHNJY29uID0gZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdwcy1wcm9ncmVzcy1pbWdcIj5cbiAgICAgICAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdwc0ljb25cIj48L3N2Zy1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwibW92aW5nX3NpZGUgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogZ3BzSW5mbz8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBncHNJbmZvPy5ncHNoZWFkaW5nIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1vdmluZ190aW1lIGNhLWZvbnQtbWVkaXVtXCI+XG4gICAgICAgICAgICAgIHt7ICFob3ZlcmVkR3BzSWNvbiA/ICdOZWFyIE1hcGxld29vZCwgTU8nIDogJzAzOjQ3JyB9fVxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdwc19pbmZvX2JvcmRlclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX3Byb2dyZXNzX2hvbGRcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkX2lubmVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2xpbmVcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJfbGluZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBncHNJY29uVG9wUG9zaXRpb24gKyAnJScsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cblxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1cnJlbnRTdG9wXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgZ3BzTG9jYXRpb25JY29uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgdG9wUG9zaXRpb246IGdwc0ljb25Ub3BQb3NpdGlvbiB9XG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHN0b3Agb2YgX2dwc1Byb2dyZXNzO1xuICAgICAgICAgICAgICAgIGxldCBzdG9wSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfaGVhZGVyIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2hlYWRlcl9pbnNpZGUgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2ljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnktaWNvbic6IHN0b3AudHlwZSA9PT0gJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAtaWNvbic6IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcsXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzdG9wLmlzQXRTdG9wOyBlbHNlIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49IHN0b3AucG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBwcm9ncmVzc1N0b3BOdW1iZXJUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ2NoZWNrUm91dGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgJ3dpZHRoLnB4JzogMTQsICdoZWlnaHQucHgnOiAxNCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwcm9ncmVzc1N0b3BOdW1iZXJUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3Mtc3RvcC1udW1iZXIgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcgPyAnIzg2QzlDMycgOiAnI0VEOTI5MicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5zdG9wTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19pbmZvX2hvbGQgZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19uYW1lIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdG9wLmlzQXRTdG9wIHx8IChjdXJyZW50UG9zaXRpb24gPCBzdG9wLnBvc2l0aW9uKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3RvcC50eXBlID09PSAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcjODZDOUMzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcjRUQ5MjkyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnIzkxOTE5MScsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLmxvY2F0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhc3RvcC5pc0F0U3RvcDsgZWxzZSBsb2NhdGlvbkF0U3RvcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcC5kYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudmlzaXRlZC1zdG9wLXRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj0gc3RvcC5wb3NpdGlvbiAmJiAhc3RvcC5pc0F0U3RvcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLmRhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9wLnRpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy52aXNpdGVkLXN0b3AtdGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uICYmICFzdG9wLmlzQXRTdG9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3AudGltZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2NhdGlvbkF0U3RvcFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX3RpbWUgY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3BhdGNoU3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9wLmN1cnJlbnRXYWl0VGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3AuY3VycmVudFdhaXRUaW1lIHwgY29udmVydE1pbnV0ZXNUb0hvdXJzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1sZWctbWlsZXMtdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAndmlzaXRlZC1zdG9wLXRleHQnOiAoY3VycmVudFBvc2l0aW9uID49IHN0b3AucG9zaXRpb24pICYmICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICdjYS1mb250LWJvbGQnOiBzdG9wSW5kZXggPT09IDAsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgIHN0b3BJbmRleCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnTEVHIG1pJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdG9wPy5sZWdNaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAnKycgKyBzdG9wLmxlZ01pbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcrJyArIDBcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdwc19pbmZvX2JvcmRlclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX2hvbGRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3JvdyBkLWZsZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfdGV4dFwiPlxuICAgICAgICAgICAgICB7eyBzdGF0aWNDb25zdGFudC5jb21wbGV0ZWQgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV90ZXh0X2luZm9cIj5cbiAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQudG90YWwgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfc2Vjb25kX3JvdyBkLWZsZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfdGV4dCBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAge3sgY3VycmVudFBvc2l0aW9uIH19e3sgc3RhdGljQ29uc3RhbnQucGVyY2VudGFnZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3RleHRfaW5mbyBjYS1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAge3sgdG90YWxNaWxlcyB8IHRob3VzYW5kU2VwYXJhdG9yIH19IHt7IHN0YXRpY0NvbnN0YW50Lm1pbGVzIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dwc0xvY2F0aW9uSWNvblRlbXBsYXRlIGxldC10b3BQb3NpdGlvbj1cInRvcFBvc2l0aW9uXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgW2NsYXNzLm1vdmluZy1ncHNdPVwidG9wUG9zaXRpb24gIT09IHVuZGVmaW5lZFwiXG4gICAgW3N0eWxlLnRvcF09XCJ0b3BQb3NpdGlvbiArICclJ1wiXG4gID5cbiAgICA8c3ZnLWljb25cbiAgICAgIGNsYXNzPVwiZC1mbGV4XCJcbiAgICAgIFtzcmNdPVwiZ3BzTG9jYXRpb25JY29uXCJcbiAgICAgIFtzdmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IDEwLCAnaGVpZ2h0LnB4JzogMTAgfVwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|