ca-components 1.1.95 → 1.1.97
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/assets/scss/input-dropdown.scss +85 -80
- package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +141 -146
- package/esm2022/lib/components/ca-chart/models/chart-line-dataset.model.mjs +1 -1
- package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +10 -2
- package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +6 -4
- package/esm2022/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.mjs +37 -0
- package/esm2022/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker.component.mjs +5 -8
- package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +3 -3
- package/fesm2022/ca-components.mjs +187 -157
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-chart/ca-chart.component.d.ts +1 -0
- package/lib/components/ca-chart/models/chart-line-dataset.model.d.ts +3 -0
- package/lib/components/ca-chart/utils/helpers/chart.helper.d.ts +3 -0
- package/lib/components/ca-input-dropdown/components/ca-input-dropdown-load-broker/ca-input-dropdown-load-broker-item/ca-input-dropdown-load-broker-item.component.d.ts +10 -0
- package/package.json +1 -1
|
@@ -120,7 +120,7 @@ export class ProgressBarComponent {
|
|
|
120
120
|
this.gpsIconTopPosition = currentStopPercentage ?? topPosition;
|
|
121
121
|
}
|
|
122
122
|
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 }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "app-ca-progress-bar", inputs: { gpsProgress: "gpsProgress", currentStop: "currentStop", currentPosition: "currentPosition", totalMiles: "totalMiles", mileageInfo: "mileageInfo", gpsTitle: "gpsTitle", gpsIcon: "gpsIcon", gpsInfo: "gpsInfo", mileagesPercent: "mileagesPercent", gpsLocationIcon: "gpsLocationIcon", dispatchStatus: "dispatchStatus", isDropdown: "isDropdown" }, outputs: { onOpenMap: "onOpenMap" }, 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=\"cursor-pointer\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon class=\"svg-size-22\" [src]=\"gpsIcon\"></svg-icon>\n </div>\n\n @if (!hoveredGpsIcon) {\n <div class=\"gps-progress-text flex-1\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-regular\"\n >\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline flex-1\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n\n @for (stop of _gpsProgress; let i = $index; track i) {\n <div\n class=\"gps-stop cursor-pointer\"\n (mouseenter)=\"hoverStop(stop, i)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop':\n currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n }\n\n <div\n class=\"current-pos cursor-pointer\"\n (mouseenter)=\"hoverStop(currentStop, -2)\"\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\n class=\"svg-size-10\"\n [src]=\"gpsLocationIcon\"\n ></svg-icon>\n </div>\n </div>\n\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ mileagesPercent }}\n </div>\n </div>\n </div>\n } @else if (gpsInfo) {\n <div\n class=\"gps_info_hold d-flex flex-column flex-1 justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n\n <div\n class=\"moving_time text-size-11 text-color-black-2 ca-font-medium\"\n >\n {{ gpsInfo.gpsTime }}\n </div>\n </div>\n }\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"flex-1\">\n <app-ca-map [data]=\"mapData\"></app-ca-map>\n </div>\n\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=\"cursor-pointer\">\n <svg-icon\n class=\"svg-size-22\"\n [src]=\"gpsIcon\"\n ></svg-icon>\n </div>\n\n <div\n class=\"gps_info_hold d-flex flex-column justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\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 @if (!currentStop) {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: {\n topPosition: gpsIconTopPosition,\n }\n \"\n ></ng-container>\n }\n </div>\n\n @for (\n stop of _gpsProgress;\n let stopIndex = $index;\n track stopIndex\n ) {\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div\n class=\"progress_header_inside d-flex flex-1\"\n >\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n >\n @if (!stop.isAtStop) {\n @if (\n currentPosition >=\n stop.position\n ) {\n <svg-icon\n class=\"svg-size-14\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'svg-fill-green'\n : stop.type ===\n 'delivery'\n ? 'svg-fill-red-10'\n : 'svg-fill-grey'\n \"\n [src]=\"\n progressBarSvgRoutes.checkRoute\n \"\n ></svg-icon>\n } @else {\n <div\n class=\"progress-stop-number text-size-14 text-center user-select-none\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n \"\n >\n {{ stop.stopNumber }}\n </div>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"progress_info_hold d-flex flex-column\"\n >\n <div\n class=\"progress_name text-size-11 ca-font-bold\"\n [ngClass]=\"\n stop.isAtStop ||\n currentPosition <\n stop.position\n ? stop.type === 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n : 'text-color-grey'\n \"\n >\n {{ stop.location }}\n </div>\n\n @if (!stop.isAtStop) {\n @if (stop.date) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.date }}\n </div>\n }\n\n @if (stop.time) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.time }}\n </div>\n }\n } @else {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-bold\"\n >\n {{ dispatchStatus }}\n </div>\n\n @if (stop.currentWaitTime) {\n <div\n class=\"progress_time text-size-11 text-color-white-2\"\n >\n {{\n stop.currentWaitTime\n | convertMinutesToHours\n }}\n </div>\n }\n }\n </div>\n </div>\n\n <div\n class=\"progress-leg-miles-text text-size-11 text-color-white\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !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 }\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"flex-1 text-size-11 text-color-white\">\n {{ staticConstant.completed }}\n </div>\n\n <div class=\"text-size-11 text-color-white\">\n {{ staticConstant.total }}\n </div>\n </div>\n\n <div class=\"gps_complete_second_row d-flex\">\n <div\n class=\"flex-1 text-size-11 text-color-blue-19 ca-font-bold\"\n >\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n\n <div class=\"text-size-11 text-color-white ca-font-bold\">\n {{ totalMiles | thousandSeparator }}\n {{ 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\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon class=\"d-flex svg-size-10\" [src]=\"gpsLocationIcon\"></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-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!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-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!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-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!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-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::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-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!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-22 svg{width:22px;height:22px}.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}.cursor-pointer{cursor:pointer}.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-text{height:26px;padding:0 2px 0 6px}.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 .gps-timeline{position:relative;margin-right:12px;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%)}.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%)}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;left:0;height:2px;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.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_info_hold{padding:0 10px 0 8px}.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 .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}.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;background-color:#2f2f2f}.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-leg-miles-text{margin-top:2px}.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}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "app-ca-progress-bar", inputs: { gpsProgress: "gpsProgress", currentStop: "currentStop", currentPosition: "currentPosition", totalMiles: "totalMiles", mileageInfo: "mileageInfo", gpsTitle: "gpsTitle", gpsIcon: "gpsIcon", gpsInfo: "gpsInfo", mileagesPercent: "mileagesPercent", gpsLocationIcon: "gpsLocationIcon", dispatchStatus: "dispatchStatus", isDropdown: "isDropdown" }, outputs: { onOpenMap: "onOpenMap" }, 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=\"cursor-pointer\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon class=\"svg-size-22\" [src]=\"gpsIcon\"></svg-icon>\n </div>\n\n @if (!hoveredGpsIcon) {\n <div class=\"gps-progress-text flex-1\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-regular\"\n >\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline flex-1\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n\n @for (stop of _gpsProgress; let i = $index; track i) {\n <div\n class=\"gps-stop cursor-pointer\"\n (mouseenter)=\"hoverStop(stop, i)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop':\n currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n }\n\n <div\n class=\"current-pos cursor-pointer\"\n (mouseenter)=\"hoverStop(currentStop, -2)\"\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\n class=\"svg-size-10\"\n [src]=\"gpsLocationIcon\"\n ></svg-icon>\n </div>\n </div>\n\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ mileagesPercent }}\n </div>\n </div>\n </div>\n } @else if (gpsInfo) {\n <div\n class=\"gps_info_hold d-flex flex-column flex-1 justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n\n <div\n class=\"moving_time text-size-11 text-color-black-2 ca-font-medium\"\n >\n {{ gpsInfo.gpsTime }}\n </div>\n </div>\n }\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"flex-1\">\n <app-ca-map [data]=\"mapData\"></app-ca-map>\n </div>\n\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=\"cursor-pointer\">\n <svg-icon\n class=\"svg-size-22\"\n [src]=\"gpsIcon\"\n ></svg-icon>\n </div>\n\n <div\n class=\"gps_info_hold d-flex flex-column justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\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 @if (!currentStop) {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: {\n topPosition: gpsIconTopPosition,\n }\n \"\n ></ng-container>\n }\n </div>\n\n @for (\n stop of _gpsProgress;\n let stopIndex = $index;\n track stopIndex\n ) {\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div\n class=\"progress_header_inside d-flex flex-1\"\n >\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n >\n @if (!stop.isAtStop) {\n @if (\n currentPosition >=\n stop.position\n ) {\n <svg-icon\n class=\"svg-size-14\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'svg-fill-green'\n : stop.type ===\n 'delivery'\n ? 'svg-fill-red-10'\n : 'svg-fill-grey'\n \"\n [src]=\"\n progressBarSvgRoutes.checkRoute\n \"\n ></svg-icon>\n } @else {\n <div\n class=\"progress-stop-number text-size-14 text-center user-select-none\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n \"\n >\n {{ stop.stopNumber }}\n </div>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"progress_info_hold d-flex flex-column\"\n >\n <div\n class=\"progress_name text-size-11 ca-font-bold\"\n [ngClass]=\"\n stop.isAtStop ||\n currentPosition <\n stop.position\n ? stop.type === 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n : 'text-color-grey'\n \"\n >\n {{ stop?.location }}\n </div>\n\n @if (!stop.isAtStop) {\n @if (stop.date) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.date }}\n </div>\n }\n\n @if (stop.time) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.time }}\n </div>\n }\n } @else {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-bold\"\n >\n {{ dispatchStatus }}\n </div>\n\n @if (stop.currentWaitTime) {\n <div\n class=\"progress_time text-size-11 text-color-white-2\"\n >\n {{\n stop.currentWaitTime\n | convertMinutesToHours\n }}\n </div>\n }\n }\n </div>\n </div>\n\n <div\n class=\"progress-leg-miles-text text-size-11 text-color-white\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !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 }\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"flex-1 text-size-11 text-color-white\">\n {{ staticConstant.completed }}\n </div>\n\n <div class=\"text-size-11 text-color-white\">\n {{ staticConstant.total }}\n </div>\n </div>\n\n <div class=\"gps_complete_second_row d-flex\">\n <div\n class=\"flex-1 text-size-11 text-color-blue-19 ca-font-bold\"\n >\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n\n <div class=\"text-size-11 text-color-white ca-font-bold\">\n {{ totalMiles | thousandSeparator }}\n {{ 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\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon class=\"d-flex svg-size-10\" [src]=\"gpsLocationIcon\"></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-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!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-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!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-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!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-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::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-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!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-22 svg{width:22px;height:22px}.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}.cursor-pointer{cursor:pointer}.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-text{height:26px;padding:0 2px 0 6px}.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 .gps-timeline{position:relative;margin-right:12px;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%)}.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%)}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;left:0;height:2px;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.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_info_hold{padding:0 10px 0 8px}.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 .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}.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;background-color:#2f2f2f}.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-leg-miles-text{margin-top:2px}.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}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
124
124
|
// Modules
|
|
125
125
|
CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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:
|
|
126
126
|
// Components
|
|
@@ -142,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
142
142
|
// Pipes
|
|
143
143
|
ThousandSeparatorPipe,
|
|
144
144
|
ConvertMinutesToHoursPipe,
|
|
145
|
-
], 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=\"cursor-pointer\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon class=\"svg-size-22\" [src]=\"gpsIcon\"></svg-icon>\n </div>\n\n @if (!hoveredGpsIcon) {\n <div class=\"gps-progress-text flex-1\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-regular\"\n >\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline flex-1\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n\n @for (stop of _gpsProgress; let i = $index; track i) {\n <div\n class=\"gps-stop cursor-pointer\"\n (mouseenter)=\"hoverStop(stop, i)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop':\n currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n }\n\n <div\n class=\"current-pos cursor-pointer\"\n (mouseenter)=\"hoverStop(currentStop, -2)\"\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\n class=\"svg-size-10\"\n [src]=\"gpsLocationIcon\"\n ></svg-icon>\n </div>\n </div>\n\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ mileagesPercent }}\n </div>\n </div>\n </div>\n } @else if (gpsInfo) {\n <div\n class=\"gps_info_hold d-flex flex-column flex-1 justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n\n <div\n class=\"moving_time text-size-11 text-color-black-2 ca-font-medium\"\n >\n {{ gpsInfo.gpsTime }}\n </div>\n </div>\n }\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"flex-1\">\n <app-ca-map [data]=\"mapData\"></app-ca-map>\n </div>\n\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=\"cursor-pointer\">\n <svg-icon\n class=\"svg-size-22\"\n [src]=\"gpsIcon\"\n ></svg-icon>\n </div>\n\n <div\n class=\"gps_info_hold d-flex flex-column justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\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 @if (!currentStop) {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: {\n topPosition: gpsIconTopPosition,\n }\n \"\n ></ng-container>\n }\n </div>\n\n @for (\n stop of _gpsProgress;\n let stopIndex = $index;\n track stopIndex\n ) {\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div\n class=\"progress_header_inside d-flex flex-1\"\n >\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n >\n @if (!stop.isAtStop) {\n @if (\n currentPosition >=\n stop.position\n ) {\n <svg-icon\n class=\"svg-size-14\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'svg-fill-green'\n : stop.type ===\n 'delivery'\n ? 'svg-fill-red-10'\n : 'svg-fill-grey'\n \"\n [src]=\"\n progressBarSvgRoutes.checkRoute\n \"\n ></svg-icon>\n } @else {\n <div\n class=\"progress-stop-number text-size-14 text-center user-select-none\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n \"\n >\n {{ stop.stopNumber }}\n </div>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"progress_info_hold d-flex flex-column\"\n >\n <div\n class=\"progress_name text-size-11 ca-font-bold\"\n [ngClass]=\"\n stop.isAtStop ||\n currentPosition <\n stop.position\n ? stop.type === 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n : 'text-color-grey'\n \"\n >\n {{ stop.location }}\n </div>\n\n @if (!stop.isAtStop) {\n @if (stop.date) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.date }}\n </div>\n }\n\n @if (stop.time) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.time }}\n </div>\n }\n } @else {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-bold\"\n >\n {{ dispatchStatus }}\n </div>\n\n @if (stop.currentWaitTime) {\n <div\n class=\"progress_time text-size-11 text-color-white-2\"\n >\n {{\n stop.currentWaitTime\n | convertMinutesToHours\n }}\n </div>\n }\n }\n </div>\n </div>\n\n <div\n class=\"progress-leg-miles-text text-size-11 text-color-white\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !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 }\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"flex-1 text-size-11 text-color-white\">\n {{ staticConstant.completed }}\n </div>\n\n <div class=\"text-size-11 text-color-white\">\n {{ staticConstant.total }}\n </div>\n </div>\n\n <div class=\"gps_complete_second_row d-flex\">\n <div\n class=\"flex-1 text-size-11 text-color-blue-19 ca-font-bold\"\n >\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n\n <div class=\"text-size-11 text-color-white ca-font-bold\">\n {{ totalMiles | thousandSeparator }}\n {{ 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\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon class=\"d-flex svg-size-10\" [src]=\"gpsLocationIcon\"></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-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!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-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!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-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!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-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::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-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!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-22 svg{width:22px;height:22px}.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}.cursor-pointer{cursor:pointer}.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-text{height:26px;padding:0 2px 0 6px}.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 .gps-timeline{position:relative;margin-right:12px;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%)}.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%)}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;left:0;height:2px;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.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_info_hold{padding:0 10px 0 8px}.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 .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}.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;background-color:#2f2f2f}.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-leg-miles-text{margin-top:2px}.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}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"] }]
|
|
145
|
+
], 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=\"cursor-pointer\"\n (mouseenter)=\"hoveredGpsIcon = true\"\n (mouseleave)=\"hoveredGpsIcon = false\"\n >\n <svg-icon class=\"svg-size-22\" [src]=\"gpsIcon\"></svg-icon>\n </div>\n\n @if (!hoveredGpsIcon) {\n <div class=\"gps-progress-text flex-1\">\n <div class=\"mileage-gps d-flex justify-content-between\">\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ hoveredGpsTitle ?? gpsTitle }}\n </div>\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-regular\"\n >\n {{ hoveredMileageInfo ?? mileageInfo }}\n </div>\n </div>\n <div class=\"mileage-gps d-flex\">\n <div class=\"gps-timeline flex-1\">\n <div\n class=\"gps-timeline-active\"\n [ngStyle]=\"{ width: currentPosition + '%' }\"\n ></div>\n\n @for (stop of _gpsProgress; let i = $index; track i) {\n <div\n class=\"gps-stop cursor-pointer\"\n (mouseenter)=\"hoverStop(stop, i)\"\n (mouseleave)=\"leaveStop()\"\n [ngClass]=\"{\n 'pickup-stop': stop.type === 'pickup',\n 'delivery-stop': stop.type === 'delivery',\n 'visited-stop':\n currentPosition >= stop.position,\n }\"\n [ngStyle]=\"{ left: stop.position + '%' }\"\n ngbTooltip\n [tooltipBackground]=\"'#424242'\"\n [mainCaTooltip]=\"stop?.location ?? ''\"\n position=\"bottom\"\n ></div>\n }\n\n <div\n class=\"current-pos cursor-pointer\"\n (mouseenter)=\"hoverStop(currentStop, -2)\"\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\n class=\"svg-size-10\"\n [src]=\"gpsLocationIcon\"\n ></svg-icon>\n </div>\n </div>\n\n <div\n class=\"user-select-none text-size-11 text-color-black-2 ca-font-bold\"\n >\n {{ mileagesPercent }}\n </div>\n </div>\n </div>\n } @else if (gpsInfo) {\n <div\n class=\"gps_info_hold d-flex flex-column flex-1 justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n\n <div\n class=\"moving_time text-size-11 text-color-black-2 ca-font-medium\"\n >\n {{ gpsInfo.gpsTime }}\n </div>\n </div>\n }\n </div>\n\n <ng-template #gpsDropdownPopover let-data=\"data\">\n <div class=\"main_dropdown_holder d-flex\">\n <div class=\"flex-1\">\n <app-ca-map [data]=\"mapData\"></app-ca-map>\n </div>\n\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=\"cursor-pointer\">\n <svg-icon\n class=\"svg-size-22\"\n [src]=\"gpsIcon\"\n ></svg-icon>\n </div>\n\n <div\n class=\"gps_info_hold d-flex flex-column justify-content-center\"\n >\n <div\n class=\"moving_side text-size-11 ca-font-bold user-select-none\"\n [ngStyle]=\"{ color: gpsInfo.gpsheadingColor }\"\n >\n {{ gpsInfo.gpsheading }}\n </div>\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\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 @if (!currentStop) {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate;\n context: {\n topPosition: gpsIconTopPosition,\n }\n \"\n ></ng-container>\n }\n </div>\n\n @for (\n stop of _gpsProgress;\n let stopIndex = $index;\n track stopIndex\n ) {\n <div class=\"progress_inner\">\n <div class=\"progress_header d-flex\">\n <div\n class=\"progress_header_inside d-flex flex-1\"\n >\n <div\n class=\"progress_icon d-flex justify-content-center align-items-center\"\n >\n @if (!stop.isAtStop) {\n @if (\n currentPosition >=\n stop.position\n ) {\n <svg-icon\n class=\"svg-size-14\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'svg-fill-green'\n : stop.type ===\n 'delivery'\n ? 'svg-fill-red-10'\n : 'svg-fill-grey'\n \"\n [src]=\"\n progressBarSvgRoutes.checkRoute\n \"\n ></svg-icon>\n } @else {\n <div\n class=\"progress-stop-number text-size-14 text-center user-select-none\"\n [ngClass]=\"\n stop.type ===\n 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n \"\n >\n {{ stop.stopNumber }}\n </div>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"\n gpsLocationIconTemplate\n \"\n ></ng-container>\n }\n </div>\n\n <div\n class=\"progress_info_hold d-flex flex-column\"\n >\n <div\n class=\"progress_name text-size-11 ca-font-bold\"\n [ngClass]=\"\n stop.isAtStop ||\n currentPosition <\n stop.position\n ? stop.type === 'pickup'\n ? 'text-color-green-4'\n : 'text-color-red-13'\n : 'text-color-grey'\n \"\n >\n {{ stop?.location }}\n </div>\n\n @if (!stop.isAtStop) {\n @if (stop.date) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.date }}\n </div>\n }\n\n @if (stop.time) {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-regular\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !stop.isAtStop,\n }\"\n >\n {{ stop.time }}\n </div>\n }\n } @else {\n <div\n class=\"progress_time text-size-11 text-color-white-2 ca-font-bold\"\n >\n {{ dispatchStatus }}\n </div>\n\n @if (stop.currentWaitTime) {\n <div\n class=\"progress_time text-size-11 text-color-white-2\"\n >\n {{\n stop.currentWaitTime\n | convertMinutesToHours\n }}\n </div>\n }\n }\n </div>\n </div>\n\n <div\n class=\"progress-leg-miles-text text-size-11 text-color-white\"\n [ngClass]=\"{\n 'text-color-grey':\n currentPosition >=\n stop.position &&\n !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 }\n </div>\n </div>\n\n <div class=\"gps_info_border\"></div>\n\n <div class=\"gps_complete_hold\">\n <div class=\"gps_complete_row d-flex\">\n <div class=\"flex-1 text-size-11 text-color-white\">\n {{ staticConstant.completed }}\n </div>\n\n <div class=\"text-size-11 text-color-white\">\n {{ staticConstant.total }}\n </div>\n </div>\n\n <div class=\"gps_complete_second_row d-flex\">\n <div\n class=\"flex-1 text-size-11 text-color-blue-19 ca-font-bold\"\n >\n {{ currentPosition }}{{ staticConstant.percentage }}\n </div>\n\n <div class=\"text-size-11 text-color-white ca-font-bold\">\n {{ totalMiles | thousandSeparator }}\n {{ 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\"\n [style.top]=\"topPosition + '%'\"\n >\n <svg-icon class=\"d-flex svg-size-10\" [src]=\"gpsLocationIcon\"></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-green-4{color:#86c9c3!important}.text-color-green-4::-moz-selection{background:#86c9c333!important;color:#86c9c3!important}.text-color-green-4::selection{background:#86c9c333!important;color:#86c9c3!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-blue-19{color:#92b1f5!important}.text-color-blue-19::-moz-selection{background:#92b1f533!important;color:#92b1f5!important}.text-color-blue-19::selection{background:#92b1f533!important;color:#92b1f5!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-red-13{color:#ed9292!important}.text-color-red-13::-moz-selection{background:#ed929233!important;color:#ed9292!important}.text-color-red-13::selection{background:#ed929233!important;color:#ed9292!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-2{color:#fff!important}.text-color-white-2::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white-2::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-fill-grey svg path{fill:#919191!important}.svg-fill-red-10 svg path{fill:#e66767!important}.svg-fill-green svg path{fill:#56b4ac!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-22 svg{width:22px;height:22px}.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}.cursor-pointer{cursor:pointer}.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-text{height:26px;padding:0 2px 0 6px}.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 .gps-timeline{position:relative;margin-right:12px;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%)}.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%)}.gps-progress-bar .gps-progress-holder .gps-progress-text .mileage-gps .gps-timeline .gps-timeline-active{position:absolute;left:0;height:2px;width:0%;background-color:#6c6c6c}.gps-progress-bar .gps-progress-holder .gps_info_hold{height:26px;padding:0 10px 0 8px}.main_dropdown_holder{width:494px;background-color:#2f2f2f;border-radius:3px;overflow:hidden}.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_info_hold{padding:0 10px 0 8px}.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 .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}.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;background-color:#2f2f2f}.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-leg-miles-text{margin-top:2px}.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}.moving-gps{position:absolute;top:0;left:-4px;z-index:3;transform:translateY(5px)}\n"] }]
|
|
146
146
|
}], ctorParameters: () => [{ type: i1.MapMarkerIconService }], propDecorators: { gpsProgress: [{
|
|
147
147
|
type: Input
|
|
148
148
|
}], currentStop: [{
|
|
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
170
170
|
}], onOpenMap: [{
|
|
171
171
|
type: Output
|
|
172
172
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1oRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwRCxRQUFR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c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IENhTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwL2NhLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9jb25zdGFudHMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElHcHNQcm9ncmVzcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IElDYU1hcFByb3BzLCBJTWFwTWFya2VycywgSU1hcFJvdXRlUGF0aCB9IGZyb20gJy4uL2NhLW1hcC9tb2RlbHMnO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBUaG91c2FuZFNlcGFyYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90aG91c2FuZC1zZXBhcmF0b3IucGlwZSc7XG5pbXBvcnQgeyBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy8gU2VydmljZXNcbmltcG9ydCB7IE1hcE1hcmtlckljb25TZXJ2aWNlIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtcHJvZ3Jlc3MtYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gTW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIE5nYlRvb2x0aXAsXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FNYXBDb21wb25lbnQsXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBUaG91c2FuZFNlcGFyYXRvclBpcGUsXG4gICAgICAgIENvbnZlcnRNaW51dGVzVG9Ib3Vyc1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNldCBncHNQcm9ncmVzcyh2YWx1ZXM6IElHcHNQcm9ncmVzc1tdKSB7XG4gICAgICAgIHRoaXMuc2V0R3BzUHJvZ3Jlc3ModmFsdWVzKTtcbiAgICB9XG4gICAgQElucHV0KCkgY3VycmVudFN0b3AhOiBJR3BzUHJvZ3Jlc3M7XG4gICAgQElucHV0KCkgY3VycmVudFBvc2l0aW9uITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHRvdGFsTWlsZXMhOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWlsZWFnZUluZm8hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzVGl0bGU6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGdwc0ljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzSW5mbyE6IHtcbiAgICAgICAgZ3BzaGVhZGluZzogc3RyaW5nO1xuICAgICAgICBncHNUaW1lOiBzdHJpbmc7XG4gICAgICAgIGdwc2hlYWRpbmdDb2xvcj86IHN0cmluZztcbiAgICB9O1xuICAgIEBJbnB1dCgpIG1pbGVhZ2VzUGVyY2VudCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBncHNMb2NhdGlvbkljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzcGF0Y2hTdGF0dXMhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uT3Blbk1hcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBfZ3BzUHJvZ3Jlc3M6IElHcHNQcm9ncmVzc1tdID0gW107XG5cbiAgICBwdWJsaWMgZ3BzSWNvblRvcFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGhvdmVyZWRHcHNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhvdmVyZWRHcHNUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGhvdmVyZWRNaWxlYWdlSW5mbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljQ29uc3RhbnQgPSBQcm9ncmVzc0JhckNvbnN0YW50cztcbiAgICBwdWJsaWMgcHJvZ3Jlc3NCYXJTdmdSb3V0ZXMgPSBQcm9ncmVzc0JhclN2Z1JvdXRlcztcblxuICAgIHB1YmxpYyBtYXBEYXRhOiBJQ2FNYXBQcm9wcyA9IHtcbiAgICAgICAgbWFya2VyczogW10sXG4gICAgICAgIGNsdXN0ZXJNYXJrZXJzOiBbXSxcbiAgICAgICAgcm91dGluZ01hcmtlcnM6IFtdLFxuICAgICAgICByb3V0ZVBhdGhzOiBbXSxcbiAgICAgICAgZGFya01vZGU6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFya2VySWNvblNlcnZpY2U6IE1hcE1hcmtlckljb25TZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGhvdmVyU3RvcChzdG9wOiBJR3BzUHJvZ3Jlc3MsIGk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRHcHNUaXRsZSA9IHN0b3A/LmlzQXRTdG9wXG4gICAgICAgICAgICA/IFByb2dyZXNzQmFyU3RyaW5nRW51bS5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgICAgICA6IHN0b3A/LmhlYWRpbmcgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSAhc3RvcD8uaXNBdFN0b3AgPyBzdG9wPy5taWxlYWdlIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGxlYXZlU3RvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkR3BzVGl0bGUgPSBudWxsO1xuICAgICAgICB0aGlzLmhvdmVyZWRNaWxlYWdlSW5mbyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEcm9wZG93bk1hcCh0MjogTmdiUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0Mi5vcGVuKCk7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5NYXAuZW1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3BzUHJvZ3Jlc3MoZ3BzUHJvZ3Jlc3NEYXRhOiBJR3BzUHJvZ3Jlc3NbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcyA9IGdwc1Byb2dyZXNzRGF0YTtcblxuICAgICAgICB0aGlzLnNldE1hcE1hcmtlcnMoKTtcblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUdwc0ljb25Qb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TWFwTWFya2VycygpOiB2b2lkIHtcbiAgICAgICAgbGV0IHJvdXRlTWFya2VyczogSU1hcE1hcmtlcnNbXSA9IFtdO1xuICAgICAgICBsZXQgcm91dGVQYXRoczogSU1hcFJvdXRlUGF0aFtdID0gW107XG5cbiAgICAgICAgdGhpcy5fZ3BzUHJvZ3Jlc3MuZm9yRWFjaCgobG9hZFN0b3AsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7IGxhdDogbG9hZFN0b3AubGF0aXR1ZGUsIGxuZzogbG9hZFN0b3AubG9uZ2l0dWRlIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hcmtlcjogSU1hcE1hcmtlcnMgPSB7XG4gICAgICAgICAgICAgICAgLi4ubWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLm1hcmtlckljb25TZXJ2aWNlLmdldFJvdXRpbmdNYXJrZXJJY29uKFxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICBsb2FkU3RvcC5zdG9wTnVtYmVyID8/IDAsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRTdG9wLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFBvc2l0aW9uID49IGxvYWRTdG9wLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlTWFya2VycyA9IFsuLi5yb3V0ZU1hcmtlcnMsIHJvdXRlTWFya2VyXTtcblxuICAgICAgICAgICAgaWYgKGxvYWRTdG9wLnJvdXRlU2hhcGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBhdGg6IElNYXBSb3V0ZVBhdGggPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkU2hhcGU6IGxvYWRTdG9wLnJvdXRlU2hhcGUsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMucm91dGluZ1BhdGhDb2xvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3VycmVudExvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogNCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcm91dGVQYXRocyA9IFsuLi5yb3V0ZVBhdGhzLCByb3V0ZVBhdGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yb3V0ZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlYWRoZWFkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogMixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1hcERhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLm1hcERhdGEsXG4gICAgICAgICAgICBpc1pvb21TaG93bjogdHJ1ZSxcbiAgICAgICAgICAgIGlzVmVydGljYWxab29tOiB0cnVlLFxuICAgICAgICAgICAgcm91dGluZ01hcmtlcnM6IHJvdXRlTWFya2VycyxcbiAgICAgICAgICAgIHJvdXRlUGF0aHM6IHJvdXRlUGF0aHMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVHcHNJY29uUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGxldCB0b3BQb3NpdGlvbiA9IDA7XG4gICAgICAgIGxldCBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBudWxsO1xuICAgICAgICBjb25zdCBzdG9wUGVyY2VudGFnZSA9IDEwMCAvICh0aGlzLl9ncHNQcm9ncmVzcy5sZW5ndGggLSAxKTtcblxuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcy5mb3JFYWNoKChzdG9wLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNBdERlYWRoZWFkID0gc3RvcC5pc0F0U3RvcCAmJiAhaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzVmlzaXRlZCAmJiAhaXNBdERlYWRoZWFkKVxuICAgICAgICAgICAgICAgIHRvcFBvc2l0aW9uICs9IGluZGV4ID8gc3RvcFBlcmNlbnRhZ2UgOiBzdG9wUGVyY2VudGFnZSAvIDI7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzQXRTdG9wKSBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBzdG9wUGVyY2VudGFnZSAqIGluZGV4O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdwc0ljb25Ub3BQb3NpdGlvbiA9IGN1cnJlbnRTdG9wUGVyY2VudGFnZSA/PyB0b3BQb3NpdGlvbjtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLWJhclwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAjdDI9XCJuZ2JQb3BvdmVyXCJcbiAgICAgICAgW25nYlBvcG92ZXJdPVwiZ3BzRHJvcGRvd25Qb3BvdmVyXCJcbiAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgICAgIHBvcG92ZXJDbGFzcz1cImdwc19kcm9wZG93bl9wb3BvdmVyXCJcbiAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duTWFwKHQyKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRHcHNJY29uID0gdHJ1ZVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVwic3ZnLXNpemUtMjJcIiBbc3JjXT1cImdwc0ljb25cIj48L3N2Zy1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKCFob3ZlcmVkR3BzSWNvbikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwcy1wcm9ncmVzcy10ZXh0IGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWxlYWdlLWdwcyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXNlbGVjdC1ub25lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsYWNrLTIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaG92ZXJlZEdwc1RpdGxlID8/IGdwc1RpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3ZlcmVkTWlsZWFnZUluZm8gPz8gbWlsZWFnZUluZm8gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzLXRpbWVsaW5lIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXRpbWVsaW5lLWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzdG9wIG9mIF9ncHNQcm9ncmVzczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXN0b3AgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3Aoc3RvcCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAtc3RvcCc6IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnktc3RvcCc6IHN0b3AudHlwZSA9PT0gJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2aXNpdGVkLXN0b3AnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBzdG9wLnBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJzdG9wPy5sb2NhdGlvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnJlbnQtcG9zIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3AoY3VycmVudFN0b3AsIC0yKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibGVhdmVTdG9wKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJjdXJyZW50U3RvcC5sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVUb29sdGlwXT1cIiFjdXJyZW50U3RvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1zaXplLTEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJncHNMb2NhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1zZWxlY3Qtbm9uZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci1ibGFjay0yIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1pbGVhZ2VzUGVyY2VudCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChncHNJbmZvKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LTEganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vdmluZ19zaWRlIHRleHQtc2l6ZS0xMSBjYS1mb250LWJvbGQgdXNlci1zZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3BzSW5mby5ncHNoZWFkaW5nIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW92aW5nX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LW1lZGl1bVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBncHNJbmZvLmdwc1RpbWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2dwc0Ryb3Bkb3duUG9wb3ZlciBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fZHJvcGRvd25faG9sZGVyIGQtZmxleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxhcHAtY2EtbWFwIFtkYXRhXT1cIm1hcERhdGFcIj48L2FwcC1jYS1tYXA+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19hbGxfaG9sZFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkR3BzSWNvbiA9IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctc2l6ZS0yMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJncHNJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdwc19pbmZvX2hvbGQgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb3Zpbmdfc2lkZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGdwc0luZm8uZ3BzaGVhZGluZ0NvbG9yIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdwc0luZm8uZ3BzaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19pbmZvX2JvcmRlclwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX3Byb2dyZXNzX2hvbGRfaW5uZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2xpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJfbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZ3BzSWNvblRvcFBvc2l0aW9uICsgJyUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFjdXJyZW50U3RvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wUG9zaXRpb246IGdwc0ljb25Ub3BQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3Agb2YgX2dwc1Byb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9wSW5kZXggPSAkaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgc3RvcEluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NfaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2hlYWRlciBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2hlYWRlcl9pbnNpZGUgZC1mbGV4IGZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2ljb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXN0b3AuaXNBdFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLXNpemUtMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3ZnLWZpbGwtZ3JlZW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxpdmVyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N2Zy1maWxsLXJlZC0xMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3N2Zy1maWxsLWdyZXknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzc0JhclN2Z1JvdXRlcy5jaGVja1JvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3Mtc3RvcC1udW1iZXIgdGV4dC1zaXplLTE0IHRleHQtY2VudGVyIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1jb2xvci1ncmVlbi00J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtY29sb3ItcmVkLTEzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5zdG9wTnVtYmVyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwc0xvY2F0aW9uSWNvblRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19uYW1lIHRleHQtc2l6ZS0xMSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5pc0F0U3RvcCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzdG9wLnR5cGUgPT09ICdwaWNrdXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWNvbG9yLWdyZWVuLTQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LWNvbG9yLXJlZC0xMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1jb2xvci1ncmV5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC5sb2NhdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFzdG9wLmlzQXRTdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN0b3AuZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTIgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtY29sb3ItZ3JleSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RvcC5pc0F0U3RvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLmRhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdG9wLnRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZS0yIGNhLWZvbnQtcmVndWxhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LWNvbG9yLWdyZXknOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnBvc2l0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0b3AuaXNBdFN0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RvcC50aW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZS0yIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzcGF0Y2hTdGF0dXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN0b3AuY3VycmVudFdhaXRUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5jdXJyZW50V2FpdFRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNvbnZlcnRNaW51dGVzVG9Ib3Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtbGVnLW1pbGVzLXRleHQgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtY29sb3ItZ3JleSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnBvc2l0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RvcC5pc0F0U3RvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhLWZvbnQtYm9sZCc6IHN0b3BJbmRleCA9PT0gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wSW5kZXggPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0xFRyBtaSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RvcD8ubGVnTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnKycgKyBzdG9wLmxlZ01pbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJysnICsgMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19pbmZvX2JvcmRlclwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9ob2xkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfY29tcGxldGVfcm93IGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0YXRpY0NvbnN0YW50LmNvbXBsZXRlZCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0YXRpY0NvbnN0YW50LnRvdGFsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9zZWNvbmRfcm93IGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC0xIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsdWUtMTkgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjdXJyZW50UG9zaXRpb24gfX17eyBzdGF0aWNDb25zdGFudC5wZXJjZW50YWdlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlIGNhLWZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRvdGFsTWlsZXMgfCB0aG91c2FuZFNlcGFyYXRvciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0YXRpY0NvbnN0YW50Lm1pbGVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2dwc0xvY2F0aW9uSWNvblRlbXBsYXRlIGxldC10b3BQb3NpdGlvbj1cInRvcFBvc2l0aW9uXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgIFtjbGFzcy5tb3ZpbmctZ3BzXT1cIiEhdG9wUG9zaXRpb25cIlxuICAgICAgICBbc3R5bGUudG9wXT1cInRvcFBvc2l0aW9uICsgJyUnXCJcbiAgICA+XG4gICAgICAgIDxzdmctaWNvbiBjbGFzcz1cImQtZmxleCBzdmctc2l6ZS0xMFwiIFtzcmNdPVwiZ3BzTG9jYXRpb25JY29uXCI+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXByb2dyZXNzLWJhci9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcHJvZ3Jlc3MtYmFyL2NhLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxVQUFVO0FBQ1YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1oRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwRCxRQUFR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c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUsIE5nYlBvcG92ZXIsIE5nYlRvb2x0aXAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIENvbXBvbmVudHNcbmltcG9ydCB7IENhTWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY2EtbWFwL2NhLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuXG4vLyBDb25zdGFudHNcbmltcG9ydCB7IFByb2dyZXNzQmFyQ29uc3RhbnRzIH0gZnJvbSAnLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWFwT3B0aW9uc0NvbnN0YW50cyB9IGZyb20gJy4uL2NhLW1hcC91dGlscy9jb25zdGFudHMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IElHcHNQcm9ncmVzcyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IElDYU1hcFByb3BzLCBJTWFwTWFya2VycywgSU1hcFJvdXRlUGF0aCB9IGZyb20gJy4uL2NhLW1hcC9tb2RlbHMnO1xuXG4vLyBzdmctcm91dGVzXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBUaG91c2FuZFNlcGFyYXRvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90aG91c2FuZC1zZXBhcmF0b3IucGlwZSc7XG5pbXBvcnQgeyBDb252ZXJ0TWludXRlc1RvSG91cnNQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIEVudW1zXG5pbXBvcnQgeyBQcm9ncmVzc0JhclN0cmluZ0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy8gU2VydmljZXNcbmltcG9ydCB7IE1hcE1hcmtlckljb25TZXJ2aWNlIH0gZnJvbSAnLi4vY2EtbWFwL3V0aWxzL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtcHJvZ3Jlc3MtYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1wcm9ncmVzcy1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gTW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIE5nYlRvb2x0aXAsXG4gICAgICAgIC8vIENvbXBvbmVudHNcbiAgICAgICAgQ2FNYXBDb21wb25lbnQsXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBUaG91c2FuZFNlcGFyYXRvclBpcGUsXG4gICAgICAgIENvbnZlcnRNaW51dGVzVG9Ib3Vyc1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHNldCBncHNQcm9ncmVzcyh2YWx1ZXM6IElHcHNQcm9ncmVzc1tdKSB7XG4gICAgICAgIHRoaXMuc2V0R3BzUHJvZ3Jlc3ModmFsdWVzKTtcbiAgICB9XG4gICAgQElucHV0KCkgY3VycmVudFN0b3AhOiBJR3BzUHJvZ3Jlc3M7XG4gICAgQElucHV0KCkgY3VycmVudFBvc2l0aW9uITogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHRvdGFsTWlsZXMhOiBudW1iZXI7XG4gICAgQElucHV0KCkgbWlsZWFnZUluZm8hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzVGl0bGU6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIGdwc0ljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ3BzSW5mbyE6IHtcbiAgICAgICAgZ3BzaGVhZGluZzogc3RyaW5nO1xuICAgICAgICBncHNUaW1lOiBzdHJpbmc7XG4gICAgICAgIGdwc2hlYWRpbmdDb2xvcj86IHN0cmluZztcbiAgICB9O1xuICAgIEBJbnB1dCgpIG1pbGVhZ2VzUGVyY2VudCE6IHN0cmluZztcbiAgICBASW5wdXQoKSBncHNMb2NhdGlvbkljb24hOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzcGF0Y2hTdGF0dXMhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXNEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uT3Blbk1hcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBfZ3BzUHJvZ3Jlc3M6IElHcHNQcm9ncmVzc1tdID0gW107XG5cbiAgICBwdWJsaWMgZ3BzSWNvblRvcFBvc2l0aW9uOiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGhvdmVyZWRHcHNJY29uOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhvdmVyZWRHcHNUaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGhvdmVyZWRNaWxlYWdlSW5mbzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljQ29uc3RhbnQgPSBQcm9ncmVzc0JhckNvbnN0YW50cztcbiAgICBwdWJsaWMgcHJvZ3Jlc3NCYXJTdmdSb3V0ZXMgPSBQcm9ncmVzc0JhclN2Z1JvdXRlcztcblxuICAgIHB1YmxpYyBtYXBEYXRhOiBJQ2FNYXBQcm9wcyA9IHtcbiAgICAgICAgbWFya2VyczogW10sXG4gICAgICAgIGNsdXN0ZXJNYXJrZXJzOiBbXSxcbiAgICAgICAgcm91dGluZ01hcmtlcnM6IFtdLFxuICAgICAgICByb3V0ZVBhdGhzOiBbXSxcbiAgICAgICAgZGFya01vZGU6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWFya2VySWNvblNlcnZpY2U6IE1hcE1hcmtlckljb25TZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIGhvdmVyU3RvcChzdG9wOiBJR3BzUHJvZ3Jlc3MsIGk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdmVyZWRHcHNUaXRsZSA9IHN0b3A/LmlzQXRTdG9wXG4gICAgICAgICAgICA/IFByb2dyZXNzQmFyU3RyaW5nRW51bS5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgICAgICA6IHN0b3A/LmhlYWRpbmcgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5ob3ZlcmVkTWlsZWFnZUluZm8gPSAhc3RvcD8uaXNBdFN0b3AgPyBzdG9wPy5taWxlYWdlIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGxlYXZlU3RvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3ZlcmVkR3BzVGl0bGUgPSBudWxsO1xuICAgICAgICB0aGlzLmhvdmVyZWRNaWxlYWdlSW5mbyA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEcm9wZG93bk1hcCh0MjogTmdiUG9wb3Zlcik6IHZvaWQge1xuICAgICAgICB0Mi5vcGVuKCk7XG5cbiAgICAgICAgdGhpcy5vbk9wZW5NYXAuZW1pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0R3BzUHJvZ3Jlc3MoZ3BzUHJvZ3Jlc3NEYXRhOiBJR3BzUHJvZ3Jlc3NbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcyA9IGdwc1Byb2dyZXNzRGF0YTtcblxuICAgICAgICB0aGlzLnNldE1hcE1hcmtlcnMoKTtcblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUdwc0ljb25Qb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TWFwTWFya2VycygpOiB2b2lkIHtcbiAgICAgICAgbGV0IHJvdXRlTWFya2VyczogSU1hcE1hcmtlcnNbXSA9IFtdO1xuICAgICAgICBsZXQgcm91dGVQYXRoczogSU1hcFJvdXRlUGF0aFtdID0gW107XG5cbiAgICAgICAgdGhpcy5fZ3BzUHJvZ3Jlc3MuZm9yRWFjaCgobG9hZFN0b3AsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXJrZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7IGxhdDogbG9hZFN0b3AubGF0aXR1ZGUsIGxuZzogbG9hZFN0b3AubG9uZ2l0dWRlIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCByb3V0ZU1hcmtlcjogSU1hcE1hcmtlcnMgPSB7XG4gICAgICAgICAgICAgICAgLi4ubWFya2VyRGF0YSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLm1hcmtlckljb25TZXJ2aWNlLmdldFJvdXRpbmdNYXJrZXJJY29uKFxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJEYXRhLFxuICAgICAgICAgICAgICAgICAgICBsb2FkU3RvcC5zdG9wTnVtYmVyID8/IDAsXG4gICAgICAgICAgICAgICAgICAgIGxvYWRTdG9wLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFBvc2l0aW9uID49IGxvYWRTdG9wLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlTWFya2VycyA9IFsuLi5yb3V0ZU1hcmtlcnMsIHJvdXRlTWFya2VyXTtcblxuICAgICAgICAgICAgaWYgKGxvYWRTdG9wLnJvdXRlU2hhcGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZVBhdGg6IElNYXBSb3V0ZVBhdGggPSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWNvZGVkU2hhcGU6IGxvYWRTdG9wLnJvdXRlU2hhcGUsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IE1hcE9wdGlvbnNDb25zdGFudHMucm91dGluZ1BhdGhDb2xvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3VycmVudExvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZU9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogNCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcm91dGVQYXRocyA9IFsuLi5yb3V0ZVBhdGhzLCByb3V0ZVBhdGhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5yb3V0ZVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXBPcHRpb25zQ29uc3RhbnRzLnJvdXRpbmdQYXRoQ29sb3JzLmRlYWRoZWFkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdlaWdodDogMixcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1hcERhdGEgPSB7XG4gICAgICAgICAgICAuLi50aGlzLm1hcERhdGEsXG4gICAgICAgICAgICBpc1pvb21TaG93bjogdHJ1ZSxcbiAgICAgICAgICAgIGlzVmVydGljYWxab29tOiB0cnVlLFxuICAgICAgICAgICAgcm91dGluZ01hcmtlcnM6IHJvdXRlTWFya2VycyxcbiAgICAgICAgICAgIHJvdXRlUGF0aHM6IHJvdXRlUGF0aHMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVHcHNJY29uUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGxldCB0b3BQb3NpdGlvbiA9IDA7XG4gICAgICAgIGxldCBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBudWxsO1xuICAgICAgICBjb25zdCBzdG9wUGVyY2VudGFnZSA9IDEwMCAvICh0aGlzLl9ncHNQcm9ncmVzcy5sZW5ndGggLSAxKTtcblxuICAgICAgICB0aGlzLl9ncHNQcm9ncmVzcy5mb3JFYWNoKChzdG9wLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNBdERlYWRoZWFkID0gc3RvcC5pc0F0U3RvcCAmJiAhaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzVmlzaXRlZCAmJiAhaXNBdERlYWRoZWFkKVxuICAgICAgICAgICAgICAgIHRvcFBvc2l0aW9uICs9IGluZGV4ID8gc3RvcFBlcmNlbnRhZ2UgOiBzdG9wUGVyY2VudGFnZSAvIDI7XG5cbiAgICAgICAgICAgIGlmIChzdG9wLmlzQXRTdG9wKSBjdXJyZW50U3RvcFBlcmNlbnRhZ2UgPSBzdG9wUGVyY2VudGFnZSAqIGluZGV4O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdwc0ljb25Ub3BQb3NpdGlvbiA9IGN1cnJlbnRTdG9wUGVyY2VudGFnZSA/PyB0b3BQb3NpdGlvbjtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3BzLXByb2dyZXNzLWJhclwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncHMtcHJvZ3Jlc3MtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAjdDI9XCJuZ2JQb3BvdmVyXCJcbiAgICAgICAgW25nYlBvcG92ZXJdPVwiZ3BzRHJvcGRvd25Qb3BvdmVyXCJcbiAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgW3BsYWNlbWVudF09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgICAgIHBvcG92ZXJDbGFzcz1cImdwc19kcm9wZG93bl9wb3BvdmVyXCJcbiAgICAgICAgdHJpZ2dlcnM9XCJtYW51YWxcIlxuICAgICAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duTWFwKHQyKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRHcHNJY29uID0gdHJ1ZVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJob3ZlcmVkR3BzSWNvbiA9IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVwic3ZnLXNpemUtMjJcIiBbc3JjXT1cImdwc0ljb25cIj48L3N2Zy1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKCFob3ZlcmVkR3BzSWNvbikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwcy1wcm9ncmVzcy10ZXh0IGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWxlYWdlLWdwcyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXNlbGVjdC1ub25lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsYWNrLTIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaG92ZXJlZEdwc1RpdGxlID8/IGdwc1RpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBob3ZlcmVkTWlsZWFnZUluZm8gPz8gbWlsZWFnZUluZm8gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbGVhZ2UtZ3BzIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzLXRpbWVsaW5lIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXRpbWVsaW5lLWFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzdG9wIG9mIF9ncHNQcm9ncmVzczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzLXN0b3AgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3Aoc3RvcCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZVN0b3AoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwaWNrdXAtc3RvcCc6IHN0b3AudHlwZSA9PT0gJ3BpY2t1cCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnktc3RvcCc6IHN0b3AudHlwZSA9PT0gJ2RlbGl2ZXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2aXNpdGVkLXN0b3AnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PSBzdG9wLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBzdG9wLnBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwQmFja2dyb3VuZF09XCInIzQyNDI0MidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJzdG9wPy5sb2NhdGlvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnJlbnQtcG9zIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJob3ZlclN0b3AoY3VycmVudFN0b3AsIC0yKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibGVhdmVTdG9wKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogY3VycmVudFBvc2l0aW9uICsgJyUnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyM0MjQyNDInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpbkNhVG9vbHRpcF09XCJjdXJyZW50U3RvcD8ubG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlVG9vbHRpcF09XCIhY3VycmVudFN0b3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdmctc2l6ZS0xMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ3BzTG9jYXRpb25JY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItc2VsZWN0LW5vbmUgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmxhY2stMiBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBtaWxlYWdlc1BlcmNlbnQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoZ3BzSW5mbykge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX2luZm9faG9sZCBkLWZsZXggZmxleC1jb2x1bW4gZmxleC0xIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtb3Zpbmdfc2lkZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkIHVzZXItc2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBncHNJbmZvLmdwc2hlYWRpbmdDb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdwc0luZm8uZ3BzaGVhZGluZyB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vdmluZ190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLWJsYWNrLTIgY2EtZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3BzSW5mby5ncHNUaW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNncHNEcm9wZG93blBvcG92ZXIgbGV0LWRhdGE9XCJkYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYWluX2Ryb3Bkb3duX2hvbGRlciBkLWZsZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICA8YXBwLWNhLW1hcCBbZGF0YV09XCJtYXBEYXRhXCI+PC9hcHAtY2EtbWFwPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfYWxsX2hvbGRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ3BzX2hlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXJlZEdwc0ljb24gPSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZEdwc0ljb24gPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLXNpemUtMjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiZ3BzSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncHNfaW5mb19ob2xkIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW92aW5nX3NpZGUgdGV4dC1zaXplLTExIGNhLWZvbnQtYm9sZCB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBncHNJbmZvLmdwc2hlYWRpbmdDb2xvciB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBncHNJbmZvLmdwc2hlYWRpbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfaW5mb19ib3JkZXJcIj48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncHNfcHJvZ3Jlc3NfaG9sZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImdwc19wcm9ncmVzc19ob2xkX2lubmVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX2lubmVyX2xpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGdwc0ljb25Ub3BQb3NpdGlvbiArICclJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghY3VycmVudFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHNMb2NhdGlvbkljb25UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcFBvc2l0aW9uOiBncHNJY29uVG9wUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wIG9mIF9ncHNQcm9ncmVzcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3RvcEluZGV4ID0gJGluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIHN0b3BJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzX2lubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc19oZWFkZXIgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19oZWFkZXJfaW5zaWRlIGQtZmxleCBmbGV4LTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFzdG9wLmlzQXRTdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1zaXplLTE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N2Zy1maWxsLWdyZWVuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RvcC50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsaXZlcnknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdzdmctZmlsbC1yZWQtMTAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdzdmctZmlsbC1ncmV5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NCYXJTdmdSb3V0ZXMuY2hlY2tSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLXN0b3AtbnVtYmVyIHRleHQtc2l6ZS0xNCB0ZXh0LWNlbnRlciB1c2VyLXNlbGVjdC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RleHQtY29sb3ItZ3JlZW4tNCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LWNvbG9yLXJlZC0xMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3Auc3RvcE51bWJlciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncHNMb2NhdGlvbkljb25UZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc19pbmZvX2hvbGQgZC1mbGV4IGZsZXgtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfbmFtZSB0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AuaXNBdFN0b3AgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3RvcC50eXBlID09PSAncGlja3VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndGV4dC1jb2xvci1ncmVlbi00J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1jb2xvci1yZWQtMTMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtY29sb3ItZ3JleSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3A/LmxvY2F0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXN0b3AuaXNBdFN0b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcC5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzX3RpbWUgdGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUtMiBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1jb2xvci1ncmV5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPj1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcC5wb3NpdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN0b3AuZGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN0b3AudGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTIgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtY29sb3ItZ3JleSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uID49XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RvcC5pc0F0U3RvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzdG9wLnRpbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzc190aW1lIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlLTIgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXNwYXRjaFN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3RvcC5jdXJyZW50V2FpdFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3NfdGltZSB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZS0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wLmN1cnJlbnRXYWl0VGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY29udmVydE1pbnV0ZXNUb0hvdXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1sZWctbWlsZXMtdGV4dCB0ZXh0LXNpemUtMTEgdGV4dC1jb2xvci13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1jb2xvci1ncmV5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA+PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AucG9zaXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdG9wLmlzQXRTdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2EtZm9udC1ib2xkJzogc3RvcEluZGV4ID09PSAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BJbmRleCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnTEVHIG1pJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdG9wPy5sZWdNaWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICcrJyArIHN0b3AubGVnTWlsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnKycgKyAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2luZm9fYm9yZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX2hvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdwc19jb21wbGV0ZV9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIHRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQuY29tcGxldGVkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2l6ZS0xMSB0ZXh0LWNvbG9yLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQudG90YWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3BzX2NvbXBsZXRlX3NlY29uZF9yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LTEgdGV4dC1zaXplLTExIHRleHQtY29sb3ItYmx1ZS0xOSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGN1cnJlbnRQb3NpdGlvbiB9fXt7IHN0YXRpY0NvbnN0YW50LnBlcmNlbnRhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zaXplLTExIHRleHQtY29sb3Itd2hpdGUgY2EtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG90YWxNaWxlcyB8IHRob3VzYW5kU2VwYXJhdG9yIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc3RhdGljQ29uc3RhbnQubWlsZXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZ3BzTG9jYXRpb25JY29uVGVtcGxhdGUgbGV0LXRvcFBvc2l0aW9uPVwidG9wUG9zaXRpb25cIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgW2NsYXNzLm1vdmluZy1ncHNdPVwiISF0b3BQb3NpdGlvblwiXG4gICAgICAgIFtzdHlsZS50b3BdPVwidG9wUG9zaXRpb24gKyAnJSdcIlxuICAgID5cbiAgICAgICAgPHN2Zy1pY29uIGNsYXNzPVwiZC1mbGV4IHN2Zy1zaXplLTEwXCIgW3NyY109XCJncHNMb2NhdGlvbkljb25cIj48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|