ca-components 1.0.95 → 1.0.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.
Files changed (83) hide show
  1. package/assets/scss/text-selection.scss +14 -0
  2. package/esm2022/lib/components/ca-activity-log-list/ca-activity-log-list.component.mjs +3 -3
  3. package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +3 -27
  4. package/esm2022/lib/components/ca-chart/models/chart-boundaries.model.mjs +2 -0
  5. package/esm2022/lib/components/ca-chart/models/index.mjs +2 -1
  6. package/esm2022/lib/components/ca-chart-manager/ca-chart-manager.component.mjs +13 -21
  7. package/esm2022/lib/components/ca-chart-manager/models/hover-state.model.mjs +1 -1
  8. package/esm2022/lib/components/ca-chart-manager/services/chart-manager.service.mjs +4 -3
  9. package/esm2022/lib/components/ca-collapsible-filter/ca-collapsible-filter.component.mjs +2 -2
  10. package/esm2022/lib/components/ca-comment/ca-comment.component.mjs +2 -2
  11. package/esm2022/lib/components/ca-comment/modals/comment-modal/comment-modal.component.mjs +3 -3
  12. package/esm2022/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.mjs +3 -3
  13. package/esm2022/lib/components/ca-details-dropdown/ca-details-dropdown.component.mjs +2 -2
  14. package/esm2022/lib/components/ca-dropdown-menu/ca-dropdown-menu.component.mjs +2 -2
  15. package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +2 -2
  16. package/esm2022/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.mjs +2 -2
  17. package/esm2022/lib/components/ca-filters/components/ca-location-filter/ca-location-filter.component.mjs +2 -2
  18. package/esm2022/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.mjs +2 -2
  19. package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs +2 -2
  20. package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +2 -2
  21. package/esm2022/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.mjs +2 -2
  22. package/esm2022/lib/components/ca-filters/components/ca-time-filter/ca-time-filter.component.mjs +3 -3
  23. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +2 -2
  24. package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +2 -2
  25. package/esm2022/lib/components/ca-filters/components/ca-user-filter/ca-user-filter.component.mjs +2 -2
  26. package/esm2022/lib/components/ca-filters/components/ca-violation-filter/ca-violation-filter.component.mjs +2 -2
  27. package/esm2022/lib/components/ca-input/ca-input.component.mjs +2 -2
  28. package/esm2022/lib/components/ca-input/input-test/input-test.component.mjs +9 -3
  29. package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +2 -2
  30. package/esm2022/lib/components/ca-input-datetime-picker/ca-input-datetime-picker.component.mjs +2 -2
  31. package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +2 -2
  32. package/esm2022/lib/components/ca-input-note/ca-input-note.component.mjs +2 -2
  33. package/esm2022/lib/components/ca-logo-change/ca-logo-change.component.mjs +3 -3
  34. package/esm2022/lib/components/ca-map/ca-map.component.mjs +6 -10
  35. package/esm2022/lib/components/ca-map/models/map.model.mjs +1 -1
  36. package/esm2022/lib/components/ca-map/utils/constants/map-options.constants.mjs +2 -1
  37. package/esm2022/lib/components/ca-map-dropdown/ca-map-dropdown.component.mjs +2 -2
  38. package/esm2022/lib/components/ca-modal-button/ca-modal-button.component.mjs +3 -3
  39. package/esm2022/lib/components/ca-ngx-slider/ca-ngx-slider.component.mjs +2 -2
  40. package/esm2022/lib/components/ca-note/ca-note.component.mjs +2 -2
  41. package/esm2022/lib/components/ca-note-container/ca-note-container.component.mjs +2 -2
  42. package/esm2022/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.mjs +4 -4
  43. package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +2 -2
  44. package/esm2022/lib/components/ca-period-content/components/ca-period-content-extra-info/ca-period-content-extra-info.component.mjs +3 -3
  45. package/esm2022/lib/components/ca-period-content/components/ca-period-content-payment/ca-period-content-payment.component.mjs +3 -3
  46. package/esm2022/lib/components/ca-period-content/components/ca-period-content-user-info/ca-period-content-user-info.component.mjs +3 -3
  47. package/esm2022/lib/components/ca-pickup-delivery-block/ca-pickup-delivery-block.component.mjs +3 -3
  48. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/ca-load.component.mjs +3 -3
  49. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-list/ca-load-list.component.mjs +3 -3
  50. package/esm2022/lib/components/ca-pickup-delivery-block/components/ca-load/components/ca-load-single/ca-load-single.component.mjs +3 -3
  51. package/esm2022/lib/components/ca-profile-image/ca-profile-image.component.mjs +3 -3
  52. package/esm2022/lib/components/ca-progress-bar/ca-progress-bar.component.mjs +2 -2
  53. package/esm2022/lib/components/ca-progress-expiration/ca-progress-expiration.component.mjs +2 -2
  54. package/esm2022/lib/components/ca-rating-review/ca-rating-review.component.mjs +2 -2
  55. package/esm2022/lib/components/ca-rating-review/components/ca-rating-review-user/ca-rating-review-user.component.mjs +2 -2
  56. package/esm2022/lib/components/ca-rating-review/components/ca-ratings-reviews-popup/ca-ratings-reviews-popup.component.mjs +2 -2
  57. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-company/ca-right-side-panel-company.component.mjs +3 -3
  58. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.mjs +3 -3
  59. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.mjs +3 -3
  60. package/esm2022/lib/components/ca-search-multiple-states/ca-search-multiple-states.component.mjs +2 -2
  61. package/esm2022/lib/components/ca-sort-dropdown/ca-sort-dropdown.component.mjs +2 -2
  62. package/esm2022/lib/components/ca-spinner/ca-spinner.component.mjs +2 -2
  63. package/esm2022/lib/components/ca-tab-switch/ca-tab-switch.component.mjs +3 -3
  64. package/esm2022/lib/components/ca-todo/ca-todo.component.mjs +3 -3
  65. package/esm2022/lib/components/ca-todo/components/ca-todo-card.component.mjs +3 -3
  66. package/esm2022/lib/components/ca-tooltip-list/ca-tooltip-list.component.mjs +3 -3
  67. package/esm2022/lib/components/ca-truck-trailer-progress-bar/ca-truck-trailer-progress-bar.component.mjs +2 -2
  68. package/esm2022/lib/components/ca-upload-files/ca-upload-files.component.mjs +3 -3
  69. package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.mjs +3 -3
  70. package/esm2022/lib/components/ca-upload-files/components/ca-upload-file/ca-upload-file.component.mjs +2 -2
  71. package/esm2022/lib/components/ca-upload-files/components/ca-upload-files-carousel/ca-upload-files-carousel.component.mjs +3 -3
  72. package/fesm2022/ca-components.mjs +151 -179
  73. package/fesm2022/ca-components.mjs.map +1 -1
  74. package/lib/components/ca-chart/models/chart-boundaries.model.d.ts +4 -0
  75. package/lib/components/ca-chart/models/index.d.ts +1 -0
  76. package/lib/components/ca-chart-manager/ca-chart-manager.component.d.ts +2 -3
  77. package/lib/components/ca-chart-manager/models/hover-state.model.d.ts +2 -0
  78. package/lib/components/ca-chart-manager/services/chart-manager.service.d.ts +2 -1
  79. package/lib/components/ca-input/input-test/input-test.component.d.ts +1 -0
  80. package/lib/components/ca-map/ca-map.component.d.ts +1 -8
  81. package/lib/components/ca-map/models/map.model.d.ts +15 -0
  82. package/lib/components/ca-map/utils/constants/map-options.constants.d.ts +4 -0
  83. package/package.json +1 -1
@@ -259,7 +259,7 @@ export class CaUploadDropzoneComponent {
259
259
  provideLottieOptions({
260
260
  player: () => import('lottie-web'),
261
261
  }),
262
- ], viewQueries: [{ propertyName: "dropZone", first: true, predicate: ["dropZone"], descendants: true }, { propertyName: "templateRef", predicate: TemplateContainerDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"dropzone-container d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'split-dropzone': isDropzoneShownInCrop,\n unSupported: isSupportedType,\n expanded: isDropzoneExpanded && !isSupportedType,\n 'disabled-dropzone': files.length >= this.limit && this.limit > 0,\n }\"\n [ngStyle]=\"{\n width:\n files.length === 0\n ? customWidth || '448px'\n : files.length === 1\n ? '296px'\n : files.length === 2\n ? '148px'\n : files.length === 3\n ? '148px'\n : '148px',\n }\"\n>\n @for (item of _dropZoneConfigArray; track identify) {\n <div\n class=\"dropzone-content d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'upload-dropzone-unsupported': isSupportedType,\n expandedContent: isDropzoneExpanded,\n 'column-layout': files.length >= 2,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(item.template);\n context: { $implicit: item.config }\n \"\n ></ng-container>\n </div>\n }\n</div>\n\n<!-------------Document template-------------->\n<ng-template templateContainer id=\"documentsTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Media template-------------->\n<ng-template templateContainer id=\"mediaTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image template-------------->\n<ng-template templateContainer id=\"imageTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image Crop template-------------->\n<ng-template templateContainer id=\"imageCropTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Logo template-------------->\n<ng-template templateContainer id=\"logoTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n\n<!------INPUT------->\n<ng-template #fileInputTemplate let-config>\n <input\n #dropZone\n [id]=\"'dropZone' + (config.dropzoneOption?.dropzoneIndex || 0)\"\n type=\"file\"\n [accept]=\"config.dropzone?.dropZoneAvailableFiles\"\n [multiple]=\"config.dropzone?.multiple\"\n (change)=\"handleFileChange($event)\"\n style=\"display: none\"\n />\n</ng-template>\n\n<!--DROPZONE_TEXT-->\n<ng-template #dropzoneTextTemplate>\n <div\n class=\"dropzone-text d-flex flex-column align-items-center justify-content-center\"\n >\n <p\n class=\"upload-dropzone-text\"\n [ngClass]=\"{\n 'unsupported-text-big': isSupportedType,\n 'max-count': isMaxCountReached(),\n }\"\n >\n <ng-container *ngIf=\"isMaxCountReached(); else normalText\">\n MAX COUNT REACHED\n </ng-container>\n <ng-template #normalText>\n {{\n isSupportedType\n ? 'INVALID FILE TYPE'\n : 'DRAG ' + dropZoneText\n }}\n {{\n !(isSupportedType || (files && files.length)) ? ' HERE' : ''\n }}\n </ng-template>\n <ng-container\n *ngIf=\"_dropZoneConfigArray?.[0]?.template === 'mediaTemplate'\"\n >\n <p class=\"media-sizes\">max file size 50mb</p>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!isDropzoneExpanded\">\n <span class=\"upload-dropzone-text-small\">\n <ng-container *ngIf=\"isMaxCountReached(); else formatText\">\n {{ files.length }} FILES IMPORTED\n </ng-container>\n <ng-template #formatText>\n {{\n isSupportedType\n ? 'SUPPORTED FORMATS'\n : 'OR CLICK TO ADD'\n }}\n </ng-template>\n </span>\n </ng-container>\n </div>\n</ng-template>\n\n<!------ICON-------->\n<ng-template #dropzoneIconTemplate>\n <svg-icon\n [src]=\"!isSupportedType && !isFileDrop ? iconSrc : dropzoneSvgRoute\"\n [ngClass]=\"{\n 'cancel-unsupported-zone': isSupportedType,\n 'svgIcon-document': files.length < 2,\n 'svg-small': files.length >= 2,\n }\"\n ></svg-icon>\n</ng-template>\n<!-- LOTTIE_ANIMATION -->\n<ng-template #lottieAnimationTemplate>\n <div\n class=\"animation-container d-flex flex-column align-items-center justify-content-center\"\n [ngClass]=\"{ expanded: isDropzoneExpanded }\"\n >\n <ng-lottie\n class=\"static-lottie-animation\"\n [options]=\"lottieOptions\"\n ></ng-lottie>\n </div>\n</ng-template>\n\n<!-- SUPPORTED_EXTENSIONS -->\n<ng-template #supportedExtensionsTemplate>\n <div class=\"supported-extensions d-flex justify-content-center\">\n <span\n class=\"extension extension-{{\n extension\n }} d-flex justify-content-center align-items-center\"\n *ngFor=\"let extension of dropZoneAvailableFiles; trackBy: identify\"\n >{{ extension }}</span\n >\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,.dropzone-container .dropzone-text .upload-dropzone-text-small{font-weight:600!important}.ca-font-bold,.dropzone-container .dropzone-text .upload-dropzone-text{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black,.dropzone-container .supported-extensions .extension{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.dropzone-container{width:100%;height:178px;outline:4px dashed #eeeeee;border-radius:2px;position:relative;cursor:pointer;overflow:hidden}.dropzone-container.split-dropzone{width:auto!important}.dropzone-container.disabled-dropzone{pointer-events:none;opacity:.6;cursor:not-allowed}.dropzone-container:hover{background-color:#eee}.dropzone-container.dropzone-small{width:302px!important}.dropzone-container.expanded{height:458px}.dropzone-container.unSupported{outline-color:#ed9292;outline-offset:-4px;background-color:#fff}.dropzone-container .animation-container{height:auto;width:auto;overflow:hidden;position:relative;transition:transform .5s ease-in-out}.dropzone-container .animation-container .static-lottie-animation{width:100%;height:100%}.dropzone-container .animation-container.expanded{transition:height .5s ease-in-out}.dropzone-container .dropzone-content{gap:10px;position:relative;transition:transform .5s ease-in-out,opacity .5s ease-in-out}.dropzone-container .dropzone-content.column-layout{flex-direction:column;align-items:center;justify-content:center}.dropzone-container .dropzone-content .cancel-unsupported-zone{position:absolute}.dropzone-container .dropzone-content.dropzone-small{width:302px;height:100%}.dropzone-container .dropzone-content.expandedContent{flex-direction:column;transform:scale(1);opacity:1;top:-30px}.dropzone-container .upload-dropzone-unsupported{flex-direction:column;gap:12px;position:relative;width:100%;height:100%}.dropzone-container .svgIcon-document{width:100px;height:100px}.dropzone-container .svgIcon-document.svg-small svg-icon{width:80px!important;height:80px!important}.dropzone-container .svgIcon-document.big{width:200px;height:200px}.dropzone-container .dropzone-text{color:#424242;-webkit-user-select:none;user-select:none;pointer-events:none}.dropzone-container .dropzone-text .upload-dropzone-text{font-size:14px;line-height:18px;align-items:center;font-family:Montserrat,sans-serif;margin-bottom:0}.dropzone-container .dropzone-text .upload-dropzone-text.unsupported-text-big{color:#df3c3c}.dropzone-container .dropzone-text .upload-dropzone-text.max-count{text-align:center}.dropzone-container .dropzone-text .upload-dropzone-text-small{font-family:Montserrat,sans-serif;margin-top:4px;font-size:11px;line-height:14px;align-items:center}.dropzone-container .dropzone-text .upload-dropzone-text-small .media-sizes{font-size:11px;line-height:14px;color:#919191;margin-top:4px}.dropzone-container .cancel-unsupported-zone{position:absolute;top:6px;right:14px;cursor:pointer;width:12.6px;height:12.6px}.dropzone-container .supported-extensions{gap:4px}.dropzone-container .supported-extensions .extension{font-family:Montserrat,sans-serif;width:35px;height:18px;border-radius:1px;font-size:11px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-transform:uppercase}.dropzone-container .supported-extensions .extension-jpg,.dropzone-container .supported-extensions .extension-jpeg,.dropzone-container .supported-extensions .extension-png{background:#fab15c}.dropzone-container .supported-extensions .extension-pdf{background-color:#e66767}.dropzone-container .supported-extensions .extension-mov,.dropzone-container .supported-extensions .extension-mp4,.dropzone-container .supported-extensions .extension-avi{background-color:#b370f0}.dropzone-container .supported-extensions .extension:hover{transition:height .3s ease-in-out;opacity:1;cursor:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: TemplateContainerDirective, selector: "[templateContainer]", inputs: ["id"] }, { kind: "component", type: LottieComponent, selector: "ng-lottie", inputs: ["width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
262
+ ], viewQueries: [{ propertyName: "dropZone", first: true, predicate: ["dropZone"], descendants: true }, { propertyName: "templateRef", predicate: TemplateContainerDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"dropzone-container d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'split-dropzone': isDropzoneShownInCrop,\n unSupported: isSupportedType,\n expanded: isDropzoneExpanded && !isSupportedType,\n 'disabled-dropzone': files.length >= this.limit && this.limit > 0,\n }\"\n [ngStyle]=\"{\n width:\n files.length === 0\n ? customWidth || '448px'\n : files.length === 1\n ? '296px'\n : files.length === 2\n ? '148px'\n : files.length === 3\n ? '148px'\n : '148px',\n }\"\n>\n @for (item of _dropZoneConfigArray; track identify) {\n <div\n class=\"dropzone-content d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'upload-dropzone-unsupported': isSupportedType,\n expandedContent: isDropzoneExpanded,\n 'column-layout': files.length >= 2,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(item.template);\n context: { $implicit: item.config }\n \"\n ></ng-container>\n </div>\n }\n</div>\n\n<!-------------Document template-------------->\n<ng-template templateContainer id=\"documentsTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Media template-------------->\n<ng-template templateContainer id=\"mediaTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image template-------------->\n<ng-template templateContainer id=\"imageTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image Crop template-------------->\n<ng-template templateContainer id=\"imageCropTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Logo template-------------->\n<ng-template templateContainer id=\"logoTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n\n<!------INPUT------->\n<ng-template #fileInputTemplate let-config>\n <input\n #dropZone\n [id]=\"'dropZone' + (config.dropzoneOption?.dropzoneIndex || 0)\"\n type=\"file\"\n [accept]=\"config.dropzone?.dropZoneAvailableFiles\"\n [multiple]=\"config.dropzone?.multiple\"\n (change)=\"handleFileChange($event)\"\n style=\"display: none\"\n />\n</ng-template>\n\n<!--DROPZONE_TEXT-->\n<ng-template #dropzoneTextTemplate>\n <div\n class=\"dropzone-text d-flex flex-column align-items-center justify-content-center\"\n >\n <p\n class=\"upload-dropzone-text\"\n [ngClass]=\"{\n 'unsupported-text-big': isSupportedType,\n 'max-count': isMaxCountReached(),\n }\"\n >\n <ng-container *ngIf=\"isMaxCountReached(); else normalText\">\n MAX COUNT REACHED\n </ng-container>\n <ng-template #normalText>\n {{\n isSupportedType\n ? 'INVALID FILE TYPE'\n : 'DRAG ' + dropZoneText\n }}\n {{\n !(isSupportedType || (files && files.length)) ? ' HERE' : ''\n }}\n </ng-template>\n <ng-container\n *ngIf=\"_dropZoneConfigArray?.[0]?.template === 'mediaTemplate'\"\n >\n <p class=\"media-sizes\">max file size 50mb</p>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!isDropzoneExpanded\">\n <span class=\"upload-dropzone-text-small\">\n <ng-container *ngIf=\"isMaxCountReached(); else formatText\">\n {{ files.length }} FILES IMPORTED\n </ng-container>\n <ng-template #formatText>\n {{\n isSupportedType\n ? 'SUPPORTED FORMATS'\n : 'OR CLICK TO ADD'\n }}\n </ng-template>\n </span>\n </ng-container>\n </div>\n</ng-template>\n\n<!------ICON-------->\n<ng-template #dropzoneIconTemplate>\n <svg-icon\n [src]=\"!isSupportedType && !isFileDrop ? iconSrc : dropzoneSvgRoute\"\n [ngClass]=\"{\n 'cancel-unsupported-zone': isSupportedType,\n 'svgIcon-document': files.length < 2,\n 'svg-small': files.length >= 2,\n }\"\n ></svg-icon>\n</ng-template>\n<!-- LOTTIE_ANIMATION -->\n<ng-template #lottieAnimationTemplate>\n <div\n class=\"animation-container d-flex flex-column align-items-center justify-content-center\"\n [ngClass]=\"{ expanded: isDropzoneExpanded }\"\n >\n <ng-lottie\n class=\"static-lottie-animation\"\n [options]=\"lottieOptions\"\n ></ng-lottie>\n </div>\n</ng-template>\n\n<!-- SUPPORTED_EXTENSIONS -->\n<ng-template #supportedExtensionsTemplate>\n <div class=\"supported-extensions d-flex justify-content-center\">\n <span\n class=\"extension extension-{{\n extension\n }} d-flex justify-content-center align-items-center\"\n *ngFor=\"let extension of dropZoneAvailableFiles; trackBy: identify\"\n >{{ extension }}</span\n >\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,.dropzone-container .dropzone-text .upload-dropzone-text-small{font-weight:600!important}.ca-font-bold,.dropzone-container .dropzone-text .upload-dropzone-text{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black,.dropzone-container .supported-extensions .extension{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-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-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.dropzone-container{width:100%;height:178px;outline:4px dashed #eeeeee;border-radius:2px;position:relative;cursor:pointer;overflow:hidden}.dropzone-container.split-dropzone{width:auto!important}.dropzone-container.disabled-dropzone{pointer-events:none;opacity:.6;cursor:not-allowed}.dropzone-container:hover{background-color:#eee}.dropzone-container.dropzone-small{width:302px!important}.dropzone-container.expanded{height:458px}.dropzone-container.unSupported{outline-color:#ed9292;outline-offset:-4px;background-color:#fff}.dropzone-container .animation-container{height:auto;width:auto;overflow:hidden;position:relative;transition:transform .5s ease-in-out}.dropzone-container .animation-container .static-lottie-animation{width:100%;height:100%}.dropzone-container .animation-container.expanded{transition:height .5s ease-in-out}.dropzone-container .dropzone-content{gap:10px;position:relative;transition:transform .5s ease-in-out,opacity .5s ease-in-out}.dropzone-container .dropzone-content.column-layout{flex-direction:column;align-items:center;justify-content:center}.dropzone-container .dropzone-content .cancel-unsupported-zone{position:absolute}.dropzone-container .dropzone-content.dropzone-small{width:302px;height:100%}.dropzone-container .dropzone-content.expandedContent{flex-direction:column;transform:scale(1);opacity:1;top:-30px}.dropzone-container .upload-dropzone-unsupported{flex-direction:column;gap:12px;position:relative;width:100%;height:100%}.dropzone-container .svgIcon-document{width:100px;height:100px}.dropzone-container .svgIcon-document.svg-small svg-icon{width:80px!important;height:80px!important}.dropzone-container .svgIcon-document.big{width:200px;height:200px}.dropzone-container .dropzone-text{color:#424242;-webkit-user-select:none;user-select:none;pointer-events:none}.dropzone-container .dropzone-text .upload-dropzone-text{font-size:14px;line-height:18px;align-items:center;font-family:Montserrat,sans-serif;margin-bottom:0}.dropzone-container .dropzone-text .upload-dropzone-text.unsupported-text-big{color:#df3c3c}.dropzone-container .dropzone-text .upload-dropzone-text.max-count{text-align:center}.dropzone-container .dropzone-text .upload-dropzone-text-small{font-family:Montserrat,sans-serif;margin-top:4px;font-size:11px;line-height:14px;align-items:center}.dropzone-container .dropzone-text .upload-dropzone-text-small .media-sizes{font-size:11px;line-height:14px;color:#919191;margin-top:4px}.dropzone-container .cancel-unsupported-zone{position:absolute;top:6px;right:14px;cursor:pointer;width:12.6px;height:12.6px}.dropzone-container .supported-extensions{gap:4px}.dropzone-container .supported-extensions .extension{font-family:Montserrat,sans-serif;width:35px;height:18px;border-radius:1px;font-size:11px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-transform:uppercase}.dropzone-container .supported-extensions .extension-jpg,.dropzone-container .supported-extensions .extension-jpeg,.dropzone-container .supported-extensions .extension-png{background:#fab15c}.dropzone-container .supported-extensions .extension-pdf{background-color:#e66767}.dropzone-container .supported-extensions .extension-mov,.dropzone-container .supported-extensions .extension-mp4,.dropzone-container .supported-extensions .extension-avi{background-color:#b370f0}.dropzone-container .supported-extensions .extension:hover{transition:height .3s ease-in-out;opacity:1;cursor:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "component", type: i2.SvgIconComponent, selector: "svg-icon", inputs: ["src", "name", "stretch", "applyClass", "applyCss", "svgClass", "class", "viewBox", "svgAriaLabel", "svgStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: TemplateContainerDirective, selector: "[templateContainer]", inputs: ["id"] }, { kind: "component", type: LottieComponent, selector: "ng-lottie", inputs: ["width", "height"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
263
263
  }
264
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaUploadDropzoneComponent, decorators: [{
265
265
  type: Component,
@@ -276,7 +276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
276
276
  }),
277
277
  ], encapsulation: ViewEncapsulation.None, host: {
278
278
  '(window:paste)': 'handlePaste($event)',
279
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"dropzone-container d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'split-dropzone': isDropzoneShownInCrop,\n unSupported: isSupportedType,\n expanded: isDropzoneExpanded && !isSupportedType,\n 'disabled-dropzone': files.length >= this.limit && this.limit > 0,\n }\"\n [ngStyle]=\"{\n width:\n files.length === 0\n ? customWidth || '448px'\n : files.length === 1\n ? '296px'\n : files.length === 2\n ? '148px'\n : files.length === 3\n ? '148px'\n : '148px',\n }\"\n>\n @for (item of _dropZoneConfigArray; track identify) {\n <div\n class=\"dropzone-content d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'upload-dropzone-unsupported': isSupportedType,\n expandedContent: isDropzoneExpanded,\n 'column-layout': files.length >= 2,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(item.template);\n context: { $implicit: item.config }\n \"\n ></ng-container>\n </div>\n }\n</div>\n\n<!-------------Document template-------------->\n<ng-template templateContainer id=\"documentsTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Media template-------------->\n<ng-template templateContainer id=\"mediaTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image template-------------->\n<ng-template templateContainer id=\"imageTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image Crop template-------------->\n<ng-template templateContainer id=\"imageCropTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Logo template-------------->\n<ng-template templateContainer id=\"logoTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n\n<!------INPUT------->\n<ng-template #fileInputTemplate let-config>\n <input\n #dropZone\n [id]=\"'dropZone' + (config.dropzoneOption?.dropzoneIndex || 0)\"\n type=\"file\"\n [accept]=\"config.dropzone?.dropZoneAvailableFiles\"\n [multiple]=\"config.dropzone?.multiple\"\n (change)=\"handleFileChange($event)\"\n style=\"display: none\"\n />\n</ng-template>\n\n<!--DROPZONE_TEXT-->\n<ng-template #dropzoneTextTemplate>\n <div\n class=\"dropzone-text d-flex flex-column align-items-center justify-content-center\"\n >\n <p\n class=\"upload-dropzone-text\"\n [ngClass]=\"{\n 'unsupported-text-big': isSupportedType,\n 'max-count': isMaxCountReached(),\n }\"\n >\n <ng-container *ngIf=\"isMaxCountReached(); else normalText\">\n MAX COUNT REACHED\n </ng-container>\n <ng-template #normalText>\n {{\n isSupportedType\n ? 'INVALID FILE TYPE'\n : 'DRAG ' + dropZoneText\n }}\n {{\n !(isSupportedType || (files && files.length)) ? ' HERE' : ''\n }}\n </ng-template>\n <ng-container\n *ngIf=\"_dropZoneConfigArray?.[0]?.template === 'mediaTemplate'\"\n >\n <p class=\"media-sizes\">max file size 50mb</p>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!isDropzoneExpanded\">\n <span class=\"upload-dropzone-text-small\">\n <ng-container *ngIf=\"isMaxCountReached(); else formatText\">\n {{ files.length }} FILES IMPORTED\n </ng-container>\n <ng-template #formatText>\n {{\n isSupportedType\n ? 'SUPPORTED FORMATS'\n : 'OR CLICK TO ADD'\n }}\n </ng-template>\n </span>\n </ng-container>\n </div>\n</ng-template>\n\n<!------ICON-------->\n<ng-template #dropzoneIconTemplate>\n <svg-icon\n [src]=\"!isSupportedType && !isFileDrop ? iconSrc : dropzoneSvgRoute\"\n [ngClass]=\"{\n 'cancel-unsupported-zone': isSupportedType,\n 'svgIcon-document': files.length < 2,\n 'svg-small': files.length >= 2,\n }\"\n ></svg-icon>\n</ng-template>\n<!-- LOTTIE_ANIMATION -->\n<ng-template #lottieAnimationTemplate>\n <div\n class=\"animation-container d-flex flex-column align-items-center justify-content-center\"\n [ngClass]=\"{ expanded: isDropzoneExpanded }\"\n >\n <ng-lottie\n class=\"static-lottie-animation\"\n [options]=\"lottieOptions\"\n ></ng-lottie>\n </div>\n</ng-template>\n\n<!-- SUPPORTED_EXTENSIONS -->\n<ng-template #supportedExtensionsTemplate>\n <div class=\"supported-extensions d-flex justify-content-center\">\n <span\n class=\"extension extension-{{\n extension\n }} d-flex justify-content-center align-items-center\"\n *ngFor=\"let extension of dropZoneAvailableFiles; trackBy: identify\"\n >{{ extension }}</span\n >\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,.dropzone-container .dropzone-text .upload-dropzone-text-small{font-weight:600!important}.ca-font-bold,.dropzone-container .dropzone-text .upload-dropzone-text{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black,.dropzone-container .supported-extensions .extension{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.svg-fill-black svg path{fill:#424242!important}.svg-fill-muted svg path{fill:#919191!important}.svg-fill-bw-9 svg path{fill:#dadada!important}.svg-fill-light-grey-2 svg path{fill:#aaa!important}.svg-fill-light-grey-6 svg path{fill:#ccc!important}.svg-fill-blue-13 svg path{fill:#6692f1!important}.svg-fill-blue-19 svg path{fill:#92b1f5!important}.svg-fill-blue-26 svg path{fill:#4dc5eb!important}.svg-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.dropzone-container{width:100%;height:178px;outline:4px dashed #eeeeee;border-radius:2px;position:relative;cursor:pointer;overflow:hidden}.dropzone-container.split-dropzone{width:auto!important}.dropzone-container.disabled-dropzone{pointer-events:none;opacity:.6;cursor:not-allowed}.dropzone-container:hover{background-color:#eee}.dropzone-container.dropzone-small{width:302px!important}.dropzone-container.expanded{height:458px}.dropzone-container.unSupported{outline-color:#ed9292;outline-offset:-4px;background-color:#fff}.dropzone-container .animation-container{height:auto;width:auto;overflow:hidden;position:relative;transition:transform .5s ease-in-out}.dropzone-container .animation-container .static-lottie-animation{width:100%;height:100%}.dropzone-container .animation-container.expanded{transition:height .5s ease-in-out}.dropzone-container .dropzone-content{gap:10px;position:relative;transition:transform .5s ease-in-out,opacity .5s ease-in-out}.dropzone-container .dropzone-content.column-layout{flex-direction:column;align-items:center;justify-content:center}.dropzone-container .dropzone-content .cancel-unsupported-zone{position:absolute}.dropzone-container .dropzone-content.dropzone-small{width:302px;height:100%}.dropzone-container .dropzone-content.expandedContent{flex-direction:column;transform:scale(1);opacity:1;top:-30px}.dropzone-container .upload-dropzone-unsupported{flex-direction:column;gap:12px;position:relative;width:100%;height:100%}.dropzone-container .svgIcon-document{width:100px;height:100px}.dropzone-container .svgIcon-document.svg-small svg-icon{width:80px!important;height:80px!important}.dropzone-container .svgIcon-document.big{width:200px;height:200px}.dropzone-container .dropzone-text{color:#424242;-webkit-user-select:none;user-select:none;pointer-events:none}.dropzone-container .dropzone-text .upload-dropzone-text{font-size:14px;line-height:18px;align-items:center;font-family:Montserrat,sans-serif;margin-bottom:0}.dropzone-container .dropzone-text .upload-dropzone-text.unsupported-text-big{color:#df3c3c}.dropzone-container .dropzone-text .upload-dropzone-text.max-count{text-align:center}.dropzone-container .dropzone-text .upload-dropzone-text-small{font-family:Montserrat,sans-serif;margin-top:4px;font-size:11px;line-height:14px;align-items:center}.dropzone-container .dropzone-text .upload-dropzone-text-small .media-sizes{font-size:11px;line-height:14px;color:#919191;margin-top:4px}.dropzone-container .cancel-unsupported-zone{position:absolute;top:6px;right:14px;cursor:pointer;width:12.6px;height:12.6px}.dropzone-container .supported-extensions{gap:4px}.dropzone-container .supported-extensions .extension{font-family:Montserrat,sans-serif;width:35px;height:18px;border-radius:1px;font-size:11px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-transform:uppercase}.dropzone-container .supported-extensions .extension-jpg,.dropzone-container .supported-extensions .extension-jpeg,.dropzone-container .supported-extensions .extension-png{background:#fab15c}.dropzone-container .supported-extensions .extension-pdf{background-color:#e66767}.dropzone-container .supported-extensions .extension-mov,.dropzone-container .supported-extensions .extension-mp4,.dropzone-container .supported-extensions .extension-avi{background-color:#b370f0}.dropzone-container .supported-extensions .extension:hover{transition:height .3s ease-in-out;opacity:1;cursor:auto!important}\n"] }]
279
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"dropzone-container d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'split-dropzone': isDropzoneShownInCrop,\n unSupported: isSupportedType,\n expanded: isDropzoneExpanded && !isSupportedType,\n 'disabled-dropzone': files.length >= this.limit && this.limit > 0,\n }\"\n [ngStyle]=\"{\n width:\n files.length === 0\n ? customWidth || '448px'\n : files.length === 1\n ? '296px'\n : files.length === 2\n ? '148px'\n : files.length === 3\n ? '148px'\n : '148px',\n }\"\n>\n @for (item of _dropZoneConfigArray; track identify) {\n <div\n class=\"dropzone-content d-flex align-items-center justify-content-center\"\n [ngClass]=\"{\n 'upload-dropzone-unsupported': isSupportedType,\n expandedContent: isDropzoneExpanded,\n 'column-layout': files.length >= 2,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(item.template);\n context: { $implicit: item.config }\n \"\n ></ng-container>\n </div>\n }\n</div>\n\n<!-------------Document template-------------->\n<ng-template templateContainer id=\"documentsTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Media template-------------->\n<ng-template templateContainer id=\"mediaTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image template-------------->\n<ng-template templateContainer id=\"imageTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Image Crop template-------------->\n<ng-template templateContainer id=\"imageCropTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!-------------Logo template-------------->\n<ng-template templateContainer id=\"logoTemplate\" let-config>\n <!--SVG ICON-->\n <ng-container *ngIf=\"!isShownDropzoneFocus && !isDropzoneExpanded\">\n <ng-container *ngTemplateOutlet=\"dropzoneIconTemplate\"></ng-container>\n </ng-container>\n\n <!--Lottie animation-->\n <ng-container\n *ngIf=\"(isDropzoneExpanded || isShownDropzoneFocus) && !isSupportedType\"\n >\n <ng-container\n *ngTemplateOutlet=\"lottieAnimationTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--Content for supported and unsupported types-->\n <ng-container *ngTemplateOutlet=\"dropzoneTextTemplate\"> </ng-container>\n\n <!--Supported extensions for unsupported type-->\n <ng-container *ngIf=\"isSupportedType\">\n <ng-container\n *ngTemplateOutlet=\"supportedExtensionsTemplate\"\n ></ng-container>\n </ng-container>\n\n <!--FILE INPUT-->\n <ng-container\n *ngTemplateOutlet=\"fileInputTemplate; context: { $implicit: config }\"\n ></ng-container>\n</ng-template>\n\n<!--------------COMMON-TEMPLATE-------------->\n\n<!------INPUT------->\n<ng-template #fileInputTemplate let-config>\n <input\n #dropZone\n [id]=\"'dropZone' + (config.dropzoneOption?.dropzoneIndex || 0)\"\n type=\"file\"\n [accept]=\"config.dropzone?.dropZoneAvailableFiles\"\n [multiple]=\"config.dropzone?.multiple\"\n (change)=\"handleFileChange($event)\"\n style=\"display: none\"\n />\n</ng-template>\n\n<!--DROPZONE_TEXT-->\n<ng-template #dropzoneTextTemplate>\n <div\n class=\"dropzone-text d-flex flex-column align-items-center justify-content-center\"\n >\n <p\n class=\"upload-dropzone-text\"\n [ngClass]=\"{\n 'unsupported-text-big': isSupportedType,\n 'max-count': isMaxCountReached(),\n }\"\n >\n <ng-container *ngIf=\"isMaxCountReached(); else normalText\">\n MAX COUNT REACHED\n </ng-container>\n <ng-template #normalText>\n {{\n isSupportedType\n ? 'INVALID FILE TYPE'\n : 'DRAG ' + dropZoneText\n }}\n {{\n !(isSupportedType || (files && files.length)) ? ' HERE' : ''\n }}\n </ng-template>\n <ng-container\n *ngIf=\"_dropZoneConfigArray?.[0]?.template === 'mediaTemplate'\"\n >\n <p class=\"media-sizes\">max file size 50mb</p>\n </ng-container>\n </p>\n <ng-container *ngIf=\"!isDropzoneExpanded\">\n <span class=\"upload-dropzone-text-small\">\n <ng-container *ngIf=\"isMaxCountReached(); else formatText\">\n {{ files.length }} FILES IMPORTED\n </ng-container>\n <ng-template #formatText>\n {{\n isSupportedType\n ? 'SUPPORTED FORMATS'\n : 'OR CLICK TO ADD'\n }}\n </ng-template>\n </span>\n </ng-container>\n </div>\n</ng-template>\n\n<!------ICON-------->\n<ng-template #dropzoneIconTemplate>\n <svg-icon\n [src]=\"!isSupportedType && !isFileDrop ? iconSrc : dropzoneSvgRoute\"\n [ngClass]=\"{\n 'cancel-unsupported-zone': isSupportedType,\n 'svgIcon-document': files.length < 2,\n 'svg-small': files.length >= 2,\n }\"\n ></svg-icon>\n</ng-template>\n<!-- LOTTIE_ANIMATION -->\n<ng-template #lottieAnimationTemplate>\n <div\n class=\"animation-container d-flex flex-column align-items-center justify-content-center\"\n [ngClass]=\"{ expanded: isDropzoneExpanded }\"\n >\n <ng-lottie\n class=\"static-lottie-animation\"\n [options]=\"lottieOptions\"\n ></ng-lottie>\n </div>\n</ng-template>\n\n<!-- SUPPORTED_EXTENSIONS -->\n<ng-template #supportedExtensionsTemplate>\n <div class=\"supported-extensions d-flex justify-content-center\">\n <span\n class=\"extension extension-{{\n extension\n }} d-flex justify-content-center align-items-center\"\n *ngFor=\"let extension of dropZoneAvailableFiles; trackBy: identify\"\n >{{ extension }}</span\n >\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,.dropzone-container .dropzone-text .upload-dropzone-text-small{font-weight:600!important}.ca-font-bold,.dropzone-container .dropzone-text .upload-dropzone-text{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black,.dropzone-container .supported-extensions .extension{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-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-hover-muted svg path{transition:all .3s ease-in-out}.svg-hover-muted:hover svg path{fill:#919191!important}.svg-hover-black svg path{transition:all .3s ease-in-out}.svg-hover-black:hover svg path{fill:#424242!important}.svg-hover-blue-15 svg path{transition:all .3s ease-in-out}.svg-hover-blue-15:hover svg path{fill:#0b49d1!important}.svg-hover-bw6-2 svg path{transition:all .3s ease-in-out}.svg-hover-bw6-2:hover svg path{fill:#6c6c6c!important}.svg-hover-trash-red svg path{transition:all .3s ease-in-out}.svg-hover-trash-red:hover svg path{fill:#ff5050!important}.svg-hover-red-14 svg path{transition:all .3s ease-in-out}.svg-hover-red-14:hover svg path{fill:#c20c0c!important}.svg-size-12 svg{width:12px;height:12px}.svg-size-14 svg{width:14px;height:14px}.svg-size-16 svg{width:16px;height:16px}.svg-size-18 svg{width:18px;height:18px}.svg-size-44-16 svg{width:44px;height:16px}*{margin:0;font-family:Montserrat,sans-serif}html{scroll-behavior:auto!important}.gm-style-iw-chr,.gm-style-iw-tc{display:none}.gm-style .gm-style-iw-c{border-radius:0}.gm-style-iw{overflow-y:auto!important;overflow-x:hidden!important}.gm-style-iw>div{overflow:visible!important}.infoWindow{overflow:hidden!important}.gm-style-iw-d,.gm-style-iw.gm-style-iw-c{max-height:350px!important}::ng-deep .popover{--bs-popover-border-width: 0;--bs-popover-body-padding-y: 0;--bs-popover-body-padding-x: 0}::ng-deep .popover .popover-arrow{display:none}.dropzone-container{width:100%;height:178px;outline:4px dashed #eeeeee;border-radius:2px;position:relative;cursor:pointer;overflow:hidden}.dropzone-container.split-dropzone{width:auto!important}.dropzone-container.disabled-dropzone{pointer-events:none;opacity:.6;cursor:not-allowed}.dropzone-container:hover{background-color:#eee}.dropzone-container.dropzone-small{width:302px!important}.dropzone-container.expanded{height:458px}.dropzone-container.unSupported{outline-color:#ed9292;outline-offset:-4px;background-color:#fff}.dropzone-container .animation-container{height:auto;width:auto;overflow:hidden;position:relative;transition:transform .5s ease-in-out}.dropzone-container .animation-container .static-lottie-animation{width:100%;height:100%}.dropzone-container .animation-container.expanded{transition:height .5s ease-in-out}.dropzone-container .dropzone-content{gap:10px;position:relative;transition:transform .5s ease-in-out,opacity .5s ease-in-out}.dropzone-container .dropzone-content.column-layout{flex-direction:column;align-items:center;justify-content:center}.dropzone-container .dropzone-content .cancel-unsupported-zone{position:absolute}.dropzone-container .dropzone-content.dropzone-small{width:302px;height:100%}.dropzone-container .dropzone-content.expandedContent{flex-direction:column;transform:scale(1);opacity:1;top:-30px}.dropzone-container .upload-dropzone-unsupported{flex-direction:column;gap:12px;position:relative;width:100%;height:100%}.dropzone-container .svgIcon-document{width:100px;height:100px}.dropzone-container .svgIcon-document.svg-small svg-icon{width:80px!important;height:80px!important}.dropzone-container .svgIcon-document.big{width:200px;height:200px}.dropzone-container .dropzone-text{color:#424242;-webkit-user-select:none;user-select:none;pointer-events:none}.dropzone-container .dropzone-text .upload-dropzone-text{font-size:14px;line-height:18px;align-items:center;font-family:Montserrat,sans-serif;margin-bottom:0}.dropzone-container .dropzone-text .upload-dropzone-text.unsupported-text-big{color:#df3c3c}.dropzone-container .dropzone-text .upload-dropzone-text.max-count{text-align:center}.dropzone-container .dropzone-text .upload-dropzone-text-small{font-family:Montserrat,sans-serif;margin-top:4px;font-size:11px;line-height:14px;align-items:center}.dropzone-container .dropzone-text .upload-dropzone-text-small .media-sizes{font-size:11px;line-height:14px;color:#919191;margin-top:4px}.dropzone-container .cancel-unsupported-zone{position:absolute;top:6px;right:14px;cursor:pointer;width:12.6px;height:12.6px}.dropzone-container .supported-extensions{gap:4px}.dropzone-container .supported-extensions .extension{font-family:Montserrat,sans-serif;width:35px;height:18px;border-radius:1px;font-size:11px;color:#fff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-transform:uppercase}.dropzone-container .supported-extensions .extension-jpg,.dropzone-container .supported-extensions .extension-jpeg,.dropzone-container .supported-extensions .extension-png{background:#fab15c}.dropzone-container .supported-extensions .extension-pdf{background-color:#e66767}.dropzone-container .supported-extensions .extension-mov,.dropzone-container .supported-extensions .extension-mp4,.dropzone-container .supported-extensions .extension-avi{background-color:#b370f0}.dropzone-container .supported-extensions .extension:hover{transition:height .3s ease-in-out;opacity:1;cursor:auto!important}\n"] }]
280
280
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { templateRef: [{
281
281
  type: ViewChildren,
282
282
  args: [TemplateContainerDirective]
@@ -317,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
317
317
  type: HostListener,
318
318
  args: ['click', ['$event']]
319
319
  }] } });
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdXBsb2FkLWRyb3B6b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy9jb21wb25lbnRzL2NhLXVwbG9hZC1kcm9wem9uZS9jYS11cGxvYWQtZHJvcHpvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdXBsb2FkLWZpbGVzL2NvbXBvbmVudHMvY2EtdXBsb2FkLWRyb3B6b25lL2NhLXVwbG9hZC1kcm9wem9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVFuRSxPQUFPO0FBQ1AsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEdBQ1osTUFBTSxTQUFTLENBQUM7QUFFakIsTUFBTTtBQUNOLE9BQU8sRUFBRSxV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Z0JBY25DLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJ6QixVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvQjdCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9COUIsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCNUMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTaEMsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG90dGllQ29tcG9uZW50LCBwcm92aWRlTG90dGllT3B0aW9ucyB9IGZyb20gJ25neC1sb3R0aWUnO1xuXG4vL01vZGVsXG5pbXBvcnQgeyBEcm9wQmFja2dyb3VuZEV2ZW50LCBGaWxlQ29uZmlnLCBGaWxlRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vQ29uZmlnXG5pbXBvcnQgeyBEcm9wem9uZUNvbmYgfSBmcm9tICcuL2NvbmZpZy9kcm9wem9uZS1jb25maWcudHlwZSc7XG5cbi8vVXRpbHNcbmltcG9ydCB7XG4gICAgRmlsZUFuaW1hdGlvbixcbiAgICBGaWxlSWNvbnMsXG4gICAgRklMRV9FWFRFTlNJT05TLFxuICAgIExvdHRpZUNvbnN0YW50cyxcbiAgICBGaWxlTGltaXQsXG59IGZyb20gJy4vdXRpbHMnO1xuXG4vL0VudW1cbmltcG9ydCB7IEZpbGVBY3Rpb24sIEZpbGVUeXBlLCBQYWdlc0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy9EaXJlY3RpdmVcbmltcG9ydCB7IFRlbXBsYXRlQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5cbi8vSGVscGVyXG5pbXBvcnQgeyBGaWxlVXRpbHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vL1JvdXRlclxuaW1wb3J0IHsgRHJvcHpvbmVTdmdSb3V0ZSB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcy9kcm9wem9uZS1zdmcucm91dGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS11cGxvYWQtZHJvcHpvbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS11cGxvYWQtZHJvcHpvbmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLXVwbG9hZC1kcm9wem9uZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRlbXBsYXRlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBMb3R0aWVDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUxvdHRpZU9wdGlvbnMoe1xuICAgICAgICAgICAgcGxheWVyOiAoKSA9PiBpbXBvcnQoJ2xvdHRpZS13ZWInKSxcbiAgICAgICAgfSksXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyh3aW5kb3c6cGFzdGUpJzogJ2hhbmRsZVBhc3RlKCRldmVudCknLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhVXBsb2FkRHJvcHpvbmVDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGRyZW4oVGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmUpXG4gICAgdGVtcGxhdGVSZWYhOiBRdWVyeUxpc3Q8VGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bab25lJykgZHJvcFpvbmUhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KCkgc2V0IGNvbmZpZyhkYXRhOiBEcm9wem9uZUNvbmZbXSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Ryb3Bab25lQ29uZmlnQXJyYXkgPSBkYXRhO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Ryb3Bab25lQ29uZmlnQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3Bab25lQ29uZmlnID0gdGhpcy5fZHJvcFpvbmVDb25maWdBcnJheVswXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9JY29uc1xuICAgICAgICAgICAgdGhpcy5nZXRJY29ucygpO1xuXG4gICAgICAgICAgICAvL1N1cHBvcnRlZCBmaWxlc1xuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRGaWxlcygpO1xuXG4gICAgICAgICAgICAvL0Ryb3B6b25lIHRleHRcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRHJvcFpvbmVUZXh0KCk7XG5cbiAgICAgICAgICAgIC8vTG90dGllXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxvdHRpZU9wdGlvbnMoKTtcblxuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbiAgICBASW5wdXQoKSBpc0Ryb3B6b25lU2hvd25JbkNyb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21XaWR0aCE6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uRmlsZUV2ZW50OiBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUNvbmZpZ1tdOyBhY3Rpb246IHN0cmluZyB9PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUNvbmZpZ1tdOyBhY3Rpb246IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBvbkRyb3BCYWNrZ3JvdW5kOiBFdmVudEVtaXR0ZXI8RHJvcEJhY2tncm91bmRFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPERyb3BCYWNrZ3JvdW5kRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGNsb3NlRHJvcHpvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHt9PigpO1xuXG4gICAgcHVibGljIF9kcm9wWm9uZUNvbmZpZ0FycmF5OiBEcm9wem9uZUNvbmZbXSA9IFtdO1xuICAgIHB1YmxpYyBfZHJvcFpvbmVDb25maWchOiBEcm9wem9uZUNvbmY7XG4gICAgcHVibGljIGZpbGVzOiBGaWxlQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgaXNTaG93bkRyb3B6b25lRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNGaWxlRHJvcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1N1cHBvcnRlZFR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZHJvcFpvbmVUZXh0OiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgaXNEcm9wem9uZUV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGljb25TcmM6IHN0cmluZyA9ICcnO1xuICAgIHB1YmxpYyBkcm9wWm9uZUF2YWlsYWJsZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHB1YmxpYyBsaW1pdDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBsb3R0aWVPcHRpb25zID0gTG90dGllQ29uc3RhbnRzLkRFRkFVTFRfTE9UVElFO1xuICAgIHB1YmxpYyBkcm9wem9uZVN2Z1JvdXRlID0gRHJvcHpvbmVTdmdSb3V0ZS5jbG9zZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JvZHk6ZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnTGVhdmVXaW5kb3dzKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogRmlsZUFjdGlvbi5EUkFHTEVBVkUsXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1Nob3duRHJvcHpvbmVGb2N1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRmlsZURyb3AgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHsgYWN0aW9uOiBGaWxlQWN0aW9uLkRST1AsIHZhbHVlOiBmYWxzZSB9KTtcblxuICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcykge1xuICAgICAgICAgICAgdGhpcy5vbkZpbGVVcGxvYWQoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgICAgIHRoaXMuaXNGaWxlRHJvcCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc1Nob3duRHJvcHpvbmVGb2N1cyA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNEcm9wem9uZUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbkRyb3BCYWNrZ3JvdW5kLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiBGaWxlQWN0aW9uLkRSQUdPVkVSLFxuICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmxvdHRpZU9wdGlvbnMgJiYgIXRoaXMubG90dGllT3B0aW9ucy5hdXRvcGxheSkge1xuICAgICAgICAgICAgdGhpcy5sb3R0aWVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMubG90dGllT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNGaWxlRHJvcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRHJvcHpvbmVFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgICAgICB0aGlzLm9uRHJvcEJhY2tncm91bmQuZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246IEZpbGVBY3Rpb24uRFJBR0xFQVZFLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6ZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25XaW5kb3dEcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRHJvcHpvbmVFeHBhbmRlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmVcbiAgICAgICAgICAgID8uZHJvcFpvbmVUeXBlIGFzIEZpbGVUeXBlO1xuICAgICAgICBjb25zdCBhbmltYXRpb25QYXRoID0gRmlsZUFuaW1hdGlvbi5BTklNQVRJT05TW2ZpbGVUeXBlXTtcblxuICAgICAgICBpZiAoYW5pbWF0aW9uUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5sb3R0aWVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHJlbmRlcmVyOiAnc3ZnJyxcbiAgICAgICAgICAgICAgICBhdXRvcGxheTogIXRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGF0aDogYW5pbWF0aW9uUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6ZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25XaW5kb3dEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHsgYWN0aW9uOiBGaWxlQWN0aW9uLkRST1AsIHZhbHVlOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIHRyaWdnZXJGaWxlSW5wdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNNYXhDb3VudFJlYWNoZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJvcFpvbmUubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJY29ucygpIHtcbiAgICAgICAgdGhpcy5pY29uU3JjID1cbiAgICAgICAgICAgIEZpbGVJY29ucy5JQ09OU1tcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VwcG9ydGVkRmlsZXMoKSB7XG4gICAgICAgIHRoaXMuZHJvcFpvbmVBdmFpbGFibGVGaWxlcyA9XG4gICAgICAgICAgICBGSUxFX0VYVEVOU0lPTlMuRVhURU5TSU9OU1tcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvL2xpbWl0IGZpbGVzXG4gICAgcHVibGljIG1heEZpbGVzQWxsb3dlZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gRmlsZUxpbWl0LkxJTUlUW1xuICAgICAgICAgICAgdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZVBhZ2VzIGFzIFBhZ2VzRW51bVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc01heENvdW50UmVhY2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgdGhpcy5saW1pdCA9XG4gICAgICAgICAgICBGaWxlTGltaXQuTElNSVRbXG4gICAgICAgICAgICAgICAgdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZVBhZ2VzIGFzIFBhZ2VzRW51bVxuICAgICAgICAgICAgXSB8fCAwO1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggPj0gdGhpcy5saW1pdDtcbiAgICB9XG5cbiAgICAvL0ZpbGVzXG4gICAgcHVibGljIGhhbmRsZUZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmIChpbnB1dC5maWxlcykge1xuICAgICAgICAgICAgdGhpcy5vbkZpbGVVcGxvYWQoaW5wdXQuZmlsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsZVVwbG9hZChmaWxlczogRmlsZUxpc3QpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZUFycmF5ID0gQXJyYXkuZnJvbShmaWxlcyk7XG5cbiAgICAgICAgY29uc3QgdXBsb2FkT2JzZXJ2YWJsZXMgPSBmaWxlQXJyYXkubWFwKChmaWxlLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHRoaXMuYWRkRmlsZShmaWxlLCBpbmRleCA9PT0gZmlsZUFycmF5Lmxlbmd0aCAtIDEpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZyb20odXBsb2FkT2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHVwbG9hZGluZyBmaWxlczonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBbGwgZmlsZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRmlsZShmaWxlOiBGaWxlLCBlbWl0RXZlbnQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghZmlsZSkgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gRmlsZVV0aWxzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFGaWxlVXRpbHMuaXNTdXBwb3J0ZWRFeHRlbnNpb24oXG4gICAgICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVBdmFpbGFibGVGaWxlc1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2Ryb3Bab25lQ29uZmlnLmNvbmZpZy5kcm9wem9uZU9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgPy5kaXNhYmxlVW5zdXBwb3J0ZWRQcmV2aWV3XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdXBwb3J0ZWRUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlzU3VwcG9ydGVkVHlwZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBGaWxlVXRpbHMuZ2V0QmxvYihmaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChibG9iQ29udGVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBibG9iVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogZmlsZUV4dGVuc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsRmlsZTogYmxvYkNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBGaWxlQWN0aW9uLkFERCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlYWRpbmcgZmlsZTonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FudCB1cGxvYWQgZmlsZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Mb3R0aWVcbiAgICBwcml2YXRlIHVwZGF0ZUxvdHRpZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVUeXBlID0gdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lXG4gICAgICAgICAgICA/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uUGF0aCA9IEZpbGVBbmltYXRpb24uQU5JTUFUSU9OU1tmaWxlVHlwZV07XG5cbiAgICAgICAgaWYgKGFuaW1hdGlvblBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMubG90dGllT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICByZW5kZXJlcjogJ3N2ZycsXG4gICAgICAgICAgICAgICAgYXV0b3BsYXk6ICF0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhdGg6IGFuaW1hdGlvblBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Ecm9wem9uZSB0ZXh0XG4gICAgcHJpdmF0ZSB1cGRhdGVEcm9wWm9uZVRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRyb3Bab25lVGV4dE1hcDogeyBba2V5IGluIEZpbGVUeXBlXT86IHN0cmluZyB9ID0ge1xuICAgICAgICAgICAgW0ZpbGVUeXBlLkZJTEVTXTogJ0ZJTEVTJyxcbiAgICAgICAgICAgIFtGaWxlVHlwZS5NRURJQV06ICdNRURJQScsXG4gICAgICAgICAgICBbRmlsZVR5cGUuSU1BR0VdOiAnSU1BR0UnLFxuICAgICAgICAgICAgW0ZpbGVUeXBlLkxPR09dOiAnSU1BR0UnLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZHJvcFpvbmVUZXh0ID1cbiAgICAgICAgICAgIGRyb3Bab25lVGV4dE1hcFtcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXSB8fCAnRklMRSBJTVBPUlQgRkFJTEVEJztcbiAgICB9XG5cbiAgICAvL1RlbXBsYXRlXG4gICAgZ2V0VGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQgPVxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVJlZj8uZmluZCgodGVtcCkgPT4gdGVtcC5pZCA9PT0gdGVtcGxhdGUpO1xuXG4gICAgICAgIGlmICghdGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hdmFpbGFibGUgdGVtcGxhdGUhJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGVtcGxhdGVSZWY/LnRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImRyb3B6b25lLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NwbGl0LWRyb3B6b25lJzogaXNEcm9wem9uZVNob3duSW5Dcm9wLFxuICAgICAgICB1blN1cHBvcnRlZDogaXNTdXBwb3J0ZWRUeXBlLFxuICAgICAgICBleHBhbmRlZDogaXNEcm9wem9uZUV4cGFuZGVkICYmICFpc1N1cHBvcnRlZFR5cGUsXG4gICAgICAgICdkaXNhYmxlZC1kcm9wem9uZSc6IGZpbGVzLmxlbmd0aCA+PSB0aGlzLmxpbWl0ICYmIHRoaXMubGltaXQgPiAwLFxuICAgIH1cIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6XG4gICAgICAgICAgICBmaWxlcy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICA/IGN1c3RvbVdpZHRoIHx8ICc0NDhweCdcbiAgICAgICAgICAgICAgICA6IGZpbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgICAgPyAnMjk2cHgnXG4gICAgICAgICAgICAgICAgICA6IGZpbGVzLmxlbmd0aCA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICcxNDhweCdcbiAgICAgICAgICAgICAgICAgICAgOiBmaWxlcy5sZW5ndGggPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICA/ICcxNDhweCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICcxNDhweCcsXG4gICAgfVwiXG4+XG4gICAgQGZvciAoaXRlbSBvZiBfZHJvcFpvbmVDb25maWdBcnJheTsgdHJhY2sgaWRlbnRpZnkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3VwbG9hZC1kcm9wem9uZS11bnN1cHBvcnRlZCc6IGlzU3VwcG9ydGVkVHlwZSxcbiAgICAgICAgICAgICAgICBleHBhbmRlZENvbnRlbnQ6IGlzRHJvcHpvbmVFeHBhbmRlZCxcbiAgICAgICAgICAgICAgICAnY29sdW1uLWxheW91dCc6IGZpbGVzLmxlbmd0aCA+PSAyLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBnZXRUZW1wbGF0ZShpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0uY29uZmlnIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuPCEtLS0tLS0tLS0tLS0tRG9jdW1lbnQgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImRvY3VtZW50c1RlbXBsYXRlXCIgbGV0LWNvbmZpZz5cbiAgICA8IS0tU1ZHIElDT04tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd25Ecm9wem9uZUZvY3VzICYmICFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tTG90dGllIGFuaW1hdGlvbi0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIoaXNEcm9wem9uZUV4cGFuZGVkIHx8IGlzU2hvd25Ecm9wem9uZUZvY3VzKSAmJiAhaXNTdXBwb3J0ZWRUeXBlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG90dGllQW5pbWF0aW9uVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tQ29udGVudCBmb3Igc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCB0eXBlcy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZVRleHRUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1TdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgdW5zdXBwb3J0ZWQgdHlwZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N1cHBvcnRlZFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdXBwb3J0ZWRFeHRlbnNpb25zVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tRklMRSBJTlBVVC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlSW5wdXRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbmZpZyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tLS0tLS0tLS0tLS1NZWRpYSB0ZW1wbGF0ZS0tLS0tLS0tLS0tLS0tPlxuPG5nLXRlbXBsYXRlIHRlbXBsYXRlQ29udGFpbmVyIGlkPVwibWVkaWFUZW1wbGF0ZVwiIGxldC1jb25maWc+XG4gICAgPCEtLVNWRyBJQ09OLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1Nob3duRHJvcHpvbmVGb2N1cyAmJiAhaXNEcm9wem9uZUV4cGFuZGVkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZUljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUxvdHRpZSBhbmltYXRpb24tLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiKGlzRHJvcHpvbmVFeHBhbmRlZCB8fCBpc1Nob3duRHJvcHpvbmVGb2N1cykgJiYgIWlzU3VwcG9ydGVkVHlwZVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxvdHRpZUFuaW1hdGlvblRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUNvbnRlbnQgZm9yIHN1cHBvcnRlZCBhbmQgdW5zdXBwb3J0ZWQgdHlwZXMtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVUZXh0VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tU3VwcG9ydGVkIGV4dGVuc2lvbnMgZm9yIHVuc3VwcG9ydGVkIHR5cGUtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTdXBwb3J0ZWRUeXBlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VwcG9ydGVkRXh0ZW5zaW9uc1RlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUZJTEUgSU5QVVQtLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUlucHV0VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb25maWcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLS0tLS0tLS0tLS0tSW1hZ2UgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImltYWdlVGVtcGxhdGVcIiBsZXQtY29uZmlnPlxuICAgIDwhLS1TVkcgSUNPTi0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93bkRyb3B6b25lRm9jdXMgJiYgIWlzRHJvcHpvbmVFeHBhbmRlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Mb3R0aWUgYW5pbWF0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIihpc0Ryb3B6b25lRXhwYW5kZWQgfHwgaXNTaG93bkRyb3B6b25lRm9jdXMpICYmICFpc1N1cHBvcnRlZFR5cGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb3R0aWVBbmltYXRpb25UZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Db250ZW50IGZvciBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIHR5cGVzLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lVGV4dFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLVN1cHBvcnRlZCBleHRlbnNpb25zIGZvciB1bnN1cHBvcnRlZCB0eXBlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3VwcG9ydGVkVHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN1cHBvcnRlZEV4dGVuc2lvbnNUZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1GSUxFIElOUFVULS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVJbnB1dFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tLS0tLS0tLUltYWdlIENyb3AgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImltYWdlQ3JvcFRlbXBsYXRlXCIgbGV0LWNvbmZpZz5cbiAgICA8IS0tU1ZHIElDT04tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd25Ecm9wem9uZUZvY3VzICYmICFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tTG90dGllIGFuaW1hdGlvbi0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIoaXNEcm9wem9uZUV4cGFuZGVkIHx8IGlzU2hvd25Ecm9wem9uZUZvY3VzKSAmJiAhaXNTdXBwb3J0ZWRUeXBlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG90dGllQW5pbWF0aW9uVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tQ29udGVudCBmb3Igc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCB0eXBlcy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZVRleHRUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1TdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgdW5zdXBwb3J0ZWQgdHlwZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N1cHBvcnRlZFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdXBwb3J0ZWRFeHRlbnNpb25zVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tRklMRSBJTlBVVC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlSW5wdXRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbmZpZyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tLS0tLS0tLS0tLS1Mb2dvIHRlbXBsYXRlLS0tLS0tLS0tLS0tLS0+XG48bmctdGVtcGxhdGUgdGVtcGxhdGVDb250YWluZXIgaWQ9XCJsb2dvVGVtcGxhdGVcIiBsZXQtY29uZmlnPlxuICAgIDwhLS1TVkcgSUNPTi0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93bkRyb3B6b25lRm9jdXMgJiYgIWlzRHJvcHpvbmVFeHBhbmRlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Mb3R0aWUgYW5pbWF0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIihpc0Ryb3B6b25lRXhwYW5kZWQgfHwgaXNTaG93bkRyb3B6b25lRm9jdXMpICYmICFpc1N1cHBvcnRlZFR5cGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb3R0aWVBbmltYXRpb25UZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Db250ZW50IGZvciBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIHR5cGVzLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lVGV4dFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLVN1cHBvcnRlZCBleHRlbnNpb25zIGZvciB1bnN1cHBvcnRlZCB0eXBlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3VwcG9ydGVkVHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN1cHBvcnRlZEV4dGVuc2lvbnNUZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1GSUxFIElOUFVULS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVJbnB1dFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tLS0tLS0tLS1DT01NT04tVEVNUExBVEUtLS0tLS0tLS0tLS0tLT5cblxuPCEtLS0tLS1JTlBVVC0tLS0tLS0+XG48bmctdGVtcGxhdGUgI2ZpbGVJbnB1dFRlbXBsYXRlIGxldC1jb25maWc+XG4gICAgPGlucHV0XG4gICAgICAgICNkcm9wWm9uZVxuICAgICAgICBbaWRdPVwiJ2Ryb3Bab25lJyArIChjb25maWcuZHJvcHpvbmVPcHRpb24/LmRyb3B6b25lSW5kZXggfHwgMClcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIFthY2NlcHRdPVwiY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZUF2YWlsYWJsZUZpbGVzXCJcbiAgICAgICAgW211bHRpcGxlXT1cImNvbmZpZy5kcm9wem9uZT8ubXVsdGlwbGVcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS1EUk9QWk9ORV9URVhULS0+XG48bmctdGVtcGxhdGUgI2Ryb3B6b25lVGV4dFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wem9uZS10ZXh0IGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgPlxuICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJ1cGxvYWQtZHJvcHpvbmUtdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Vuc3VwcG9ydGVkLXRleHQtYmlnJzogaXNTdXBwb3J0ZWRUeXBlLFxuICAgICAgICAgICAgICAgICdtYXgtY291bnQnOiBpc01heENvdW50UmVhY2hlZCgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01heENvdW50UmVhY2hlZCgpOyBlbHNlIG5vcm1hbFRleHRcIj5cbiAgICAgICAgICAgICAgICBNQVggQ09VTlQgUkVBQ0hFRFxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFRleHQ+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgaXNTdXBwb3J0ZWRUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdJTlZBTElEIEZJTEUgVFlQRSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ0RSQUcgJyArIGRyb3Bab25lVGV4dFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgIShpc1N1cHBvcnRlZFR5cGUgfHwgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkpID8gJyBIRVJFJyA6ICcnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJfZHJvcFpvbmVDb25maWdBcnJheT8uWzBdPy50ZW1wbGF0ZSA9PT0gJ21lZGlhVGVtcGxhdGUnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1lZGlhLXNpemVzXCI+bWF4IGZpbGUgc2l6ZSA1MG1iPC9wPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWRyb3B6b25lLXRleHQtc21hbGxcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNYXhDb3VudFJlYWNoZWQoKTsgZWxzZSBmb3JtYXRUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpbGVzLmxlbmd0aCB9fSBGSUxFUyBJTVBPUlRFRFxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9ybWF0VGV4dD5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3VwcG9ydGVkVHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1NVUFBPUlRFRCBGT1JNQVRTJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ09SIENMSUNLIFRPIEFERCdcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tSUNPTi0tLS0tLS0tPlxuPG5nLXRlbXBsYXRlICNkcm9wem9uZUljb25UZW1wbGF0ZT5cbiAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCIhaXNTdXBwb3J0ZWRUeXBlICYmICFpc0ZpbGVEcm9wID8gaWNvblNyYyA6IGRyb3B6b25lU3ZnUm91dGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY2FuY2VsLXVuc3VwcG9ydGVkLXpvbmUnOiBpc1N1cHBvcnRlZFR5cGUsXG4gICAgICAgICAgICAnc3ZnSWNvbi1kb2N1bWVudCc6IGZpbGVzLmxlbmd0aCA8IDIsXG4gICAgICAgICAgICAnc3ZnLXNtYWxsJzogZmlsZXMubGVuZ3RoID49IDIsXG4gICAgICAgIH1cIlxuICAgID48L3N2Zy1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gTE9UVElFX0FOSU1BVElPTiAtLT5cbjxuZy10ZW1wbGF0ZSAjbG90dGllQW5pbWF0aW9uVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFuaW1hdGlvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBleHBhbmRlZDogaXNEcm9wem9uZUV4cGFuZGVkIH1cIlxuICAgID5cbiAgICAgICAgPG5nLWxvdHRpZVxuICAgICAgICAgICAgY2xhc3M9XCJzdGF0aWMtbG90dGllLWFuaW1hdGlvblwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJsb3R0aWVPcHRpb25zXCJcbiAgICAgICAgPjwvbmctbG90dGllPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBTVVBQT1JURURfRVhURU5TSU9OUyAtLT5cbjxuZy10ZW1wbGF0ZSAjc3VwcG9ydGVkRXh0ZW5zaW9uc1RlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJzdXBwb3J0ZWQtZXh0ZW5zaW9ucyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJleHRlbnNpb24gZXh0ZW5zaW9uLXt7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uXG4gICAgICAgICAgICB9fSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGV4dGVuc2lvbiBvZiBkcm9wWm9uZUF2YWlsYWJsZUZpbGVzOyB0cmFja0J5OiBpZGVudGlmeVwiXG4gICAgICAgICAgICA+e3sgZXh0ZW5zaW9uIH19PC9zcGFuXG4gICAgICAgID5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdXBsb2FkLWRyb3B6b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLXVwbG9hZC1maWxlcy9jb21wb25lbnRzL2NhLXVwbG9hZC1kcm9wem9uZS9jYS11cGxvYWQtZHJvcHpvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdXBsb2FkLWZpbGVzL2NvbXBvbmVudHMvY2EtdXBsb2FkLWRyb3B6b25lL2NhLXVwbG9hZC1kcm9wem9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVFuRSxPQUFPO0FBQ1AsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEdBQ1osTUFBTSxTQUFTLENBQUM7QUFFakIsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sU0FBUyxDQUFDO0FBRTFELFdBQVc7QUFDWCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RSxRQUFRO0FBQ1IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxRQUFRO0FBQ1IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUEwQjFFLE1BQU0sT0FBTyx5QkFBeUI7SUFLbEMsSUFBYSxNQUFNLENBQUMsSUFBb0I7UUFDcEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBRUQsT0FBTztZQUNQLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVoQixpQkFBaUI7WUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXRCLGVBQWU7WUFDZixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUUxQixRQUFRO1lBQ1IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFFM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBMEJELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekJqQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFJaEQsZ0JBQVcsR0FDUCxJQUFJLFlBQVksRUFBMkMsQ0FBQztRQUN0RCxxQkFBZ0IsR0FDdEIsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTSxDQUFDO1FBRTFDLHlCQUFvQixHQUFtQixFQUFFLENBQUM7UUFFMUMsVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDekIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsMkJBQXNCLEdBQWEsRUFBRSxDQUFDO1FBQ3RDLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFbEIsa0JBQWEsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDO1FBQy9DLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUVKLENBQUM7SUFHdkMsa0JBQWtCLENBQUMsS0FBZ0I7UUFDdEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDNUIsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDUCxDQUFDO0lBR00sTUFBTSxDQUFDLEtBQWdCO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUV0RSxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBR00sVUFBVSxDQUFDLEtBQWdCO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDM0IsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ2pCLEdBQUcsSUFBSSxDQUFDLGFBQWE7Z0JBQ3JCLFFBQVEsRUFBRSxJQUFJO2FBQ2pCLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUdNLFdBQVcsQ0FBQyxLQUFnQjtRQUMvQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUNuQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLFNBQVM7WUFDNUIsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7SUFDUCxDQUFDO0lBR00saUJBQWlCLENBQUMsS0FBZ0I7UUFDckMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNqRCxFQUFFLFlBQXdCLENBQUM7UUFDL0IsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ3BDLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxhQUFhO2FBQ3RCLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUdELFlBQVksQ0FBQyxLQUFnQjtRQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFHTSxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsT0FBTztZQUNSLFNBQVMsQ0FBQyxLQUFLLENBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQXdCLENBQ2pFLENBQUM7SUFDVixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsc0JBQXNCO1lBQ3ZCLGVBQWUsQ0FBQyxVQUFVLENBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxZQUF3QixDQUNqRSxDQUFDO0lBQ1YsQ0FBQztJQUVELGFBQWE7SUFDTixlQUFlO1FBQ2xCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGFBQTBCLENBQ25FLENBQUM7SUFDTixDQUFDO0lBRU0saUJBQWlCO1FBQ3BCLElBQUksQ0FBQyxLQUFLO1lBQ04sU0FBUyxDQUFDLEtBQUssQ0FDWCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsYUFBMEIsQ0FDbkUsSUFBSSxDQUFDLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU87SUFDQSxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBQy9DLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBZTtRQUMvQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FDckQsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUMvQixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFVLEVBQUUsU0FBbUI7UUFDM0MsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksQ0FBQztZQUNELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFNUQsSUFDSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDM0IsYUFBYSxFQUNiLElBQUksQ0FBQyxzQkFBc0IsQ0FDOUIsRUFDSCxDQUFDO2dCQUNDLElBQ0ksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxjQUFjO29CQUN2QyxFQUFFLHlCQUF5QixFQUNqQyxDQUFDO29CQUNDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2dCQUNoQyxDQUFDO2dCQUNELE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFFN0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzlCLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO29CQUNsQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHO3dCQUNULEdBQUcsSUFBSSxDQUFDLEtBQUs7d0JBQ2I7NEJBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNuQixHQUFHLEVBQUUsT0FBTzs0QkFDWixTQUFTLEVBQUUsYUFBYTs0QkFDeEIsSUFBSSxFQUFFLElBQUk7NEJBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNmLFFBQVEsRUFBRSxXQUFXO3lCQUN4QjtxQkFDSixDQUFDO29CQUVGLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7NEJBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzs0QkFDakIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxHQUFHO3lCQUN6QixDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO2dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7SUFDQSxtQkFBbUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNqRCxFQUFFLFlBQXdCLENBQUM7UUFDL0IsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ3BDLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxhQUFhO2FBQ3RCLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDUCxrQkFBa0I7UUFDdEIsTUFBTSxlQUFlLEdBQW1DO1lBQ3BELENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU87WUFDekIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztZQUN6QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPO1lBQ3pCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU87U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZO1lBQ2IsZUFBZSxDQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxZQUF3QixDQUNqRSxJQUFJLG9CQUFvQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVO0lBQ1YsV0FBVyxDQUFDLFFBQWdCO1FBQ3hCLE1BQU0sV0FBVyxHQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsT0FBTyxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOytHQTNUUSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwybUJBWHZCO1lBQ1Asb0JBQW9CLENBQUM7Z0JBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3JDLENBQUM7U0FDTCxpSkFRYSwwQkFBMEIsZ0RDekU1Qyw4cFVBMlNBLDgwb0JEclBRLFlBQVkseWxCQUNaLG9CQUFvQixnT0FDcEIsV0FBVywrQkFFWCwwQkFBMEIsZ0ZBQzFCLGVBQWU7OzRGQWFWLHlCQUF5QjtrQkF4QnJDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHdCQUF3QixXQUd6Qjt3QkFDTCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsZUFBZTtxQkFDbEIsYUFDVTt3QkFDUCxvQkFBb0IsQ0FBQzs0QkFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7eUJBQ3JDLENBQUM7cUJBQ0wsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixnQkFBZ0IsRUFBRSxxQkFBcUI7cUJBQzFDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3NGQUkvQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsMEJBQTBCO2dCQUVqQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRVIsTUFBTTtzQkFBbEIsS0FBSztnQkFzQkcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNO2dCQUdHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQW9CQSxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBY25DLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJ6QixVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvQjdCLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9COUIsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCNUMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTaEMsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG90dGllQ29tcG9uZW50LCBwcm92aWRlTG90dGllT3B0aW9ucyB9IGZyb20gJ25neC1sb3R0aWUnO1xuXG4vL01vZGVsXG5pbXBvcnQgeyBEcm9wQmFja2dyb3VuZEV2ZW50LCBGaWxlQ29uZmlnLCBGaWxlRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vQ29uZmlnXG5pbXBvcnQgeyBEcm9wem9uZUNvbmYgfSBmcm9tICcuL2NvbmZpZy9kcm9wem9uZS1jb25maWcudHlwZSc7XG5cbi8vVXRpbHNcbmltcG9ydCB7XG4gICAgRmlsZUFuaW1hdGlvbixcbiAgICBGaWxlSWNvbnMsXG4gICAgRklMRV9FWFRFTlNJT05TLFxuICAgIExvdHRpZUNvbnN0YW50cyxcbiAgICBGaWxlTGltaXQsXG59IGZyb20gJy4vdXRpbHMnO1xuXG4vL0VudW1cbmltcG9ydCB7IEZpbGVBY3Rpb24sIEZpbGVUeXBlLCBQYWdlc0VudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy9EaXJlY3RpdmVcbmltcG9ydCB7IFRlbXBsYXRlQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5cbi8vSGVscGVyXG5pbXBvcnQgeyBGaWxlVXRpbHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vL1JvdXRlclxuaW1wb3J0IHsgRHJvcHpvbmVTdmdSb3V0ZSB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcy9kcm9wem9uZS1zdmcucm91dGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS11cGxvYWQtZHJvcHpvbmUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS11cGxvYWQtZHJvcHpvbmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLXVwbG9hZC1kcm9wem9uZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRlbXBsYXRlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBMb3R0aWVDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUxvdHRpZU9wdGlvbnMoe1xuICAgICAgICAgICAgcGxheWVyOiAoKSA9PiBpbXBvcnQoJ2xvdHRpZS13ZWInKSxcbiAgICAgICAgfSksXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyh3aW5kb3c6cGFzdGUpJzogJ2hhbmRsZVBhc3RlKCRldmVudCknLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhVXBsb2FkRHJvcHpvbmVDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGRyZW4oVGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmUpXG4gICAgdGVtcGxhdGVSZWYhOiBRdWVyeUxpc3Q8VGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmU+O1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bab25lJykgZHJvcFpvbmUhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KCkgc2V0IGNvbmZpZyhkYXRhOiBEcm9wem9uZUNvbmZbXSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Ryb3Bab25lQ29uZmlnQXJyYXkgPSBkYXRhO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Ryb3Bab25lQ29uZmlnQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Ryb3Bab25lQ29uZmlnID0gdGhpcy5fZHJvcFpvbmVDb25maWdBcnJheVswXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9JY29uc1xuICAgICAgICAgICAgdGhpcy5nZXRJY29ucygpO1xuXG4gICAgICAgICAgICAvL1N1cHBvcnRlZCBmaWxlc1xuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRGaWxlcygpO1xuXG4gICAgICAgICAgICAvL0Ryb3B6b25lIHRleHRcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRHJvcFpvbmVUZXh0KCk7XG5cbiAgICAgICAgICAgIC8vTG90dGllXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxvdHRpZU9wdGlvbnMoKTtcblxuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIDApO1xuICAgIH1cbiAgICBASW5wdXQoKSBpc0Ryb3B6b25lU2hvd25JbkNyb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21XaWR0aCE6IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uRmlsZUV2ZW50OiBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUNvbmZpZ1tdOyBhY3Rpb246IHN0cmluZyB9PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8eyBmaWxlczogRmlsZUNvbmZpZ1tdOyBhY3Rpb246IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBvbkRyb3BCYWNrZ3JvdW5kOiBFdmVudEVtaXR0ZXI8RHJvcEJhY2tncm91bmRFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPERyb3BCYWNrZ3JvdW5kRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGNsb3NlRHJvcHpvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHt9PigpO1xuXG4gICAgcHVibGljIF9kcm9wWm9uZUNvbmZpZ0FycmF5OiBEcm9wem9uZUNvbmZbXSA9IFtdO1xuICAgIHB1YmxpYyBfZHJvcFpvbmVDb25maWchOiBEcm9wem9uZUNvbmY7XG4gICAgcHVibGljIGZpbGVzOiBGaWxlQ29uZmlnW10gPSBbXTtcbiAgICBwdWJsaWMgaXNTaG93bkRyb3B6b25lRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNGaWxlRHJvcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1N1cHBvcnRlZFR5cGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZHJvcFpvbmVUZXh0OiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgaXNEcm9wem9uZUV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGljb25TcmM6IHN0cmluZyA9ICcnO1xuICAgIHB1YmxpYyBkcm9wWm9uZUF2YWlsYWJsZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHB1YmxpYyBsaW1pdDogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBsb3R0aWVPcHRpb25zID0gTG90dGllQ29uc3RhbnRzLkRFRkFVTFRfTE9UVElFO1xuICAgIHB1YmxpYyBkcm9wem9uZVN2Z1JvdXRlID0gRHJvcHpvbmVTdmdSb3V0ZS5jbG9zZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JvZHk6ZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnTGVhdmVXaW5kb3dzKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHtcbiAgICAgICAgICAgIGFjdGlvbjogRmlsZUFjdGlvbi5EUkFHTEVBVkUsXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1Nob3duRHJvcHpvbmVGb2N1cyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRmlsZURyb3AgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHsgYWN0aW9uOiBGaWxlQWN0aW9uLkRST1AsIHZhbHVlOiBmYWxzZSB9KTtcblxuICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcykge1xuICAgICAgICAgICAgdGhpcy5vbkZpbGVVcGxvYWQoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgICAgIHRoaXMuaXNGaWxlRHJvcCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc1Nob3duRHJvcHpvbmVGb2N1cyA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNEcm9wem9uZUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbkRyb3BCYWNrZ3JvdW5kLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiBGaWxlQWN0aW9uLkRSQUdPVkVSLFxuICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmxvdHRpZU9wdGlvbnMgJiYgIXRoaXMubG90dGllT3B0aW9ucy5hdXRvcGxheSkge1xuICAgICAgICAgICAgdGhpcy5sb3R0aWVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMubG90dGllT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNGaWxlRHJvcCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRHJvcHpvbmVFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAxMDApO1xuICAgICAgICB0aGlzLm9uRHJvcEJhY2tncm91bmQuZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246IEZpbGVBY3Rpb24uRFJBR0xFQVZFLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6ZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25XaW5kb3dEcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5pc0ZpbGVEcm9wID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzRHJvcHpvbmVFeHBhbmRlZCA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgZmlsZVR5cGUgPSB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmVcbiAgICAgICAgICAgID8uZHJvcFpvbmVUeXBlIGFzIEZpbGVUeXBlO1xuICAgICAgICBjb25zdCBhbmltYXRpb25QYXRoID0gRmlsZUFuaW1hdGlvbi5BTklNQVRJT05TW2ZpbGVUeXBlXTtcblxuICAgICAgICBpZiAoYW5pbWF0aW9uUGF0aCkge1xuICAgICAgICAgICAgdGhpcy5sb3R0aWVPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIHJlbmRlcmVyOiAnc3ZnJyxcbiAgICAgICAgICAgICAgICBhdXRvcGxheTogIXRoaXMuaXNTaG93bkRyb3B6b25lRm9jdXMsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGF0aDogYW5pbWF0aW9uUGF0aCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6ZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25XaW5kb3dEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Ryb3B6b25lRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub25Ecm9wQmFja2dyb3VuZC5lbWl0KHsgYWN0aW9uOiBGaWxlQWN0aW9uLkRST1AsIHZhbHVlOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIHRyaWdnZXJGaWxlSW5wdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNNYXhDb3VudFJlYWNoZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJvcFpvbmUubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJY29ucygpIHtcbiAgICAgICAgdGhpcy5pY29uU3JjID1cbiAgICAgICAgICAgIEZpbGVJY29ucy5JQ09OU1tcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3VwcG9ydGVkRmlsZXMoKSB7XG4gICAgICAgIHRoaXMuZHJvcFpvbmVBdmFpbGFibGVGaWxlcyA9XG4gICAgICAgICAgICBGSUxFX0VYVEVOU0lPTlMuRVhURU5TSU9OU1tcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvL2xpbWl0IGZpbGVzXG4gICAgcHVibGljIG1heEZpbGVzQWxsb3dlZCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gRmlsZUxpbWl0LkxJTUlUW1xuICAgICAgICAgICAgdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZVBhZ2VzIGFzIFBhZ2VzRW51bVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc01heENvdW50UmVhY2hlZCgpOiBib29sZWFuIHtcbiAgICAgICAgdGhpcy5saW1pdCA9XG4gICAgICAgICAgICBGaWxlTGltaXQuTElNSVRbXG4gICAgICAgICAgICAgICAgdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZVBhZ2VzIGFzIFBhZ2VzRW51bVxuICAgICAgICAgICAgXSB8fCAwO1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5sZW5ndGggPj0gdGhpcy5saW1pdDtcbiAgICB9XG5cbiAgICAvL0ZpbGVzXG4gICAgcHVibGljIGhhbmRsZUZpbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmIChpbnB1dC5maWxlcykge1xuICAgICAgICAgICAgdGhpcy5vbkZpbGVVcGxvYWQoaW5wdXQuZmlsZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRmlsZVVwbG9hZChmaWxlczogRmlsZUxpc3QpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZUFycmF5ID0gQXJyYXkuZnJvbShmaWxlcyk7XG5cbiAgICAgICAgY29uc3QgdXBsb2FkT2JzZXJ2YWJsZXMgPSBmaWxlQXJyYXkubWFwKChmaWxlLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHRoaXMuYWRkRmlsZShmaWxlLCBpbmRleCA9PT0gZmlsZUFycmF5Lmxlbmd0aCAtIDEpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZyb20odXBsb2FkT2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHVwbG9hZGluZyBmaWxlczonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBbGwgZmlsZXMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRmlsZShmaWxlOiBGaWxlLCBlbWl0RXZlbnQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghZmlsZSkgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gRmlsZVV0aWxzLmdldEZpbGVFeHRlbnNpb24oZmlsZS5uYW1lKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFGaWxlVXRpbHMuaXNTdXBwb3J0ZWRFeHRlbnNpb24oXG4gICAgICAgICAgICAgICAgICAgIGZpbGVFeHRlbnNpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVBdmFpbGFibGVGaWxlc1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2Ryb3Bab25lQ29uZmlnLmNvbmZpZy5kcm9wem9uZU9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgPy5kaXNhYmxlVW5zdXBwb3J0ZWRQcmV2aWV3XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTdXBwb3J0ZWRUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlzU3VwcG9ydGVkVHlwZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICBGaWxlVXRpbHMuZ2V0QmxvYihmaWxlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChibG9iQ29udGVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBibG9iVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbjogZmlsZUV4dGVuc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWlkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsRmlsZTogYmxvYkNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25GaWxlRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBGaWxlQWN0aW9uLkFERCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlYWRpbmcgZmlsZTonLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FudCB1cGxvYWQgZmlsZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Mb3R0aWVcbiAgICBwcml2YXRlIHVwZGF0ZUxvdHRpZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbGVUeXBlID0gdGhpcy5fZHJvcFpvbmVDb25maWcuY29uZmlnLmRyb3B6b25lXG4gICAgICAgICAgICA/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uUGF0aCA9IEZpbGVBbmltYXRpb24uQU5JTUFUSU9OU1tmaWxlVHlwZV07XG5cbiAgICAgICAgaWYgKGFuaW1hdGlvblBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMubG90dGllT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICByZW5kZXJlcjogJ3N2ZycsXG4gICAgICAgICAgICAgICAgYXV0b3BsYXk6ICF0aGlzLmlzU2hvd25Ecm9wem9uZUZvY3VzLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhdGg6IGFuaW1hdGlvblBhdGgsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9Ecm9wem9uZSB0ZXh0XG4gICAgcHJpdmF0ZSB1cGRhdGVEcm9wWm9uZVRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRyb3Bab25lVGV4dE1hcDogeyBba2V5IGluIEZpbGVUeXBlXT86IHN0cmluZyB9ID0ge1xuICAgICAgICAgICAgW0ZpbGVUeXBlLkZJTEVTXTogJ0ZJTEVTJyxcbiAgICAgICAgICAgIFtGaWxlVHlwZS5NRURJQV06ICdNRURJQScsXG4gICAgICAgICAgICBbRmlsZVR5cGUuSU1BR0VdOiAnSU1BR0UnLFxuICAgICAgICAgICAgW0ZpbGVUeXBlLkxPR09dOiAnSU1BR0UnLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZHJvcFpvbmVUZXh0ID1cbiAgICAgICAgICAgIGRyb3Bab25lVGV4dE1hcFtcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wWm9uZUNvbmZpZy5jb25maWcuZHJvcHpvbmU/LmRyb3Bab25lVHlwZSBhcyBGaWxlVHlwZVxuICAgICAgICAgICAgXSB8fCAnRklMRSBJTVBPUlQgRkFJTEVEJztcbiAgICB9XG5cbiAgICAvL1RlbXBsYXRlXG4gICAgZ2V0VGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVDb250YWluZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQgPVxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVJlZj8uZmluZCgodGVtcCkgPT4gdGVtcC5pZCA9PT0gdGVtcGxhdGUpO1xuXG4gICAgICAgIGlmICghdGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hdmFpbGFibGUgdGVtcGxhdGUhJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGVtcGxhdGVSZWY/LnRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImRyb3B6b25lLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NwbGl0LWRyb3B6b25lJzogaXNEcm9wem9uZVNob3duSW5Dcm9wLFxuICAgICAgICB1blN1cHBvcnRlZDogaXNTdXBwb3J0ZWRUeXBlLFxuICAgICAgICBleHBhbmRlZDogaXNEcm9wem9uZUV4cGFuZGVkICYmICFpc1N1cHBvcnRlZFR5cGUsXG4gICAgICAgICdkaXNhYmxlZC1kcm9wem9uZSc6IGZpbGVzLmxlbmd0aCA+PSB0aGlzLmxpbWl0ICYmIHRoaXMubGltaXQgPiAwLFxuICAgIH1cIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6XG4gICAgICAgICAgICBmaWxlcy5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICA/IGN1c3RvbVdpZHRoIHx8ICc0NDhweCdcbiAgICAgICAgICAgICAgICA6IGZpbGVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICAgICAgICAgPyAnMjk2cHgnXG4gICAgICAgICAgICAgICAgICA6IGZpbGVzLmxlbmd0aCA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICcxNDhweCdcbiAgICAgICAgICAgICAgICAgICAgOiBmaWxlcy5sZW5ndGggPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICA/ICcxNDhweCdcbiAgICAgICAgICAgICAgICAgICAgICA6ICcxNDhweCcsXG4gICAgfVwiXG4+XG4gICAgQGZvciAoaXRlbSBvZiBfZHJvcFpvbmVDb25maWdBcnJheTsgdHJhY2sgaWRlbnRpZnkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3VwbG9hZC1kcm9wem9uZS11bnN1cHBvcnRlZCc6IGlzU3VwcG9ydGVkVHlwZSxcbiAgICAgICAgICAgICAgICBleHBhbmRlZENvbnRlbnQ6IGlzRHJvcHpvbmVFeHBhbmRlZCxcbiAgICAgICAgICAgICAgICAnY29sdW1uLWxheW91dCc6IGZpbGVzLmxlbmd0aCA+PSAyLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICBnZXRUZW1wbGF0ZShpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0uY29uZmlnIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuPCEtLS0tLS0tLS0tLS0tRG9jdW1lbnQgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImRvY3VtZW50c1RlbXBsYXRlXCIgbGV0LWNvbmZpZz5cbiAgICA8IS0tU1ZHIElDT04tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd25Ecm9wem9uZUZvY3VzICYmICFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tTG90dGllIGFuaW1hdGlvbi0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIoaXNEcm9wem9uZUV4cGFuZGVkIHx8IGlzU2hvd25Ecm9wem9uZUZvY3VzKSAmJiAhaXNTdXBwb3J0ZWRUeXBlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG90dGllQW5pbWF0aW9uVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tQ29udGVudCBmb3Igc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCB0eXBlcy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZVRleHRUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1TdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgdW5zdXBwb3J0ZWQgdHlwZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N1cHBvcnRlZFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdXBwb3J0ZWRFeHRlbnNpb25zVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tRklMRSBJTlBVVC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlSW5wdXRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbmZpZyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tLS0tLS0tLS0tLS1NZWRpYSB0ZW1wbGF0ZS0tLS0tLS0tLS0tLS0tPlxuPG5nLXRlbXBsYXRlIHRlbXBsYXRlQ29udGFpbmVyIGlkPVwibWVkaWFUZW1wbGF0ZVwiIGxldC1jb25maWc+XG4gICAgPCEtLVNWRyBJQ09OLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1Nob3duRHJvcHpvbmVGb2N1cyAmJiAhaXNEcm9wem9uZUV4cGFuZGVkXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZUljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUxvdHRpZSBhbmltYXRpb24tLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiKGlzRHJvcHpvbmVFeHBhbmRlZCB8fCBpc1Nob3duRHJvcHpvbmVGb2N1cykgJiYgIWlzU3VwcG9ydGVkVHlwZVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxvdHRpZUFuaW1hdGlvblRlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUNvbnRlbnQgZm9yIHN1cHBvcnRlZCBhbmQgdW5zdXBwb3J0ZWQgdHlwZXMtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVUZXh0VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tU3VwcG9ydGVkIGV4dGVuc2lvbnMgZm9yIHVuc3VwcG9ydGVkIHR5cGUtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTdXBwb3J0ZWRUeXBlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VwcG9ydGVkRXh0ZW5zaW9uc1RlbXBsYXRlXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLUZJTEUgSU5QVVQtLT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUlucHV0VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb25maWcgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLS0tLS0tLS0tLS0tSW1hZ2UgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImltYWdlVGVtcGxhdGVcIiBsZXQtY29uZmlnPlxuICAgIDwhLS1TVkcgSUNPTi0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93bkRyb3B6b25lRm9jdXMgJiYgIWlzRHJvcHpvbmVFeHBhbmRlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Mb3R0aWUgYW5pbWF0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIihpc0Ryb3B6b25lRXhwYW5kZWQgfHwgaXNTaG93bkRyb3B6b25lRm9jdXMpICYmICFpc1N1cHBvcnRlZFR5cGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb3R0aWVBbmltYXRpb25UZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Db250ZW50IGZvciBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIHR5cGVzLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lVGV4dFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLVN1cHBvcnRlZCBleHRlbnNpb25zIGZvciB1bnN1cHBvcnRlZCB0eXBlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3VwcG9ydGVkVHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN1cHBvcnRlZEV4dGVuc2lvbnNUZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1GSUxFIElOUFVULS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVJbnB1dFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tLS0tLS0tLUltYWdlIENyb3AgdGVtcGxhdGUtLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSB0ZW1wbGF0ZUNvbnRhaW5lciBpZD1cImltYWdlQ3JvcFRlbXBsYXRlXCIgbGV0LWNvbmZpZz5cbiAgICA8IS0tU1ZHIElDT04tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd25Ecm9wem9uZUZvY3VzICYmICFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lSWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tTG90dGllIGFuaW1hdGlvbi0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIoaXNEcm9wem9uZUV4cGFuZGVkIHx8IGlzU2hvd25Ecm9wem9uZUZvY3VzKSAmJiAhaXNTdXBwb3J0ZWRUeXBlXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibG90dGllQW5pbWF0aW9uVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tQ29udGVudCBmb3Igc3VwcG9ydGVkIGFuZCB1bnN1cHBvcnRlZCB0eXBlcy0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wem9uZVRleHRUZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1TdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgdW5zdXBwb3J0ZWQgdHlwZS0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1N1cHBvcnRlZFR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdXBwb3J0ZWRFeHRlbnNpb25zVGVtcGxhdGVcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tRklMRSBJTlBVVC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWxlSW5wdXRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbmZpZyB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tLS0tLS0tLS0tLS1Mb2dvIHRlbXBsYXRlLS0tLS0tLS0tLS0tLS0+XG48bmctdGVtcGxhdGUgdGVtcGxhdGVDb250YWluZXIgaWQ9XCJsb2dvVGVtcGxhdGVcIiBsZXQtY29uZmlnPlxuICAgIDwhLS1TVkcgSUNPTi0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93bkRyb3B6b25lRm9jdXMgJiYgIWlzRHJvcHpvbmVFeHBhbmRlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcHpvbmVJY29uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Mb3R0aWUgYW5pbWF0aW9uLS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIihpc0Ryb3B6b25lRXhwYW5kZWQgfHwgaXNTaG93bkRyb3B6b25lRm9jdXMpICYmICFpc1N1cHBvcnRlZFR5cGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb3R0aWVBbmltYXRpb25UZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1Db250ZW50IGZvciBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIHR5cGVzLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3B6b25lVGV4dFRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLVN1cHBvcnRlZCBleHRlbnNpb25zIGZvciB1bnN1cHBvcnRlZCB0eXBlLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3VwcG9ydGVkVHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInN1cHBvcnRlZEV4dGVuc2lvbnNUZW1wbGF0ZVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS1GSUxFIElOUFVULS0+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVJbnB1dFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlnIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tLS0tLS0tLS1DT01NT04tVEVNUExBVEUtLS0tLS0tLS0tLS0tLT5cblxuPCEtLS0tLS1JTlBVVC0tLS0tLS0+XG48bmctdGVtcGxhdGUgI2ZpbGVJbnB1dFRlbXBsYXRlIGxldC1jb25maWc+XG4gICAgPGlucHV0XG4gICAgICAgICNkcm9wWm9uZVxuICAgICAgICBbaWRdPVwiJ2Ryb3Bab25lJyArIChjb25maWcuZHJvcHpvbmVPcHRpb24/LmRyb3B6b25lSW5kZXggfHwgMClcIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIFthY2NlcHRdPVwiY29uZmlnLmRyb3B6b25lPy5kcm9wWm9uZUF2YWlsYWJsZUZpbGVzXCJcbiAgICAgICAgW211bHRpcGxlXT1cImNvbmZpZy5kcm9wem9uZT8ubXVsdGlwbGVcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS1EUk9QWk9ORV9URVhULS0+XG48bmctdGVtcGxhdGUgI2Ryb3B6b25lVGV4dFRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wem9uZS10ZXh0IGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgPlxuICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJ1cGxvYWQtZHJvcHpvbmUtdGV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Vuc3VwcG9ydGVkLXRleHQtYmlnJzogaXNTdXBwb3J0ZWRUeXBlLFxuICAgICAgICAgICAgICAgICdtYXgtY291bnQnOiBpc01heENvdW50UmVhY2hlZCgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc01heENvdW50UmVhY2hlZCgpOyBlbHNlIG5vcm1hbFRleHRcIj5cbiAgICAgICAgICAgICAgICBNQVggQ09VTlQgUkVBQ0hFRFxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vcm1hbFRleHQ+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgaXNTdXBwb3J0ZWRUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdJTlZBTElEIEZJTEUgVFlQRSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ0RSQUcgJyArIGRyb3Bab25lVGV4dFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgIShpc1N1cHBvcnRlZFR5cGUgfHwgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkpID8gJyBIRVJFJyA6ICcnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJfZHJvcFpvbmVDb25maWdBcnJheT8uWzBdPy50ZW1wbGF0ZSA9PT0gJ21lZGlhVGVtcGxhdGUnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1lZGlhLXNpemVzXCI+bWF4IGZpbGUgc2l6ZSA1MG1iPC9wPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Ryb3B6b25lRXhwYW5kZWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWRyb3B6b25lLXRleHQtc21hbGxcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNYXhDb3VudFJlYWNoZWQoKTsgZWxzZSBmb3JtYXRUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpbGVzLmxlbmd0aCB9fSBGSUxFUyBJTVBPUlRFRFxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9ybWF0VGV4dD5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3VwcG9ydGVkVHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ1NVUFBPUlRFRCBGT1JNQVRTJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ09SIENMSUNLIFRPIEFERCdcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0tLS0tSUNPTi0tLS0tLS0tPlxuPG5nLXRlbXBsYXRlICNkcm9wem9uZUljb25UZW1wbGF0ZT5cbiAgICA8c3ZnLWljb25cbiAgICAgICAgW3NyY109XCIhaXNTdXBwb3J0ZWRUeXBlICYmICFpc0ZpbGVEcm9wID8gaWNvblNyYyA6IGRyb3B6b25lU3ZnUm91dGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnY2FuY2VsLXVuc3VwcG9ydGVkLXpvbmUnOiBpc1N1cHBvcnRlZFR5cGUsXG4gICAgICAgICAgICAnc3ZnSWNvbi1kb2N1bWVudCc6IGZpbGVzLmxlbmd0aCA8IDIsXG4gICAgICAgICAgICAnc3ZnLXNtYWxsJzogZmlsZXMubGVuZ3RoID49IDIsXG4gICAgICAgIH1cIlxuICAgID48L3N2Zy1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gTE9UVElFX0FOSU1BVElPTiAtLT5cbjxuZy10ZW1wbGF0ZSAjbG90dGllQW5pbWF0aW9uVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFuaW1hdGlvbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBleHBhbmRlZDogaXNEcm9wem9uZUV4cGFuZGVkIH1cIlxuICAgID5cbiAgICAgICAgPG5nLWxvdHRpZVxuICAgICAgICAgICAgY2xhc3M9XCJzdGF0aWMtbG90dGllLWFuaW1hdGlvblwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCJsb3R0aWVPcHRpb25zXCJcbiAgICAgICAgPjwvbmctbG90dGllPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBTVVBQT1JURURfRVhURU5TSU9OUyAtLT5cbjxuZy10ZW1wbGF0ZSAjc3VwcG9ydGVkRXh0ZW5zaW9uc1RlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJzdXBwb3J0ZWQtZXh0ZW5zaW9ucyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJleHRlbnNpb24gZXh0ZW5zaW9uLXt7XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uXG4gICAgICAgICAgICB9fSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGV4dGVuc2lvbiBvZiBkcm9wWm9uZUF2YWlsYWJsZUZpbGVzOyB0cmFja0J5OiBpZGVudGlmeVwiXG4gICAgICAgICAgICA+e3sgZXh0ZW5zaW9uIH19PC9zcGFuXG4gICAgICAgID5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=