ca-components 1.0.88 → 1.0.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/ca-input/input-test/input-test.component.mjs +28 -16
- package/esm2022/lib/components/ca-input-dropdown/ca-input-dropdown.component.mjs +5 -3
- package/fesm2022/ca-components.mjs +24 -12
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-input/input-test/input-test.component.d.ts +7 -3
- package/package.json +1 -1
- package/src/assets/ca-components/svg/input/ic_fax.svg +7 -0
- package/src/assets/ca-components/svg/input/ic_hyperlink.svg +3 -0
|
@@ -913,7 +913,9 @@ export class CaInputDropdownComponent {
|
|
|
913
913
|
: searchText.toLowerCase();
|
|
914
914
|
});
|
|
915
915
|
if (this._template !==
|
|
916
|
-
this.dropdownTemplateTypeEnum
|
|
916
|
+
this.dropdownTemplateTypeEnum
|
|
917
|
+
.SVGTEXT_DISPATCH_TEMPLATE &&
|
|
918
|
+
!this.isAddressDropdown) {
|
|
917
919
|
if (!this._options.length) {
|
|
918
920
|
this.getSuperControl.setErrors({ invalid: true });
|
|
919
921
|
this.inputConfig.isInvalidSearchInDropdown = true;
|
|
@@ -1127,7 +1129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1127
1129
|
// Pipes
|
|
1128
1130
|
FormControlPipe,
|
|
1129
1131
|
DropdownCountPipe,
|
|
1130
|
-
InputDropdownMultiselectClassPipe
|
|
1132
|
+
InputDropdownMultiselectClassPipe,
|
|
1131
1133
|
], template: "<div \n class=\"application-dropdown\"\n [ngClass]=\"\n inputConfig | inputDropdownMultiselectClass: multiselectItems \n : isMultiSelectInputFocus\n \"\n>\n <ng-container *ngIf=\"multiselectItems.length\">\n <p class=\"multiselect-label\">\n {{ multiSelectLabel }}\n </p>\n </ng-container>\n\n <!-- Multiselect arrow -->\n <ng-container *ngIf=\"inputConfig.multiSelectDropdownActive\">\n <svg-icon\n class=\"multiselect-arrow\"\n [src]=\"inputDropdownSvgRoutes.inputDropdownArrowSvg\"\n (click)=\"toggleMultiselectDropdown()\"\n ></svg-icon>\n </ng-container>\n\n <!-- Multiselect clear all -->\n <ng-container *ngIf=\"multiselectItems.length && !inputConfig.isDisabled\">\n <div\n class=\"input-clear multiselect-clear\"\n mainTooltip=\"Clear All\"\n ngbTooltip\n position=\"top\"\n tooltipBackground=\"#2f2f2f\"\n (click)=\"deleteAllMultiSelectItems()\"\n >\n <svg-icon class=\"input-clear-x\" [src]=\"inputDropdownSvgRoutes.xClearSvg\"></svg-icon>\n </div>\n </ng-container>\n\n <!-- Multiselect items -->\n <ng-container\n *ngIf=\"\n inputConfig.multiselectDropdown &&\n multiselectItems.length &&\n _template === 'multiselect'\n \"\n >\n <div class=\"multiselect-items {{ multiselectTemplate }}\">\n <ng-container>\n\n </ng-container>\n <span\n *ngFor=\"\n let multiSelect of multiselectItems;\n trackBy: identity;\n let ind = index\n \"\n class=\"multiselect-item\"\n >\n {{ multiSelect?.name }}\n <!-- Active - Total Counter -->\n <ng-container\n *ngIf=\"\n inputConfig.multiSelectItemRange &&\n multiSelect?.totalCounter\n \"\n >\n <span>\n {{ multiSelect?.activeCounter }} of\n {{ multiSelect?.totalCounter }}\n </span>\n </ng-container>\n <!-- Active Counter -->\n <ng-container\n *ngIf=\"\n inputConfig.multiSelectItemRange &&\n !multiSelect?.totalCounter\n \"\n >\n <span>\n {{ multiSelect?.activeCounter }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"!inputConfig.isDisabled\">\n <div\n (click)=\"removeMultiSelectItem(ind)\"\n class=\"multiselect-item-clear\"\n mainTooltip=\"Clear\"\n ngbTooltip\n position=\"top\"\n tooltipBackground=\"#2f2f2f\"\n >\n <svg-icon [src]=\"inputDropdownSvgRoutes.xClearSvg\"></svg-icon>\n </div>\n </ng-container>\n </span>\n </div>\n </ng-container>\n\n <!-- Dropdown search -->\n\n <ng-container *ngIf=\"!inputConfig.isIconInput\">\n <app-ca-input\n #t2=\"ngbPopover\"\n [ngbPopover]=\"caInputDropdownPopover\"\n popoverClass=\"ca-input-dropdown\"\n [autoClose]=\"'outside'\"\n [container]=\"'body'\"\n [placement]=\"\n _template == 'svgtext-dispatch-template'\n ? ['bottom-left', 'top-left']\n : ['bottom-left']\n \"\n #input\n [formControl]=\"getSuperControl! | formControl\"\n [incorrectValue]=\"isIncorrectValue\"\n [inputConfig]=\"inputConfig\"\n [selectedDropdownLabelColor]=\"\n inputConfig.dropdownLabel\n ? _activeItem\n ? _activeItem\n : activeItemColor\n : null\n \"\n [template]=\"_template\"\n (blurInput)=\"onBlurInput($event)\"\n (clear)=\"onClearInputEvent($event)\"\n (commandEvent)=\"commandEvent($event)\"\n (showHideDropdown)=\"showHideDropdown($event)\"\n (dropDownKeyNavigation)=\"dropDownKeyNavigation($event)\"\n (incorrectEvent)=\"onIncorrectInput($event)\"\n ></app-ca-input>\n </ng-container>\n\n <!-- Dropdown icon instead of input -->\n <ng-container *ngIf=\"inputConfig?.isIconInput\">\n <div\n class=\"d-flex justify-content-center align-items-center input-icon-container\"\n [ngClass]=\"{\n valid:\n inputConfig.isValidIcon &&\n !inputConfig.inputIcon?.includes('custom'),\n active: popoverRef?.isOpen(),\n }\"\n >\n <svg-icon\n #t2=\"ngbPopover\"\n [ngbPopover]=\"caInputDropdownPopover\"\n popoverClass=\"ca-input-dropdown\"\n [autoClose]=\"'outside'\"\n [container]=\"'body'\"\n [placement]=\"['bottom-left']\"\n class=\"input-icon\"\n [src]=\"inputDropdownSvgRoutes.repairPmSvgRoute + inputConfig.inputIcon\"\n ></svg-icon>\n </div>\n </ng-container>\n</div>\n\n<ng-template #caInputDropdownPopover>\n <!--------------------------- Dropdown options --------------------------->\n <ng-container *ngIf=\"inputConfig?.mergeDropdownBodyWithInput && _options?.length\">\n <div\n class=\"dropdown-options-divider {{ inputConfig.dropdownWidthClass }}\"\n [class.dispatch_dropdown]=\"_template == 'svgtext-dispatch-template'\"\n ></div>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n (inputConfig?.name != 'Address' &&\n inputConfig?.name != 'RoutingAddress' &&\n !inputConfig.isDisabled) ||\n ((inputConfig?.name == 'Address' ||\n inputConfig?.name == 'RoutingAddress') &&\n !inputConfig.isDisabled &&\n _options?.length)\n \"\n >\n <div\n (scroll)=\"onScrollDropdown($event.target)\"\n [ngClass]=\"{\n scroll: _options | caDropdownCount : _template,\n 'dropdown-options-groups':\n _template === 'groups' || _template === 'load-broker-contact',\n 'dropdown-options-fuel-franchise': _template === 'fuel-franchise',\n 'merge-dropdown-body-with-input':\n inputConfig.mergeDropdownBodyWithInput,\n 'no-result-container': _options[0]?.name === 'No Results',\n 'svgtext-dispatch-template':\n _template == 'svgtext-dispatch-template'\n }\"\n class=\"dropdown-options {{ inputConfig.dropdownWidthClass }}\"\n >\n <div [ngSwitch]=\"_template\">\n <!--------------------------- SVG Template (Render svgs or text if svgs doesn't exist ) --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.SVG_TEMPLATE\">\n <app-ca-input-dropdown-svg-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-svg-template>\n </ng-container>\n\n <!--------------------------- Svg Text Template (display flex) --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.SVGTEXT_TEMPLATE\">\n <app-ca-input-dropdown-svgtext-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n [inputConfig]=\"inputConfig\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-svgtext-template>\n </ng-container>\n\n <!-------------------------------------------Dispatch dropdown-------------------------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.SVGTEXT_DISPATCH_TEMPLATE\">\n <app-ca-input-dropdown-svgtext-dispatch-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n [inputConfig]=\"inputConfig\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-svgtext-dispatch-template>\n </ng-container>\n\n <!--------------------------- Details template (truck, trailer... details-pages) --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.DETAILS_TEMPLATE\">\n <app-ca-input-dropdown-details-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n [sort]=\"_sort\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-details-template>\n </ng-container>\n\n <!--------------------------- Grouping template (can see on contact modal) --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.GROUPS\">\n <app-ca-input-dropdown-groups\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-groups>\n </ng-container>\n\n <!--------------------------- Multiselect Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.MULTISELECT\">\n <app-ca-input-dropdown-multiselect\n [options]=\"_options\"\n [lastActiveMultiselectItem]=\"lastActiveMultiselectItem\"\n [getSuperControl]=\"getSuperControl\"\n (onMultiselectSelect)=\"onMultiselectSelect($event)\"\n ></app-ca-input-dropdown-multiselect>\n </ng-container>\n\n <!--------------------------- Labels Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LABELS\">\n <app-ca-input-dropdown-labels\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n [inputConfig]=\"inputConfig\"\n [labelMode]=\"labelMode\"\n [canAddNew]=\"_canAddNew\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-labels>\n </ng-container>\n\n <!--------------------------- Dispatch Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.DISPATCH\">\n <app-ca-input-dropdown-dispatch\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-dispatch>\n </ng-container>\n\n <!--------------------------- Load Dispatcher Template (user avatar + user name) --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LOAD_DISPATCHER\">\n <app-ca-input-dropdown-load-dispatcher\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-load-dispatcher>\n </ng-container>\n\n <!--------------------------- Load Combine Truck-Trailer-Driver Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LOAD_DISPATCHES_TTD\">\n <app-ca-input-dropdown-load-dispatches-ttd\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-load-dispatches-ttd>\n </ng-container>\n\n <!--------------------------- Load Broker Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LOAD_BROKER\">\n <app-ca-input-dropdown-load-broker\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-load-broker>\n </ng-container>\n\n <!--------------------------- Load Broker Contact Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LOAD_BROKER_CONTACT\">\n <app-ca-input-dropdown-load-broker-contact\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-load-broker-contact>\n </ng-container>\n\n <!--------------------------- Load Shipper Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.LOAD_SHIPPER\">\n <app-ca-input-dropdown-load-shipper\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-load-shipper>\n </ng-container>\n\n <!--------------------------- Template Text - Counter --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.TEXT_COUNTER\">\n <app-ca-input-dropdown-text-counter\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-text-counter>\n </ng-container>\n\n <!--------------------------- Fuel Franchise Template --------------------------->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.FUEL_FRANCHISE\">\n <app-ca-input-dropdown-fuel-franchise\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n (toggleNestedList)=\"toggleNestedList($event)\"\n (onActiveItemGroup)=\"onActiveItemGroup($event)\"\n ></app-ca-input-dropdown-fuel-franchise>\n </ng-container>\n\n <!-- Double Text Template -->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.DOUBLE_TEXT_TEMPLATE\">\n <app-ca-input-dropdown-double-text-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-double-text-template>\n </ng-container>\n\n <!-- Double Column Template -->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.DOUBLE_COLUMN_TEMPLATE\">\n <app-ca-input-dropdown-double-text-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-double-text-template>\n </ng-container>\n\n <!-- Triple Column Template -->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.TRIPLE_COLUMN_TEMPLATE\">\n <app-ca-input-dropdown-triple-text-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-triple-text-template>\n </ng-container>\n\n <!-- PAYROLL TRUCKS Template -->\n\n <ng-container *ngSwitchCase=\"dropdownTemplateTypeEnum.PAYROLL_TRUCKS\">\n <app-ca-input-dropdown-payroll-trucks\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-payroll-trucks>\n </ng-container>\n\n <!--------------------------- Default Template - Render Only Text --------------------------->\n\n <ng-container *ngSwitchDefault>\n <app-ca-input-dropdown-default-template\n [options]=\"_options\"\n [activeItem]=\"_activeItem\"\n [getSuperControl]=\"getSuperControl\"\n [inputConfig]=\"inputConfig\"\n (onActiveItem)=\"onActiveItem($event)\"\n ></app-ca-input-dropdown-default-template>\n </ng-container>\n </div>\n </div>\n </ng-container>\n</ng-template>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap\";@import\"https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css\";.ca-font-thin{font-weight:100!important}.ca-font-extra-light{font-weight:200!important}.ca-font-light{font-weight:300!important}.ca-font-regular{font-weight:400!important}.ca-font-medium{font-weight:500!important}.ca-font-semi-bold{font-weight:600!important}.ca-font-bold{font-weight:700!important}.ca-font-extra-bold{font-weight:800!important}.ca-font-black{font-weight:900!important}.pickup-delivery-popover{top:-38px!important;max-width:340px!important}.pickup-delivery-popover.bs-popover-top{top:auto!important;bottom:-38px!important}.pickup-delivery-popover.bs-popover-top .load-component .assigned-load-holder{order:3;margin-top:4px;margin-bottom:0!important}.pickup-delivery-popover.bs-popover-top .load-component .statusBar{order:2;margin-top:4px}.pickup-delivery-popover.bs-popover-top .load-component .animation-three-tabs{order:1}.gps_dropdown_popover{top:-38px;max-width:494px}.gps_dropdown_popover .popover-body{padding:0}.table-progress-popover{background-color:unset!important;margin-left:-10px}.table-progress-popover .progress-dropdown{margin-top:-6px;width:260px;height:200px;background:#2f2f2f;border-radius:3px;padding:8px;box-shadow:0 0 4px #00000026;overflow:hidden;-webkit-animation:progressAnimation .25s ease-in-out;animation:progressAnimation .25s ease-in-out}.table-progress-popover .progress-dropdown .progress-header .progress-title{font-size:18px;font-weight:600;color:#dadada}.table-progress-popover .progress-dropdown .progress-header .progress-title span{font-weight:400}.table-progress-popover .progress-dropdown .progress-header .progress-total{font-size:14px;line-height:17px;color:#dadada}.table-progress-popover .progress-dropdown .table-progress-bar-container{width:100%;height:8px;margin-top:6px;border-radius:2px;overflow:hidden}.table-progress-popover .progress-dropdown .table-progress-bar-container .table-progress-bar{height:100%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-dual-info-container .progress-info-container{width:50%}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container{margin-top:10px}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-title{margin-bottom:2px;font-size:11px;font-weight:700;line-height:14px;color:#ffffffb2}.table-progress-popover .progress-dropdown .progress-dropdown-body .progress-info-container .progress-info-text{font-size:14px;line-height:18px;color:#dadada}.table-progress-popover .progress-dropdown.credit-dropdown{height:100px}@-webkit-keyframes progressAnimation{0%{height:0px}to{height:220px}}@keyframes progressAnimation{0%{height:0px}to{height:220px}}ngb-popover-window{padding:unset!important;border:unset!important}ngb-popover-window .popover-arrow{display:none!important}ngb-popover-window .popover-body{padding:unset!important}.dispatch-note .popover-body{position:relative;top:-4px;left:-4px}.tooltip{font-size:12px;position:relative}.tooltip.show{opacity:.83}.tooltip.fade:after,.tooltip.fade:before{transform:translateY(-10px);transition:all .15s ease-in-out}.tooltip.fade:hover:after,.tooltip.fade:hover:before{opacity:1;transform:translate(0)}.tooltip-inner{padding:4px 10px;white-space:nowrap;max-width:none;border-radius:3px}.tooltip-inner:empty{padding:0}.placeholder-delete .tooltip-inner{background-color:#f66}.placeholder-delete .arrow:before{border-top-color:#f66}.custom-popup-owners-for-flag .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(126%) translate(-50%)!important;width:130px;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-for-flag .arrow{bottom:-18%;transform:rotate(180deg);left:calc(50% + 2.7rem)}.custom-popup-owners-for-flag .tooltip{opacity:.93!important;width:0}.custom-popup-owners{z-index:999}.custom-popup-owners .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners .tooltip{transform:translateY(-61px)!important}.custom-popup-owners-year{z-index:999}.custom-popup-owners-year .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(132%);z-index:999;box-shadow:0 0 3px #0003}.custom-popup-owners-year .arrow{bottom:-20%;transform:rotate(180deg)}.custom-popup-owners-year .tooltip{transform:translate(70px,-61px)!important}.custom-popup-owners-info .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-100%) translate(-10%);width:200px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;margin-top:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info .tooltip{opacity:.93;width:0}.custom-popup-owners-info .arrow{display:none}.custom-popup-owners-info #phone-inside{position:relative;right:26px;bottom:0}.custom-popup-owners-info-at .tooltip-inner{color:#3b3b3b;background-color:#fff;transform:translateY(-108%) translate(-7%);width:270px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:3px;box-shadow:0 0 3px #0003}.custom-popup-owners-info-at .tooltip{opacity:1;width:0}.custom-popup-owners-info-at .arrow{display:none}.custom-popup-owners-for-tag .tooltip-inner{color:#3b3b3b;background-color:#fff;width:100px;border-radius:3px;box-shadow:0 0 3px #0003!important}.custom-popup-owners-for-tag .tooltip{top:5px!important}.custom-popup-owners-for-tag .arrow{bottom:-24%}.align-items-flex-start{justify-content:center;align-items:center}.align-items-flex-end{display:flex;justify-content:center;flex-direction:column;align-self:flex-end;align-items:flex-start}.label-add{align-self:flex-start}.fadeInLoad{animation:fadeInLoad .25s}@keyframes fadeInLoad{0%{opacity:0}to{opacity:1}}.fadeIn{opacity:1;-webkit-transition:.25s;-moz-transition:.25s;-o-transition:.25s;transition:.25s}.thisText:hover .fadeIn{opacity:0}.fadeInLoad{animation-name:example;animation-duration:.25s}@keyframes example{0%{transform:scale(.5)}to{transform:scale(1)}}.tooltip.tooltip-table-icons{left:12px!important;opacity:1}.tooltip.tooltip-table-icons .arrow{display:none!important}.tooltip.tooltip-table-icons .tooltip-inner{border-radius:0 50px 50px;background:#28529f}.tooltip.show{opacity:1;animation:fadeIn ease .5s!important;-webkit-animation:fadeIn ease .5s!important;-moz-animation:fadeIn ease .5s!important;-o-animation:fadeIn ease .5s!important;-ms-animation:fadeIn ease .5s!important}.ta-tooltip{position:absolute;font-size:12px;text-align:center;color:#fff;line-height:22px;z-index:999999!important;opacity:0;white-space:nowrap;transform:scale(.7)}.ta-tooltip.ta-tooltip-show{opacity:.85;transform:scale(1);padding:0 12px}.ta-tooltip.ta-tooltip-bottom-right,.ta-tooltip.ta-tooltip-bottom-right-corner{transform-origin:top left;border-radius:0 15px 15px}.ta-tooltip.ta-tooltip-bottom-left{transform-origin:top right;border-radius:15px 0 15px 15px}@keyframes scaleItem{0%{transform:scale(.4)}to{transform:scale(1)}}.app-ca-main-tooltip{pointer-events:none}.app-ca-main-tooltip .tooltip-inner{padding:0;background-color:transparent;pointer-events:none}.app-ca-main-tooltip .tooltip-inner .tooltip-holder{display:flex;font-size:11px;font-weight:700;border-radius:2px;padding:2px 8px;animation:scaleItem .3s;white-space:normal}.app-ca-main-tooltip .tooltip-inner .tooltip-holder:empty{padding:0}.tooltip-arrow{display:none!important}.trucks.semitruck svg path,.trucks.semisleeper svg path,.trucks.flatbed svg path,.trucks.stepdeck svg path,.trucks.lowboyrgn svg path,.trucks.chassis svg path,.trucks.conestoga svg path,.trucks.sidekit svg path,.trucks.container svg path,.trailers.semitruck svg path,.trailers.semisleeper svg path,.trailers.flatbed svg path,.trailers.stepdeck svg path,.trailers.lowboyrgn svg path,.trailers.chassis svg path,.trailers.conestoga svg path,.trailers.sidekit svg path,.trailers.container svg path{fill:#92b1f5}.trucks.boxtruck svg path,.trucks.reefertruck svg path,.trucks.cargovan svg path,.trucks.dryvan svg path,.trucks.reefer svg path,.trailers.boxtruck svg path,.trailers.reefertruck svg path,.trailers.cargovan svg path,.trailers.dryvan svg path,.trailers.reefer svg path{fill:#fbc88b}.trucks.dumptruck svg path,.trucks.cementtruck svg path,.trucks.garbagetruck svg path,.trucks.enddump svg path,.trucks.bottomdump svg path,.trucks.hopper svg path,.trucks.tanker svg path,.trucks.pneumatictanker svg path,.trailers.dumptruck svg path,.trailers.cementtruck svg path,.trailers.garbagetruck svg path,.trailers.enddump svg path,.trailers.bottomdump svg path,.trailers.hopper svg path,.trailers.tanker svg path,.trailers.pneumatictanker svg path{fill:#ed9292}.trucks.towtruck svg path,.trucks.carhauler svg path,.trucks.spotter svg path,.trucks.carhaulerstigner svg path,.trailers.towtruck svg path,.trailers.carhauler svg path,.trailers.spotter svg path,.trailers.carhaulerstigner svg path{fill:#86c9c3}.trucks .svgtext-template-text,.trailers .svgtext-template-text{color:#fff;transition:color .3s ease-in-out}.colors .black svg #droplet{fill:#6c6c6c}.colors .brown svg #droplet{fill:#a1887f}.colors .darkgreen svg #droplet{fill:#4db6a2}.colors .lightgreen svg #droplet{fill:#81c784}.colors .darkblue svg #droplet{fill:#546fd2}.colors .lightblue svg #droplet{fill:#64b5f6}.colors .gray svg #droplet{fill:#aaa}.colors .purple svg #droplet{fill:#ba68c8}.colors .gold svg #droplet{fill:#bcad79}.colors .silver svg #droplet{fill:#dadada}.colors .red svg #droplet{fill:#f96b69}.colors .pink svg #droplet{fill:#f26ec2}.colors .white svg #droplet{fill:#f1f1f1}.colors .orange svg #droplet{fill:#ff8a65}.colors .yellow svg #droplet{fill:#ffd54f}.colors:hover{transition:all .3s ease-in-out}.colors:hover .black svg #droplet{fill:#3c3c3c}.colors:hover .brown svg #droplet{fill:#8d6e63}.colors:hover .darkgreen svg #droplet{fill:#26a690}.colors:hover .lightgreen svg #droplet{fill:#66bb6a}.colors:hover .darkblue svg #droplet{fill:#304fc1}.colors:hover .lightblue svg #droplet{fill:#42a5f5}.colors:hover .gray svg #droplet{fill:#919191}.colors:hover .purple svg #droplet{fill:#ab47bc}.colors:hover .gold svg #droplet{fill:#aa9c6e}.colors:hover .silver svg #droplet{fill:#b7b7b7}.colors:hover .red svg #droplet{fill:#ef5350}.colors:hover .pink svg #droplet{fill:#fa4daa}.colors:hover .white svg #droplet{fill:#fff}.colors:hover .orange svg #droplet{fill:#ff7043}.colors:hover .yellow svg #droplet{fill:#ffca28}.text-color-black{color:#424242!important}.text-color-black::-moz-selection{background:#42424233!important;color:#424242!important}.text-color-black::selection{background:#42424233!important;color:#424242!important}.text-color-black-2{color:#2f2f2f!important}.text-color-black-2::-moz-selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-black-2::selection{background:#2f2f2f33!important;color:#2f2f2f!important}.text-color-muted{color:#919191!important}.text-color-muted::-moz-selection{background:#91919133!important;color:#919191!important}.text-color-muted::selection{background:#91919133!important;color:#919191!important}.text-color-green{color:#56b4ac!important}.text-color-green::-moz-selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-green::selection{background:#56b4ac33!important;color:#56b4ac!important}.text-color-blue-13{color:#6692f1!important}.text-color-blue-13::-moz-selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-13::selection{background:#66921833!important;color:#6692f1!important}.text-color-blue-18{color:#3b73ed!important}.text-color-blue-18::-moz-selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-blue-18::selection{background:#3b73ed33!important;color:#3b73ed!important}.text-color-red-10{color:#e66767!important}.text-color-red-10::-moz-selection{background:#e6676733!important;color:#e66767!important}.text-color-red-10::selection{background:#e6676733!important;color:#e66767!important}.text-color-light-grey{color:#e5e5e5!important}.text-color-light-grey::-moz-selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey::selection{background:#e5e5e533!important;color:#e5e5e5!important}.text-color-light-grey-2{color:#aaa!important}.text-color-light-grey-2::-moz-selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-2::selection{background:#aaa3!important;color:#aaa!important}.text-color-light-grey-6{color:#ccc!important}.text-color-light-grey-6::-moz-selection{color:#ccc!important;background:#aaa3!important}.text-color-light-grey-6::selection{color:#ccc!important;background:#aaa3!important}.text-color-white{color:#dadada!important}.text-color-white::-moz-selection{color:#dadada!important;background:#fff3!important}.text-color-white::selection{color:#dadada!important;background:#fff3!important}.text-color-white-4{color:#ffffffb2!important}.text-color-white-4::-moz-selection{color:#ffffffb2!important;background:#fff3!important}.text-color-white-4::selection{color:#ffffffb2!important;background:#fff3!important}.text-color-dark-grey{color:#6c6c6c!important}.text-color-dark-grey::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-dark-grey::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2{color:#6c6c6c!important}.text-color-bw6-2::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw6-2::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9{color:#dadada!important}.text-color-bw-9::-moz-selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-bw-9::selection{color:#6c6c6c!important;background:#6c6c6c33!important}.text-color-grey{color:#919191!important}.text-color-grey::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey::selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::-moz-selection,.text-color-grey .marker-bold-text::-moz-selection{color:#919191!important;background:#91919133!important}.text-color-grey .address-text::selection,.text-color-grey .marker-bold-text::selection{color:#919191!important;background:#91919133!important}.text-size-11{font-size:11px!important;line-height:14px!important}.text-size-14{font-size:14px!important;line-height:18px!important}.text-size-16{font-size:16px!important;line-height:19px!important}.text-size-18{font-size:18px!important;line-height:22px!important}.text-size-26{font-size:26px!important;line-height:32px!important}.text-size-28{font-size:28px!important;line-height:34px!important}.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}@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}}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .load-dispatches-container svg:not(:hover):not(.load-dipstaches-owner-flag) #Ellipse_9856,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .load-dispatches-container svg:not(:hover):not(.load-dipstaches-owner-flag) #Ellipse_9857,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .load-dispatches-container svg:not(:hover):not(.load-dipstaches-owner-flag) #Ellipse_9858,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .load-dispatches-container svg:not(:hover):not(.load-dipstaches-owner-flag) path{fill:#aaa}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-text-option{display:flex;align-items:center;justify-content:space-between}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-text-option .additional-text{font-size:11px;font-weight:400;color:#919191;line-height:14px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-text-option .additional-text.active{color:#6f9ee0;font-weight:700}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-text-option:hover .additional-text.active{color:#bed0f9}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-column-option{display:grid;grid-template-columns:118px 470px;grid-gap:4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-column-option-add-new{display:flex;align-items:center;justify-content:flex-end;padding-left:0!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-double-column-option-text{color:#fff;font-size:14px;line-height:18px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-triple-column-option{display:grid;grid-template-columns:216px 138px 206px;grid-gap:4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-triple-column-option-add-new{display:flex;align-items:center;justify-content:flex-end;padding-left:0!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-triple-column-option-text{color:#fff;font-size:14px;line-height:18px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-option-hovered{background:#424242;color:#fff;border-radius:2px;cursor:pointer}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.dropdown-option-hovered .svgtext-template-logo.truck-trailer-logo{display:inline-block!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:hover{background:#424242;color:#fff;border-radius:2px;cursor:pointer}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:hover .svgtext-template-logo.truck-trailer-logo{display:inline-block!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.disabled{color:#6c6c6c;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.add-new .labels-template-text{color:#6f9ee0;font-weight:600!important;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.add-new .plus-icon{margin-left:auto!important;position:relative;bottom:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.add-new .plus-icon svg path{fill:#92b1f5}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.all-assigned .details-template-text,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.all-assigned .svgtext-template-text{color:#919191;font-size:11px;font-weight:700;line-height:14px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-repair-truck-trailer .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-repair-truck-trailer .highlight-text-45632:hover{color:#bed0f9!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-repair-truck-trailer:after{display:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label .labels-template-counter,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-dark .labels-template-counter{background-color:#3b73ed!important;color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label{color:#fff;font-size:14px;font-weight:700;position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active .highlight-text-45632,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active .highlight-text-45632:hover,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label .highlight-text-45632:hover{color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active:not(.payroll-trucks):after,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label:not(.payroll-trucks):after{display:inline-block;position:absolute;right:6px;top:28%;transform:translateY(-50%);content:url(/assets/ca-components/svg/input/ic_confirm.svg);width:14px;height:10px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-label:after{right:35px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.last-active{position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.last-active:before{content:\"\";position:absolute;bottom:-1px;left:0;height:2px;width:100%;background-color:#aaa3;border-radius:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template{display:flex;align-items:center}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template.hazardous{display:flex;flex-direction:row-reverse;justify-content:flex-end}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template.hazardous svg{margin-right:5px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo{display:flex;margin-right:6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.no-svg{margin-right:0!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.hazardous-svg{line-height:14px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.state-logo svg path{fill:#cccc}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.truck-trailer-logo{position:absolute;right:25px;text-align:right;display:none;margin-right:0}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.truck-trailer-logo.container{right:13px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.radiator svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.turbo svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.alignment svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.accompressor svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.aircompressor svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.fuelpump svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.waterpump svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.oilpump svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.brakechamber svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.battery svg path,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-logo.enginetuneup svg path{fill:#919191}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-text{position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-text.truck-text{top:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-text.flex-1{flex:1}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .svgtext-template-text.additional-text{font-size:11px;font-weight:400;line-height:14px;color:#919191;text-align:right}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template .colors{height:18px;width:18px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template.hazardous-dropdown .svgtext-template-logo{order:2;margin-right:0;position:relative;bottom:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.svg-text-template.hazardous-dropdown .svgtext-template-text{order:1;margin-right:6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-left-side{display:flex;align-items:center}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-left-side .labels-template-logo svg{width:18px;height:18px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-left-side .labels-template-vertical-divider{width:1px;height:15px;background-color:#aaa3;content:\"\";margin:0 6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side{flex:1;display:flex;align-items:center;justify-content:space-between}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text{margin-right:28px;font-size:14px;font-weight:400;line-height:18px;color:#fff}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text.lable-text-wrap{text-overflow:ellipsis;overflow:hidden;width:80px;white-space:nowrap}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text.add-new{font-size:11px;font-weight:700;color:#6f9ee0;transition:all .3s ease-in-out;position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text.no-result{line-height:14px;font-size:11px;font-weight:700;padding:0!important;color:#919191;height:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text.no-result:hover{background-color:transparent!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-text.no-result div{padding-top:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-counter{width:22px;height:16px;border-radius:20px;background-color:#ccc3;color:#aaa;text-align:center;font-size:11px;font-weight:500;padding:0 4.5px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template .labels-template-right-side .labels-template-counter.dont-show-counter{display:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template.no-result{height:14px;font-size:11px;font-weight:700;padding:0!important;color:#919191;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template.no-result:hover{background-color:transparent!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template.no-result div{padding-top:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template:hover .labels-template-text{color:#fff}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template:hover .labels-template-text.add-new{color:#bed0f9}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.labels-template:hover .labels-template-counter{background-color:#ccc3;color:#dadada}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template{display:grid;grid-template-columns:auto 14px 1fr;align-items:center;justify-content:space-between}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template.load-details-template{grid-template-columns:30px 130px 1fr;grid-gap:4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template.add-new{grid-template-columns:1fr 1fr;margin-right:6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template.dropdown-option{position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .details-template-text.active{color:#6f9ee0}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .details-template-text.active:hover{color:#bed0f9;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .details-template-logo{margin-left:6px;line-height:15px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .driver-details-template-container{position:absolute;right:6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .driver-details-template-container p{font-size:11px;line-height:18px;color:#919191;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .driver-details-template-container .right-box{margin-left:4px;padding:0 6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .driver-details-template-container .right-box p{color:#aaa}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.details-template .additional-text{font-size:11px;color:#919191;line-height:12px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-text-counter{display:flex;align-items:center;justify-content:space-between}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-text-counter .option-counter{min-width:22px;height:16px;border-radius:20px;background-color:#ccc3;color:#aaa;font-size:11px;font-weight:500;text-align:center;padding:0 4.5px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-text-counter.active:after{right:35px;top:3.5px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-text-counter:hover .option-counter{background-color:#ccc3}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise{display:flex;flex-direction:column;justify-content:center;height:auto;min-height:26px;border-radius:2px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header{display:flex;align-items:center;justify-content:space-between;padding:0 2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side{display:flex;align-items:center;gap:6px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .option-counter{min-width:22px;height:16px;border-radius:20px;background-color:#ccc3;color:#aaa;font-size:11px;font-weight:500;text-align:center;padding:0 4.5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow{width:18px;height:18px;line-height:15px;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow svg{transform:rotate(0);transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow svg path{fill:#aaa}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow.rotate svg{transform:rotate(180deg);transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow:hover svg path{fill:#dadada}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores{display:flex;flex-direction:column;justify-content:center;gap:4px;max-height:237px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store{height:26px;border-radius:2px;display:flex;align-items:center;justify-content:space-between;padding:3px 26px 4px 4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store .fuel-franchise-store-name{font-size:14px;font-weight:400;height:19px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fff}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store .fuel-franchise-store-address{font-size:11px;font-weight:500;line-height:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#ccc}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store.active .fuel-franchise-store-name,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store.active .fuel-franchise-store-address{color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store.active .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store:hover{color:#fff;background-color:#1d1d1d}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store:hover.active .fuel-franchise-store-name,.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores .fuel-franchise-single-store:hover.active .fuel-franchise-store-address{color:#fff!important;font-weight:700}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores.scroll{transition:all .3s ease-in-out;overflow-y:scroll!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores.scroll::-webkit-scrollbar{width:3px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores.scroll::-webkit-scrollbar-thumb{background-color:transparent;border:6px solid #aaaaaa;border-radius:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores.scroll::-webkit-scrollbar-track{padding:0;position:relative;right:0;top:0;background:transparent}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise .fuel-franchise-stores.scroll .fuel-franchise-single-store{padding:3px 22px 4px 4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores{background-color:#aaaaaa1a}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores .fuel-franchise-main-header{color:#fff;font-weight:700}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores:hover{background-color:#aaaaaa1a;color:#dadada}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores-header-hover:hover{background-color:#2f2f2f;position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores-header-hover:hover .fuel-franchise-header{color:#fff;background-color:#1d1d1d;font-weight:700;position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores-header-hover:hover .helper-hover-container{content:\"\";width:105%;height:26px;background-color:#1d1d1d;position:absolute;top:0;left:0;border-radius:2px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option-fuel-franchise.active-stores-header-hover:hover .fuel-franchise-header .fuel-franchise-header-right-side .header-arrow svg path{fill:#dadada}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option .svg-template-logo{height:18px;aspect-ratio:1}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.routing_dropdown{font-size:11px;height:22px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-status .dropdown-option{font-weight:700;text-transform:uppercase}.ca-input-dropdown .popover-body .dropdown-options .load-dispatcher-template{display:flex;align-items:center;gap:6px}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template{display:grid;grid-template-columns:repeat(3,155px) 97px;align-items:center}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container{display:flex;align-items:center;gap:6px;position:relative}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .owner-avatar{position:absolute;left:13px;bottom:-3px;width:10px;height:10px}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dispatch-driver,.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dispatch-truck,.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dispatch-trailer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:116px;max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;line-height:18px;font-size:14px;font-weight:400}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dispatches-svg{line-height:16px}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dispatches-svg svg{width:46px;height:16px}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dipstaches-owner-flag{position:absolute;top:44%;right:0;transform:translateY(-50%)}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container .load-dipstaches-owner-flag svg path{fill:#6f9ee0!important}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatches-container.trailerContainer{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;padding:0!important;margin:0!important}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatch-driver-rate{width:130px;text-align:right;font-size:11px;font-weight:400;color:#919191;padding-bottom:1px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatch-driver-rate.active{color:#6f9ee0}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template .load-dispatch-driver-rate.driver-owner{text-align:left;width:80px}.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template.active .load-dispatch-driver-rate,.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template.active .load-dispatch-driver,.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template.active .load-dispatch-truck,.ca-input-dropdown .popover-body .dropdown-options .load-dispatches-ttd-template.active .load-dispatch-trailer{font-weight:700}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template{display:grid;align-items:center;grid-template-columns:276px 92px;-moz-column-gap:29px;column-gap:29px}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template.hide-loads{grid-template-columns:333px 92px!important}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-status-text{display:flex;align-items:center;gap:6px;line-height:18px}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-status-text .load-broker-status{position:relative;line-height:17px}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-status-text .load-broker-status.dnu-status svg path{fill:#aaa}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-status-text .load-broker-text.disabled{color:#6c6c6c}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-progress-status{height:14px;display:flex;align-items:center;justify-content:flex-end;grid-gap:4px;gap:4px;text-align:center}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-progress-status .progress-bar-price{color:#919191;font-size:11px;font-weight:400}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-progress-status .progress-bar-line{width:24px}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-load-counter{max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;height:18px;border-radius:30px;text-align:center;font-size:11px;font-weight:400;color:#919191;background-color:#91919133;padding:1px 6px}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-load-counter.active{color:#6f9ee0;background-color:#6f9ee033}.ca-input-dropdown .popover-body .dropdown-options .load-broker-template .load-broker-load-counter.hasOneValue{max-width:19px!important}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template{display:grid;grid-template-columns:405px 166px;align-items:center;padding-right:25px}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template .load-shipper-status-text{display:flex;align-items:center;gap:6px;line-height:18px}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template .load-shipper-status-text .load-shipper-status{position:relative;line-height:17px}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template .load-shipper-status-text .load-shipper-text.disabled{color:#6c6c6c}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template div:nth-child(2),.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template div:nth-child(3){text-align:right}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template div:nth-child(2){color:#919191;font-size:11px;font-weight:400}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template div:nth-child(2).active{color:#6f9ee0;font-weight:700}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template .load-shipper-load-counter{max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;height:18px;border-radius:30px;text-align:right;font-size:11px;font-weight:400;color:#919191;background-color:#91919133;padding:1px 6px;justify-self:flex-end}.ca-input-dropdown .popover-body .dropdown-options .load-shipper-template .load-shipper-load-counter.active{color:#6f9ee0;background-color:#6f9ee033}.ca-input-dropdown .popover-body .dropdown-options.w-col-1{width:1px}.ca-input-dropdown .popover-body .dropdown-options.w-col-2{width:2px}.ca-input-dropdown .popover-body .dropdown-options.w-col-3{width:3px}.ca-input-dropdown .popover-body .dropdown-options.w-col-4{width:4px}.ca-input-dropdown .popover-body .dropdown-options.w-col-5{width:5px}.ca-input-dropdown .popover-body .dropdown-options.w-col-6{width:6px}.ca-input-dropdown .popover-body .dropdown-options.w-col-7{width:7px}.ca-input-dropdown .popover-body .dropdown-options.w-col-8{width:8px}.ca-input-dropdown .popover-body .dropdown-options.w-col-9{width:9px}.ca-input-dropdown .popover-body .dropdown-options.w-col-10{width:10px}.ca-input-dropdown .popover-body .dropdown-options.w-col-11{width:11px}.ca-input-dropdown .popover-body .dropdown-options.w-col-12{width:12px}.ca-input-dropdown .popover-body .dropdown-options.w-col-13{width:13px}.ca-input-dropdown .popover-body .dropdown-options.w-col-14{width:14px}.ca-input-dropdown .popover-body .dropdown-options.w-col-15{width:15px}.ca-input-dropdown .popover-body .dropdown-options.w-col-16{width:16px}.ca-input-dropdown .popover-body .dropdown-options.w-col-17{width:17px}.ca-input-dropdown .popover-body .dropdown-options.w-col-18{width:18px}.ca-input-dropdown .popover-body .dropdown-options.w-col-19{width:19px}.ca-input-dropdown .popover-body .dropdown-options.w-col-20{width:20px}.ca-input-dropdown .popover-body .dropdown-options.w-col-21{width:21px}.ca-input-dropdown .popover-body .dropdown-options.w-col-22{width:22px}.ca-input-dropdown .popover-body .dropdown-options.w-col-23{width:23px}.ca-input-dropdown .popover-body .dropdown-options.w-col-24{width:24px}.ca-input-dropdown .popover-body .dropdown-options.w-col-25{width:25px}.ca-input-dropdown .popover-body .dropdown-options.w-col-26{width:26px}.ca-input-dropdown .popover-body .dropdown-options.w-col-27{width:27px}.ca-input-dropdown .popover-body .dropdown-options.w-col-28{width:28px}.ca-input-dropdown .popover-body .dropdown-options.w-col-29{width:29px}.ca-input-dropdown .popover-body .dropdown-options.w-col-30{width:30px}.ca-input-dropdown .popover-body .dropdown-options.w-col-31{width:31px}.ca-input-dropdown .popover-body .dropdown-options.w-col-32{width:32px}.ca-input-dropdown .popover-body .dropdown-options.w-col-33{width:33px}.ca-input-dropdown .popover-body .dropdown-options.w-col-34{width:34px}.ca-input-dropdown .popover-body .dropdown-options.w-col-35{width:35px}.ca-input-dropdown .popover-body .dropdown-options.w-col-36{width:36px}.ca-input-dropdown .popover-body .dropdown-options.w-col-37{width:37px}.ca-input-dropdown .popover-body .dropdown-options.w-col-38{width:38px}.ca-input-dropdown .popover-body .dropdown-options.w-col-39{width:39px}.ca-input-dropdown .popover-body .dropdown-options.w-col-40{width:40px}.ca-input-dropdown .popover-body .dropdown-options.w-col-41{width:41px}.ca-input-dropdown .popover-body .dropdown-options.w-col-42{width:42px}.ca-input-dropdown .popover-body .dropdown-options.w-col-43{width:43px}.ca-input-dropdown .popover-body .dropdown-options.w-col-44{width:44px}.ca-input-dropdown .popover-body .dropdown-options.w-col-45{width:45px}.ca-input-dropdown .popover-body .dropdown-options.w-col-46{width:46px}.ca-input-dropdown .popover-body .dropdown-options.w-col-47{width:47px}.ca-input-dropdown .popover-body .dropdown-options.w-col-48{width:48px}.ca-input-dropdown .popover-body .dropdown-options.w-col-49{width:49px}.ca-input-dropdown .popover-body .dropdown-options.w-col-50{width:50px}.ca-input-dropdown .popover-body .dropdown-options.w-col-51{width:51px}.ca-input-dropdown .popover-body .dropdown-options.w-col-52{width:52px}.ca-input-dropdown .popover-body .dropdown-options.w-col-53{width:53px}.ca-input-dropdown .popover-body .dropdown-options.w-col-54{width:54px}.ca-input-dropdown .popover-body .dropdown-options.w-col-55{width:55px}.ca-input-dropdown .popover-body .dropdown-options.w-col-56{width:56px}.ca-input-dropdown .popover-body .dropdown-options.w-col-57{width:57px}.ca-input-dropdown .popover-body .dropdown-options.w-col-58{width:58px}.ca-input-dropdown .popover-body .dropdown-options.w-col-59{width:59px}.ca-input-dropdown .popover-body .dropdown-options.w-col-60{width:60px}.ca-input-dropdown .popover-body .dropdown-options.w-col-61{width:61px}.ca-input-dropdown .popover-body .dropdown-options.w-col-62{width:62px}.ca-input-dropdown .popover-body .dropdown-options.w-col-63{width:63px}.ca-input-dropdown .popover-body .dropdown-options.w-col-64{width:64px}.ca-input-dropdown .popover-body .dropdown-options.w-col-65{width:65px}.ca-input-dropdown .popover-body .dropdown-options.w-col-66{width:66px}.ca-input-dropdown .popover-body .dropdown-options.w-col-67{width:67px}.ca-input-dropdown .popover-body .dropdown-options.w-col-68{width:68px}.ca-input-dropdown .popover-body .dropdown-options.w-col-69{width:69px}.ca-input-dropdown .popover-body .dropdown-options.w-col-70{width:70px}.ca-input-dropdown .popover-body .dropdown-options.w-col-71{width:71px}.ca-input-dropdown .popover-body .dropdown-options.w-col-72{width:72px}.ca-input-dropdown .popover-body .dropdown-options.w-col-73{width:73px}.ca-input-dropdown .popover-body .dropdown-options.w-col-74{width:74px}.ca-input-dropdown .popover-body .dropdown-options.w-col-75{width:75px}.ca-input-dropdown .popover-body .dropdown-options.w-col-76{width:76px}.ca-input-dropdown .popover-body .dropdown-options.w-col-77{width:77px}.ca-input-dropdown .popover-body .dropdown-options.w-col-78{width:78px}.ca-input-dropdown .popover-body .dropdown-options.w-col-79{width:79px}.ca-input-dropdown .popover-body .dropdown-options.w-col-80{width:80px}.ca-input-dropdown .popover-body .dropdown-options.w-col-81{width:81px}.ca-input-dropdown .popover-body .dropdown-options.w-col-82{width:82px}.ca-input-dropdown .popover-body .dropdown-options.w-col-83{width:83px}.ca-input-dropdown .popover-body .dropdown-options.w-col-84{width:84px}.ca-input-dropdown .popover-body .dropdown-options.w-col-85{width:85px}.ca-input-dropdown .popover-body .dropdown-options.w-col-86{width:86px}.ca-input-dropdown .popover-body .dropdown-options.w-col-87{width:87px}.ca-input-dropdown .popover-body .dropdown-options.w-col-88{width:88px}.ca-input-dropdown .popover-body .dropdown-options.w-col-89{width:89px}.ca-input-dropdown .popover-body .dropdown-options.w-col-90{width:90px}.ca-input-dropdown .popover-body .dropdown-options.w-col-91{width:91px}.ca-input-dropdown .popover-body .dropdown-options.w-col-92{width:92px}.ca-input-dropdown .popover-body .dropdown-options.w-col-93{width:93px}.ca-input-dropdown .popover-body .dropdown-options.w-col-94{width:94px}.ca-input-dropdown .popover-body .dropdown-options.w-col-95{width:95px}.ca-input-dropdown .popover-body .dropdown-options.w-col-96{width:96px}.ca-input-dropdown .popover-body .dropdown-options.w-col-97{width:97px}.ca-input-dropdown .popover-body .dropdown-options.w-col-98{width:98px}.ca-input-dropdown .popover-body .dropdown-options.w-col-99{width:99px}.ca-input-dropdown .popover-body .dropdown-options.w-col-100{width:100px}.ca-input-dropdown .popover-body .dropdown-options.w-col-101{width:101px}.ca-input-dropdown .popover-body .dropdown-options.w-col-102{width:102px}.ca-input-dropdown .popover-body .dropdown-options.w-col-103{width:103px}.ca-input-dropdown .popover-body .dropdown-options.w-col-104{width:104px}.ca-input-dropdown .popover-body .dropdown-options.w-col-105{width:105px}.ca-input-dropdown .popover-body .dropdown-options.w-col-106{width:106px}.ca-input-dropdown .popover-body .dropdown-options.w-col-107{width:107px}.ca-input-dropdown .popover-body .dropdown-options.w-col-108{width:108px}.ca-input-dropdown .popover-body .dropdown-options.w-col-109{width:109px}.ca-input-dropdown .popover-body .dropdown-options.w-col-110{width:110px}.ca-input-dropdown .popover-body .dropdown-options.w-col-111{width:111px}.ca-input-dropdown .popover-body .dropdown-options.w-col-112{width:112px}.ca-input-dropdown .popover-body .dropdown-options.w-col-113{width:113px}.ca-input-dropdown .popover-body .dropdown-options.w-col-114{width:114px}.ca-input-dropdown .popover-body .dropdown-options.w-col-115{width:115px}.ca-input-dropdown .popover-body .dropdown-options.w-col-116{width:116px}.ca-input-dropdown .popover-body .dropdown-options.w-col-117{width:117px}.ca-input-dropdown .popover-body .dropdown-options.w-col-118{width:118px}.ca-input-dropdown .popover-body .dropdown-options.w-col-119{width:119px}.ca-input-dropdown .popover-body .dropdown-options.w-col-120{width:120px}.ca-input-dropdown .popover-body .dropdown-options.w-col-121{width:121px}.ca-input-dropdown .popover-body .dropdown-options.w-col-122{width:122px}.ca-input-dropdown .popover-body .dropdown-options.w-col-123{width:123px}.ca-input-dropdown .popover-body .dropdown-options.w-col-124{width:124px}.ca-input-dropdown .popover-body .dropdown-options.w-col-125{width:125px}.ca-input-dropdown .popover-body .dropdown-options.w-col-126{width:126px}.ca-input-dropdown .popover-body .dropdown-options.w-col-127{width:127px}.ca-input-dropdown .popover-body .dropdown-options.w-col-128{width:128px}.ca-input-dropdown .popover-body .dropdown-options.w-col-129{width:129px}.ca-input-dropdown .popover-body .dropdown-options.w-col-130{width:130px}.ca-input-dropdown .popover-body .dropdown-options.w-col-131{width:131px}.ca-input-dropdown .popover-body .dropdown-options.w-col-132{width:132px}.ca-input-dropdown .popover-body .dropdown-options.w-col-133{width:133px}.ca-input-dropdown .popover-body .dropdown-options.w-col-134{width:134px}.ca-input-dropdown .popover-body .dropdown-options.w-col-135{width:135px}.ca-input-dropdown .popover-body .dropdown-options.w-col-136{width:136px}.ca-input-dropdown .popover-body .dropdown-options.w-col-137{width:137px}.ca-input-dropdown .popover-body .dropdown-options.w-col-138{width:138px}.ca-input-dropdown .popover-body .dropdown-options.w-col-139{width:139px}.ca-input-dropdown .popover-body .dropdown-options.w-col-140{width:140px}.ca-input-dropdown .popover-body .dropdown-options.w-col-141{width:141px}.ca-input-dropdown .popover-body .dropdown-options.w-col-142{width:142px}.ca-input-dropdown .popover-body .dropdown-options.w-col-143{width:143px}.ca-input-dropdown .popover-body .dropdown-options.w-col-144{width:144px}.ca-input-dropdown .popover-body .dropdown-options.w-col-145{width:145px}.ca-input-dropdown .popover-body .dropdown-options.w-col-146{width:146px}.ca-input-dropdown .popover-body .dropdown-options.w-col-147{width:147px}.ca-input-dropdown .popover-body .dropdown-options.w-col-148{width:148px}.ca-input-dropdown .popover-body .dropdown-options.w-col-149{width:149px}.ca-input-dropdown .popover-body .dropdown-options.w-col-150{width:150px}.ca-input-dropdown .popover-body .dropdown-options.w-col-151{width:151px}.ca-input-dropdown .popover-body .dropdown-options.w-col-152{width:152px}.ca-input-dropdown .popover-body .dropdown-options.w-col-153{width:153px}.ca-input-dropdown .popover-body .dropdown-options.w-col-154{width:154px}.ca-input-dropdown .popover-body .dropdown-options.w-col-155{width:155px}.ca-input-dropdown .popover-body .dropdown-options.w-col-156{width:156px}.ca-input-dropdown .popover-body .dropdown-options.w-col-157{width:157px}.ca-input-dropdown .popover-body .dropdown-options.w-col-158{width:158px}.ca-input-dropdown .popover-body .dropdown-options.w-col-159{width:159px}.ca-input-dropdown .popover-body .dropdown-options.w-col-160{width:160px}.ca-input-dropdown .popover-body .dropdown-options.w-col-161{width:161px}.ca-input-dropdown .popover-body .dropdown-options.w-col-162{width:162px}.ca-input-dropdown .popover-body .dropdown-options.w-col-163{width:163px}.ca-input-dropdown .popover-body .dropdown-options.w-col-164{width:164px}.ca-input-dropdown .popover-body .dropdown-options.w-col-165{width:165px}.ca-input-dropdown .popover-body .dropdown-options.w-col-166{width:166px}.ca-input-dropdown .popover-body .dropdown-options.w-col-167{width:167px}.ca-input-dropdown .popover-body .dropdown-options.w-col-168{width:168px}.ca-input-dropdown .popover-body .dropdown-options.w-col-169{width:169px}.ca-input-dropdown .popover-body .dropdown-options.w-col-170{width:170px}.ca-input-dropdown .popover-body .dropdown-options.w-col-171{width:171px}.ca-input-dropdown .popover-body .dropdown-options.w-col-172{width:172px}.ca-input-dropdown .popover-body .dropdown-options.w-col-173{width:173px}.ca-input-dropdown .popover-body .dropdown-options.w-col-174{width:174px}.ca-input-dropdown .popover-body .dropdown-options.w-col-175{width:175px}.ca-input-dropdown .popover-body .dropdown-options.w-col-176{width:176px}.ca-input-dropdown .popover-body .dropdown-options.w-col-177{width:177px}.ca-input-dropdown .popover-body .dropdown-options.w-col-178{width:178px}.ca-input-dropdown .popover-body .dropdown-options.w-col-179{width:179px}.ca-input-dropdown .popover-body .dropdown-options.w-col-180{width:180px}.ca-input-dropdown .popover-body .dropdown-options.w-col-181{width:181px}.ca-input-dropdown .popover-body .dropdown-options.w-col-182{width:182px}.ca-input-dropdown .popover-body .dropdown-options.w-col-183{width:183px}.ca-input-dropdown .popover-body .dropdown-options.w-col-184{width:184px}.ca-input-dropdown .popover-body .dropdown-options.w-col-185{width:185px}.ca-input-dropdown .popover-body .dropdown-options.w-col-186{width:186px}.ca-input-dropdown .popover-body .dropdown-options.w-col-187{width:187px}.ca-input-dropdown .popover-body .dropdown-options.w-col-188{width:188px}.ca-input-dropdown .popover-body .dropdown-options.w-col-189{width:189px}.ca-input-dropdown .popover-body .dropdown-options.w-col-190{width:190px}.ca-input-dropdown .popover-body .dropdown-options.w-col-191{width:191px}.ca-input-dropdown .popover-body .dropdown-options.w-col-192{width:192px}.ca-input-dropdown .popover-body .dropdown-options.w-col-193{width:193px}.ca-input-dropdown .popover-body .dropdown-options.w-col-194{width:194px}.ca-input-dropdown .popover-body .dropdown-options.w-col-195{width:195px}.ca-input-dropdown .popover-body .dropdown-options.w-col-196{width:196px}.ca-input-dropdown .popover-body .dropdown-options.w-col-197{width:197px}.ca-input-dropdown .popover-body .dropdown-options.w-col-198{width:198px}.ca-input-dropdown .popover-body .dropdown-options.w-col-199{width:199px}.ca-input-dropdown .popover-body .dropdown-options.w-col-200{width:200px}.ca-input-dropdown .popover-body .dropdown-options.w-col-201{width:201px}.ca-input-dropdown .popover-body .dropdown-options.w-col-202{width:202px}.ca-input-dropdown .popover-body .dropdown-options.w-col-203{width:203px}.ca-input-dropdown .popover-body .dropdown-options.w-col-204{width:204px}.ca-input-dropdown .popover-body .dropdown-options.w-col-205{width:205px}.ca-input-dropdown .popover-body .dropdown-options.w-col-206{width:206px}.ca-input-dropdown .popover-body .dropdown-options.w-col-207{width:207px}.ca-input-dropdown .popover-body .dropdown-options.w-col-208{width:208px}.ca-input-dropdown .popover-body .dropdown-options.w-col-209{width:209px}.ca-input-dropdown .popover-body .dropdown-options.w-col-210{width:210px}.ca-input-dropdown .popover-body .dropdown-options.w-col-211{width:211px}.ca-input-dropdown .popover-body .dropdown-options.w-col-212{width:212px}.ca-input-dropdown .popover-body .dropdown-options.w-col-213{width:213px}.ca-input-dropdown .popover-body .dropdown-options.w-col-214{width:214px}.ca-input-dropdown .popover-body .dropdown-options.w-col-215{width:215px}.ca-input-dropdown .popover-body .dropdown-options.w-col-216{width:216px}.ca-input-dropdown .popover-body .dropdown-options.w-col-217{width:217px}.ca-input-dropdown .popover-body .dropdown-options.w-col-218{width:218px}.ca-input-dropdown .popover-body .dropdown-options.w-col-219{width:219px}.ca-input-dropdown .popover-body .dropdown-options.w-col-220{width:220px}.ca-input-dropdown .popover-body .dropdown-options.w-col-221{width:221px}.ca-input-dropdown .popover-body .dropdown-options.w-col-222{width:222px}.ca-input-dropdown .popover-body .dropdown-options.w-col-223{width:223px}.ca-input-dropdown .popover-body .dropdown-options.w-col-224{width:224px}.ca-input-dropdown .popover-body .dropdown-options.w-col-225{width:225px}.ca-input-dropdown .popover-body .dropdown-options.w-col-226{width:226px}.ca-input-dropdown .popover-body .dropdown-options.w-col-227{width:227px}.ca-input-dropdown .popover-body .dropdown-options.w-col-228{width:228px}.ca-input-dropdown .popover-body .dropdown-options.w-col-229{width:229px}.ca-input-dropdown .popover-body .dropdown-options.w-col-230{width:230px}.ca-input-dropdown .popover-body .dropdown-options.w-col-231{width:231px}.ca-input-dropdown .popover-body .dropdown-options.w-col-232{width:232px}.ca-input-dropdown .popover-body .dropdown-options.w-col-233{width:233px}.ca-input-dropdown .popover-body .dropdown-options.w-col-234{width:234px}.ca-input-dropdown .popover-body .dropdown-options.w-col-235{width:235px}.ca-input-dropdown .popover-body .dropdown-options.w-col-236{width:236px}.ca-input-dropdown .popover-body .dropdown-options.w-col-237{width:237px}.ca-input-dropdown .popover-body .dropdown-options.w-col-238{width:238px}.ca-input-dropdown .popover-body .dropdown-options.w-col-239{width:239px}.ca-input-dropdown .popover-body .dropdown-options.w-col-240{width:240px}.ca-input-dropdown .popover-body .dropdown-options.w-col-241{width:241px}.ca-input-dropdown .popover-body .dropdown-options.w-col-242{width:242px}.ca-input-dropdown .popover-body .dropdown-options.w-col-243{width:243px}.ca-input-dropdown .popover-body .dropdown-options.w-col-244{width:244px}.ca-input-dropdown .popover-body .dropdown-options.w-col-245{width:245px}.ca-input-dropdown .popover-body .dropdown-options.w-col-246{width:246px}.ca-input-dropdown .popover-body .dropdown-options.w-col-247{width:247px}.ca-input-dropdown .popover-body .dropdown-options.w-col-248{width:248px}.ca-input-dropdown .popover-body .dropdown-options.w-col-249{width:249px}.ca-input-dropdown .popover-body .dropdown-options.w-col-250{width:250px}.ca-input-dropdown .popover-body .dropdown-options.w-col-251{width:251px}.ca-input-dropdown .popover-body .dropdown-options.w-col-252{width:252px}.ca-input-dropdown .popover-body .dropdown-options.w-col-253{width:253px}.ca-input-dropdown .popover-body .dropdown-options.w-col-254{width:254px}.ca-input-dropdown .popover-body .dropdown-options.w-col-255{width:255px}.ca-input-dropdown .popover-body .dropdown-options.w-col-256{width:256px}.ca-input-dropdown .popover-body .dropdown-options.w-col-257{width:257px}.ca-input-dropdown .popover-body .dropdown-options.w-col-258{width:258px}.ca-input-dropdown .popover-body .dropdown-options.w-col-259{width:259px}.ca-input-dropdown .popover-body .dropdown-options.w-col-260{width:260px}.ca-input-dropdown .popover-body .dropdown-options.w-col-261{width:261px}.ca-input-dropdown .popover-body .dropdown-options.w-col-262{width:262px}.ca-input-dropdown .popover-body .dropdown-options.w-col-263{width:263px}.ca-input-dropdown .popover-body .dropdown-options.w-col-264{width:264px}.ca-input-dropdown .popover-body .dropdown-options.w-col-265{width:265px}.ca-input-dropdown .popover-body .dropdown-options.w-col-266{width:266px}.ca-input-dropdown .popover-body .dropdown-options.w-col-267{width:267px}.ca-input-dropdown .popover-body .dropdown-options.w-col-268{width:268px}.ca-input-dropdown .popover-body .dropdown-options.w-col-269{width:269px}.ca-input-dropdown .popover-body .dropdown-options.w-col-270{width:270px}.ca-input-dropdown .popover-body .dropdown-options.w-col-271{width:271px}.ca-input-dropdown .popover-body .dropdown-options.w-col-272{width:272px}.ca-input-dropdown .popover-body .dropdown-options.w-col-273{width:273px}.ca-input-dropdown .popover-body .dropdown-options.w-col-274{width:274px}.ca-input-dropdown .popover-body .dropdown-options.w-col-275{width:275px}.ca-input-dropdown .popover-body .dropdown-options.w-col-276{width:276px}.ca-input-dropdown .popover-body .dropdown-options.w-col-277{width:277px}.ca-input-dropdown .popover-body .dropdown-options.w-col-278{width:278px}.ca-input-dropdown .popover-body .dropdown-options.w-col-279{width:279px}.ca-input-dropdown .popover-body .dropdown-options.w-col-280{width:280px}.ca-input-dropdown .popover-body .dropdown-options.w-col-281{width:281px}.ca-input-dropdown .popover-body .dropdown-options.w-col-282{width:282px}.ca-input-dropdown .popover-body .dropdown-options.w-col-283{width:283px}.ca-input-dropdown .popover-body .dropdown-options.w-col-284{width:284px}.ca-input-dropdown .popover-body .dropdown-options.w-col-285{width:285px}.ca-input-dropdown .popover-body .dropdown-options.w-col-286{width:286px}.ca-input-dropdown .popover-body .dropdown-options.w-col-287{width:287px}.ca-input-dropdown .popover-body .dropdown-options.w-col-288{width:288px}.ca-input-dropdown .popover-body .dropdown-options.w-col-289{width:289px}.ca-input-dropdown .popover-body .dropdown-options.w-col-290{width:290px}.ca-input-dropdown .popover-body .dropdown-options.w-col-291{width:291px}.ca-input-dropdown .popover-body .dropdown-options.w-col-292{width:292px}.ca-input-dropdown .popover-body .dropdown-options.w-col-293{width:293px}.ca-input-dropdown .popover-body .dropdown-options.w-col-294{width:294px}.ca-input-dropdown .popover-body .dropdown-options.w-col-295{width:295px}.ca-input-dropdown .popover-body .dropdown-options.w-col-296{width:296px}.ca-input-dropdown .popover-body .dropdown-options.w-col-297{width:297px}.ca-input-dropdown .popover-body .dropdown-options.w-col-298{width:298px}.ca-input-dropdown .popover-body .dropdown-options.w-col-299{width:299px}.ca-input-dropdown .popover-body .dropdown-options.w-col-300{width:300px}.ca-input-dropdown .popover-body .dropdown-options.w-col-301{width:301px}.ca-input-dropdown .popover-body .dropdown-options.w-col-302{width:302px}.ca-input-dropdown .popover-body .dropdown-options.w-col-303{width:303px}.ca-input-dropdown .popover-body .dropdown-options.w-col-304{width:304px}.ca-input-dropdown .popover-body .dropdown-options.w-col-305{width:305px}.ca-input-dropdown .popover-body .dropdown-options.w-col-306{width:306px}.ca-input-dropdown .popover-body .dropdown-options.w-col-307{width:307px}.ca-input-dropdown .popover-body .dropdown-options.w-col-308{width:308px}.ca-input-dropdown .popover-body .dropdown-options.w-col-309{width:309px}.ca-input-dropdown .popover-body .dropdown-options.w-col-310{width:310px}.ca-input-dropdown .popover-body .dropdown-options.w-col-311{width:311px}.ca-input-dropdown .popover-body .dropdown-options.w-col-312{width:312px}.ca-input-dropdown .popover-body .dropdown-options.w-col-313{width:313px}.ca-input-dropdown .popover-body .dropdown-options.w-col-314{width:314px}.ca-input-dropdown .popover-body .dropdown-options.w-col-315{width:315px}.ca-input-dropdown .popover-body .dropdown-options.w-col-316{width:316px}.ca-input-dropdown .popover-body .dropdown-options.w-col-317{width:317px}.ca-input-dropdown .popover-body .dropdown-options.w-col-318{width:318px}.ca-input-dropdown .popover-body .dropdown-options.w-col-319{width:319px}.ca-input-dropdown .popover-body .dropdown-options.w-col-320{width:320px}.ca-input-dropdown .popover-body .dropdown-options.w-col-321{width:321px}.ca-input-dropdown .popover-body .dropdown-options.w-col-322{width:322px}.ca-input-dropdown .popover-body .dropdown-options.w-col-323{width:323px}.ca-input-dropdown .popover-body .dropdown-options.w-col-324{width:324px}.ca-input-dropdown .popover-body .dropdown-options.w-col-325{width:325px}.ca-input-dropdown .popover-body .dropdown-options.w-col-326{width:326px}.ca-input-dropdown .popover-body .dropdown-options.w-col-327{width:327px}.ca-input-dropdown .popover-body .dropdown-options.w-col-328{width:328px}.ca-input-dropdown .popover-body .dropdown-options.w-col-329{width:329px}.ca-input-dropdown .popover-body .dropdown-options.w-col-330{width:330px}.ca-input-dropdown .popover-body .dropdown-options.w-col-331{width:331px}.ca-input-dropdown .popover-body .dropdown-options.w-col-332{width:332px}.ca-input-dropdown .popover-body .dropdown-options.w-col-333{width:333px}.ca-input-dropdown .popover-body .dropdown-options.w-col-334{width:334px}.ca-input-dropdown .popover-body .dropdown-options.w-col-335{width:335px}.ca-input-dropdown .popover-body .dropdown-options.w-col-336{width:336px}.ca-input-dropdown .popover-body .dropdown-options.w-col-337{width:337px}.ca-input-dropdown .popover-body .dropdown-options.w-col-338{width:338px}.ca-input-dropdown .popover-body .dropdown-options.w-col-339{width:339px}.ca-input-dropdown .popover-body .dropdown-options.w-col-340{width:340px}.ca-input-dropdown .popover-body .dropdown-options.w-col-341{width:341px}.ca-input-dropdown .popover-body .dropdown-options.w-col-342{width:342px}.ca-input-dropdown .popover-body .dropdown-options.w-col-343{width:343px}.ca-input-dropdown .popover-body .dropdown-options.w-col-344{width:344px}.ca-input-dropdown .popover-body .dropdown-options.w-col-345{width:345px}.ca-input-dropdown .popover-body .dropdown-options.w-col-346{width:346px}.ca-input-dropdown .popover-body .dropdown-options.w-col-347{width:347px}.ca-input-dropdown .popover-body .dropdown-options.w-col-348{width:348px}.ca-input-dropdown .popover-body .dropdown-options.w-col-349{width:349px}.ca-input-dropdown .popover-body .dropdown-options.w-col-350{width:350px}.ca-input-dropdown .popover-body .dropdown-options.w-col-351{width:351px}.ca-input-dropdown .popover-body .dropdown-options.w-col-352{width:352px}.ca-input-dropdown .popover-body .dropdown-options.w-col-353{width:353px}.ca-input-dropdown .popover-body .dropdown-options.w-col-354{width:354px}.ca-input-dropdown .popover-body .dropdown-options.w-col-355{width:355px}.ca-input-dropdown .popover-body .dropdown-options.w-col-356{width:356px}.ca-input-dropdown .popover-body .dropdown-options.w-col-357{width:357px}.ca-input-dropdown .popover-body .dropdown-options.w-col-358{width:358px}.ca-input-dropdown .popover-body .dropdown-options.w-col-359{width:359px}.ca-input-dropdown .popover-body .dropdown-options.w-col-360{width:360px}.ca-input-dropdown .popover-body .dropdown-options.w-col-361{width:361px}.ca-input-dropdown .popover-body .dropdown-options.w-col-362{width:362px}.ca-input-dropdown .popover-body .dropdown-options.w-col-363{width:363px}.ca-input-dropdown .popover-body .dropdown-options.w-col-364{width:364px}.ca-input-dropdown .popover-body .dropdown-options.w-col-365{width:365px}.ca-input-dropdown .popover-body .dropdown-options.w-col-366{width:366px}.ca-input-dropdown .popover-body .dropdown-options.w-col-367{width:367px}.ca-input-dropdown .popover-body .dropdown-options.w-col-368{width:368px}.ca-input-dropdown .popover-body .dropdown-options.w-col-369{width:369px}.ca-input-dropdown .popover-body .dropdown-options.w-col-370{width:370px}.ca-input-dropdown .popover-body .dropdown-options.w-col-371{width:371px}.ca-input-dropdown .popover-body .dropdown-options.w-col-372{width:372px}.ca-input-dropdown .popover-body .dropdown-options.w-col-373{width:373px}.ca-input-dropdown .popover-body .dropdown-options.w-col-374{width:374px}.ca-input-dropdown .popover-body .dropdown-options.w-col-375{width:375px}.ca-input-dropdown .popover-body .dropdown-options.w-col-376{width:376px}.ca-input-dropdown .popover-body .dropdown-options.w-col-377{width:377px}.ca-input-dropdown .popover-body .dropdown-options.w-col-378{width:378px}.ca-input-dropdown .popover-body .dropdown-options.w-col-379{width:379px}.ca-input-dropdown .popover-body .dropdown-options.w-col-380{width:380px}.ca-input-dropdown .popover-body .dropdown-options.w-col-381{width:381px}.ca-input-dropdown .popover-body .dropdown-options.w-col-382{width:382px}.ca-input-dropdown .popover-body .dropdown-options.w-col-383{width:383px}.ca-input-dropdown .popover-body .dropdown-options.w-col-384{width:384px}.ca-input-dropdown .popover-body .dropdown-options.w-col-385{width:385px}.ca-input-dropdown .popover-body .dropdown-options.w-col-386{width:386px}.ca-input-dropdown .popover-body .dropdown-options.w-col-387{width:387px}.ca-input-dropdown .popover-body .dropdown-options.w-col-388{width:388px}.ca-input-dropdown .popover-body .dropdown-options.w-col-389{width:389px}.ca-input-dropdown .popover-body .dropdown-options.w-col-390{width:390px}.ca-input-dropdown .popover-body .dropdown-options.w-col-391{width:391px}.ca-input-dropdown .popover-body .dropdown-options.w-col-392{width:392px}.ca-input-dropdown .popover-body .dropdown-options.w-col-393{width:393px}.ca-input-dropdown .popover-body .dropdown-options.w-col-394{width:394px}.ca-input-dropdown .popover-body .dropdown-options.w-col-395{width:395px}.ca-input-dropdown .popover-body .dropdown-options.w-col-396{width:396px}.ca-input-dropdown .popover-body .dropdown-options.w-col-397{width:397px}.ca-input-dropdown .popover-body .dropdown-options.w-col-398{width:398px}.ca-input-dropdown .popover-body .dropdown-options.w-col-399{width:399px}.ca-input-dropdown .popover-body .dropdown-options.w-col-400{width:400px}.ca-input-dropdown .popover-body .dropdown-options.w-col-401{width:401px}.ca-input-dropdown .popover-body .dropdown-options.w-col-402{width:402px}.ca-input-dropdown .popover-body .dropdown-options.w-col-403{width:403px}.ca-input-dropdown .popover-body .dropdown-options.w-col-404{width:404px}.ca-input-dropdown .popover-body .dropdown-options.w-col-405{width:405px}.ca-input-dropdown .popover-body .dropdown-options.w-col-406{width:406px}.ca-input-dropdown .popover-body .dropdown-options.w-col-407{width:407px}.ca-input-dropdown .popover-body .dropdown-options.w-col-408{width:408px}.ca-input-dropdown .popover-body .dropdown-options.w-col-409{width:409px}.ca-input-dropdown .popover-body .dropdown-options.w-col-410{width:410px}.ca-input-dropdown .popover-body .dropdown-options.w-col-411{width:411px}.ca-input-dropdown .popover-body .dropdown-options.w-col-412{width:412px}.ca-input-dropdown .popover-body .dropdown-options.w-col-413{width:413px}.ca-input-dropdown .popover-body .dropdown-options.w-col-414{width:414px}.ca-input-dropdown .popover-body .dropdown-options.w-col-415{width:415px}.ca-input-dropdown .popover-body .dropdown-options.w-col-416{width:416px}.ca-input-dropdown .popover-body .dropdown-options.w-col-417{width:417px}.ca-input-dropdown .popover-body .dropdown-options.w-col-418{width:418px}.ca-input-dropdown .popover-body .dropdown-options.w-col-419{width:419px}.ca-input-dropdown .popover-body .dropdown-options.w-col-420{width:420px}.ca-input-dropdown .popover-body .dropdown-options.w-col-421{width:421px}.ca-input-dropdown .popover-body .dropdown-options.w-col-422{width:422px}.ca-input-dropdown .popover-body .dropdown-options.w-col-423{width:423px}.ca-input-dropdown .popover-body .dropdown-options.w-col-424{width:424px}.ca-input-dropdown .popover-body .dropdown-options.w-col-425{width:425px}.ca-input-dropdown .popover-body .dropdown-options.w-col-426{width:426px}.ca-input-dropdown .popover-body .dropdown-options.w-col-427{width:427px}.ca-input-dropdown .popover-body .dropdown-options.w-col-428{width:428px}.ca-input-dropdown .popover-body .dropdown-options.w-col-429{width:429px}.ca-input-dropdown .popover-body .dropdown-options.w-col-430{width:430px}.ca-input-dropdown .popover-body .dropdown-options.w-col-431{width:431px}.ca-input-dropdown .popover-body .dropdown-options.w-col-432{width:432px}.ca-input-dropdown .popover-body .dropdown-options.w-col-433{width:433px}.ca-input-dropdown .popover-body .dropdown-options.w-col-434{width:434px}.ca-input-dropdown .popover-body .dropdown-options.w-col-435{width:435px}.ca-input-dropdown .popover-body .dropdown-options.w-col-436{width:436px}.ca-input-dropdown .popover-body .dropdown-options.w-col-437{width:437px}.ca-input-dropdown .popover-body .dropdown-options.w-col-438{width:438px}.ca-input-dropdown .popover-body .dropdown-options.w-col-439{width:439px}.ca-input-dropdown .popover-body .dropdown-options.w-col-440{width:440px}.ca-input-dropdown .popover-body .dropdown-options.w-col-441{width:441px}.ca-input-dropdown .popover-body .dropdown-options.w-col-442{width:442px}.ca-input-dropdown .popover-body .dropdown-options.w-col-443{width:443px}.ca-input-dropdown .popover-body .dropdown-options.w-col-444{width:444px}.ca-input-dropdown .popover-body .dropdown-options.w-col-445{width:445px}.ca-input-dropdown .popover-body .dropdown-options.w-col-446{width:446px}.ca-input-dropdown .popover-body .dropdown-options.w-col-447{width:447px}.ca-input-dropdown .popover-body .dropdown-options.w-col-448{width:448px}.ca-input-dropdown .popover-body .dropdown-options.w-col-449{width:449px}.ca-input-dropdown .popover-body .dropdown-options.w-col-450{width:450px}.ca-input-dropdown .popover-body .dropdown-options.w-col-451{width:451px}.ca-input-dropdown .popover-body .dropdown-options.w-col-452{width:452px}.ca-input-dropdown .popover-body .dropdown-options.w-col-453{width:453px}.ca-input-dropdown .popover-body .dropdown-options.w-col-454{width:454px}.ca-input-dropdown .popover-body .dropdown-options.w-col-455{width:455px}.ca-input-dropdown .popover-body .dropdown-options.w-col-456{width:456px}.ca-input-dropdown .popover-body .dropdown-options.w-col-457{width:457px}.ca-input-dropdown .popover-body .dropdown-options.w-col-458{width:458px}.ca-input-dropdown .popover-body .dropdown-options.w-col-459{width:459px}.ca-input-dropdown .popover-body .dropdown-options.w-col-460{width:460px}.ca-input-dropdown .popover-body .dropdown-options.w-col-461{width:461px}.ca-input-dropdown .popover-body .dropdown-options.w-col-462{width:462px}.ca-input-dropdown .popover-body .dropdown-options.w-col-463{width:463px}.ca-input-dropdown .popover-body .dropdown-options.w-col-464{width:464px}.ca-input-dropdown .popover-body .dropdown-options.w-col-465{width:465px}.ca-input-dropdown .popover-body .dropdown-options.w-col-466{width:466px}.ca-input-dropdown .popover-body .dropdown-options.w-col-467{width:467px}.ca-input-dropdown .popover-body .dropdown-options.w-col-468{width:468px}.ca-input-dropdown .popover-body .dropdown-options.w-col-469{width:469px}.ca-input-dropdown .popover-body .dropdown-options.w-col-470{width:470px}.ca-input-dropdown .popover-body .dropdown-options.w-col-471{width:471px}.ca-input-dropdown .popover-body .dropdown-options.w-col-472{width:472px}.ca-input-dropdown .popover-body .dropdown-options.w-col-473{width:473px}.ca-input-dropdown .popover-body .dropdown-options.w-col-474{width:474px}.ca-input-dropdown .popover-body .dropdown-options.w-col-475{width:475px}.ca-input-dropdown .popover-body .dropdown-options.w-col-476{width:476px}.ca-input-dropdown .popover-body .dropdown-options.w-col-477{width:477px}.ca-input-dropdown .popover-body .dropdown-options.w-col-478{width:478px}.ca-input-dropdown .popover-body .dropdown-options.w-col-479{width:479px}.ca-input-dropdown .popover-body .dropdown-options.w-col-480{width:480px}.ca-input-dropdown .popover-body .dropdown-options.w-col-481{width:481px}.ca-input-dropdown .popover-body .dropdown-options.w-col-482{width:482px}.ca-input-dropdown .popover-body .dropdown-options.w-col-483{width:483px}.ca-input-dropdown .popover-body .dropdown-options.w-col-484{width:484px}.ca-input-dropdown .popover-body .dropdown-options.w-col-485{width:485px}.ca-input-dropdown .popover-body .dropdown-options.w-col-486{width:486px}.ca-input-dropdown .popover-body .dropdown-options.w-col-487{width:487px}.ca-input-dropdown .popover-body .dropdown-options.w-col-488{width:488px}.ca-input-dropdown .popover-body .dropdown-options.w-col-489{width:489px}.ca-input-dropdown .popover-body .dropdown-options.w-col-490{width:490px}.ca-input-dropdown .popover-body .dropdown-options.w-col-491{width:491px}.ca-input-dropdown .popover-body .dropdown-options.w-col-492{width:492px}.ca-input-dropdown .popover-body .dropdown-options.w-col-493{width:493px}.ca-input-dropdown .popover-body .dropdown-options.w-col-494{width:494px}.ca-input-dropdown .popover-body .dropdown-options.w-col-495{width:495px}.ca-input-dropdown .popover-body .dropdown-options.w-col-496{width:496px}.ca-input-dropdown .popover-body .dropdown-options.w-col-497{width:497px}.ca-input-dropdown .popover-body .dropdown-options.w-col-498{width:498px}.ca-input-dropdown .popover-body .dropdown-options.w-col-499{width:499px}.ca-input-dropdown .popover-body .dropdown-options.w-col-500{width:500px}.ca-input-dropdown .popover-body .dropdown-options.w-col-501{width:501px}.ca-input-dropdown .popover-body .dropdown-options.w-col-502{width:502px}.ca-input-dropdown .popover-body .dropdown-options.w-col-503{width:503px}.ca-input-dropdown .popover-body .dropdown-options.w-col-504{width:504px}.ca-input-dropdown .popover-body .dropdown-options.w-col-505{width:505px}.ca-input-dropdown .popover-body .dropdown-options.w-col-506{width:506px}.ca-input-dropdown .popover-body .dropdown-options.w-col-507{width:507px}.ca-input-dropdown .popover-body .dropdown-options.w-col-508{width:508px}.ca-input-dropdown .popover-body .dropdown-options.w-col-509{width:509px}.ca-input-dropdown .popover-body .dropdown-options.w-col-510{width:510px}.ca-input-dropdown .popover-body .dropdown-options.w-col-511{width:511px}.ca-input-dropdown .popover-body .dropdown-options.w-col-512{width:512px}.ca-input-dropdown .popover-body .dropdown-options.w-col-513{width:513px}.ca-input-dropdown .popover-body .dropdown-options.w-col-514{width:514px}.ca-input-dropdown .popover-body .dropdown-options.w-col-515{width:515px}.ca-input-dropdown .popover-body .dropdown-options.w-col-516{width:516px}.ca-input-dropdown .popover-body .dropdown-options.w-col-517{width:517px}.ca-input-dropdown .popover-body .dropdown-options.w-col-518{width:518px}.ca-input-dropdown .popover-body .dropdown-options.w-col-519{width:519px}.ca-input-dropdown .popover-body .dropdown-options.w-col-520{width:520px}.ca-input-dropdown .popover-body .dropdown-options.w-col-521{width:521px}.ca-input-dropdown .popover-body .dropdown-options.w-col-522{width:522px}.ca-input-dropdown .popover-body .dropdown-options.w-col-523{width:523px}.ca-input-dropdown .popover-body .dropdown-options.w-col-524{width:524px}.ca-input-dropdown .popover-body .dropdown-options.w-col-525{width:525px}.ca-input-dropdown .popover-body .dropdown-options.w-col-526{width:526px}.ca-input-dropdown .popover-body .dropdown-options.w-col-527{width:527px}.ca-input-dropdown .popover-body .dropdown-options.w-col-528{width:528px}.ca-input-dropdown .popover-body .dropdown-options.w-col-529{width:529px}.ca-input-dropdown .popover-body .dropdown-options.w-col-530{width:530px}.ca-input-dropdown .popover-body .dropdown-options.w-col-531{width:531px}.ca-input-dropdown .popover-body .dropdown-options.w-col-532{width:532px}.ca-input-dropdown .popover-body .dropdown-options.w-col-533{width:533px}.ca-input-dropdown .popover-body .dropdown-options.w-col-534{width:534px}.ca-input-dropdown .popover-body .dropdown-options.w-col-535{width:535px}.ca-input-dropdown .popover-body .dropdown-options.w-col-536{width:536px}.ca-input-dropdown .popover-body .dropdown-options.w-col-537{width:537px}.ca-input-dropdown .popover-body .dropdown-options.w-col-538{width:538px}.ca-input-dropdown .popover-body .dropdown-options.w-col-539{width:539px}.ca-input-dropdown .popover-body .dropdown-options.w-col-540{width:540px}.ca-input-dropdown .popover-body .dropdown-options.w-col-541{width:541px}.ca-input-dropdown .popover-body .dropdown-options.w-col-542{width:542px}.ca-input-dropdown .popover-body .dropdown-options.w-col-543{width:543px}.ca-input-dropdown .popover-body .dropdown-options.w-col-544{width:544px}.ca-input-dropdown .popover-body .dropdown-options.w-col-545{width:545px}.ca-input-dropdown .popover-body .dropdown-options.w-col-546{width:546px}.ca-input-dropdown .popover-body .dropdown-options.w-col-547{width:547px}.ca-input-dropdown .popover-body .dropdown-options.w-col-548{width:548px}.ca-input-dropdown .popover-body .dropdown-options.w-col-549{width:549px}.ca-input-dropdown .popover-body .dropdown-options.w-col-550{width:550px}.ca-input-dropdown .popover-body .dropdown-options.w-col-551{width:551px}.ca-input-dropdown .popover-body .dropdown-options.w-col-552{width:552px}.ca-input-dropdown .popover-body .dropdown-options.w-col-553{width:553px}.ca-input-dropdown .popover-body .dropdown-options.w-col-554{width:554px}.ca-input-dropdown .popover-body .dropdown-options.w-col-555{width:555px}.ca-input-dropdown .popover-body .dropdown-options.w-col-556{width:556px}.ca-input-dropdown .popover-body .dropdown-options.w-col-557{width:557px}.ca-input-dropdown .popover-body .dropdown-options.w-col-558{width:558px}.ca-input-dropdown .popover-body .dropdown-options.w-col-559{width:559px}.ca-input-dropdown .popover-body .dropdown-options.w-col-560{width:560px}.ca-input-dropdown .popover-body .dropdown-options.w-col-561{width:561px}.ca-input-dropdown .popover-body .dropdown-options.w-col-562{width:562px}.ca-input-dropdown .popover-body .dropdown-options.w-col-563{width:563px}.ca-input-dropdown .popover-body .dropdown-options.w-col-564{width:564px}.ca-input-dropdown .popover-body .dropdown-options.w-col-565{width:565px}.ca-input-dropdown .popover-body .dropdown-options.w-col-566{width:566px}.ca-input-dropdown .popover-body .dropdown-options.w-col-567{width:567px}.ca-input-dropdown .popover-body .dropdown-options.w-col-568{width:568px}.ca-input-dropdown .popover-body .dropdown-options.w-col-569{width:569px}.ca-input-dropdown .popover-body .dropdown-options.w-col-570{width:570px}.ca-input-dropdown .popover-body .dropdown-options.w-col-571{width:571px}.ca-input-dropdown .popover-body .dropdown-options.w-col-572{width:572px}.ca-input-dropdown .popover-body .dropdown-options.w-col-573{width:573px}.ca-input-dropdown .popover-body .dropdown-options.w-col-574{width:574px}.ca-input-dropdown .popover-body .dropdown-options.w-col-575{width:575px}.ca-input-dropdown .popover-body .dropdown-options.w-col-576{width:576px}.ca-input-dropdown .popover-body .dropdown-options.w-col-577{width:577px}.ca-input-dropdown .popover-body .dropdown-options.w-col-578{width:578px}.ca-input-dropdown .popover-body .dropdown-options.w-col-579{width:579px}.ca-input-dropdown .popover-body .dropdown-options.w-col-580{width:580px}.ca-input-dropdown .popover-body .dropdown-options.w-col-581{width:581px}.ca-input-dropdown .popover-body .dropdown-options.w-col-582{width:582px}.ca-input-dropdown .popover-body .dropdown-options.w-col-583{width:583px}.ca-input-dropdown .popover-body .dropdown-options.w-col-584{width:584px}.ca-input-dropdown .popover-body .dropdown-options.w-col-585{width:585px}.ca-input-dropdown .popover-body .dropdown-options.w-col-586{width:586px}.ca-input-dropdown .popover-body .dropdown-options.w-col-587{width:587px}.ca-input-dropdown .popover-body .dropdown-options.w-col-588{width:588px}.ca-input-dropdown .popover-body .dropdown-options.w-col-589{width:589px}.ca-input-dropdown .popover-body .dropdown-options.w-col-590{width:590px}.ca-input-dropdown .popover-body .dropdown-options.w-col-591{width:591px}.ca-input-dropdown .popover-body .dropdown-options.w-col-592{width:592px}.ca-input-dropdown .popover-body .dropdown-options.w-col-593{width:593px}.ca-input-dropdown .popover-body .dropdown-options.w-col-594{width:594px}.ca-input-dropdown .popover-body .dropdown-options.w-col-595{width:595px}.ca-input-dropdown .popover-body .dropdown-options.w-col-596{width:596px}.ca-input-dropdown .popover-body .dropdown-options.w-col-597{width:597px}.ca-input-dropdown .popover-body .dropdown-options.w-col-598{width:598px}.ca-input-dropdown .popover-body .dropdown-options.w-col-599{width:599px}.ca-input-dropdown .popover-body .dropdown-options.w-col-600{width:600px}.ca-input-dropdown .popover-body .dropdown-options.w-col-601{width:601px}.ca-input-dropdown .popover-body .dropdown-options.w-col-602{width:602px}.ca-input-dropdown .popover-body .dropdown-options.w-col-603{width:603px}.ca-input-dropdown .popover-body .dropdown-options.w-col-604{width:604px}.ca-input-dropdown .popover-body .dropdown-options.w-col-605{width:605px}.ca-input-dropdown .popover-body .dropdown-options.w-col-606{width:606px}.ca-input-dropdown .popover-body .dropdown-options.w-col-607{width:607px}.ca-input-dropdown .popover-body .dropdown-options.w-col-608{width:608px}.ca-input-dropdown .popover-body .dropdown-options.w-col-609{width:609px}.ca-input-dropdown .popover-body .dropdown-options.w-col-610{width:610px}.ca-input-dropdown .popover-body .dropdown-options.w-col-611{width:611px}.ca-input-dropdown .popover-body .dropdown-options.w-col-612{width:612px}.ca-input-dropdown .popover-body .dropdown-options.w-col-613{width:613px}.ca-input-dropdown .popover-body .dropdown-options.w-col-614{width:614px}.ca-input-dropdown .popover-body .dropdown-options.w-col-615{width:615px}.ca-input-dropdown .popover-body .dropdown-options.w-col-616{width:616px}.ca-input-dropdown .popover-body .dropdown-options.w-col-617{width:617px}.ca-input-dropdown .popover-body .dropdown-options.w-col-618{width:618px}.ca-input-dropdown .popover-body .dropdown-options.w-col-619{width:619px}.ca-input-dropdown .popover-body .dropdown-options.w-col-620{width:620px}.ca-input-dropdown .popover-body .dropdown-options.w-col-621{width:621px}.ca-input-dropdown .popover-body .dropdown-options.w-col-622{width:622px}.ca-input-dropdown .popover-body .dropdown-options.w-col-623{width:623px}.ca-input-dropdown .popover-body .dropdown-options.w-col-624{width:624px}.ca-input-dropdown .popover-body .dropdown-options.w-col-625{width:625px}.ca-input-dropdown .popover-body .dropdown-options.w-col-626{width:626px}.ca-input-dropdown .popover-body .dropdown-options.w-col-627{width:627px}.ca-input-dropdown .popover-body .dropdown-options.w-col-628{width:628px}.ca-input-dropdown .popover-body .dropdown-options.w-col-629{width:629px}.ca-input-dropdown .popover-body .dropdown-options.w-col-630{width:630px}.ca-input-dropdown .popover-body .dropdown-options.w-col-631{width:631px}.ca-input-dropdown .popover-body .dropdown-options.w-col-632{width:632px}.ca-input-dropdown .popover-body .dropdown-options.w-col-633{width:633px}.ca-input-dropdown .popover-body .dropdown-options.w-col-634{width:634px}.ca-input-dropdown .popover-body .dropdown-options.w-col-635{width:635px}.ca-input-dropdown .popover-body .dropdown-options.w-col-636{width:636px}.ca-input-dropdown .popover-body .dropdown-options.w-col-637{width:637px}.ca-input-dropdown .popover-body .dropdown-options.w-col-638{width:638px}.ca-input-dropdown .popover-body .dropdown-options.w-col-639{width:639px}.ca-input-dropdown .popover-body .dropdown-options.w-col-640{width:640px}.ca-input-dropdown .popover-body .dropdown-options.w-col-641{width:641px}.ca-input-dropdown .popover-body .dropdown-options.w-col-642{width:642px}.ca-input-dropdown .popover-body .dropdown-options.w-col-643{width:643px}.ca-input-dropdown .popover-body .dropdown-options.w-col-644{width:644px}.ca-input-dropdown .popover-body .dropdown-options.w-col-645{width:645px}.ca-input-dropdown .popover-body .dropdown-options.w-col-646{width:646px}.ca-input-dropdown .popover-body .dropdown-options.w-col-647{width:647px}.ca-input-dropdown .popover-body .dropdown-options.w-col-648{width:648px}.ca-input-dropdown .popover-body .dropdown-options.w-col-649{width:649px}.ca-input-dropdown .popover-body .dropdown-options.w-col-650{width:650px}.ca-input-dropdown .popover-body .dropdown-options.w-col-651{width:651px}.ca-input-dropdown .popover-body .dropdown-options.w-col-652{width:652px}.ca-input-dropdown .popover-body .dropdown-options.w-col-653{width:653px}.ca-input-dropdown .popover-body .dropdown-options.w-col-654{width:654px}.ca-input-dropdown .popover-body .dropdown-options.w-col-655{width:655px}.ca-input-dropdown .popover-body .dropdown-options.w-col-656{width:656px}.ca-input-dropdown .popover-body .dropdown-options.w-col-657{width:657px}.ca-input-dropdown .popover-body .dropdown-options.w-col-658{width:658px}.ca-input-dropdown .popover-body .dropdown-options.w-col-659{width:659px}.ca-input-dropdown .popover-body .dropdown-options.w-col-660{width:660px}.ca-input-dropdown .popover-body .dropdown-options.w-col-661{width:661px}.ca-input-dropdown .popover-body .dropdown-options.w-col-662{width:662px}.ca-input-dropdown .popover-body .dropdown-options.w-col-663{width:663px}.ca-input-dropdown .popover-body .dropdown-options.w-col-664{width:664px}.ca-input-dropdown .popover-body .dropdown-options.w-col-665{width:665px}.ca-input-dropdown .popover-body .dropdown-options.w-col-666{width:666px}.ca-input-dropdown .popover-body .dropdown-options.w-col-667{width:667px}.ca-input-dropdown .popover-body .dropdown-options.w-col-668{width:668px}.ca-input-dropdown .popover-body .dropdown-options.w-col-669{width:669px}.ca-input-dropdown .popover-body .dropdown-options.w-col-670{width:670px}.ca-input-dropdown .popover-body .dropdown-options.w-col-671{width:671px}.ca-input-dropdown .popover-body .dropdown-options.w-col-672{width:672px}.ca-input-dropdown .popover-body .dropdown-options.w-col-673{width:673px}.ca-input-dropdown .popover-body .dropdown-options.w-col-674{width:674px}.ca-input-dropdown .popover-body .dropdown-options.w-col-675{width:675px}.ca-input-dropdown .popover-body .dropdown-options.w-col-676{width:676px}.ca-input-dropdown .popover-body .dropdown-options.w-col-677{width:677px}.ca-input-dropdown .popover-body .dropdown-options.w-col-678{width:678px}.ca-input-dropdown .popover-body .dropdown-options.w-col-679{width:679px}.ca-input-dropdown .popover-body .dropdown-options.w-col-680{width:680px}.ca-input-dropdown .popover-body .dropdown-options.w-col-681{width:681px}.ca-input-dropdown .popover-body .dropdown-options.w-col-682{width:682px}.ca-input-dropdown .popover-body .dropdown-options.w-col-683{width:683px}.ca-input-dropdown .popover-body .dropdown-options.w-col-684{width:684px}.ca-input-dropdown .popover-body .dropdown-options.w-col-685{width:685px}.ca-input-dropdown .popover-body .dropdown-options.w-col-686{width:686px}.ca-input-dropdown .popover-body .dropdown-options.w-col-687{width:687px}.ca-input-dropdown .popover-body .dropdown-options.w-col-688{width:688px}.ca-input-dropdown .popover-body .dropdown-options.w-col-689{width:689px}.ca-input-dropdown .popover-body .dropdown-options.w-col-690{width:690px}.ca-input-dropdown .popover-body .dropdown-options.w-col-691{width:691px}.ca-input-dropdown .popover-body .dropdown-options.w-col-692{width:692px}.ca-input-dropdown .popover-body .dropdown-options.w-col-693{width:693px}.ca-input-dropdown .popover-body .dropdown-options.w-col-694{width:694px}.ca-input-dropdown .popover-body .dropdown-options.w-col-695{width:695px}.ca-input-dropdown .popover-body .dropdown-options.w-col-696{width:696px}.ca-input-dropdown .popover-body .dropdown-options.w-col-697{width:697px}.ca-input-dropdown .popover-body .dropdown-options.w-col-698{width:698px}.ca-input-dropdown .popover-body .dropdown-options.w-col-699{width:699px}.ca-input-dropdown .popover-body .dropdown-options.w-col-700{width:700px}.ca-input-dropdown .popover-body .dropdown-options.w-col-701{width:701px}.ca-input-dropdown .popover-body .dropdown-options.w-col-702{width:702px}.ca-input-dropdown .popover-body .dropdown-options.w-col-703{width:703px}.ca-input-dropdown .popover-body .dropdown-options.w-col-704{width:704px}.ca-input-dropdown .popover-body .dropdown-options.w-col-705{width:705px}.ca-input-dropdown .popover-body .dropdown-options.w-col-706{width:706px}.ca-input-dropdown .popover-body .dropdown-options.w-col-707{width:707px}.ca-input-dropdown .popover-body .dropdown-options.w-col-708{width:708px}.ca-input-dropdown .popover-body .dropdown-options.w-col-709{width:709px}.ca-input-dropdown .popover-body .dropdown-options.w-col-710{width:710px}.ca-input-dropdown .popover-body .dropdown-options.w-col-711{width:711px}.ca-input-dropdown .popover-body .dropdown-options.w-col-712{width:712px}.ca-input-dropdown .popover-body .dropdown-options.w-col-713{width:713px}.ca-input-dropdown .popover-body .dropdown-options.w-col-714{width:714px}.ca-input-dropdown .popover-body .dropdown-options.w-col-715{width:715px}.ca-input-dropdown .popover-body .dropdown-options.w-col-716{width:716px}.ca-input-dropdown .popover-body .dropdown-options.w-col-717{width:717px}.ca-input-dropdown .popover-body .dropdown-options.w-col-718{width:718px}.ca-input-dropdown .popover-body .dropdown-options.w-col-719{width:719px}.ca-input-dropdown .popover-body .dropdown-options.w-col-720{width:720px}.ca-input-dropdown .popover-body .dropdown-options.w-col-721{width:721px}.ca-input-dropdown .popover-body .dropdown-options.w-col-722{width:722px}.ca-input-dropdown .popover-body .dropdown-options.w-col-723{width:723px}.ca-input-dropdown .popover-body .dropdown-options.w-col-724{width:724px}.ca-input-dropdown .popover-body .dropdown-options.w-col-725{width:725px}.ca-input-dropdown .popover-body .dropdown-options.w-col-726{width:726px}.ca-input-dropdown .popover-body .dropdown-options.w-col-727{width:727px}.ca-input-dropdown .popover-body .dropdown-options.w-col-728{width:728px}.ca-input-dropdown .popover-body .dropdown-options.w-col-729{width:729px}.ca-input-dropdown .popover-body .dropdown-options.w-col-730{width:730px}.ca-input-dropdown .popover-body .dropdown-options.w-col-731{width:731px}.ca-input-dropdown .popover-body .dropdown-options.w-col-732{width:732px}.ca-input-dropdown .popover-body .dropdown-options.w-col-733{width:733px}.ca-input-dropdown .popover-body .dropdown-options.w-col-734{width:734px}.ca-input-dropdown .popover-body .dropdown-options.w-col-735{width:735px}.ca-input-dropdown .popover-body .dropdown-options.w-col-736{width:736px}.ca-input-dropdown .popover-body .dropdown-options.w-col-737{width:737px}.ca-input-dropdown .popover-body .dropdown-options.w-col-738{width:738px}.ca-input-dropdown .popover-body .dropdown-options.w-col-739{width:739px}.ca-input-dropdown .popover-body .dropdown-options.w-col-740{width:740px}.ca-input-dropdown .popover-body .dropdown-options.w-col-741{width:741px}.ca-input-dropdown .popover-body .dropdown-options.w-col-742{width:742px}.ca-input-dropdown .popover-body .dropdown-options.w-col-743{width:743px}.ca-input-dropdown .popover-body .dropdown-options.w-col-744{width:744px}.ca-input-dropdown .popover-body .dropdown-options.w-col-745{width:745px}.ca-input-dropdown .popover-body .dropdown-options.w-col-746{width:746px}.ca-input-dropdown .popover-body .dropdown-options.w-col-747{width:747px}.ca-input-dropdown .popover-body .dropdown-options.w-col-748{width:748px}.ca-input-dropdown .popover-body .dropdown-options.w-col-749{width:749px}.ca-input-dropdown .popover-body .dropdown-options.w-col-750{width:750px}.ca-input-dropdown .popover-body .dropdown-options.w-col-751{width:751px}.ca-input-dropdown .popover-body .dropdown-options.w-col-752{width:752px}.ca-input-dropdown .popover-body .dropdown-options.w-col-753{width:753px}.ca-input-dropdown .popover-body .dropdown-options.w-col-754{width:754px}.ca-input-dropdown .popover-body .dropdown-options.w-col-755{width:755px}.ca-input-dropdown .popover-body .dropdown-options.w-col-756{width:756px}.ca-input-dropdown .popover-body .dropdown-options.w-col-757{width:757px}.ca-input-dropdown .popover-body .dropdown-options.w-col-758{width:758px}.ca-input-dropdown .popover-body .dropdown-options.w-col-759{width:759px}.ca-input-dropdown .popover-body .dropdown-options.w-col-760{width:760px}.ca-input-dropdown .popover-body .dropdown-options.w-col-761{width:761px}.ca-input-dropdown .popover-body .dropdown-options.w-col-762{width:762px}.ca-input-dropdown .popover-body .dropdown-options.w-col-763{width:763px}.ca-input-dropdown .popover-body .dropdown-options.w-col-764{width:764px}.ca-input-dropdown .popover-body .dropdown-options.w-col-765{width:765px}.ca-input-dropdown .popover-body .dropdown-options.w-col-766{width:766px}.ca-input-dropdown .popover-body .dropdown-options.w-col-767{width:767px}.ca-input-dropdown .popover-body .dropdown-options.w-col-768{width:768px}.ca-input-dropdown .popover-body .dropdown-options.w-col-769{width:769px}.ca-input-dropdown .popover-body .dropdown-options.w-col-770{width:770px}.ca-input-dropdown .popover-body .dropdown-options.w-col-771{width:771px}.ca-input-dropdown .popover-body .dropdown-options.w-col-772{width:772px}.ca-input-dropdown .popover-body .dropdown-options.w-col-773{width:773px}.ca-input-dropdown .popover-body .dropdown-options.w-col-774{width:774px}.ca-input-dropdown .popover-body .dropdown-options.w-col-775{width:775px}.ca-input-dropdown .popover-body .dropdown-options.w-col-776{width:776px}.ca-input-dropdown .popover-body .dropdown-options.w-col-777{width:777px}.ca-input-dropdown .popover-body .dropdown-options.w-col-778{width:778px}.ca-input-dropdown .popover-body .dropdown-options.w-col-779{width:779px}.ca-input-dropdown .popover-body .dropdown-options.w-col-780{width:780px}.ca-input-dropdown .popover-body .dropdown-options.w-col-781{width:781px}.ca-input-dropdown .popover-body .dropdown-options.w-col-782{width:782px}.ca-input-dropdown .popover-body .dropdown-options.w-col-783{width:783px}.ca-input-dropdown .popover-body .dropdown-options.w-col-784{width:784px}.ca-input-dropdown .popover-body .dropdown-options.w-col-785{width:785px}.ca-input-dropdown .popover-body .dropdown-options.w-col-786{width:786px}.ca-input-dropdown .popover-body .dropdown-options.w-col-787{width:787px}.ca-input-dropdown .popover-body .dropdown-options.w-col-788{width:788px}.ca-input-dropdown .popover-body .dropdown-options.w-col-789{width:789px}.ca-input-dropdown .popover-body .dropdown-options.w-col-790{width:790px}.ca-input-dropdown .popover-body .dropdown-options.w-col-791{width:791px}.ca-input-dropdown .popover-body .dropdown-options.w-col-792{width:792px}.ca-input-dropdown .popover-body .dropdown-options.w-col-793{width:793px}.ca-input-dropdown .popover-body .dropdown-options.w-col-794{width:794px}.ca-input-dropdown .popover-body .dropdown-options.w-col-795{width:795px}.ca-input-dropdown .popover-body .dropdown-options.w-col-796{width:796px}.ca-input-dropdown .popover-body .dropdown-options.w-col-797{width:797px}.ca-input-dropdown .popover-body .dropdown-options.w-col-798{width:798px}.ca-input-dropdown .popover-body .dropdown-options.w-col-799{width:799px}.ca-input-dropdown .popover-body .dropdown-options.w-col-800{width:800px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups{max-height:194px;overflow-y:scroll}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups{display:flex;flex-direction:column;position:relative}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups p{margin:0}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups:after{content:\"\";display:inline-block;position:absolute;bottom:-3px;height:1px;width:100%;background-color:#aaa3}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups:last-child{margin-top:4px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups:last-child:after{display:none!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-group-header{font-size:11px;color:#ccc;font-weight:700;text-transform:uppercase;line-height:14px;padding:8px 6px 0;margin-bottom:8px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-group-header::-moz-selection{background-color:#ccc3!important;color:#ccc6!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-group-header::selection{background-color:#ccc3!important;color:#ccc6!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options{display:flex;align-items:center;padding:4px 6px;height:26px;border-radius:2px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options:hover{background-color:#1d1d1d;cursor:pointer;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options:hover .dropdown-subgroup-text{color:#fff}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .dropdown-subgroup-text{font-size:14px;font-weight:400;color:#ccc;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .dropdown-subgroup-text.active{font-weight:700}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .dropdown-subgroup-text.active .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .dropdown-subgroup-text.active .highlight-text-45632:hover{color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .dropdown-groups .dropdown-subgroup-options .dropdown-subgroup-text.active:after{position:absolute;right:11px;content:url(/assets/ca-components/svg/input/ic_confirm.svg);width:14px;height:10px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups{display:flex;flex-direction:column;position:relative;padding-bottom:0;margin:0}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups p{margin:0}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-group-header{margin:0 0 4px;padding:8px 0 0 4px;color:#ccc;font-size:11px;text-transform:capitalize}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-group-header.add-new{font-size:11px;line-height:14px;font-weight:700;color:#6f9ee0;padding:4px;margin:0;cursor:pointer}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-group-header.add-new:hover{border-radius:2px;color:#bed0f9;background-color:#1d1d1d}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options{display:grid;grid-template-columns:141px 135px;grid-column-gap:10px;-moz-column-gap:10px;column-gap:10px;align-items:center;padding:3px 4px;cursor:pointer}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options:hover{border-radius:2px;background-color:#1d1d1d}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options:hover .dropdown-subgroup-text{color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-text{font-size:14px;font-weight:400;color:#fff;display:block;width:100%}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-text .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-text .highlight-text-45632:hover{color:#fff!important}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-text.active{font-weight:700}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-text.active:after{position:absolute;right:-26px;content:url(/assets/ca-components/svg/input/ic_confirm.svg);width:14px;height:10px}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-additional-text{color:#919191;font-size:11px;font-weight:400;position:relative;text-align:right}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-additional-text.active{font-weight:400;color:#6f9ee0}.ca-input-dropdown .popover-body .dropdown-options.dropdown-options-groups .load-broker-contact-groups .dropdown-subgroup-options .dropdown-subgroup-additional-text .highlight-text-45632{background-color:#3b73ed33;color:#92b1f5}.ca-input-dropdown .popover-body .dropdown-options.merge-dropdown-body-with-input{border-radius:0 0 2px 2px!important;left:-4px!important}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template{top:-4px}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template .plus-icon{margin-right:4px}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template .icon.blue circle{fill:#92b1f5!important}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template .icon.yellow circle{fill:#fbc88b!important}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template .icon.red circle{fill:#ed9292!important}.ca-input-dropdown .popover-body .dropdown-options.svgtext-dispatch-template .icon.green circle{fill:#86c9c3!important}.ta-dropdown-popover{z-index:999999}.ta-dropdown-popover .arrow{display:none!important}.ta-dropdown-popover .popover-body{z-index:99999999}.ta-dropdown-popover .popover-body .options{position:relative;top:3px;z-index:1000;max-height:198px;width:100%;background-color:#2f2f2f;border-radius:2px;padding:2px;overflow:hidden}.ta-dropdown-popover .popover-body .options.scroll{transition:all .3s ease-in-out;overflow-y:scroll!important}.ta-dropdown-popover .popover-body .options.scroll::-webkit-scrollbar{width:3px}.ta-dropdown-popover .popover-body .options.scroll::-webkit-scrollbar-thumb{background-color:transparent;border:6px solid #aaaaaa;border-radius:1px}.ta-dropdown-popover .popover-body .options.scroll::-webkit-scrollbar-track{padding:0;position:relative;right:0;top:0;background:transparent}.ta-dropdown-popover .popover-body .options .option{position:relative;padding:3px;height:26px;font-size:14px;line-height:18px;font-weight:400;border-radius:2px;white-space:nowrap;text-overflow:ellipsis;color:#fff;display:flex;gap:4px}.ta-dropdown-popover .popover-body .options .option::-moz-selection{color:#fff;background-color:#fff3}.ta-dropdown-popover .popover-body .options .option:nth-last-child(1){margin-bottom:0}.ta-dropdown-popover .popover-body .options .option:hover{background-color:#1d1d1d;border-radius:2px;cursor:pointer}.ta-dropdown-popover .popover-body .options .option.add-option{color:#6f9ee0;font-weight:600}.ta-dropdown-popover .popover-body .options .option.add-option:after{content:\"\";height:2px;width:100%;background-color:#aaa3;border-radius:1px;position:absolute;bottom:0;left:0}.selected-item-container{height:52px;padding:6px;background:#e9effd;position:relative;border-radius:2px;transition:background .3s ease-in-out}.selected-item-container:hover{background:#bed0f9}.selected-item-container:hover .selected-item-additional .selected-item-info svg-icon svg path{fill:#3b73ed}.selected-item-container:hover .clear-selected-item{display:flex;align-items:center}.selected-item-container .selected-item-label{position:absolute;top:-16px;font-size:11px;font-weight:600;color:#424242;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.selected-item-container .selected-item-label span{color:#df3c3c}.selected-item-container .selected-item-name{font-size:14px;line-height:18px;color:#424242}.selected-item-container .selected-item-name::-moz-selection{color:#424242;background:#42424233}.selected-item-container .selected-item-name::selection{color:#424242;background:#42424233}.selected-item-container .selected-item-name .selected-item-star{position:relative;bottom:2px}.selected-item-container .selected-item-name .selected-item-star svg{margin-left:6px}.selected-item-container .selected-item-name .selected-item-star svg path{fill:#6692f1}.selected-item-container .selected-item-additional{gap:22px}.selected-item-container .selected-item-additional .selected-item-info svg-icon{width:14px}.selected-item-container .selected-item-additional .selected-item-info svg-icon svg{width:100%;height:100%}.selected-item-container .selected-item-additional .selected-item-info svg-icon svg path{fill:#6692f1;transition:fill .3s ease-in-out}.selected-item-container .selected-item-additional .selected-item-info .hide-svg-on-copy{display:none}.selected-item-container .clear-selected-item{position:absolute;right:4px;top:0;display:none;gap:6px}.selected-item-container .clear-selected-item .clear-x{cursor:pointer;transition:transform .3s ease-in-out}.selected-item-container .clear-selected-item .clear-x:hover{transform:scale(1.2)}.selected-item-container .clear-selected-item .clear-x svg path{fill:#bed0f9}.selected-item-container .clear-selected-item .clear-x svg rect{fill:#6692f1}.selected-item-container .clear-selected-item .clear-x:hover svg rect{fill:#0b49d1}.selected-item-container.non-editable{background-color:#f7f7f7}.selected-item-container.non-editable .selected-item-label,.selected-item-container.non-editable .selected-item-name{color:#919191}.selected-item-container.non-editable .selected-item-additional .selected-item-info svg-icon svg path{fill:#ccc}.selected-item-container.non-editable .selected-item-additional .selected-item-info p{color:#919191}.dropdown-trailer-hover:hover .ic_truck_semi-truck svg path{fill:#56b4ac}.dropdown-trailer-hover:hover .ic_truck_semi-wSleeper svg path{fill:#fab15c}.dropdown-trailer-hover:hover .ic_truck_box-truck svg path{fill:#e66767}.dropdown-trailer-hover:hover .ic_truck_cargo-van svg path{fill:#6692f1}.dropdown-trailer-hover:hover .ic_truck_tow-truck svg path{fill:#b370f0}.dropdown-trailer-hover:hover .ic_truck_car-hauler svg path{fill:#e668a0}.dropdown-trailer-hover:hover .ic_truck_spotter svg path{fill:#a08266}.dropdown-trailer-hover:hover .ic_trailer_reefer svg path{fill:#6692f1}.dropdown-trailer-hover:hover .ic_trailer_dryvan svg path{fill:#8785e8}.dropdown-trailer-hover:hover .ic_trailer_side-kit svg path{fill:#ff906d}.dropdown-trailer-hover:hover .ic_trailer_conestoga svg path{fill:#daad4f}.dropdown-trailer-hover:hover .ic_trailer_dumper svg path{fill:#b370f0}.dropdown-trailer-hover:hover .ic_trailer_container svg path{fill:#fab15c}.dropdown-trailer-hover:hover .ic_trailer_tanker svg path{fill:#77bf56}.dropdown-trailer-hover:hover .ic_trailer_carhauler svg path{fill:#e668a0}.dropdown-trailer-hover:hover .ic_trailer_flatbed svg path{fill:#ed9292}.dropdown-trailer-hover:hover .ic_trailer_low-boy svg path{fill:#df3c3c}.dropdown-trailer-hover:hover .ic_trailer_chassis svg path{fill:#a08266}.dropdown-trailer-hover:hover .ic_trailer_step-deck svg path{fill:#e66767}.dropdown-trailer-hover:hover .ic_trailer_tanker_pneumatic svg path{fill:#56b4ac}.dropdown-trailer-hover:hover .ic_carhauler_stinger svg path{fill:#df3d85}.hide-after-arrow .dropdown-option.active:after{display:none!important}.ca-input-dropdown .arrow{display:none!important}.ca-input-dropdown .popover-body{margin-top:-2px!important}.ca-input-dropdown .popover-body .dropdown-options-divider{content:\"\";height:1px;border-radius:1px;background-color:#424242;position:absolute;z-index:99999;top:0;left:0}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-1{width:-7px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-2{width:-6px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-3{width:-5px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-4{width:-4px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-5{width:-3px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-6{width:-2px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-7{width:-1px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-8{width:0px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-9{width:1px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-10{width:2px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-11{width:3px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-12{width:4px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-13{width:5px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-14{width:6px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-15{width:7px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-16{width:8px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-17{width:9px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-18{width:10px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-19{width:11px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-20{width:12px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-21{width:13px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-22{width:14px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-23{width:15px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-24{width:16px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-25{width:17px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-26{width:18px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-27{width:19px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-28{width:20px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-29{width:21px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-30{width:22px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-31{width:23px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-32{width:24px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-33{width:25px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-34{width:26px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-35{width:27px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-36{width:28px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-37{width:29px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-38{width:30px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-39{width:31px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-40{width:32px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-41{width:33px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-42{width:34px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-43{width:35px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-44{width:36px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-45{width:37px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-46{width:38px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-47{width:39px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-48{width:40px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-49{width:41px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-50{width:42px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-51{width:43px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-52{width:44px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-53{width:45px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-54{width:46px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-55{width:47px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-56{width:48px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-57{width:49px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-58{width:50px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-59{width:51px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-60{width:52px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-61{width:53px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-62{width:54px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-63{width:55px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-64{width:56px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-65{width:57px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-66{width:58px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-67{width:59px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-68{width:60px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-69{width:61px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-70{width:62px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-71{width:63px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-72{width:64px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-73{width:65px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-74{width:66px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-75{width:67px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-76{width:68px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-77{width:69px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-78{width:70px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-79{width:71px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-80{width:72px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-81{width:73px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-82{width:74px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-83{width:75px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-84{width:76px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-85{width:77px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-86{width:78px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-87{width:79px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-88{width:80px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-89{width:81px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-90{width:82px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-91{width:83px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-92{width:84px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-93{width:85px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-94{width:86px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-95{width:87px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-96{width:88px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-97{width:89px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-98{width:90px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-99{width:91px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-100{width:92px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-101{width:93px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-102{width:94px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-103{width:95px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-104{width:96px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-105{width:97px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-106{width:98px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-107{width:99px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-108{width:100px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-109{width:101px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-110{width:102px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-111{width:103px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-112{width:104px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-113{width:105px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-114{width:106px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-115{width:107px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-116{width:108px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-117{width:109px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-118{width:110px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-119{width:111px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-120{width:112px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-121{width:113px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-122{width:114px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-123{width:115px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-124{width:116px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-125{width:117px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-126{width:118px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-127{width:119px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-128{width:120px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-129{width:121px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-130{width:122px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-131{width:123px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-132{width:124px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-133{width:125px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-134{width:126px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-135{width:127px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-136{width:128px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-137{width:129px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-138{width:130px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-139{width:131px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-140{width:132px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-141{width:133px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-142{width:134px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-143{width:135px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-144{width:136px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-145{width:137px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-146{width:138px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-147{width:139px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-148{width:140px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-149{width:141px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-150{width:142px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-151{width:143px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-152{width:144px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-153{width:145px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-154{width:146px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-155{width:147px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-156{width:148px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-157{width:149px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-158{width:150px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-159{width:151px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-160{width:152px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-161{width:153px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-162{width:154px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-163{width:155px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-164{width:156px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-165{width:157px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-166{width:158px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-167{width:159px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-168{width:160px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-169{width:161px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-170{width:162px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-171{width:163px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-172{width:164px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-173{width:165px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-174{width:166px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-175{width:167px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-176{width:168px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-177{width:169px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-178{width:170px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-179{width:171px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-180{width:172px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-181{width:173px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-182{width:174px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-183{width:175px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-184{width:176px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-185{width:177px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-186{width:178px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-187{width:179px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-188{width:180px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-189{width:181px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-190{width:182px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-191{width:183px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-192{width:184px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-193{width:185px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-194{width:186px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-195{width:187px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-196{width:188px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-197{width:189px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-198{width:190px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-199{width:191px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-200{width:192px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-201{width:193px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-202{width:194px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-203{width:195px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-204{width:196px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-205{width:197px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-206{width:198px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-207{width:199px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-208{width:200px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-209{width:201px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-210{width:202px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-211{width:203px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-212{width:204px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-213{width:205px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-214{width:206px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-215{width:207px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-216{width:208px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-217{width:209px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-218{width:210px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-219{width:211px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-220{width:212px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-221{width:213px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-222{width:214px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-223{width:215px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-224{width:216px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-225{width:217px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-226{width:218px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-227{width:219px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-228{width:220px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-229{width:221px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-230{width:222px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-231{width:223px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-232{width:224px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-233{width:225px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-234{width:226px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-235{width:227px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-236{width:228px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-237{width:229px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-238{width:230px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-239{width:231px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-240{width:232px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-241{width:233px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-242{width:234px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-243{width:235px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-244{width:236px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-245{width:237px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-246{width:238px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-247{width:239px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-248{width:240px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-249{width:241px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-250{width:242px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-251{width:243px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-252{width:244px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-253{width:245px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-254{width:246px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-255{width:247px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-256{width:248px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-257{width:249px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-258{width:250px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-259{width:251px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-260{width:252px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-261{width:253px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-262{width:254px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-263{width:255px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-264{width:256px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-265{width:257px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-266{width:258px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-267{width:259px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-268{width:260px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-269{width:261px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-270{width:262px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-271{width:263px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-272{width:264px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-273{width:265px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-274{width:266px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-275{width:267px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-276{width:268px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-277{width:269px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-278{width:270px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-279{width:271px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-280{width:272px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-281{width:273px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-282{width:274px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-283{width:275px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-284{width:276px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-285{width:277px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-286{width:278px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-287{width:279px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-288{width:280px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-289{width:281px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-290{width:282px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-291{width:283px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-292{width:284px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-293{width:285px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-294{width:286px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-295{width:287px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-296{width:288px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-297{width:289px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-298{width:290px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-299{width:291px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-300{width:292px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-301{width:293px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-302{width:294px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-303{width:295px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-304{width:296px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-305{width:297px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-306{width:298px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-307{width:299px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-308{width:300px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-309{width:301px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-310{width:302px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-311{width:303px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-312{width:304px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-313{width:305px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-314{width:306px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-315{width:307px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-316{width:308px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-317{width:309px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-318{width:310px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-319{width:311px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-320{width:312px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-321{width:313px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-322{width:314px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-323{width:315px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-324{width:316px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-325{width:317px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-326{width:318px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-327{width:319px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-328{width:320px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-329{width:321px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-330{width:322px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-331{width:323px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-332{width:324px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-333{width:325px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-334{width:326px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-335{width:327px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-336{width:328px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-337{width:329px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-338{width:330px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-339{width:331px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-340{width:332px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-341{width:333px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-342{width:334px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-343{width:335px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-344{width:336px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-345{width:337px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-346{width:338px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-347{width:339px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-348{width:340px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-349{width:341px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-350{width:342px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-351{width:343px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-352{width:344px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-353{width:345px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-354{width:346px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-355{width:347px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-356{width:348px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-357{width:349px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-358{width:350px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-359{width:351px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-360{width:352px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-361{width:353px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-362{width:354px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-363{width:355px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-364{width:356px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-365{width:357px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-366{width:358px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-367{width:359px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-368{width:360px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-369{width:361px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-370{width:362px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-371{width:363px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-372{width:364px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-373{width:365px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-374{width:366px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-375{width:367px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-376{width:368px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-377{width:369px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-378{width:370px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-379{width:371px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-380{width:372px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-381{width:373px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-382{width:374px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-383{width:375px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-384{width:376px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-385{width:377px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-386{width:378px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-387{width:379px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-388{width:380px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-389{width:381px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-390{width:382px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-391{width:383px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-392{width:384px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-393{width:385px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-394{width:386px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-395{width:387px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-396{width:388px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-397{width:389px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-398{width:390px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-399{width:391px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-400{width:392px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-401{width:393px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-402{width:394px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-403{width:395px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-404{width:396px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-405{width:397px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-406{width:398px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-407{width:399px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-408{width:400px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-409{width:401px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-410{width:402px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-411{width:403px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-412{width:404px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-413{width:405px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-414{width:406px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-415{width:407px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-416{width:408px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-417{width:409px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-418{width:410px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-419{width:411px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-420{width:412px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-421{width:413px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-422{width:414px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-423{width:415px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-424{width:416px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-425{width:417px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-426{width:418px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-427{width:419px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-428{width:420px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-429{width:421px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-430{width:422px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-431{width:423px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-432{width:424px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-433{width:425px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-434{width:426px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-435{width:427px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-436{width:428px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-437{width:429px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-438{width:430px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-439{width:431px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-440{width:432px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-441{width:433px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-442{width:434px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-443{width:435px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-444{width:436px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-445{width:437px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-446{width:438px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-447{width:439px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-448{width:440px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-449{width:441px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-450{width:442px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-451{width:443px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-452{width:444px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-453{width:445px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-454{width:446px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-455{width:447px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-456{width:448px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-457{width:449px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-458{width:450px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-459{width:451px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-460{width:452px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-461{width:453px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-462{width:454px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-463{width:455px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-464{width:456px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-465{width:457px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-466{width:458px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-467{width:459px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-468{width:460px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-469{width:461px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-470{width:462px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-471{width:463px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-472{width:464px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-473{width:465px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-474{width:466px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-475{width:467px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-476{width:468px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-477{width:469px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-478{width:470px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-479{width:471px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-480{width:472px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-481{width:473px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-482{width:474px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-483{width:475px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-484{width:476px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-485{width:477px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-486{width:478px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-487{width:479px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-488{width:480px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-489{width:481px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-490{width:482px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-491{width:483px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-492{width:484px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-493{width:485px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-494{width:486px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-495{width:487px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-496{width:488px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-497{width:489px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-498{width:490px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-499{width:491px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-500{width:492px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-501{width:493px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-502{width:494px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-503{width:495px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-504{width:496px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-505{width:497px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-506{width:498px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-507{width:499px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-508{width:500px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-509{width:501px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-510{width:502px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-511{width:503px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-512{width:504px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-513{width:505px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-514{width:506px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-515{width:507px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-516{width:508px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-517{width:509px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-518{width:510px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-519{width:511px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-520{width:512px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-521{width:513px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-522{width:514px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-523{width:515px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-524{width:516px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-525{width:517px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-526{width:518px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-527{width:519px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-528{width:520px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-529{width:521px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-530{width:522px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-531{width:523px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-532{width:524px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-533{width:525px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-534{width:526px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-535{width:527px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-536{width:528px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-537{width:529px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-538{width:530px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-539{width:531px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-540{width:532px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-541{width:533px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-542{width:534px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-543{width:535px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-544{width:536px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-545{width:537px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-546{width:538px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-547{width:539px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-548{width:540px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-549{width:541px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-550{width:542px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-551{width:543px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-552{width:544px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-553{width:545px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-554{width:546px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-555{width:547px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-556{width:548px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-557{width:549px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-558{width:550px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-559{width:551px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-560{width:552px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-561{width:553px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-562{width:554px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-563{width:555px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-564{width:556px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-565{width:557px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-566{width:558px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-567{width:559px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-568{width:560px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-569{width:561px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-570{width:562px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-571{width:563px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-572{width:564px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-573{width:565px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-574{width:566px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-575{width:567px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-576{width:568px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-577{width:569px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-578{width:570px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-579{width:571px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-580{width:572px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-581{width:573px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-582{width:574px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-583{width:575px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-584{width:576px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-585{width:577px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-586{width:578px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-587{width:579px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-588{width:580px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-589{width:581px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-590{width:582px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-591{width:583px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-592{width:584px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-593{width:585px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-594{width:586px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-595{width:587px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-596{width:588px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-597{width:589px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-598{width:590px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-599{width:591px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-600{width:592px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-601{width:593px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-602{width:594px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-603{width:595px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-604{width:596px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-605{width:597px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-606{width:598px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-607{width:599px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-608{width:600px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-609{width:601px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-610{width:602px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-611{width:603px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-612{width:604px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-613{width:605px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-614{width:606px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-615{width:607px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-616{width:608px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-617{width:609px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-618{width:610px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-619{width:611px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-620{width:612px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-621{width:613px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-622{width:614px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-623{width:615px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-624{width:616px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-625{width:617px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-626{width:618px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-627{width:619px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-628{width:620px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-629{width:621px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-630{width:622px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-631{width:623px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-632{width:624px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-633{width:625px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-634{width:626px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-635{width:627px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-636{width:628px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-637{width:629px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-638{width:630px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-639{width:631px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-640{width:632px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-641{width:633px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-642{width:634px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-643{width:635px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-644{width:636px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-645{width:637px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-646{width:638px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-647{width:639px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-648{width:640px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-649{width:641px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-650{width:642px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-651{width:643px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-652{width:644px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-653{width:645px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-654{width:646px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-655{width:647px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-656{width:648px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-657{width:649px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-658{width:650px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-659{width:651px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-660{width:652px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-661{width:653px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-662{width:654px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-663{width:655px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-664{width:656px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-665{width:657px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-666{width:658px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-667{width:659px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-668{width:660px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-669{width:661px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-670{width:662px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-671{width:663px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-672{width:664px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-673{width:665px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-674{width:666px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-675{width:667px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-676{width:668px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-677{width:669px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-678{width:670px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-679{width:671px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-680{width:672px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-681{width:673px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-682{width:674px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-683{width:675px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-684{width:676px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-685{width:677px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-686{width:678px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-687{width:679px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-688{width:680px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-689{width:681px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-690{width:682px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-691{width:683px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-692{width:684px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-693{width:685px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-694{width:686px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-695{width:687px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-696{width:688px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-697{width:689px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-698{width:690px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-699{width:691px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-700{width:692px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-701{width:693px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-702{width:694px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-703{width:695px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-704{width:696px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-705{width:697px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-706{width:698px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-707{width:699px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-708{width:700px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-709{width:701px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-710{width:702px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-711{width:703px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-712{width:704px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-713{width:705px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-714{width:706px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-715{width:707px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-716{width:708px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-717{width:709px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-718{width:710px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-719{width:711px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-720{width:712px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-721{width:713px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-722{width:714px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-723{width:715px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-724{width:716px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-725{width:717px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-726{width:718px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-727{width:719px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-728{width:720px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-729{width:721px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-730{width:722px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-731{width:723px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-732{width:724px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-733{width:725px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-734{width:726px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-735{width:727px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-736{width:728px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-737{width:729px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-738{width:730px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-739{width:731px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-740{width:732px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-741{width:733px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-742{width:734px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-743{width:735px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-744{width:736px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-745{width:737px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-746{width:738px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-747{width:739px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-748{width:740px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-749{width:741px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-750{width:742px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-751{width:743px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-752{width:744px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-753{width:745px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-754{width:746px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-755{width:747px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-756{width:748px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-757{width:749px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-758{width:750px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-759{width:751px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-760{width:752px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-761{width:753px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-762{width:754px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-763{width:755px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-764{width:756px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-765{width:757px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-766{width:758px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-767{width:759px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-768{width:760px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-769{width:761px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-770{width:762px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-771{width:763px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-772{width:764px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-773{width:765px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-774{width:766px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-775{width:767px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-776{width:768px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-777{width:769px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-778{width:770px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-779{width:771px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-780{width:772px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-781{width:773px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-782{width:774px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-783{width:775px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-784{width:776px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-785{width:777px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-786{width:778px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-787{width:779px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-788{width:780px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-789{width:781px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-790{width:782px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-791{width:783px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-792{width:784px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-793{width:785px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-794{width:786px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-795{width:787px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-796{width:788px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-797{width:789px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-798{width:790px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-799{width:791px}.ca-input-dropdown .popover-body .dropdown-options-divider.w-col-800{width:792px}.ca-input-dropdown .popover-body .dropdown-options-divider.dispatch_dropdown{top:-4px}.ca-input-dropdown .popover-body .w-col-288{width:288px}.ca-input-dropdown .popover-body .dropdown-options{position:relative;top:0;left:0;z-index:1000;max-height:190px;width:100%;background-color:#2f2f2f;border-radius:3px;padding:4px;overflow:hidden}.ca-input-dropdown .popover-body .dropdown-options.scroll{transition:all .3s ease-in-out;overflow-y:scroll!important;padding-right:0}.ca-input-dropdown .popover-body .dropdown-options.scroll .plus-icon{margin-right:1px!important}.ca-input-dropdown .popover-body .dropdown-options.scroll.load-dispatcher-wrapper{overflow-y:scroll;max-height:220px}.ca-input-dropdown .popover-body .dropdown-options.scroll.load-dispatcher-wrapper .scrollable-element{max-height:208px;overflow-y:scroll}.ca-input-dropdown .popover-body .dropdown-options.scroll::-webkit-scrollbar{width:3px}.ca-input-dropdown .popover-body .dropdown-options.scroll::-webkit-scrollbar-thumb{background-color:transparent;border:6px solid #aaaaaa;border-radius:1px}.ca-input-dropdown .popover-body .dropdown-options.scroll::-webkit-scrollbar-track{padding:0;position:relative;right:0;top:0;background:transparent}.ca-input-dropdown .popover-body .dropdown-options-fuel-franchise{padding:4px;max-height:300px}.ca-input-dropdown .popover-body .dropdown-options.no-result-container{padding:6px 10px!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option{padding:3px 4px;height:26px;font-size:14px;font-weight:400;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.no-result{line-height:14px;font-size:11px;font-weight:700;color:#919191;height:auto!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.no-result:hover{background-color:transparent!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.no-result div{padding-top:1px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.add-new{padding:4.5px 6px 4.5px 4px;font-size:11px;font-weight:700;color:#92b1f5;position:relative;transition:background .2s ease-in-out,color .2s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.add-new:hover{color:#fff;background:#3b73ed66}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-repair-truck-trailer{color:#6f9ee0;position:relative}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option.active-repair-truck-trailer:hover{color:#bed0f9;transition:all .3s ease-in-out}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .svg-template-logo{height:18px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered) .svg-template-logo svg:not(:hover) path{fill:#aaa}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups{max-height:194px;overflow-y:scroll}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.merge-dropdown-body-with-input{border-radius:0 0 2px 2px!important;left:-4px!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template{top:-4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template .plus-icon{margin-right:4px}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template .icon.blue circle{fill:#92b1f5!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template .icon.yellow circle{fill:#fbc88b!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template .icon.red circle{fill:#ed9292!important}.ca-input-dropdown .popover-body .dropdown-options .dropdown-option:not(:hover):not(.active):not(.dropdown-option-hovered).dropdown-options-groups.svgtext-dispatch-template .icon.green circle{fill:#86c9c3!important}.ca-input-dropdown .w-col-288{width:288px!important}.ca-input-dropdown.bs-popover-top .popover-body{margin-top:0!important}.ca-input-dropdown.bs-popover-top .popover-body .dropdown-options-divider.dispatch_dropdown{top:auto;bottom:-6px}.ca-input-dropdown.bs-popover-top .popover-body .dropdown-options.merge-dropdown-body-with-input{border-radius:2px 2px 0 0!important}.ca-input-dropdown.bs-popover-top .popover-body .dropdown-options.svgtext-dispatch-template{top:6px!important}\n"] }]
|
|
1132
1134
|
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
1133
1135
|
type: Self
|
|
@@ -1191,4 +1193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1191
1193
|
type: Output,
|
|
1192
1194
|
args: ['clearInputEvent']
|
|
1193
1195
|
}] } });
|
|
1194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24vY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24vY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUd2QixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlELFlBQVk7QUFDWixPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDWixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLFlBQVk7QUFDWixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLdEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3hJLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBQy9KLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDRGQUE0RixDQUFDO0FB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QkFDdkMscUNBQXFDO3dCQUNyQyxRQUFRO3dCQUNSLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQ0FBaUM7cUJBQ3BDOzswQkFnTlEsSUFBSTtrSUEzTVcsUUFBUTtzQkFBM0IsU0FBUzt1QkFBQyxPQUFPO2dCQUNNLFVBQVU7c0JBQWpDLFNBQVM7dUJBQUMsSUFBSTtnQkFLRixRQUFRO3NCQUFwQixLQUFLO2dCQW1CRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxTQUFTO3NCQUFyQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQXFERyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFnQ08sdUJBQXVCO3NCQUFuQyxLQUFLO2dCQWVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsaUJBQWlCO3NCQUExQixNQUFNO2dCQUVHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBSUcsY0FBYztzQkFBdkIsTUFBTTtnQkFFRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRWUsZUFBZTtzQkFBcEMsTUFBTTt1QkFBQyxZQUFZO2dCQUVHLGdCQUFnQjtzQkFBdEMsTUFBTTt1QkFBQyxhQUFhO2dCQUVNLGVBQWU7c0JBQXpDLE1BQU07dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBza2lwLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gYm9vdHN0cmFwXG5pbXBvcnQge1xuICAgIE5nYlBvcG92ZXIsXG4gICAgTmdiUG9wb3Zlck1vZHVsZSxcbiAgICBOZ2JNb2R1bGUsXG59IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuLy8gYW5pbWF0aW9uXG5pbXBvcnQgeyBpbnB1dERyb3Bkb3duQW5pbWF0aW9uIH0gZnJvbSAnLi9hbmltYXRpb25zJztcblxuLy8gY29uZmlnXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NhLWlucHV0L2NvbmZpZyc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9jYS1pbnB1dC9jYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTG9hZERpc3BhdGNoZXNUdGRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVzLXR0ZC9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWRpc3BhdGNoZXMtdHRkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Mb2FkRGlzcGF0Y2hlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWRpc3BhdGNoZXIvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25TdmdUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1zdmctdGVtcGxhdGUvY2EtaW5wdXQtZHJvcGRvd24tc3ZnLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Tdmd0ZXh0VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC10ZW1wbGF0ZS9jYS1pbnB1dC1kcm9wZG93bi1zdmd0ZXh0LXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Tdmd0ZXh0RGlzcGF0Y2hUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1zdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlL2NhLWlucHV0LWRyb3Bkb3duLXN2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkdyb3Vwc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1ncm91cHMvY2EtaW5wdXQtZHJvcGRvd24tZ3JvdXBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25NdWx0aXNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1tdWx0aXNlbGVjdC9jYS1pbnB1dC1kcm9wZG93bi1tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTGFiZWxzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWxhYmVscy9jYS1pbnB1dC1kcm9wZG93bi1sYWJlbHMuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkxvYWRCcm9rZXJDb250YWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWxvYWQtYnJva2VyLWNvbnRhY3QvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXItY29udGFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlclNoaXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXItc2hpcHBlci9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci1zaGlwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25UZXh0Q291bnRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi10ZXh0LWNvdW50ZXIvY2EtaW5wdXQtZHJvcGRvd24tdGV4dC1jb3VudGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Eb3VibGVUZXh0VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tZG91YmxlLXRleHQtdGVtcGxhdGUvY2EtaW5wdXQtZHJvcGRvd24tZG91YmxlLXRleHQtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93blRyaXBsZVRleHRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi10cmlwbGUtdGV4dC10ZW1wbGF0ZS9jYS1pbnB1dC1kcm9wZG93bi10cmlwbGUtdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duRGVmYXVsdFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWRlZmF1bHQtdGVtcGxhdGUvY2EtaW5wdXQtZHJvcGRvd24tZGVmYXVsdC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duRnVlbEZyYW5jaGlzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1mdWVsLWZyYW5jaGlzZS9jYS1pbnB1dC1kcm9wZG93bi1mdWVsLWZyYW5jaGlzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duRGlzcGF0Y2hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tZGlzcGF0Y2gvY2EtaW5wdXQtZHJvcGRvd24tZGlzcGF0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkRldGFpbHNUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1kZXRhaWxzLXRlbXBsYXRlL2NhLWlucHV0LWRyb3Bkb3duLWRldGFpbHMtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93blBheXJvbGxUcnVja3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tcGF5cm9sbC10cnVja3MvY2EtaW5wdXQtZHJvcGRvd24tcGF5cm9sbC10cnVja3MuY29tcG9uZW50JztcblxuLy8gcGlwZXNcbmltcG9ydCB7IEZvcm1Db250cm9sUGlwZSB9IGZyb20gJy4uL2NhLWlucHV0L3BpcGVzJztcbmltcG9ydCB7IERyb3Bkb3duQ291bnRQaXBlLCBJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDbGFzc1BpcGUgfSBmcm9tICcuL3BpcGVzJztcblxuLy8gbW9kdWxlc1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHtcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ0NvbnRyb2wsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IENvbW1hbmRzRXZlbnQgfSBmcm9tICcuLi9jYS1pbnB1dC9tb2RlbHMnO1xuaW1wb3J0IHsgT3B0aW9uTW9kZWwgfSBmcm9tICcuL21vZGVscy9pbnB1dC1kcm9wZG93bi1vcHRpb24ubW9kZWwnO1xuXG4vLyBzZXJ2aWNlc1xuaW1wb3J0IHsgSW1hZ2VCYXNlNjRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1hZ2UtYmFzZTY0LnNlcnZpY2UnO1xuXG4vLyBzdmcgcm91dGVzXG5pbXBvcnQgeyBJbnB1dERyb3Bkb3duU3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscy9zdmctcm91dGVzL2lucHV0LWRyb3Bkb3duLXN2Zy1yb3V0ZXMnO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgRHJvcGRvd25TdHJpbmdFbnVtLCBEcm9wZG93blRlbXBsYXRlVHlwZUVudW0gfSBmcm9tICcuL2VudW1zJztcblxuLy8gaGVscGVyc1xuaW1wb3J0IHsgdXVpZHY0IH0gZnJvbSAnLi4vLi4vdXRpbHMvaGVscGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNhLWlucHV0LWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLWlucHV0LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0Zvcm1Db250cm9sUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW2lucHV0RHJvcGRvd25BbmltYXRpb24oJ3Nob3dIaWRlRHJvcGRvd25PcHRpb25zJyldLFxuICAgIGltcG9ydHM6IFtcbiAgICAvLyBNb2R1bGVcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdiUG9wb3Zlck1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE5nYk1vZHVsZSxcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAvLyBDb21wb25lbnRcbiAgICBDYUlucHV0Q29tcG9uZW50LFxuICAgIENhSW5wdXREcm9wZG93blN2Z1RlbXBsYXRlQ29tcG9uZW50LFxuICAgIENhSW5wdXREcm9wZG93blN2Z3RleHRUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBDYUlucHV0RHJvcGRvd25Tdmd0ZXh0RGlzcGF0Y2hUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBDYUlucHV0RHJvcGRvd25Hcm91cHNDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTGFiZWxzQ29tcG9uZW50LFxuICAgIENhSW5wdXREcm9wZG93bkxvYWRCcm9rZXJDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTG9hZERpc3BhdGNoZXNUdGRDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTG9hZERpc3BhdGNoZXJDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlckNvbnRhY3RDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlclNoaXBwZXJDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duVGV4dENvdW50ZXJDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duRG91YmxlVGV4dFRlbXBsYXRlQ29tcG9uZW50LFxuICAgIENhSW5wdXREcm9wZG93blRyaXBsZVRleHRUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICBDYUlucHV0RHJvcGRvd25EZWZhdWx0VGVtcGxhdGVDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duRnVlbEZyYW5jaGlzZUNvbXBvbmVudCxcbiAgICBDYUlucHV0RHJvcGRvd25EaXNwYXRjaENvbXBvbmVudCxcbiAgICBDYUlucHV0RHJvcGRvd25EZXRhaWxzVGVtcGxhdGVDb21wb25lbnQsXG4gICAgQ2FJbnB1dERyb3Bkb3duUGF5cm9sbFRydWNrc0NvbXBvbmVudCxcbiAgICAvLyBQaXBlc1xuICAgIEZvcm1Db250cm9sUGlwZSxcbiAgICBEcm9wZG93bkNvdW50UGlwZSxcbiAgICBJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDbGFzc1BpcGVcbl0sXG59KVxuZXhwb3J0IGNsYXNzIENhSW5wdXREcm9wZG93bkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0UmVmITogQ2FJbnB1dENvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCd0MicpIHB1YmxpYyBwb3BvdmVyUmVmITogTmdiUG9wb3ZlcjtcblxuICAgIC8vIGRpZmZlcmVudCB0ZW1wbGF0ZXMgZm9yIGJvZHkgcmVuZGVyaW5nXG4gICAgcHVibGljIF90ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBfY2FuQWRkTmV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2V0IHRlbXBsYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID09PSAnZGV0YWlscy10ZW1wbGF0ZScgJiYgdGhpcy5pc0RldGFpbHNQYWdlcykge1xuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pbnB1dC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSB0aGlzLl9vcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gb3B0aW9uIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnNldFZhbHVlKG9wdGlvbj8ubmFtZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lb3V0MiA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYub3BlbigpO1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dDIpO1xuICAgICAgICAgICAgICAgIH0sIDE1MCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIG11bHRpc2VsZWN0VGVtcGxhdGUhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcbiAgICBASW5wdXQoKSBzZXQgY2FuQWRkTmV3KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NhbkFkZE5ldyA9IHZhbHVlO1xuICAgIH0gLy8gQUREIE5FVyBpdGVtIGluIG9wdGlvbnNcbiAgICBASW5wdXQoKSBjYW5PcGVuTW9kYWwhOiBib29sZWFuOyAvLyBvcGVuIG1vZGFsIHdpdGggQUREIE5FVyBidXR0b25cblxuICAgIC8vIHNvcnQtdGVtcGxhdGUgZm9yIGRpZmZlcmVudCBvcHRpb25zXG4gICAgcHVibGljIF9zb3J0ITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNldCBzb3J0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc29ydCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGN1cnJlbnRseSBhY3RpdmUgaXRlbVxuICAgIHB1YmxpYyBfYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcbiAgICBASW5wdXQoKSBzZXQgYWN0aXZlSXRlbSh2YWx1ZTogT3B0aW9uTW9kZWwgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgYmxhY2tJbnB1dDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IHZhbHVlO1xuXG4gICAgICAgIC8vIFdpdGggYWRkcmVzc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLm5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhZGRyZXNzJykgJiZcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW1cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fYWN0aXZlSXRlbSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy5wYXRjaFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT8uYWRkcmVzcyA/IHZhbHVlPy5hZGRyZXNzIDogbnVsbFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pbnB1dENvbmZpZy5oaWRlQ29sb3JWYWxpZGF0aW9ucykge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBibGFja0lucHV0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXaXRob3V0IGFkZHJlc3NcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT8ubnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZT8ubnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodmFsdWU/LmNvbXBhbnlOYW1lID8/IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlucHV0Q29uZmlnLmhpZGVDb2xvclZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxhY2tJbnB1dDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0sIDE1MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBhY3RpdmVJdGVtQ29sb3IhOiBPcHRpb25Nb2RlbCB8IG51bGw7IC8vIGN1cnJlbnRseSBhY3RpdmUgY29sb3IgaW4gZHJvcGRvd25cbiAgICBASW5wdXQoKSBsYWJlbE1vZGUhOiAnTGFiZWwnIHwgJ0NvbG9yJztcblxuICAgIC8vIHdoZW4gc2VuZCBTVkcsIHBsZWFzZSBwcmVtbWFwZWQgb2JqZWN0OiBhZGQgJ2ZvbGRlcicgfCAnc3ViZm9sZGVyJ1xuICAgIHB1YmxpYyBfb3B0aW9uczogT3B0aW9uTW9kZWxbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHNldCBvcHRpb25zKHZhbHVlczogT3B0aW9uTW9kZWxbXSkge1xuICAgICAgICBpZiAodmFsdWVzKSB0aGlzLl9vcHRpb25zID0gWy4uLnZhbHVlc107XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLl9zb3J0KSB7XG4gICAgICAgICAgICBjYXNlICdhY3RpdmUtZHJpdmVycyc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWVzLnNvcnQoXG4gICAgICAgICAgICAgICAgICAgICh4LCB5KSA9PiBOdW1iZXIoeS5zdGF0dXMpIC0gTnVtYmVyKHguc3RhdHVzKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IFsuLi50aGlzLl9vcHRpb25zXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FuQWRkTmV3ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5fb3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSA3NjU1KVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMudW5zaGlmdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogRHJvcGRvd25TdHJpbmdFbnVtLkFERF9ORVcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zID0gdGhpcy5fb3B0aW9ucztcbiAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTXVsdGlTZWxlY3QgU2VsZWN0ZWQgSXRlbXMgRnJvbSBCYWNrZW5kXG4gICAgQElucHV0KCkgc2V0IHByZWxvYWRNdWx0aXNlbGVjdEl0ZW1zKHZhbHVlczogT3B0aW9uTW9kZWxbXSkge1xuICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5tdWx0aXNlbGVjdERyb3Bkb3duKSB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQWxsTXVsdGlTZWxlY3RJdGVtcyh0aGlzLmlucHV0Q29uZmlnLmxhYmVsKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25NdWx0aXNlbGVjdFNlbGVjdChpdGVtKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzRGV0YWlsc1BhZ2VzITogYm9vbGVhbjsgLy8gb25seSBmb3IgZGV0YWlscyBwYWdlc1xuICAgIEBJbnB1dCgpIGlzSW5jb3JyZWN0VmFsdWUhOiBib29sZWFuOyAvLyBhcHBsaWNhbnQgcmV2aWV3IG9wdGlvblxuICAgIEBJbnB1dCgpIGlzQWRkcmVzc0Ryb3Bkb3duITogYm9vbGVhbjsgLy8gb25seSBmb3IgYWRkcmVzcyBkcm9wZG93blxuXG4gICAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbTogRXZlbnRFbWl0dGVyPE9wdGlvbk1vZGVsIHwgbnVsbD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPE9wdGlvbk1vZGVsIHwgbnVsbD4oKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtczogRXZlbnRFbWl0dGVyPE9wdGlvbk1vZGVsW10gfCBudWxsPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWxbXSB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbUNvbG9yOiBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWwgfCBudWxsPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWwgfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RlZExhYmVsTW9kZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgY2xvc2VEcm9wZG93bjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBzYXZlSXRlbTogRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgZGF0YTogT3B0aW9uTW9kZWwgfCBudWxsO1xuICAgICAgICBhY3Rpb246IHN0cmluZztcbiAgICB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBkYXRhOiBPcHRpb25Nb2RlbCB8IG51bGw7IGFjdGlvbjogc3RyaW5nIH0+KCk7XG4gICAgQE91dHB1dCgpIGluY29ycmVjdEV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHBsYWNlaG9sZGVySWNvbkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgncGFnaW5hdGlvbicpIHBhZ2luYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCdhY3RpdmVHcm91cCcpIGFjdGl2ZUdyb3VwRXZlbnQ6IEV2ZW50RW1pdHRlcjxPcHRpb25Nb2RlbD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPE9wdGlvbk1vZGVsPigpO1xuICAgIEBPdXRwdXQoJ2NsZWFySW5wdXRFdmVudCcpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gQ29weSBvZiBPcHRpb25zXG4gICAgcHVibGljIG9yaWdpbmFsT3B0aW9uczogT3B0aW9uTW9kZWxbXSA9IFtdO1xuXG4gICAgLy8gUGFnaW5hdGlvblxuICAgIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyOiBudW1iZXIgPSAwO1xuXG4gICAgLy8gTXVsdGlzZWxlY3QgZHJvcGRvd24gb3B0aW9uc1xuICAgIHB1YmxpYyBtdWx0aXNlbGVjdEl0ZW1zOiBPcHRpb25Nb2RlbFtdID0gW107XG4gICAgcHVibGljIGlzTXVsdGlTZWxlY3RJbnB1dEZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIG11bHRpU2VsZWN0TGFiZWwhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHVibGljIGxhc3RBY3RpdmVNdWx0aXNlbGVjdEl0ZW0hOiBPcHRpb25Nb2RlbCB8IG51bGw7XG5cbiAgICAvLyBBZGQgbW9kZVxuICAgIHB1YmxpYyBpc0luQWRkTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gRHJvcGRvd24gbmF2aWdhdGlvbiB3aXRoIGtleWJvYXJkXG4gICAgcHJpdmF0ZSBkcm9wZG93blBvc2l0aW9uOiBudW1iZXIgPSAtMTtcblxuICAgIC8vIERyb3Bkb3duIENsZWFydGltZW91dFxuICAgIHB1YmxpYyBjbGVhclRpbWVvdXREcm9wZG93bjogc3RyaW5nIHwgbnVtYmVyIHwgTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgaG92ZXJpbmdJbmRleCE6IG51bWJlcjtcbiAgICBwdWJsaWMgaW5wdXREcm9wZG93blN2Z1JvdXRlcyA9IElucHV0RHJvcGRvd25TdmdSb3V0ZXM7XG4gICAgcHVibGljIGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSA9IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bTtcblxuICAgIC8vIERlc3Ryb3lcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAU2VsZigpIHB1YmxpYyBzdXBlckNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHVibGljIGltYWdlQmFzZTY0U2VydmljZTogSW1hZ2VCYXNlNjRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc3VwZXJDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIGdldCBnZXRTdXBlckNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUoXzogYW55KTogdm9pZCB7fVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChfOiBhbnkpOiB2b2lkIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gTXVsdGlzZWxlY3RcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcubXVsdGlzZWxlY3REcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdExhYmVsID0gdGhpcy5pbnB1dENvbmZpZy5sYWJlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlYXJjaFxuICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgc2tpcCgxKVxuICAgICAgICApLnN1YnNjcmliZSgoc2VhcmNoVGV4dCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnQ29sb3InKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZWFyY2goc2VhcmNoVGV4dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSAmJiBjaGFuZ2VzWydvcHRpb25zJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5vcGVuKCk7XG4gICAgICAgICAgICB9LCA0NTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2Nyb2xsRHJvcGRvd24oZXZlbnQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBpZiAodGFyZ2V0LnNjcm9sbFRvcCArIHRhcmdldC5vZmZzZXRIZWlnaHQgPT09IHRhcmdldC5zY3JvbGxIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbk51bWJlciArPSAxO1xuXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25FdmVudC5lbWl0KHRoaXMucGFnaW5hdGlvbk51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BY3RpdmVJdGVtKG9wdGlvbjogT3B0aW9uTW9kZWwsIGdyb3VwPzogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIFByZXZlbnQgdXNlciB0byBwaWNrIGZyYW5jaGlzZSwgd2l0aG91dCBncm91cFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9PT0gJ2Z1ZWwtZnJhbmNoaXNlJyAmJlxuICAgICAgICAgICAgb3B0aW9uPy5pc0ZyYW5jaGlzZSAmJlxuICAgICAgICAgICAgIWdyb3VwXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIERpc2FibGUgdG8gcGlja2luZyBiYW5uZWQgb3IgZG51IHVzZXJcbiAgICAgICAgaWYgKG9wdGlvbj8uZG51IHx8IG9wdGlvbj8uYmFuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm8gUmVzdWx0XG4gICAgICAgIGlmIChvcHRpb24uaWQgPT09IDc2NTQgfHwgb3B0aW9uLmlkID09PSA3NjU2KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQUREIE5FV1xuICAgICAgICBlbHNlIGlmIChvcHRpb24uaWQgPT09IDc2NTUpIHtcbiAgICAgICAgICAgIC8vIE9wZW4gTmV3IE1vZGFsXG4gICAgICAgICAgICBpZiAodGhpcy5jYW5PcGVuTW9kYWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHsgLi4ub3B0aW9uLCBjYW5PcGVuTW9kYWw6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXb3JrIHdpdGggY3VycmVudCBtb2RhbFxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gRHJvcERvd24gbGFiZWxcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbE5ldyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNFZGl0SW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFiZWxNb2RlLmVtaXQoJ0NvbG9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBEcm9wZG93blxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE5ld0NvbmZpZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQaWNrIHRoZSBpdGVtXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5zZWxlY3RlZERyb3Bkb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIC8vIERyb3Bkb3duIGxhYmVscyBvcHRpb24gc2VsZWN0ZWRcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYWJlbE1vZGUgPT09ICdMYWJlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IG9wdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnNldFZhbHVlKG9wdGlvbi5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnQ29sb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbUNvbG9yID0gb3B0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ29sb3IuZW1pdCh0aGlzLmFjdGl2ZUl0ZW1Db2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm9ybWFsIERyb3Bkb3duIG9wdGlvbiBzZWxlY3RlZFxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IG9wdGlvbjtcblxuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucztcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLm5hbWUgIT09ICdSb3V0aW5nQWRkcmVzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24/Lm51bWJlciA/IG9wdGlvbi5udW1iZXIgOiBvcHRpb24ubmFtZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gJ2Z1ZWwtZnJhbmNoaXNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPyBvcHRpb24ubmFtZSA6IG9wdGlvbi5idXNpbmVzc05hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGlkIH0gPSBvcHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBncm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlSWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XG5cbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dERyb3Bkb3duID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQWN0aXZlSXRlbUdyb3VwKGV2ZW50OiB7IG9wdGlvbjogT3B0aW9uTW9kZWw7IGdyb3VwOiBhbnkgfSkge1xuICAgICAgICB0aGlzLm9uQWN0aXZlSXRlbShldmVudC5vcHRpb24sIGV2ZW50Lmdyb3VwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zO1xuICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5zZWxlY3RlZERyb3Bkb3duID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgICAgICAgIGRyb3Bkb3duSW1hZ2VJbnB1dDogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJEcm9wZG93bkxhYmVsKCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ29sb3IgPSBudWxsO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KG51bGwpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvbG9yLmVtaXQobnVsbCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbE1vZGUuZW1pdCgnTGFiZWwnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tbWFuZEV2ZW50KGV2ZW50OiBDb21tYW5kc0V2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5hY3Rpb24gPT09ICdFZGl0IElucHV0Jykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdDb2xvcicpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ1RvZ2dsZSBEcm9wZG93bicpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnY29uZmlybScgJiYgZXZlbnQubW9kZSA9PT0gJ25ldycpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTmV3SXRlbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ2NvbmZpcm0nICYmIGV2ZW50Lm1vZGUgPT09ICdlZGl0Jykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnUGxhY2Vob2xkZXIgSWNvbiBFdmVudCcpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJJY29uRXZlbnQuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5hY3Rpb24gPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVJdGVtLmVtaXQoe1xuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuX2FjdGl2ZUl0ZW0sXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAnY2FuY2VsJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdMYWJlbCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFkZE5ld0l0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSB7XG4gICAgICAgICAgICBpZDogcGFyc2VJbnQodXVpZHY0KCkpLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRTdXBlckNvbnRyb2whLnZhbHVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmNvbW1hbmRzIS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dFJlZi5pc1Zpc2libGVDb21tYW5kcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuc2F2ZUl0ZW0uZW1pdCh7IGRhdGE6IHRoaXMuX2FjdGl2ZUl0ZW0sIGFjdGlvbjogJ25ldycgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdMYWJlbCcpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc1RvdWNoZWRJbnB1dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9hY3RpdmVJdGVtLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcklkOiB0aGlzLmFjdGl2ZUl0ZW1Db2xvclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlSXRlbUNvbG9yLmlkXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fYWN0aXZlSXRlbT8uY29sb3JJZCxcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5hY3RpdmVJdGVtQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZUl0ZW1Db2xvci5uYW1lXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fYWN0aXZlSXRlbT8uY29sb3IsXG4gICAgICAgICAgICAgICAgY29kZTogdGhpcy5hY3RpdmVJdGVtQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjdGl2ZUl0ZW1Db2xvci5jb2RlXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fYWN0aXZlSXRlbT8uY29kZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbE1vZGUuZW1pdCgnTGFiZWwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5fYWN0aXZlSXRlbSxcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldFN1cGVyQ29udHJvbD8udmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zYXZlSXRlbS5lbWl0KHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX2FjdGl2ZUl0ZW0sXG4gICAgICAgICAgICBhY3Rpb246ICdlZGl0JyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZE5ld0NvbmZpZygpIHtcbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICBjb21tYW5kczoge1xuICAgICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnY29uZmlybS1jYW5jZWwnLFxuICAgICAgICAgICAgICAgIGZpcnN0Q29tbWFuZDoge1xuICAgICAgICAgICAgICAgICAgICBwb3B1cDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NvbmZpcm0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzMwNzRkMycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdjb25maXJtJyxcbiAgICAgICAgICAgICAgICAgICAgc3ZnOiBJbnB1dERyb3Bkb3duU3ZnUm91dGVzLnNwZWNDb25maXJtU3ZnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2Vjb25kQ29tbWFuZDoge1xuICAgICAgICAgICAgICAgICAgICBwb3B1cDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMmYyZjJmJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICAgIHN2ZzogSW5wdXREcm9wZG93blN2Z1JvdXRlcy54Q2xlYXJTdmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG5cbiAgICAgICAgdGhpcy5pc0luQWRkTW9kZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNJbkFkZE1vZGUgPSBmYWxzZTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbmNvcnJlY3RJbnB1dChldmVudDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmluY29ycmVjdEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGl0eShpbmRleDogbnVtYmVyLCBpdGVtOiBPcHRpb25Nb2RlbCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVOZXN0ZWRMaXN0KG9wdGlvbjogT3B0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wdGlvbi5vcGVuKSB7XG4gICAgICAgICAgICBvcHRpb24ub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX29wdGlvbnMuZmlsdGVyKChpdGVtKSA9PiAoaXRlbS5vcGVuID0gZmFsc2UpKTtcblxuICAgICAgICBvcHRpb24ub3BlbiA9ICFvcHRpb24ub3BlbjtcblxuICAgICAgICBpZiAob3B0aW9uLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR3JvdXBFdmVudC5lbWl0KG9wdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25CbHVySW5wdXQoZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsZWFySW5wdXRFdmVudChldmVudDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNsZWFySW5wdXRFdmVudC5lbWl0KGV2ZW50KTtcblxuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgLy8gbGFiZWwgZHJvcGRvd25cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRHJvcGRvd25MYWJlbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gbm9ybWFsIGRyb3Bkb3duXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2xlYXJTZWFyY2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzaG93SGlkZURyb3Bkb3duKGFjdGlvbjogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5tdWx0aXNlbGVjdERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmlzTXVsdGlTZWxlY3RJbnB1dEZvY3VzID0gYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlICE9PSAnQ29sb3InKSB7XG4gICAgICAgICAgICAvLyBGb2N1cyBPdXRcbiAgICAgICAgICAgIGlmICghYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlICE9PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gUHJldmVudCB1c2VyIHRvIHR5cGluZyBkdW1tbXkgZGF0YSBpZiBfYWN0aXZlSXRlbSBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldFZhbHVlKHRoaXMuX2FjdGl2ZUl0ZW0ubmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lID09PSB0aGlzLmdldFN1cGVyQ29udHJvbCEudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2xlYXJTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgIT09ICdmdWVsLWZyYW5jaGlzZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9jdXMgSW5cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmdldFN1cGVyQ29udHJvbCEudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5nZXRTdXBlckNvbnRyb2whLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX2FjdGl2ZUl0ZW0/Lm5hbWUsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sIS5zZXRWYWx1ZShudWxsKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBvcG92ZXJSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbkFkZE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGV0YWlscyBwYWdlc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmN1c3RvbUNsYXNzPy5pbmNsdWRlcygnZGV0YWlscy1wYWdlcycpICYmXG4gICAgICAgICAgICAhYWN0aW9uXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh0aGlzLl9hY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkcm9wRG93bktleU5hdmlnYXRpb24oe1xuICAgICAgICBrZXlDb2RlLFxuICAgICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgICAga2V5Q29kZTogbnVtYmVyO1xuICAgICAgICBkYXRhOiBhbnk7XG4gICAgfSkge1xuICAgICAgICAvLyBOYXZpZ2F0ZSBkb3duXG4gICAgICAgIGlmIChrZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bk5hdmlnYXRpb24oMSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTmF2aWdhdGUgdXBcbiAgICAgICAgaWYgKGtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duTmF2aWdhdGlvbigtMSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVzcyBFc2NhcGVcbiAgICAgICAgaWYgKGtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZz8uY29tbWFuZHM/LmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuY29tbWFuZHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc1Zpc2libGVDb21tYW5kcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8uc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbE5ldyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pbnB1dENvbmZpZy5oaWRlQ29sb3JWYWxpZGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmJsYWNrSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRWRpdElucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pbnB1dC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYWJlbE1vZGUgPT09ICdDb2xvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbE1vZGUuZW1pdCgnTGFiZWwnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJlc3MgJ2VudGVyJ1xuICAgICAgICBpZiAoa2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KFxuICAgICAgICAgICAgICAgICcuZHJvcGRvd24tb3B0aW9uLWhvdmVyZWQnLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIC8vIE9wZW4gTmV3IE1vZGFsXG4gICAgICAgICAgICBpZiAodGhpcy5jYW5PcGVuTW9kYWwgJiYgc2VsZWN0ZWRJdGVtLnRvTG93ZXJDYXNlKCkgPT09ICdhZGQgbmV3Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBpZDogNzY1NSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogRHJvcGRvd25TdHJpbmdFbnVtLkFERF9ORVcsXG4gICAgICAgICAgICAgICAgICAgIGNhbk9wZW5Nb2RhbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubGVuZ3RoID09PSAxICYmICFzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9vcHRpb25zWzBdPy5idXNpbmVzc05hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX29wdGlvbnNbMF0/LmJ1c2luZXNzTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc1swXT8ubmFtZSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IHRoaXMuX29wdGlvbnNbMF0/Lm51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fb3B0aW9uc1swXT8ubnVtYmVyLnRvU3RyaW5nKCkudHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zWzBdLm5hbWU/LnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5waWNrdXBFbGVtZW50V2l0aEtleWJvYXJkKHNlbGVjdGVkSXRlbSwgZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5Q29kZSA9PT0gOSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMubGVuZ3RoID09PSAxICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9uc1swXS5pZCAhPT0gNzY1NSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnNbMF0uaWQgIT09IDc2NTRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IHRoaXMuX29wdGlvbnNbMF0/LmJ1c2luZXNzTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9vcHRpb25zWzBdPy5idXNpbmVzc05hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc1swXT8ubmFtZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9vcHRpb25zWzBdPy5udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fb3B0aW9uc1swXT8ubnVtYmVyLnRvU3RyaW5nKCkudHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX29wdGlvbnNbMF0ubmFtZSEudG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5waWNrdXBFbGVtZW50V2l0aEtleWJvYXJkKHNlbGVjdGVkSXRlbSwgZGF0YSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBNdWx0aXNlbGVjdCBEcm9wZG93biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgcHVibGljIG9uTXVsdGlzZWxlY3RTZWxlY3Qob3B0aW9uOiBPcHRpb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTXVsdGlTZWxlY3RJbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcubGFiZWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3RJdGVtcy5zb21lKChpdGVtKSA9PiBpdGVtLmlkID09PSBvcHRpb24uaWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSBvcHRpb24uaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpdGVtLmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm11bHRpc2VsZWN0SXRlbXMgPSB0aGlzLl9vcHRpb25zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5lbWl0KHRoaXMubXVsdGlzZWxlY3RJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMuc29ydChcbiAgICAgICAgICAgICh4LCB5KSA9PiBOdW1iZXIoeS5hY3RpdmUpIC0gTnVtYmVyKHguYWN0aXZlKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IFsuLi50aGlzLl9vcHRpb25zXTtcblxuICAgICAgICB0aGlzLmxhc3RBY3RpdmVNdWx0aXNlbGVjdEl0ZW0gPSB0aGlzLl9vcHRpb25zXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFjdGl2ZSlcbiAgICAgICAgICAgIC5zbGljZSgtMSlbMF07XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICBtdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlOiB0cnVlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVNdWx0aVNlbGVjdEl0ZW0oaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pZCA9PT0gdGhpcy5tdWx0aXNlbGVjdEl0ZW1zW2luZGV4XS5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMubXVsdGlzZWxlY3RJdGVtc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5zb3J0KFxuICAgICAgICAgICAgKHgsIHkpID0+IE51bWJlcih5LmFjdGl2ZSkgLSBOdW1iZXIoeC5hY3RpdmUpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vcmlnaW5hbE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBpZiAoIXRoaXMubXVsdGlzZWxlY3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVNdWx0aXNlbGVjdEl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5sYWJlbCA9IHRoaXMubXVsdGlTZWxlY3RMYWJlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbSA9IHRoaXMuX29wdGlvbnNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFjdGl2ZSlcbiAgICAgICAgICAgICAgICAuc2xpY2UoLTEpWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmVtaXQoXG4gICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlQWxsTXVsdGlTZWxlY3RJdGVtcyhjdXJyZW50TGFiZWw/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgbXVsdGlTZWxlY3REcm9wZG93bkFjdGl2ZTogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcubGFiZWwgPSBjdXJyZW50TGFiZWxcbiAgICAgICAgICAgID8gY3VycmVudExhYmVsXG4gICAgICAgICAgICA6IHRoaXMubXVsdGlTZWxlY3RMYWJlbDtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMuX29wdGlvbnMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5lbWl0KG51bGwpO1xuXG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU11bHRpc2VsZWN0RHJvcGRvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzTXVsdGlTZWxlY3RJbnB1dEZvY3VzID0gIXRoaXMuaXNNdWx0aVNlbGVjdElucHV0Rm9jdXM7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNNdWx0aVNlbGVjdElucHV0Rm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYub3BlbigpO1xuICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBFbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBwaWNrdXBFbGVtZW50V2l0aEtleWJvYXJkKFxuICAgICAgICBzZWxlY3RlZEl0ZW06IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGF0YTogYW55XG4gICAgKSB7XG4gICAgICAgIC8vIEFkZHJlc3MgU2VsZWN0XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmlucHV0Q29uZmlnLm5hbWUgPT0gJ0FkZHJlc3MnIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5uYW1lID09ICdSb3V0aW5nQWRkcmVzcycpICYmXG4gICAgICAgICAgICAoIXNlbGVjdGVkSXRlbSB8fCBzZWxlY3RlZEl0ZW0gPT0gJycpXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdGhpcy5fb3B0aW9uc1swXS5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5wdXQgRHJvcGRvd24gQmFuayBOYW1lXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFzZWxlY3RlZEl0ZW0gJiZcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcubmFtZSA9PT0gJ0lucHV0IERyb3Bkb3duIEJhbmsgTmFtZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmFkZE5ld0l0ZW0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElucHV0IERyb3Bkb3duIExhYmVsXG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtICYmIHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kRXZlbnQoe1xuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuZ2V0U3VwZXJDb250cm9sIS52YWx1ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdjb25maXJtJyxcbiAgICAgICAgICAgICAgICBtb2RlOiBkYXRhLmRyb3Bkb3duTGFiZWxOZXcgPyAnbmV3JyA6ICdlZGl0JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sIS5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5jb21tYW5kcyEuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlucHV0Q29uZmlnLmhpZGVDb2xvclZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuYmxhY2tJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNFZGl0SW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFERCBORVcgT3B0aW9uXG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0gPT09IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXKSB7XG4gICAgICAgICAgICB0aGlzLmFkZE5ld0NvbmZpZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgLy8gRHJvcERvd24gbGFiZWxcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbE5ldyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNFZGl0SW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFiZWxNb2RlLmVtaXQoJ0NvbG9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuc2V0SW5wdXRDdXJzb3JBdFRoZUVuZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmJsYWNrSW5wdXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA3NjU1LFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogRHJvcGRvd25TdHJpbmdFbnVtLkFERF9ORVcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3JtYWwgUGljayBEcm9wZG93blxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0SXRlbSA9IHRoaXMuX29wdGlvbnNcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFkZHJlc3NcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5uYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5pbnB1dENvbmZpZy5uYW1lID09ICdBZGRyZXNzJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcubmFtZSA9PSAnUm91dGluZ0FkZHJlc3MnKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IGl0ZW0uYWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nTGF0OiBpdGVtLmxvbmdMYXQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTG9hZCBEaXNwYXRjaGVzIFRURFxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9hZC1kaXNwYXRjaGVzLXR0ZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvYWQtYnJva2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9hZC1zaGlwcGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0uaW5jbHVkZXModGhpcy5fdGVtcGxhdGUpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgKG11c3QgYmUgYmVmb3JlIHR5cGUgY29kZSwgYmVjYXVzZSBjb2xvciBoYXMgc2FtZSBwcm9wIGxpa2Ugb3RoZXIgZHJvcGRvd24gcG9wKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpdGVtLmxvZ29OYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDb2RlXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0uY29kZSAmJiBpdGVtLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0uY29kZS5jb25jYXQoJyAtICcsIGl0ZW0uZGVzY3JpcHRpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBEcm9wZG93biBMYWJlbHNcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5kcm9wTGFiZWwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBEZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBEcm9wZG93biBMYWJlbFxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbT8uZHJvcExhYmVsIHx8IHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSEuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtIS5sYXN0SW5kZXhPZignICcpXG4gICAgICAgICAgICAgICAgICAgICAgICApID09PSBpdGVtPy5uYW1lIS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBEcm9wZG93biBMb2FkIERpc3BhdGNoZXIsIEJyb2tlclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbT8ubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2FkLWJyb2tlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2FkLWRpc3BhdGNoZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9hZC1zaGlwcGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLmluY2x1ZGVzKHRoaXMuX3RlbXBsYXRlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKGl0ZW0/Lm5hbWU/LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRHJvcGRvd24gTG9hZCBEaXNwYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRyYWlsZXI/LnRyYWlsZXJOdW1iZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRydWNrPy50cnVja051bWJlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8uZHJpdmVyPy5maXJzdE5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LmRyaXZlcj8ubGFzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlID09PSAnbG9hZC1kaXNwYXRjaGVzLXR0ZCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRyYWlsZXI/LnRyYWlsZXJOdW1iZXIudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy50cnVjaz8udHJ1Y2tOdW1iZXIudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5kcml2ZXI/LmZpcnN0TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoJyAnLCBpdGVtPy5kcml2ZXI/Lmxhc3ROYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgIT09ICdsb2FkLWRpc3BhdGNoZXMtdHRkJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtPy50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/Lm5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICB9KSBhcyBPcHRpb25Nb2RlbDtcblxuICAgICAgICAgICAgLy8gTXVsdGlTZWxlY3QgRHJvcGRvd25cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLm11bHRpc2VsZWN0RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTXVsdGlzZWxlY3RTZWxlY3QoZXhpc3RJdGVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRHJvcGRvd24gbGFiZWxzIG9wdGlvbiBzZWxlY3RlZFxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ0xhYmVsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gZXhpc3RJdGVtIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sIS5zZXRWYWx1ZShleGlzdEl0ZW0hLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoZXhpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0Ryb3Bkb3duVG9nZ2xlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ0NvbG9yJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1Db2xvciA9IGV4aXN0SXRlbSB8fCBudWxsO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ29sb3IuZW1pdCh0aGlzLmFjdGl2ZUl0ZW1Db2xvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm9ybWFsXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEuc2V0VmFsdWUoZXhpc3RJdGVtPy5uYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KGV4aXN0SXRlbSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IGV4aXN0SXRlbSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pbnB1dC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIFNpbmdsZSBEcm9wZG93blxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhW1xuICAgICAgICAgICAgICAgICdncm91cHMnLFxuICAgICAgICAgICAgICAgICdsb2FkLWJyb2tlci1jb250YWN0JyxcbiAgICAgICAgICAgICAgICAnZnVlbC1mcmFuY2hpc2UnLFxuICAgICAgICAgICAgICAgICdsb2FkLWRpc3BhdGNoZXMtdHRkJyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXModGhpcy5fdGVtcGxhdGUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0/Lm5hbWUgIT09IHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5uYW1lID09PSBEcm9wZG93blN0cmluZ0VudW0uQUREX05FVykgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS5jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gaXRlbS5jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQoJyAtICcsIGl0ZW0uZGVzY3JpcHRpb24hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgIT09XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlNWR1RFWFRfRElTUEFUQ0hfVEVNUExBVEUgJiYgIXRoaXMuaXNBZGRyZXNzRHJvcGRvd25cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldEVycm9ycyh7IGludmFsaWQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkltYWdlSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dCEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbXB0eU9wdGlvbnNXaWhBZGROZXcgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zWzBdLm5hbWUgPT09IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCB8fCBlbXB0eU9wdGlvbnNXaWhBZGROZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPT09ICdzdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuaW5wdXRDb25maWcuaXNEaXNwYXRjaExvY2F0aW9uRHJvcGRvd24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFlbXB0eU9wdGlvbnNXaWhBZGROZXdcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA3NjU1LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5pbnB1dENvbmZpZy5uYW1lID09PSAnQWRkcmVzcycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLm5hbWUgPT09ICdSb3V0aW5nQWRkcmVzcycpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZj8ub3BlbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkltYWdlSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGhpZGVBbGxJdGVtc0luSW5wdXREcm9wZG93bjogZmFsc2UsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBHcm91cCBEcm9wZG93biBJdGVtc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0Py5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8udmFsdWU/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gJ2dyb3VwcycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRHcm91cHMgPSBlbGVtZW50Lmdyb3VwcyEuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ViRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkVsZW1lbnQ/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzOiBmaWx0ZXJlZEdyb3VwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGZpbHRlcmVkR3JvdXBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5ncm91cHMubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX29wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA3NjU0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogRHJvcGRvd25TdHJpbmdFbnVtLk5PX1JFU1VMVFMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09ICdsb2FkLWJyb2tlci1jb250YWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnMubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHM6IGVsZW1lbnQ/LmNvbnRhY3RzPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ViRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZnVsbE5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dD8udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZXM6IGVsZW1lbnQ/LnN0b3Jlcz8uZmlsdGVyKChzdWJFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmFtZSEudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gJ2xvYWQtZGlzcGF0Y2hlcy10dGQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmZ1bGxOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogNzY1NCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZSB0aHJvdWdoIGRyb3Bkb3duIHdpdGgga2V5Ym9hcmQgYXJyb3dzXG4gICAgICovXG4gICAgcHJpdmF0ZSBkcm9wZG93bk5hdmlnYXRpb24oc3RlcDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Qb3NpdGlvbiArPSBzdGVwO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duUG9zaXRpb24gPiB0aGlzLl9vcHRpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Qb3NpdGlvbiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kcm9wZG93blBvc2l0aW9uIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blBvc2l0aW9uID0gdGhpcy5fb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNzc0NsYXNzID0gJ2Ryb3Bkb3duLW9wdGlvbi1ob3ZlcmVkJztcbiAgICAgICAgbGV0IGRyb3Bkb3duQ29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAgICcuZHJvcGRvd24tb3B0aW9ucycsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IGRyb3Bkb3duT3B0aW9uID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAgICcuZHJvcGRvd24tb3B0aW9uJyxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgZWxPZmZzZXQgPVxuICAgICAgICAgICAgZHJvcGRvd25PcHRpb24uaGVpZ2h0KCkhICogdGhpcy5kcm9wZG93blBvc2l0aW9uICtcbiAgICAgICAgICAgICh0aGlzLmRyb3Bkb3duUG9zaXRpb24gIT09IDAgPyB0aGlzLmRyb3Bkb3duUG9zaXRpb24gKiA2IDogMCk7XG5cbiAgICAgICAgbGV0IHZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duQ29udGFpbmVyLnNjcm9sbFRvcCgpISArIGRyb3Bkb3duQ29udGFpbmVyLmhlaWdodCgpITtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbE9mZnNldCA8IGRyb3Bkb3duQ29udGFpbmVyLnNjcm9sbFRvcCgpISB8fFxuICAgICAgICAgICAgZWxPZmZzZXQgKyBkcm9wZG93bk9wdGlvbi5oZWlnaHQoKSEgPiB2aWV3cG9ydFxuICAgICAgICApXG4gICAgICAgICAgICBkcm9wZG93bkNvbnRhaW5lci5zY3JvbGxUb3AoZWxPZmZzZXQpO1xuXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoY3NzQ2xhc3MpXG4gICAgICAgICAgICAuZXEodGhpcy5kcm9wZG93blBvc2l0aW9uKVxuICAgICAgICAgICAgLmFkZENsYXNzKGNzc0NsYXNzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24pO1xuICAgIH1cbn1cbiIsIjxkaXYgXG4gIGNsYXNzPVwiYXBwbGljYXRpb24tZHJvcGRvd25cIlxuICBbbmdDbGFzc109XCJcbiAgICBpbnB1dENvbmZpZyB8IGlucHV0RHJvcGRvd25NdWx0aXNlbGVjdENsYXNzOiBtdWx0aXNlbGVjdEl0ZW1zIFxuICAgIDogaXNNdWx0aVNlbGVjdElucHV0Rm9jdXNcbiAgXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpc2VsZWN0SXRlbXMubGVuZ3RoXCI+XG4gICAgPHAgY2xhc3M9XCJtdWx0aXNlbGVjdC1sYWJlbFwiPlxuICAgICAge3sgbXVsdGlTZWxlY3RMYWJlbCB9fVxuICAgIDwvcD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBNdWx0aXNlbGVjdCBhcnJvdyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnLm11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmVcIj5cbiAgICA8c3ZnLWljb25cbiAgICAgIGNsYXNzPVwibXVsdGlzZWxlY3QtYXJyb3dcIlxuICAgICAgW3NyY109XCJpbnB1dERyb3Bkb3duU3ZnUm91dGVzLmlucHV0RHJvcGRvd25BcnJvd1N2Z1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlTXVsdGlzZWxlY3REcm9wZG93bigpXCJcbiAgICA+PC9zdmctaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBNdWx0aXNlbGVjdCBjbGVhciBhbGwgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXNlbGVjdEl0ZW1zLmxlbmd0aCAmJiAhaW5wdXRDb25maWcuaXNEaXNhYmxlZFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaW5wdXQtY2xlYXIgbXVsdGlzZWxlY3QtY2xlYXJcIlxuICAgICAgbWFpblRvb2x0aXA9XCJDbGVhciBBbGxcIlxuICAgICAgbmdiVG9vbHRpcFxuICAgICAgcG9zaXRpb249XCJ0b3BcIlxuICAgICAgdG9vbHRpcEJhY2tncm91bmQ9XCIjMmYyZjJmXCJcbiAgICAgIChjbGljayk9XCJkZWxldGVBbGxNdWx0aVNlbGVjdEl0ZW1zKClcIlxuICAgID5cbiAgICAgIDxzdmctaWNvbiBjbGFzcz1cImlucHV0LWNsZWFyLXhcIiBbc3JjXT1cImlucHV0RHJvcGRvd25TdmdSb3V0ZXMueENsZWFyU3ZnXCI+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBNdWx0aXNlbGVjdCBpdGVtcyAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICBpbnB1dENvbmZpZy5tdWx0aXNlbGVjdERyb3Bkb3duICYmXG4gICAgICBtdWx0aXNlbGVjdEl0ZW1zLmxlbmd0aCAmJlxuICAgICAgX3RlbXBsYXRlID09PSAnbXVsdGlzZWxlY3QnXG4gICAgXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1pdGVtcyB7eyBtdWx0aXNlbGVjdFRlbXBsYXRlIH19XCI+XG4gICAgICA8bmctY29udGFpbmVyPlxuXG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBtdWx0aVNlbGVjdCBvZiBtdWx0aXNlbGVjdEl0ZW1zO1xuICAgICAgICAgIHRyYWNrQnk6IGlkZW50aXR5O1xuICAgICAgICAgIGxldCBpbmQgPSBpbmRleFxuICAgICAgICBcIlxuICAgICAgICBjbGFzcz1cIm11bHRpc2VsZWN0LWl0ZW1cIlxuICAgICAgPlxuICAgICAgICB7eyBtdWx0aVNlbGVjdD8ubmFtZSB9fVxuICAgICAgICA8IS0tIEFjdGl2ZSAtIFRvdGFsIENvdW50ZXIgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcubXVsdGlTZWxlY3RJdGVtUmFuZ2UgJiZcbiAgICAgICAgICAgIG11bHRpU2VsZWN0Py50b3RhbENvdW50ZXJcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyBtdWx0aVNlbGVjdD8uYWN0aXZlQ291bnRlciB9fSBvZlxuICAgICAgICAgICAge3sgbXVsdGlTZWxlY3Q/LnRvdGFsQ291bnRlciB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS0gQWN0aXZlIENvdW50ZXIgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcubXVsdGlTZWxlY3RJdGVtUmFuZ2UgJiZcbiAgICAgICAgICAgICFtdWx0aVNlbGVjdD8udG90YWxDb3VudGVyXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgbXVsdGlTZWxlY3Q/LmFjdGl2ZUNvdW50ZXIgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Q29uZmlnLmlzRGlzYWJsZWRcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTXVsdGlTZWxlY3RJdGVtKGluZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJtdWx0aXNlbGVjdC1pdGVtLWNsZWFyXCJcbiAgICAgICAgICAgIG1haW5Ub29sdGlwPVwiQ2xlYXJcIlxuICAgICAgICAgICAgbmdiVG9vbHRpcFxuICAgICAgICAgICAgcG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgdG9vbHRpcEJhY2tncm91bmQ9XCIjMmYyZjJmXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJpbnB1dERyb3Bkb3duU3ZnUm91dGVzLnhDbGVhclN2Z1wiPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIERyb3Bkb3duIHNlYXJjaCAtLT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Q29uZmlnLmlzSWNvbklucHV0XCI+XG4gICAgPGFwcC1jYS1pbnB1dFxuICAgICAgI3QyPVwibmdiUG9wb3ZlclwiXG4gICAgICBbbmdiUG9wb3Zlcl09XCJjYUlucHV0RHJvcGRvd25Qb3BvdmVyXCJcbiAgICAgIHBvcG92ZXJDbGFzcz1cImNhLWlucHV0LWRyb3Bkb3duXCJcbiAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgIFtwbGFjZW1lbnRdPVwiXG4gICAgICAgIF90ZW1wbGF0ZSA9PSAnc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZSdcbiAgICAgICAgICA/IFsnYm90dG9tLWxlZnQnLCAndG9wLWxlZnQnXVxuICAgICAgICAgIDogWydib3R0b20tbGVmdCddXG4gICAgICBcIlxuICAgICAgI2lucHV0XG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sISB8IGZvcm1Db250cm9sXCJcbiAgICAgIFtpbmNvcnJlY3RWYWx1ZV09XCJpc0luY29ycmVjdFZhbHVlXCJcbiAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwiXG4gICAgICAgIGlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWxcbiAgICAgICAgICA/IF9hY3RpdmVJdGVtXG4gICAgICAgICAgICA/IF9hY3RpdmVJdGVtXG4gICAgICAgICAgICA6IGFjdGl2ZUl0ZW1Db2xvclxuICAgICAgICAgIDogbnVsbFxuICAgICAgXCJcbiAgICAgIFt0ZW1wbGF0ZV09XCJfdGVtcGxhdGVcIlxuICAgICAgKGJsdXJJbnB1dCk9XCJvbkJsdXJJbnB1dCgkZXZlbnQpXCJcbiAgICAgIChjbGVhcik9XCJvbkNsZWFySW5wdXRFdmVudCgkZXZlbnQpXCJcbiAgICAgIChjb21tYW5kRXZlbnQpPVwiY29tbWFuZEV2ZW50KCRldmVudClcIlxuICAgICAgKHNob3dIaWRlRHJvcGRvd24pPVwic2hvd0hpZGVEcm9wZG93bigkZXZlbnQpXCJcbiAgICAgIChkcm9wRG93bktleU5hdmlnYXRpb24pPVwiZHJvcERvd25LZXlOYXZpZ2F0aW9uKCRldmVudClcIlxuICAgICAgKGluY29ycmVjdEV2ZW50KT1cIm9uSW5jb3JyZWN0SW5wdXQoJGV2ZW50KVwiXG4gICAgPjwvYXBwLWNhLWlucHV0PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIERyb3Bkb3duIGljb24gaW5zdGVhZCBvZiBpbnB1dCAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnPy5pc0ljb25JbnB1dFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGlucHV0LWljb24tY29udGFpbmVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgdmFsaWQ6XG4gICAgICAgICAgaW5wdXRDb25maWcuaXNWYWxpZEljb24gJiZcbiAgICAgICAgICAhaW5wdXRDb25maWcuaW5wdXRJY29uPy5pbmNsdWRlcygnY3VzdG9tJyksXG4gICAgICAgIGFjdGl2ZTogcG9wb3ZlclJlZj8uaXNPcGVuKCksXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8c3ZnLWljb25cbiAgICAgICAgI3QyPVwibmdiUG9wb3ZlclwiXG4gICAgICAgIFtuZ2JQb3BvdmVyXT1cImNhSW5wdXREcm9wZG93blBvcG92ZXJcIlxuICAgICAgICBwb3BvdmVyQ2xhc3M9XCJjYS1pbnB1dC1kcm9wZG93blwiXG4gICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICBbcGxhY2VtZW50XT1cIlsnYm90dG9tLWxlZnQnXVwiXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtaWNvblwiXG4gICAgICAgIFtzcmNdPVwiaW5wdXREcm9wZG93blN2Z1JvdXRlcy5yZXBhaXJQbVN2Z1JvdXRlICsgaW5wdXRDb25maWcuaW5wdXRJY29uXCJcbiAgICAgID48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2NhSW5wdXREcm9wZG93blBvcG92ZXI+XG4gIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERyb3Bkb3duIG9wdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRDb25maWc/Lm1lcmdlRHJvcGRvd25Cb2R5V2l0aElucHV0ICYmIF9vcHRpb25zPy5sZW5ndGhcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW9wdGlvbnMtZGl2aWRlciB7eyBpbnB1dENvbmZpZy5kcm9wZG93bldpZHRoQ2xhc3MgfX1cIlxuICAgICAgW2NsYXNzLmRpc3BhdGNoX2Ryb3Bkb3duXT1cIl90ZW1wbGF0ZSA9PSAnc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZSdcIlxuICAgID48L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICAoaW5wdXRDb25maWc/Lm5hbWUgIT0gJ0FkZHJlc3MnICYmXG4gICAgICAgIGlucHV0Q29uZmlnPy5uYW1lICE9ICdSb3V0aW5nQWRkcmVzcycgJiZcbiAgICAgICAgIWlucHV0Q29uZmlnLmlzRGlzYWJsZWQpIHx8XG4gICAgICAoKGlucHV0Q29uZmlnPy5uYW1lID09ICdBZGRyZXNzJyB8fFxuICAgICAgICBpbnB1dENvbmZpZz8ubmFtZSA9PSAnUm91dGluZ0FkZHJlc3MnKSAmJlxuICAgICAgICAhaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICBfb3B0aW9ucz8ubGVuZ3RoKVxuICAgIFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsRHJvcGRvd24oJGV2ZW50LnRhcmdldClcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICBzY3JvbGw6IF9vcHRpb25zIHwgY2FEcm9wZG93bkNvdW50IDogX3RlbXBsYXRlLFxuICAgICAgICAnZHJvcGRvd24tb3B0aW9ucy1ncm91cHMnOlxuICAgICAgICAgIF90ZW1wbGF0ZSA9PT0gJ2dyb3VwcycgfHwgX3RlbXBsYXRlID09PSAnbG9hZC1icm9rZXItY29udGFjdCcsXG4gICAgICAgICdkcm9wZG93bi1vcHRpb25zLWZ1ZWwtZnJhbmNoaXNlJzogX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnLFxuICAgICAgICAnbWVyZ2UtZHJvcGRvd24tYm9keS13aXRoLWlucHV0JzpcbiAgICAgICAgICBpbnB1dENvbmZpZy5tZXJnZURyb3Bkb3duQm9keVdpdGhJbnB1dCxcbiAgICAgICAgJ25vLXJlc3VsdC1jb250YWluZXInOiBfb3B0aW9uc1swXT8ubmFtZSA9PT0gJ05vIFJlc3VsdHMnLFxuICAgICAgICAnc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZSc6XG4gICAgICAgICAgX3RlbXBsYXRlID09ICdzdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlJ1xuICAgICAgfVwiXG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW9wdGlvbnMgIHt7IGlucHV0Q29uZmlnLmRyb3Bkb3duV2lkdGhDbGFzcyB9fVwiXG4gICAgPlxuICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiX3RlbXBsYXRlXCI+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNWRyBUZW1wbGF0ZSAoUmVuZGVyIHN2Z3Mgb3IgdGV4dCBpZiBzdmdzIGRvZXNuJ3QgZXhpc3QgKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlNWR19URU1QTEFURVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tc3ZnLXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tc3ZnLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdmcgVGV4dCBUZW1wbGF0ZSAoZGlzcGxheSBmbGV4KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlNWR1RFWFRfVEVNUExBVEVcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXN2Z3RleHQtdGVtcGxhdGVcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRGlzcGF0Y2ggZHJvcGRvd24tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uU1ZHVEVYVF9ESVNQQVRDSF9URU1QTEFURVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1zdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXRhaWxzIHRlbXBsYXRlICh0cnVjaywgdHJhaWxlci4uLiBkZXRhaWxzLXBhZ2VzKSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5ERVRBSUxTX1RFTVBMQVRFXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1kZXRhaWxzLXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICBbc29ydF09XCJfc29ydFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tZGV0YWlscy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR3JvdXBpbmcgdGVtcGxhdGUgKGNhbiBzZWUgb24gY29udGFjdCBtb2RhbCkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uR1JPVVBTXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1ncm91cHNcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1ncm91cHM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE11bHRpc2VsZWN0IFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uTVVMVElTRUxFQ1RcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLW11bHRpc2VsZWN0XG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbbGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbV09XCJsYXN0QWN0aXZlTXVsdGlzZWxlY3RJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbk11bHRpc2VsZWN0U2VsZWN0KT1cIm9uTXVsdGlzZWxlY3RTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLW11bHRpc2VsZWN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBMYWJlbHMgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MQUJFTFNcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWxhYmVsc1xuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtsYWJlbE1vZGVdPVwibGFiZWxNb2RlXCJcbiAgICAgICAgICAgIFtjYW5BZGROZXddPVwiX2NhbkFkZE5ld1wiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tbGFiZWxzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEaXNwYXRjaCBUZW1wbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkRJU1BBVENIXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1kaXNwYXRjaFxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWRpc3BhdGNoPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBMb2FkIERpc3BhdGNoZXIgVGVtcGxhdGUgKHVzZXIgYXZhdGFyICsgdXNlciBuYW1lKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkxPQURfRElTUEFUQ0hFUlwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBMb2FkIENvbWJpbmUgVHJ1Y2stVHJhaWxlci1Ecml2ZXIgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0RJU1BBVENIRVNfVFREXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWRpc3BhdGNoZXMtdHRkXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVzLXR0ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9hZCBCcm9rZXIgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0JST0tFUlwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9hZCBCcm9rZXIgQ29udGFjdCBUZW1wbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkxPQURfQlJPS0VSX0NPTlRBQ1RcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtYnJva2VyLWNvbnRhY3RcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci1jb250YWN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBMb2FkIFNoaXBwZXIgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX1NISVBQRVJcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtc2hpcHBlclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtc2hpcHBlcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVtcGxhdGUgVGV4dCAtIENvdW50ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5URVhUX0NPVU5URVJcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXRleHQtY291bnRlclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLXRleHQtY291bnRlcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVlbCBGcmFuY2hpc2UgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5GVUVMX0ZSQU5DSElTRVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZnVlbC1mcmFuY2hpc2VcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgKHRvZ2dsZU5lc3RlZExpc3QpPVwidG9nZ2xlTmVzdGVkTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW1Hcm91cCk9XCJvbkFjdGl2ZUl0ZW1Hcm91cCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tZnVlbC1mcmFuY2hpc2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gRG91YmxlIFRleHQgVGVtcGxhdGUgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkRPVUJMRV9URVhUX1RFTVBMQVRFXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1kb3VibGUtdGV4dC10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWRvdWJsZS10ZXh0LXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIERvdWJsZSBDb2x1bW4gVGVtcGxhdGUgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkRPVUJMRV9DT0xVTU5fVEVNUExBVEVcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWRvdWJsZS10ZXh0LXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tZG91YmxlLXRleHQtdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gVHJpcGxlIENvbHVtbiBUZW1wbGF0ZSAtLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uVFJJUExFX0NPTFVNTl9URU1QTEFURVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tdHJpcGxlLXRleHQtdGVtcGxhdGVcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi10cmlwbGUtdGV4dC10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBQQVlST0xMIFRSVUNLUyBUZW1wbGF0ZSAtLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uUEFZUk9MTF9UUlVDS1NcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXBheXJvbGwtdHJ1Y2tzXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tcGF5cm9sbC10cnVja3M+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERlZmF1bHQgVGVtcGxhdGUgLSBSZW5kZXIgT25seSBUZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1kZWZhdWx0LXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWRlZmF1bHQtdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
1196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24vY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24vY2EtaW5wdXQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUd2QixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixJQUFJLEVBRUosU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlELFlBQVk7QUFDWixPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLFNBQVMsR0FDWixNQUFNLDRCQUE0QixDQUFDO0FBRXBDLFlBQVk7QUFDWixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLdEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3hJLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBQy9KLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDRGQUE0RixDQUFDO0FB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dUM7d0JBQ3ZDLHFDQUFxQzt3QkFDckMsUUFBUTt3QkFDUixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUNBQWlDO3FCQUNwQzs7MEJBZ05JLElBQUk7a0lBM01XLFFBQVE7c0JBQTNCLFNBQVM7dUJBQUMsT0FBTztnQkFDTSxVQUFVO3NCQUFqQyxTQUFTO3VCQUFDLElBQUk7Z0JBS0YsUUFBUTtzQkFBcEIsS0FBSztnQkFtQkcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ08sU0FBUztzQkFBckIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFxREcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBZ0NPLHVCQUF1QjtzQkFBbkMsS0FBSztnQkFlRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUlHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUVlLGVBQWU7c0JBQXBDLE1BQU07dUJBQUMsWUFBWTtnQkFFRyxnQkFBZ0I7c0JBQXRDLE1BQU07dUJBQUMsYUFBYTtnQkFFTSxlQUFlO3NCQUF6QyxNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc2tpcCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8vIGJvb3RzdHJhcFxuaW1wb3J0IHtcbiAgICBOZ2JQb3BvdmVyLFxuICAgIE5nYlBvcG92ZXJNb2R1bGUsXG4gICAgTmdiTW9kdWxlLFxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbi8vIGFuaW1hdGlvblxuaW1wb3J0IHsgaW5wdXREcm9wZG93bkFuaW1hdGlvbiB9IGZyb20gJy4vYW5pbWF0aW9ucyc7XG5cbi8vIGNvbmZpZ1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi9jYS1pbnB1dC9jb25maWcnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2EtaW5wdXQvY2EtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkxvYWRCcm9rZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXIvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkxvYWREaXNwYXRjaGVzVHRkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWxvYWQtZGlzcGF0Y2hlcy10dGQvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVzLXR0ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTG9hZERpc3BhdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVyL2NhLWlucHV0LWRyb3Bkb3duLWxvYWQtZGlzcGF0Y2hlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duU3ZnVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tc3ZnLXRlbXBsYXRlL2NhLWlucHV0LWRyb3Bkb3duLXN2Zy10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duU3ZndGV4dFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLXN2Z3RleHQtdGVtcGxhdGUvY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duU3ZndGV4dERpc3BhdGNoVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZS9jYS1pbnB1dC1kcm9wZG93bi1zdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Hcm91cHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tZ3JvdXBzL2NhLWlucHV0LWRyb3Bkb3duLWdyb3Vwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tbXVsdGlzZWxlY3QvY2EtaW5wdXQtZHJvcGRvd24tbXVsdGlzZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkxhYmVsc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1sYWJlbHMvY2EtaW5wdXQtZHJvcGRvd24tbGFiZWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25Mb2FkQnJva2VyQ29udGFjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci1jb250YWN0L2NhLWlucHV0LWRyb3Bkb3duLWxvYWQtYnJva2VyLWNvbnRhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkxvYWRCcm9rZXJTaGlwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWxvYWQtYnJva2VyLXNoaXBwZXIvY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXItc2hpcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duVGV4dENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tdGV4dC1jb3VudGVyL2NhLWlucHV0LWRyb3Bkb3duLXRleHQtY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dERyb3Bkb3duRG91YmxlVGV4dFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWRvdWJsZS10ZXh0LXRlbXBsYXRlL2NhLWlucHV0LWRyb3Bkb3duLWRvdWJsZS10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25UcmlwbGVUZXh0VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tdHJpcGxlLXRleHQtdGVtcGxhdGUvY2EtaW5wdXQtZHJvcGRvd24tdHJpcGxlLXRleHQtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkRlZmF1bHRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1kcm9wZG93bi1kZWZhdWx0LXRlbXBsYXRlL2NhLWlucHV0LWRyb3Bkb3duLWRlZmF1bHQtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkZ1ZWxGcmFuY2hpc2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tZnVlbC1mcmFuY2hpc2UvY2EtaW5wdXQtZHJvcGRvd24tZnVlbC1mcmFuY2hpc2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXREcm9wZG93bkRpc3BhdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLWRpc3BhdGNoL2NhLWlucHV0LWRyb3Bkb3duLWRpc3BhdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25EZXRhaWxzVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtaW5wdXQtZHJvcGRvd24tZGV0YWlscy10ZW1wbGF0ZS9jYS1pbnB1dC1kcm9wZG93bi1kZXRhaWxzLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUlucHV0RHJvcGRvd25QYXlyb2xsVHJ1Y2tzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWRyb3Bkb3duLXBheXJvbGwtdHJ1Y2tzL2NhLWlucHV0LWRyb3Bkb3duLXBheXJvbGwtdHJ1Y2tzLmNvbXBvbmVudCc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBGb3JtQ29udHJvbFBpcGUgfSBmcm9tICcuLi9jYS1pbnB1dC9waXBlcyc7XG5pbXBvcnQgeyBEcm9wZG93bkNvdW50UGlwZSwgSW5wdXREcm9wZG93bk11bHRpc2VsZWN0Q2xhc3NQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5cbi8vIG1vZHVsZXNcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIGRpcmVjdGl2ZXNcbmltcG9ydCB7XG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdDb250cm9sLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50IH0gZnJvbSAnLi4vY2EtaW5wdXQvbW9kZWxzJztcbmltcG9ydCB7IE9wdGlvbk1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvaW5wdXQtZHJvcGRvd24tb3B0aW9uLm1vZGVsJztcblxuLy8gc2VydmljZXNcbmltcG9ydCB7IEltYWdlQmFzZTY0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLWJhc2U2NC5zZXJ2aWNlJztcblxuLy8gc3ZnIHJvdXRlc1xuaW1wb3J0IHsgSW5wdXREcm9wZG93blN2Z1JvdXRlcyB9IGZyb20gJy4vdXRpbHMvc3ZnLXJvdXRlcy9pbnB1dC1kcm9wZG93bi1zdmctcm91dGVzJztcblxuLy8gZW51bXNcbmltcG9ydCB7IERyb3Bkb3duU3RyaW5nRW51bSwgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi9lbnVtcyc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IHV1aWR2NCB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1jYS1pbnB1dC1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhLWlucHV0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYS1pbnB1dC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtGb3JtQ29udHJvbFBpcGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtpbnB1dERyb3Bkb3duQW5pbWF0aW9uKCdzaG93SGlkZURyb3Bkb3duT3B0aW9ucycpXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIE1vZHVsZVxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBOZ2JQb3BvdmVyTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBOZ2JNb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICAgICAgICAvLyBDb21wb25lbnRcbiAgICAgICAgQ2FJbnB1dENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duU3ZnVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93blN2Z3RleHRUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duU3ZndGV4dERpc3BhdGNoVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93bkdyb3Vwc0NvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93bkxhYmVsc0NvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlckNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duTG9hZERpc3BhdGNoZXNUdGRDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93bkxvYWREaXNwYXRjaGVyQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0RHJvcGRvd25Mb2FkQnJva2VyQ29udGFjdENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duTG9hZEJyb2tlclNoaXBwZXJDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93blRleHRDb3VudGVyQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0RHJvcGRvd25Eb3VibGVUZXh0VGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXREcm9wZG93blRyaXBsZVRleHRUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duRGVmYXVsdFRlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0RHJvcGRvd25GdWVsRnJhbmNoaXNlQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0RHJvcGRvd25EaXNwYXRjaENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dERyb3Bkb3duRGV0YWlsc1RlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0RHJvcGRvd25QYXlyb2xsVHJ1Y2tzQ29tcG9uZW50LFxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBGb3JtQ29udHJvbFBpcGUsXG4gICAgICAgIERyb3Bkb3duQ291bnRQaXBlLFxuICAgICAgICBJbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDbGFzc1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FJbnB1dERyb3Bkb3duQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRSZWYhOiBDYUlucHV0Q29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3QyJykgcHVibGljIHBvcG92ZXJSZWYhOiBOZ2JQb3BvdmVyO1xuXG4gICAgLy8gZGlmZmVyZW50IHRlbXBsYXRlcyBmb3IgYm9keSByZW5kZXJpbmdcbiAgICBwdWJsaWMgX3RlbXBsYXRlITogc3RyaW5nO1xuICAgIF9jYW5BZGROZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZXQgdGVtcGxhdGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPT09ICdkZXRhaWxzLXRlbXBsYXRlJyAmJiB0aGlzLmlzRGV0YWlsc1BhZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dERyb3Bkb3duID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5zZXRJbnB1dEN1cnNvckF0VGhlRW5kKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuX29wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSBvcHRpb24gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8uc2V0VmFsdWUob3B0aW9uPy5uYW1lKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0Mik7XG4gICAgICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgbXVsdGlzZWxlY3RUZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIEBJbnB1dCgpIHNldCBjYW5BZGROZXcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FuQWRkTmV3ID0gdmFsdWU7XG4gICAgfSAvLyBBREQgTkVXIGl0ZW0gaW4gb3B0aW9uc1xuICAgIEBJbnB1dCgpIGNhbk9wZW5Nb2RhbCE6IGJvb2xlYW47IC8vIG9wZW4gbW9kYWwgd2l0aCBBREQgTkVXIGJ1dHRvblxuXG4gICAgLy8gc29ydC10ZW1wbGF0ZSBmb3IgZGlmZmVyZW50IG9wdGlvbnNcbiAgICBwdWJsaWMgX3NvcnQhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2V0IHNvcnQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9zb3J0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gY3VycmVudGx5IGFjdGl2ZSBpdGVtXG4gICAgcHVibGljIF9hY3RpdmVJdGVtITogT3B0aW9uTW9kZWwgfCBudWxsO1xuICAgIEBJbnB1dCgpIHNldCBhY3RpdmVJdGVtKHZhbHVlOiBPcHRpb25Nb2RlbCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICBibGFja0lucHV0OiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gdmFsdWU7XG5cbiAgICAgICAgLy8gV2l0aCBhZGRyZXNzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcubmFtZSAmJlxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2FkZHJlc3MnKSAmJlxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLl9hY3RpdmVJdGVtKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnBhdGNoVmFsdWUoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPy5hZGRyZXNzID8gdmFsdWU/LmFkZHJlc3MgOiBudWxsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlucHV0Q29uZmlnLmhpZGVDb2xvclZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJsYWNrSW5wdXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdpdGhvdXQgYWRkcmVzc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPy5udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlPy5udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICh2YWx1ZT8uY29tcGFueU5hbWUgPz8gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW5wdXRDb25maWcuaGlkZUNvbG9yVmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFja0lucHV0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIGFjdGl2ZUl0ZW1Db2xvciE6IE9wdGlvbk1vZGVsIHwgbnVsbDsgLy8gY3VycmVudGx5IGFjdGl2ZSBjb2xvciBpbiBkcm9wZG93blxuICAgIEBJbnB1dCgpIGxhYmVsTW9kZSE6ICdMYWJlbCcgfCAnQ29sb3InO1xuXG4gICAgLy8gd2hlbiBzZW5kIFNWRywgcGxlYXNlIHByZW1tYXBlZCBvYmplY3Q6IGFkZCAnZm9sZGVyJyB8ICdzdWJmb2xkZXInXG4gICAgcHVibGljIF9vcHRpb25zOiBPcHRpb25Nb2RlbFtdID0gW107XG4gICAgQElucHV0KCkgc2V0IG9wdGlvbnModmFsdWVzOiBPcHRpb25Nb2RlbFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZXMpIHRoaXMuX29wdGlvbnMgPSBbLi4udmFsdWVzXTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NvcnQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FjdGl2ZS1kcml2ZXJzJzoge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZXMuc29ydChcbiAgICAgICAgICAgICAgICAgICAgKHgsIHkpID0+IE51bWJlcih5LnN0YXR1cykgLSBOdW1iZXIoeC5zdGF0dXMpXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zID0gWy4uLnRoaXMuX29wdGlvbnNdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYW5BZGROZXcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9vcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IDc2NTUpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy51bnNoaWZ0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogNzY1NSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uQUREX05FVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5hbE9wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNdWx0aVNlbGVjdCBTZWxlY3RlZCBJdGVtcyBGcm9tIEJhY2tlbmRcbiAgICBASW5wdXQoKSBzZXQgcHJlbG9hZE11bHRpc2VsZWN0SXRlbXModmFsdWVzOiBPcHRpb25Nb2RlbFtdKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLm11bHRpc2VsZWN0RHJvcGRvd24pIHtcbiAgICAgICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVBbGxNdWx0aVNlbGVjdEl0ZW1zKHRoaXMuaW5wdXRDb25maWcubGFiZWwpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbk11bHRpc2VsZWN0U2VsZWN0KGl0ZW0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNEZXRhaWxzUGFnZXMhOiBib29sZWFuOyAvLyBvbmx5IGZvciBkZXRhaWxzIHBhZ2VzXG4gICAgQElucHV0KCkgaXNJbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47IC8vIGFwcGxpY2FudCByZXZpZXcgb3B0aW9uXG4gICAgQElucHV0KCkgaXNBZGRyZXNzRHJvcGRvd24hOiBib29sZWFuOyAvLyBvbmx5IGZvciBhZGRyZXNzIGRyb3Bkb3duXG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtOiBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWwgfCBudWxsPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWwgfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1zOiBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWxbXSB8IG51bGw+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25Nb2RlbFtdIHwgbnVsbD4oKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRJdGVtQ29sb3I6IEV2ZW50RW1pdHRlcjxPcHRpb25Nb2RlbCB8IG51bGw+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25Nb2RlbCB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkTGFiZWxNb2RlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIEBPdXRwdXQoKSBjbG9zZURyb3Bkb3duOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHNhdmVJdGVtOiBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBkYXRhOiBPcHRpb25Nb2RlbCB8IG51bGw7XG4gICAgICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IE9wdGlvbk1vZGVsIHwgbnVsbDsgYWN0aW9uOiBzdHJpbmcgfT4oKTtcbiAgICBAT3V0cHV0KCkgaW5jb3JyZWN0RXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgcGxhY2Vob2xkZXJJY29uRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdwYWdpbmF0aW9uJykgcGFnaW5hdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoJ2FjdGl2ZUdyb3VwJykgYWN0aXZlR3JvdXBFdmVudDogRXZlbnRFbWl0dGVyPE9wdGlvbk1vZGVsPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8T3B0aW9uTW9kZWw+KCk7XG4gICAgQE91dHB1dCgnY2xlYXJJbnB1dEV2ZW50JykgY2xlYXJJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvLyBDb3B5IG9mIE9wdGlvbnNcbiAgICBwdWJsaWMgb3JpZ2luYWxPcHRpb25zOiBPcHRpb25Nb2RlbFtdID0gW107XG5cbiAgICAvLyBQYWdpbmF0aW9uXG4gICAgcHVibGljIHBhZ2luYXRpb25OdW1iZXI6IG51bWJlciA9IDA7XG5cbiAgICAvLyBNdWx0aXNlbGVjdCBkcm9wZG93biBvcHRpb25zXG4gICAgcHVibGljIG11bHRpc2VsZWN0SXRlbXM6IE9wdGlvbk1vZGVsW10gPSBbXTtcbiAgICBwdWJsaWMgaXNNdWx0aVNlbGVjdElucHV0Rm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgbXVsdGlTZWxlY3RMYWJlbCE6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwdWJsaWMgbGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIC8vIEFkZCBtb2RlXG4gICAgcHVibGljIGlzSW5BZGRNb2RlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBEcm9wZG93biBuYXZpZ2F0aW9uIHdpdGgga2V5Ym9hcmRcbiAgICBwcml2YXRlIGRyb3Bkb3duUG9zaXRpb246IG51bWJlciA9IC0xO1xuXG4gICAgLy8gRHJvcGRvd24gQ2xlYXJ0aW1lb3V0XG4gICAgcHVibGljIGNsZWFyVGltZW91dERyb3Bkb3duOiBzdHJpbmcgfCBudW1iZXIgfCBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBob3ZlcmluZ0luZGV4ITogbnVtYmVyO1xuICAgIHB1YmxpYyBpbnB1dERyb3Bkb3duU3ZnUm91dGVzID0gSW5wdXREcm9wZG93blN2Z1JvdXRlcztcbiAgICBwdWJsaWMgZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtID0gRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtO1xuXG4gICAgLy8gRGVzdHJveVxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBTZWxmKCkgcHVibGljIHN1cGVyQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgaW1hZ2VCYXNlNjRTZXJ2aWNlOiBJbWFnZUJhc2U2NFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdXBlckNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgZ2V0IGdldFN1cGVyQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VwZXJDb250cm9sLmNvbnRyb2w7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZShfOiBhbnkpOiB2b2lkIHt9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKF86IGFueSk6IHZvaWQge31cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKF86IGFueSk6IHZvaWQge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBNdWx0aXNlbGVjdFxuICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5tdWx0aXNlbGVjdERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0TGFiZWwgPSB0aGlzLmlucHV0Q29uZmlnLmxhYmVsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VhcmNoXG4gICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICBza2lwKDEpXG4gICAgICAgICkuc3Vic2NyaWJlKChzZWFyY2hUZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYWJlbE1vZGUgPT09ICdDb2xvcicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlYXJjaChzZWFyY2hUZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snb3B0aW9ucyddICYmIGNoYW5nZXNbJ29wdGlvbnMnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zID0gY2hhbmdlc1snb3B0aW9ucyddLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dERyb3Bkb3duID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLm9wZW4oKTtcbiAgICAgICAgICAgIH0sIDQ1MCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY3JvbGxEcm9wZG93bihldmVudDogRXZlbnRUYXJnZXQgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmICh0YXJnZXQuc2Nyb2xsVG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCA9PT0gdGFyZ2V0LnNjcm9sbEhlaWdodCkge1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uTnVtYmVyICs9IDE7XG5cbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbkV2ZW50LmVtaXQodGhpcy5wYWdpbmF0aW9uTnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkFjdGl2ZUl0ZW0ob3B0aW9uOiBPcHRpb25Nb2RlbCwgZ3JvdXA/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gUHJldmVudCB1c2VyIHRvIHBpY2sgZnJhbmNoaXNlLCB3aXRob3V0IGdyb3VwXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnICYmXG4gICAgICAgICAgICBvcHRpb24/LmlzRnJhbmNoaXNlICYmXG4gICAgICAgICAgICAhZ3JvdXBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gRGlzYWJsZSB0byBwaWNraW5nIGJhbm5lZCBvciBkbnUgdXNlclxuICAgICAgICBpZiAob3B0aW9uPy5kbnUgfHwgb3B0aW9uPy5iYW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBObyBSZXN1bHRcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gNzY1NCB8fCBvcHRpb24uaWQgPT09IDc2NTYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBBREQgTkVXXG4gICAgICAgIGVsc2UgaWYgKG9wdGlvbi5pZCA9PT0gNzY1NSkge1xuICAgICAgICAgICAgLy8gT3BlbiBOZXcgTW9kYWxcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbk9wZW5Nb2RhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoeyAuLi5vcHRpb24sIGNhbk9wZW5Nb2RhbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdvcmsgd2l0aCBjdXJyZW50IG1vZGFsXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBEcm9wRG93biBsYWJlbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0VkaXRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbE1vZGUuZW1pdCgnQ29sb3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5jb21tYW5kcyEuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5zZXRJbnB1dEN1cnNvckF0VGhlRW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pbnB1dC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTmV3Q29uZmlnKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFBpY2sgdGhlIGl0ZW1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLnNlbGVjdGVkRHJvcGRvd24gPSB0cnVlO1xuICAgICAgICAgICAgLy8gRHJvcGRvd24gbGFiZWxzIG9wdGlvbiBzZWxlY3RlZFxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ0xhYmVsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8uc2V0VmFsdWUob3B0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQob3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYWJlbE1vZGUgPT09ICdDb2xvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ29sb3IgPSBvcHRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db2xvci5lbWl0KHRoaXMuYWN0aXZlSXRlbUNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBOb3JtYWwgRHJvcGRvd24gb3B0aW9uIHNlbGVjdGVkXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gb3B0aW9uO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcubmFtZSAhPT0gJ1JvdXRpbmdBZGRyZXNzJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj8ubnVtYmVyID8gb3B0aW9uLm51bWJlciA6IG9wdGlvbi5uYW1lXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCA/IG9wdGlvbi5uYW1lIDogb3B0aW9uLmJ1c2luZXNzTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgaWQgfSA9IG9wdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVJZDogaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ncm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8ubWFya0FzRGlydHkoKTtcblxuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09ICdmdWVsLWZyYW5jaGlzZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24gPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BY3RpdmVJdGVtR3JvdXAoZXZlbnQ6IHsgb3B0aW9uOiBPcHRpb25Nb2RlbDsgZ3JvdXA6IGFueSB9KSB7XG4gICAgICAgIHRoaXMub25BY3RpdmVJdGVtKGV2ZW50Lm9wdGlvbiwgZXZlbnQuZ3JvdXApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmlucHV0Q29uZmlnLnNlbGVjdGVkRHJvcGRvd24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnBhdGNoVmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgICAgICAgZHJvcGRvd25JbWFnZUlucHV0OiBudWxsLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckRyb3Bkb3duTGFiZWwoKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1Db2xvciA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQobnVsbCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ29sb3IuZW1pdChudWxsKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdMYWJlbCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21tYW5kRXZlbnQoZXZlbnQ6IENvbW1hbmRzRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ0VkaXQgSW5wdXQnKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFiZWxNb2RlLmVtaXQoJ0NvbG9yJyk7XG4gICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWxOZXcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnVG9nZ2xlIERyb3Bkb3duJykge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5hY3Rpb24gPT09ICdjb25maXJtJyAmJiBldmVudC5tb2RlID09PSAnbmV3Jykge1xuICAgICAgICAgICAgdGhpcy5hZGROZXdJdGVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuYWN0aW9uID09PSAnY29uZmlybScgJiYgZXZlbnQubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5hY3Rpb24gPT09ICdQbGFjZWhvbGRlciBJY29uIEV2ZW50Jykge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckljb25FdmVudC5lbWl0KHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUl0ZW0uZW1pdCh7XG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5fYWN0aXZlSXRlbSxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdjYW5jZWwnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFiZWxNb2RlLmVtaXQoJ0xhYmVsJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTmV3SXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IHtcbiAgICAgICAgICAgIGlkOiBwYXJzZUludCh1dWlkdjQoKSksXG4gICAgICAgICAgICBuYW1lOiB0aGlzLmdldFN1cGVyQ29udHJvbCEudmFsdWUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlucHV0UmVmLmlzVmlzaWJsZUNvbW1hbmRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5zYXZlSXRlbS5lbWl0KHsgZGF0YTogdGhpcy5fYWN0aXZlSXRlbSwgYWN0aW9uOiAnbmV3JyB9KTtcblxuICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGFiZWxNb2RlLmVtaXQoJ0xhYmVsJyk7XG4gICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzVG91Y2hlZElucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVJdGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2FjdGl2ZUl0ZW0sXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRTdXBlckNvbnRyb2w/LnZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbG9ySWQ6IHRoaXMuYWN0aXZlSXRlbUNvbG9yXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVJdGVtQ29sb3IuaWRcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9hY3RpdmVJdGVtPy5jb2xvcklkLFxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLmFjdGl2ZUl0ZW1Db2xvclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlSXRlbUNvbG9yLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9hY3RpdmVJdGVtPy5jb2xvcixcbiAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLmFjdGl2ZUl0ZW1Db2xvclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlSXRlbUNvbG9yLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9hY3RpdmVJdGVtPy5jb2RlLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdMYWJlbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9hY3RpdmVJdGVtLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0U3VwZXJDb250cm9sPy52YWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNhdmVJdGVtLmVtaXQoe1xuICAgICAgICAgICAgZGF0YTogdGhpcy5fYWN0aXZlSXRlbSxcbiAgICAgICAgICAgIGFjdGlvbjogJ2VkaXQnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTmV3Q29uZmlnKCkge1xuICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgIGNvbW1hbmRzOiB7XG4gICAgICAgICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdjb25maXJtLWNhbmNlbCcsXG4gICAgICAgICAgICAgICAgZmlyc3RDb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgICAgIHBvcHVwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ29uZmlybScsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjMzA3NGQzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLFxuICAgICAgICAgICAgICAgICAgICBzdmc6IElucHV0RHJvcGRvd25TdmdSb3V0ZXMuc3BlY0NvbmZpcm1TdmcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZWNvbmRDb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgICAgIHBvcHVwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMyZjJmMmYnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgICAgICAgc3ZnOiBJbnB1dERyb3Bkb3duU3ZnUm91dGVzLnhDbGVhclN2ZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcblxuICAgICAgICB0aGlzLmlzSW5BZGRNb2RlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0luQWRkTW9kZSA9IGZhbHNlO1xuICAgICAgICB9LCAyMDApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkluY29ycmVjdElucHV0KGV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaW5jb3JyZWN0RXZlbnQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlkZW50aXR5KGluZGV4OiBudW1iZXIsIGl0ZW06IE9wdGlvbk1vZGVsKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU5lc3RlZExpc3Qob3B0aW9uOiBPcHRpb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAob3B0aW9uLm9wZW4pIHtcbiAgICAgICAgICAgIG9wdGlvbi5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fb3B0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IChpdGVtLm9wZW4gPSBmYWxzZSkpO1xuXG4gICAgICAgIG9wdGlvbi5vcGVuID0gIW9wdGlvbi5vcGVuO1xuXG4gICAgICAgIGlmIChvcHRpb24ub3Blbikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHcm91cEV2ZW50LmVtaXQob3B0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkJsdXJJbnB1dChldmVudDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xlYXJJbnB1dEV2ZW50KGV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dEV2ZW50LmVtaXQoZXZlbnQpO1xuXG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICAvLyBsYWJlbCBkcm9wZG93blxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEcm9wZG93bkxhYmVsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBub3JtYWwgZHJvcGRvd25cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25DbGVhclNlYXJjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dIaWRlRHJvcGRvd24oYWN0aW9uOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLm11bHRpc2VsZWN0RHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdElucHV0Rm9jdXMgPSBhY3Rpb247XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5sYWJlbE1vZGUgIT09ICdDb2xvcicpIHtcbiAgICAgICAgICAgIC8vIEZvY3VzIE91dFxuICAgICAgICAgICAgaWYgKCFhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgIT09ICdmdWVsLWZyYW5jaGlzZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLm9wZW4oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBQcmV2ZW50IHVzZXIgdG8gdHlwaW5nIGR1bW1teSBkYXRhIGlmIF9hY3RpdmVJdGVtIGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEuc2V0VmFsdWUodGhpcy5fYWN0aXZlSXRlbS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3JpZ2luYWxPcHRpb25zLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IHRoaXMuZ2V0U3VwZXJDb250cm9sIS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25DbGVhclNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSAhPT0gJ2Z1ZWwtZnJhbmNoaXNlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBJblxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuZ2V0U3VwZXJDb250cm9sIS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmdldFN1cGVyQ29udHJvbCEudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fYWN0aXZlSXRlbT8ubmFtZSxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldFZhbHVlKG51bGwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucG9wb3ZlclJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0luQWRkTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZXRhaWxzIHBhZ2VzXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuY3VzdG9tQ2xhc3M/LmluY2x1ZGVzKCdkZXRhaWxzLXBhZ2VzJykgJiZcbiAgICAgICAgICAgICFhY3Rpb25cbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHRoaXMuX2FjdGl2ZUl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGRyb3BEb3duS2V5TmF2aWdhdGlvbih7XG4gICAgICAgIGtleUNvZGUsXG4gICAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgICBrZXlDb2RlOiBudW1iZXI7XG4gICAgICAgIGRhdGE6IGFueTtcbiAgICB9KSB7XG4gICAgICAgIC8vIE5hdmlnYXRlIGRvd25cbiAgICAgICAgaWYgKGtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duTmF2aWdhdGlvbigxKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOYXZpZ2F0ZSB1cFxuICAgICAgICBpZiAoa2V5Q29kZSA9PT0gMzgpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25OYXZpZ2F0aW9uKC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXNzIEVzY2FwZVxuICAgICAgICBpZiAoa2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnPy5jb21tYW5kcz8uYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5jb21tYW5kcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzVmlzaWJsZUNvbW1hbmRzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5jb21tYW5kcyEuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlucHV0Q29uZmlnLmhpZGVDb2xvclZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuYmxhY2tJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNFZGl0SW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhYmVsTW9kZSA9PT0gJ0NvbG9yJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbCEucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExhYmVsTW9kZS5lbWl0KCdMYWJlbCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBQcmVzcyAnZW50ZXInXG4gICAgICAgIGlmIChrZXlDb2RlID09PSAxMykge1xuICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IHRoaXMucmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJy5kcm9wZG93bi1vcHRpb24taG92ZXJlZCcsXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gLy8gT3BlbiBOZXcgTW9kYWxcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbk9wZW5Nb2RhbCAmJiBzZWxlY3RlZEl0ZW0udG9Mb3dlckNhc2UoKSA9PT0gJ2FkZCBuZXcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiA3NjU1LFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uQUREX05FVyxcbiAgICAgICAgICAgICAgICAgICAgY2FuT3Blbk1vZGFsOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3B0aW9ucy5sZW5ndGggPT09IDEgJiYgIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09ICdmdWVsLWZyYW5jaGlzZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IHRoaXMuX29wdGlvbnNbMF0/LmJ1c2luZXNzTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5fb3B0aW9uc1swXT8uYnVzaW5lc3NOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zWzBdPy5uYW1lIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdGhpcy5fb3B0aW9uc1swXT8ubnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9vcHRpb25zWzBdPy5udW1iZXIudG9TdHJpbmcoKS50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX29wdGlvbnNbMF0ubmFtZT8udG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnBpY2t1cEVsZW1lbnRXaXRoS2V5Ym9hcmQoc2VsZWN0ZWRJdGVtLCBkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXlDb2RlID09PSA5KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zWzBdLmlkICE9PSA3NjU1ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9uc1swXS5pZCAhPT0gNzY1NFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09ICdmdWVsLWZyYW5jaGlzZScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdGhpcy5fb3B0aW9uc1swXT8uYnVzaW5lc3NOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX29wdGlvbnNbMF0/LmJ1c2luZXNzTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zWzBdPy5uYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbSA9IHRoaXMuX29wdGlvbnNbMF0/Lm51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9vcHRpb25zWzBdPy5udW1iZXIudG9TdHJpbmcoKS50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc1swXS5uYW1lIS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnBpY2t1cEVsZW1lbnRXaXRoS2V5Ym9hcmQoc2VsZWN0ZWRJdGVtLCBkYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLm9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIE11bHRpc2VsZWN0IERyb3Bkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBwdWJsaWMgb25NdWx0aXNlbGVjdFNlbGVjdChvcHRpb246IE9wdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdElucHV0Rm9jdXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5sYWJlbCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdEl0ZW1zLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IG9wdGlvbi5pZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uaWQgPT09IG9wdGlvbi5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RJdGVtcyA9IHRoaXMuX29wdGlvbnMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmFjdGl2ZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmVtaXQodGhpcy5tdWx0aXNlbGVjdEl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5zb3J0KFxuICAgICAgICAgICAgKHgsIHkpID0+IE51bWJlcih5LmFjdGl2ZSkgLSBOdW1iZXIoeC5hY3RpdmUpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zID0gWy4uLnRoaXMuX29wdGlvbnNdO1xuXG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbSA9IHRoaXMuX29wdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKVxuICAgICAgICAgICAgLnNsaWNlKC0xKVswXTtcblxuICAgICAgICBpZiAodGhpcy5pbnB1dFJlZikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0Q29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgICAgIG11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmU6IHRydWUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZU11bHRpU2VsZWN0SXRlbShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSB0aGlzLm11bHRpc2VsZWN0SXRlbXNbaW5kZXhdLmlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5tdWx0aXNlbGVjdEl0ZW1zW2luZGV4XSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zLnNvcnQoXG4gICAgICAgICAgICAoeCwgeSkgPT4gTnVtYmVyKHkuYWN0aXZlKSAtIE51bWJlcih4LmFjdGl2ZSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm9yaWdpbmFsT3B0aW9ucyA9IHRoaXMuX29wdGlvbnM7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXNlbGVjdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMubGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmxhYmVsID0gdGhpcy5tdWx0aVNlbGVjdExhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYXN0QWN0aXZlTXVsdGlzZWxlY3RJdGVtID0gdGhpcy5fb3B0aW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKVxuICAgICAgICAgICAgICAgIC5zbGljZSgtMSlbMF07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZW1pdChcbiAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGVBbGxNdWx0aVNlbGVjdEl0ZW1zKGN1cnJlbnRMYWJlbD86IHN0cmluZykge1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0SXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICBtdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5sYWJlbCA9IGN1cnJlbnRMYWJlbFxuICAgICAgICAgICAgPyBjdXJyZW50TGFiZWxcbiAgICAgICAgICAgIDogdGhpcy5tdWx0aVNlbGVjdExhYmVsO1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5fb3B0aW9ucy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub3JpZ2luYWxPcHRpb25zID0gdGhpcy5fb3B0aW9ucztcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmVtaXQobnVsbCk7XG5cbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlTXVsdGlzZWxlY3RJdGVtID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlTXVsdGlzZWxlY3REcm9wZG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdElucHV0Rm9jdXMgPSAhdGhpcy5pc011bHRpU2VsZWN0SW5wdXRGb2N1cztcblxuICAgICAgICBpZiAodGhpcy5pc011bHRpU2VsZWN0SW5wdXRGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5zZXRJbnB1dEN1cnNvckF0VGhlRW5kKFxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5jbGVhclRpbWVvdXREcm9wZG93biA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5vcGVuKCk7XG4gICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIEVuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIHBpY2t1cEVsZW1lbnRXaXRoS2V5Ym9hcmQoXG4gICAgICAgIHNlbGVjdGVkSXRlbTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBkYXRhOiBhbnlcbiAgICApIHtcbiAgICAgICAgLy8gQWRkcmVzcyBTZWxlY3RcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMuaW5wdXRDb25maWcubmFtZSA9PSAnQWRkcmVzcycgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLm5hbWUgPT0gJ1JvdXRpbmdBZGRyZXNzJykgJiZcbiAgICAgICAgICAgICghc2VsZWN0ZWRJdGVtIHx8IHNlbGVjdGVkSXRlbSA9PSAnJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9vcHRpb25zWzBdLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnB1dCBEcm9wZG93biBCYW5rIE5hbWVcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXNlbGVjdGVkSXRlbSAmJlxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5uYW1lID09PSAnSW5wdXQgRHJvcGRvd24gQmFuayBOYW1lJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTmV3SXRlbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5wdXQgRHJvcGRvd24gTGFiZWxcbiAgICAgICAgaWYgKCFzZWxlY3RlZEl0ZW0gJiYgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRFdmVudCh7XG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5nZXRTdXBlckNvbnRyb2whLnZhbHVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ2NvbmZpcm0nLFxuICAgICAgICAgICAgICAgIG1vZGU6IGRhdGEuZHJvcGRvd25MYWJlbE5ldyA/ICduZXcnIDogJ2VkaXQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyVGltZW91dERyb3Bkb3duID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWxOZXcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmNvbW1hbmRzIS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaW5wdXRDb25maWcuaGlkZUNvbG9yVmFsaWRhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5ibGFja0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0VkaXRJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQUREIE5FVyBPcHRpb25cbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSA9PT0gRHJvcGRvd25TdHJpbmdFbnVtLkFERF9ORVcpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTmV3Q29uZmlnKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAvLyBEcm9wRG93biBsYWJlbFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0VkaXRJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMYWJlbE1vZGUuZW1pdCgnQ29sb3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5jb21tYW5kcyEuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5zZXRJbnB1dEN1cnNvckF0VGhlRW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pbnB1dC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuYmxhY2tJbnB1dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uQUREX05FVyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vcm1hbCBQaWNrIERyb3Bkb3duXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RJdGVtID0gdGhpcy5fb3B0aW9uc1xuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkcmVzc1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmlucHV0Q29uZmlnLm5hbWUgPT0gJ0FkZHJlc3MnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5uYW1lID09ICdSb3V0aW5nQWRkcmVzcycpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzczogaXRlbS5hZGRyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdMYXQ6IGl0ZW0ubG9uZ0xhdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIERpc3BhdGNoZXMgVFREXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2FkLWRpc3BhdGNoZXMtdHRkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9hZC1icm9rZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2FkLXNoaXBwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgXS5pbmNsdWRlcyh0aGlzLl90ZW1wbGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBJbWFnZSAobXVzdCBiZSBiZWZvcmUgdHlwZSBjb2RlLCBiZWNhdXNlIGNvbG9yIGhhcyBzYW1lIHByb3AgbGlrZSBvdGhlciBkcm9wZG93biBwb3ApXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0ubG9nb05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIENvZGVcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5jb2RlICYmIGl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbS5jb2RlLmNvbmNhdCgnIC0gJywgaXRlbS5kZXNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIERyb3Bkb3duIExhYmVsc1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LmRyb3BMYWJlbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIERlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0gfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maW5kKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIERyb3Bkb3duIExhYmVsXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtPy5kcm9wTGFiZWwgfHwgdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtIS5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0hLmxhc3RJbmRleE9mKCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAgICkgPT09IGl0ZW0/Lm5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIERyb3Bkb3duIExvYWQgRGlzcGF0Y2hlciwgQnJva2VyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtPy5uYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvYWQtYnJva2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvYWQtZGlzcGF0Y2hlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2FkLXNoaXBwZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uaW5jbHVkZXModGhpcy5fdGVtcGxhdGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoaXRlbT8ubmFtZT8udG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBEcm9wZG93biBMb2FkIERpc3BhdGNoZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udHJhaWxlcj8udHJhaWxlck51bWJlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udHJ1Y2s/LnRydWNrTnVtYmVyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5kcml2ZXI/LmZpcnN0TmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8uZHJpdmVyPy5sYXN0TmFtZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPT09ICdsb2FkLWRpc3BhdGNoZXMtdHRkJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8udHJhaWxlcj8udHJhaWxlck51bWJlci50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LnRydWNrPy50cnVja051bWJlci50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0/LmRyaXZlcj8uZmlyc3ROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgnICcsIGl0ZW0/LmRyaXZlcj8ubGFzdE5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSAhPT0gJ2xvYWQtZGlzcGF0Y2hlcy10dGQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbT8ubmFtZSEudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgIH0pIGFzIE9wdGlvbk1vZGVsO1xuXG4gICAgICAgICAgICAvLyBNdWx0aVNlbGVjdCBEcm9wZG93blxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRDb25maWcubXVsdGlzZWxlY3REcm9wZG93bikge1xuICAgICAgICAgICAgICAgIHRoaXMub25NdWx0aXNlbGVjdFNlbGVjdChleGlzdEl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBEcm9wZG93biBsYWJlbHMgb3B0aW9uIHNlbGVjdGVkXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnTGFiZWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0gPSBleGlzdEl0ZW0gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldFZhbHVlKGV4aXN0SXRlbSEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdChleGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRHJvcGRvd25Ub2dnbGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuaW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGFiZWxNb2RlID09PSAnQ29sb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbUNvbG9yID0gZXhpc3RJdGVtIHx8IG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db2xvci5lbWl0KHRoaXMuYWN0aXZlSXRlbUNvbG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBOb3JtYWxcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0U3VwZXJDb250cm9sIS5zZXRWYWx1ZShleGlzdEl0ZW0/Lm5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoZXhpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJdGVtID0gZXhpc3RJdGVtIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gU2luZ2xlIERyb3Bkb3duXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFbXG4gICAgICAgICAgICAgICAgJ2dyb3VwcycsXG4gICAgICAgICAgICAgICAgJ2xvYWQtYnJva2VyLWNvbnRhY3QnLFxuICAgICAgICAgICAgICAgICdmdWVsLWZyYW5jaGlzZScsXG4gICAgICAgICAgICAgICAgJ2xvYWQtZGlzcGF0Y2hlcy10dGQnLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyh0aGlzLl90ZW1wbGF0ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dD8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2w/LnZhbHVlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSXRlbT8ubmFtZSAhPT0gdGhpcy5nZXRTdXBlckNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLm5hbWUgPT09IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpdGVtLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpdGVtLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgnIC0gJywgaXRlbS5kZXNjcmlwdGlvbiEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNWR1RFWFRfRElTUEFUQ0hfVEVNUExBVEUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuaXNBZGRyZXNzRHJvcGRvd25cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldEVycm9ycyh7IGludmFsaWQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTdXBlckNvbnRyb2whLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkltYWdlSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dCEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbXB0eU9wdGlvbnNXaWhBZGROZXcgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zWzBdLm5hbWUgPT09IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCB8fCBlbXB0eU9wdGlvbnNXaWhBZGROZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPT09ICdzdmd0ZXh0LWRpc3BhdGNoLXRlbXBsYXRlJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuaW5wdXRDb25maWcuaXNEaXNwYXRjaExvY2F0aW9uRHJvcGRvd24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFlbXB0eU9wdGlvbnNXaWhBZGROZXdcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA3NjU1LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IERyb3Bkb3duU3RyaW5nRW51bS5BRERfTkVXLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5pbnB1dENvbmZpZy5uYW1lID09PSAnQWRkcmVzcycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLm5hbWUgPT09ICdSb3V0aW5nQWRkcmVzcycpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZj8ub3BlbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkcm9wZG93bkltYWdlSW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmlucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGhpZGVBbGxJdGVtc0luSW5wdXREcm9wZG93bjogZmFsc2UsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBHcm91cCBEcm9wZG93biBJdGVtc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0Py5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdldFN1cGVyQ29udHJvbD8udmFsdWU/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gJ2dyb3VwcycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHRoaXMub3JpZ2luYWxPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRHcm91cHMgPSBlbGVtZW50Lmdyb3VwcyEuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ViRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkVsZW1lbnQ/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzOiBmaWx0ZXJlZEdyb3VwcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGZpbHRlcmVkR3JvdXBzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5ncm91cHMubGVuZ3RoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX29wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiA3NjU0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogRHJvcGRvd25TdHJpbmdFbnVtLk5PX1JFU1VMVFMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IDc2NTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGUgPT09ICdsb2FkLWJyb2tlci1jb250YWN0Jykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnMubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdHM6IGVsZW1lbnQ/LmNvbnRhY3RzPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ViRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZnVsbE5hbWUhLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dD8udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlID09PSAnZnVlbC1mcmFuY2hpc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZXM6IGVsZW1lbnQ/LnN0b3Jlcz8uZmlsdGVyKChzdWJFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmFtZSEudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90ZW1wbGF0ZSA9PT0gJ2xvYWQtZGlzcGF0Y2hlcy10dGQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm9yaWdpbmFsT3B0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmZ1bGxOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogNzY1NCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBEcm9wZG93blN0cmluZ0VudW0uTk9fUkVTVUxUUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcHRpb25zID0gdGhpcy5vcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0ZSB0aHJvdWdoIGRyb3Bkb3duIHdpdGgga2V5Ym9hcmQgYXJyb3dzXG4gICAgICovXG4gICAgcHJpdmF0ZSBkcm9wZG93bk5hdmlnYXRpb24oc3RlcDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Qb3NpdGlvbiArPSBzdGVwO1xuXG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duUG9zaXRpb24gPiB0aGlzLl9vcHRpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Qb3NpdGlvbiA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kcm9wZG93blBvc2l0aW9uIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blBvc2l0aW9uID0gdGhpcy5fb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGNzc0NsYXNzID0gJ2Ryb3Bkb3duLW9wdGlvbi1ob3ZlcmVkJztcbiAgICAgICAgbGV0IGRyb3Bkb3duQ29udGFpbmVyID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAgICcuZHJvcGRvd24tb3B0aW9ucycsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG5cbiAgICAgICAgbGV0IGRyb3Bkb3duT3B0aW9uID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChcbiAgICAgICAgICAgICcuZHJvcGRvd24tb3B0aW9uJyxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgZWxPZmZzZXQgPVxuICAgICAgICAgICAgZHJvcGRvd25PcHRpb24uaGVpZ2h0KCkhICogdGhpcy5kcm9wZG93blBvc2l0aW9uICtcbiAgICAgICAgICAgICh0aGlzLmRyb3Bkb3duUG9zaXRpb24gIT09IDAgPyB0aGlzLmRyb3Bkb3duUG9zaXRpb24gKiA2IDogMCk7XG5cbiAgICAgICAgbGV0IHZpZXdwb3J0ID1cbiAgICAgICAgICAgIGRyb3Bkb3duQ29udGFpbmVyLnNjcm9sbFRvcCgpISArIGRyb3Bkb3duQ29udGFpbmVyLmhlaWdodCgpITtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBlbE9mZnNldCA8IGRyb3Bkb3duQ29udGFpbmVyLnNjcm9sbFRvcCgpISB8fFxuICAgICAgICAgICAgZWxPZmZzZXQgKyBkcm9wZG93bk9wdGlvbi5oZWlnaHQoKSEgPiB2aWV3cG9ydFxuICAgICAgICApXG4gICAgICAgICAgICBkcm9wZG93bkNvbnRhaW5lci5zY3JvbGxUb3AoZWxPZmZzZXQpO1xuXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoY3NzQ2xhc3MpXG4gICAgICAgICAgICAuZXEodGhpcy5kcm9wZG93blBvc2l0aW9uKVxuICAgICAgICAgICAgLmFkZENsYXNzKGNzc0NsYXNzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xlYXJUaW1lb3V0RHJvcGRvd24pO1xuICAgIH1cbn0iLCI8ZGl2IFxuICBjbGFzcz1cImFwcGxpY2F0aW9uLWRyb3Bkb3duXCJcbiAgW25nQ2xhc3NdPVwiXG4gICAgaW5wdXRDb25maWcgfCBpbnB1dERyb3Bkb3duTXVsdGlzZWxlY3RDbGFzczogbXVsdGlzZWxlY3RJdGVtcyBcbiAgICA6IGlzTXVsdGlTZWxlY3RJbnB1dEZvY3VzXG4gIFwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXNlbGVjdEl0ZW1zLmxlbmd0aFwiPlxuICAgIDxwIGNsYXNzPVwibXVsdGlzZWxlY3QtbGFiZWxcIj5cbiAgICAgIHt7IG11bHRpU2VsZWN0TGFiZWwgfX1cbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlzZWxlY3QgYXJyb3cgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dENvbmZpZy5tdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlXCI+XG4gICAgPHN2Zy1pY29uXG4gICAgICBjbGFzcz1cIm11bHRpc2VsZWN0LWFycm93XCJcbiAgICAgIFtzcmNdPVwiaW5wdXREcm9wZG93blN2Z1JvdXRlcy5pbnB1dERyb3Bkb3duQXJyb3dTdmdcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZU11bHRpc2VsZWN0RHJvcGRvd24oKVwiXG4gICAgPjwvc3ZnLWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlzZWxlY3QgY2xlYXIgYWxsIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlzZWxlY3RJdGVtcy5sZW5ndGggJiYgIWlucHV0Q29uZmlnLmlzRGlzYWJsZWRcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImlucHV0LWNsZWFyIG11bHRpc2VsZWN0LWNsZWFyXCJcbiAgICAgIG1haW5Ub29sdGlwPVwiQ2xlYXIgQWxsXCJcbiAgICAgIG5nYlRvb2x0aXBcbiAgICAgIHBvc2l0aW9uPVwidG9wXCJcbiAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kPVwiIzJmMmYyZlwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlQWxsTXVsdGlTZWxlY3RJdGVtcygpXCJcbiAgICA+XG4gICAgICA8c3ZnLWljb24gY2xhc3M9XCJpbnB1dC1jbGVhci14XCIgW3NyY109XCJpbnB1dERyb3Bkb3duU3ZnUm91dGVzLnhDbGVhclN2Z1wiPjwvc3ZnLWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gTXVsdGlzZWxlY3QgaXRlbXMgLS0+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgaW5wdXRDb25maWcubXVsdGlzZWxlY3REcm9wZG93biAmJlxuICAgICAgbXVsdGlzZWxlY3RJdGVtcy5sZW5ndGggJiZcbiAgICAgIF90ZW1wbGF0ZSA9PT0gJ211bHRpc2VsZWN0J1xuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibXVsdGlzZWxlY3QtaXRlbXMge3sgbXVsdGlzZWxlY3RUZW1wbGF0ZSB9fVwiPlxuICAgICAgPG5nLWNvbnRhaW5lcj5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICBsZXQgbXVsdGlTZWxlY3Qgb2YgbXVsdGlzZWxlY3RJdGVtcztcbiAgICAgICAgICB0cmFja0J5OiBpZGVudGl0eTtcbiAgICAgICAgICBsZXQgaW5kID0gaW5kZXhcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJtdWx0aXNlbGVjdC1pdGVtXCJcbiAgICAgID5cbiAgICAgICAge3sgbXVsdGlTZWxlY3Q/Lm5hbWUgfX1cbiAgICAgICAgPCEtLSBBY3RpdmUgLSBUb3RhbCBDb3VudGVyIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGlucHV0Q29uZmlnLm11bHRpU2VsZWN0SXRlbVJhbmdlICYmXG4gICAgICAgICAgICBtdWx0aVNlbGVjdD8udG90YWxDb3VudGVyXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgbXVsdGlTZWxlY3Q/LmFjdGl2ZUNvdW50ZXIgfX0gb2ZcbiAgICAgICAgICAgIHt7IG11bHRpU2VsZWN0Py50b3RhbENvdW50ZXIgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIEFjdGl2ZSBDb3VudGVyIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGlucHV0Q29uZmlnLm11bHRpU2VsZWN0SXRlbVJhbmdlICYmXG4gICAgICAgICAgICAhbXVsdGlTZWxlY3Q/LnRvdGFsQ291bnRlclxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IG11bHRpU2VsZWN0Py5hY3RpdmVDb3VudGVyIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dENvbmZpZy5pc0Rpc2FibGVkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZU11bHRpU2VsZWN0SXRlbShpbmQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibXVsdGlzZWxlY3QtaXRlbS1jbGVhclwiXG4gICAgICAgICAgICBtYWluVG9vbHRpcD1cIkNsZWFyXCJcbiAgICAgICAgICAgIG5nYlRvb2x0aXBcbiAgICAgICAgICAgIHBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kPVwiIzJmMmYyZlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiaW5wdXREcm9wZG93blN2Z1JvdXRlcy54Q2xlYXJTdmdcIj48L3N2Zy1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBEcm9wZG93biBzZWFyY2ggLS0+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dENvbmZpZy5pc0ljb25JbnB1dFwiPlxuICAgIDxhcHAtY2EtaW5wdXRcbiAgICAgICN0Mj1cIm5nYlBvcG92ZXJcIlxuICAgICAgW25nYlBvcG92ZXJdPVwiY2FJbnB1dERyb3Bkb3duUG9wb3ZlclwiXG4gICAgICBwb3BvdmVyQ2xhc3M9XCJjYS1pbnB1dC1kcm9wZG93blwiXG4gICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICBbY29udGFpbmVyXT1cIidib2R5J1wiXG4gICAgICBbcGxhY2VtZW50XT1cIlxuICAgICAgICBfdGVtcGxhdGUgPT0gJ3N2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUnXG4gICAgICAgICAgPyBbJ2JvdHRvbS1sZWZ0JywgJ3RvcC1sZWZ0J11cbiAgICAgICAgICA6IFsnYm90dG9tLWxlZnQnXVxuICAgICAgXCJcbiAgICAgICNpbnB1dFxuICAgICAgW2Zvcm1Db250cm9sXT1cImdldFN1cGVyQ29udHJvbCEgfCBmb3JtQ29udHJvbFwiXG4gICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaXNJbmNvcnJlY3RWYWx1ZVwiXG4gICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cIlxuICAgICAgICBpbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsXG4gICAgICAgICAgPyBfYWN0aXZlSXRlbVxuICAgICAgICAgICAgPyBfYWN0aXZlSXRlbVxuICAgICAgICAgICAgOiBhY3RpdmVJdGVtQ29sb3JcbiAgICAgICAgICA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbdGVtcGxhdGVdPVwiX3RlbXBsYXRlXCJcbiAgICAgIChibHVySW5wdXQpPVwib25CbHVySW5wdXQoJGV2ZW50KVwiXG4gICAgICAoY2xlYXIpPVwib25DbGVhcklucHV0RXZlbnQoJGV2ZW50KVwiXG4gICAgICAoY29tbWFuZEV2ZW50KT1cImNvbW1hbmRFdmVudCgkZXZlbnQpXCJcbiAgICAgIChzaG93SGlkZURyb3Bkb3duKT1cInNob3dIaWRlRHJvcGRvd24oJGV2ZW50KVwiXG4gICAgICAoZHJvcERvd25LZXlOYXZpZ2F0aW9uKT1cImRyb3BEb3duS2V5TmF2aWdhdGlvbigkZXZlbnQpXCJcbiAgICAgIChpbmNvcnJlY3RFdmVudCk9XCJvbkluY29ycmVjdElucHV0KCRldmVudClcIlxuICAgID48L2FwcC1jYS1pbnB1dD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBEcm9wZG93biBpY29uIGluc3RlYWQgb2YgaW5wdXQgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dENvbmZpZz8uaXNJY29uSW5wdXRcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBpbnB1dC1pY29uLWNvbnRhaW5lclwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIHZhbGlkOlxuICAgICAgICAgIGlucHV0Q29uZmlnLmlzVmFsaWRJY29uICYmXG4gICAgICAgICAgIWlucHV0Q29uZmlnLmlucHV0SWNvbj8uaW5jbHVkZXMoJ2N1c3RvbScpLFxuICAgICAgICBhY3RpdmU6IHBvcG92ZXJSZWY/LmlzT3BlbigpLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHN2Zy1pY29uXG4gICAgICAgICN0Mj1cIm5nYlBvcG92ZXJcIlxuICAgICAgICBbbmdiUG9wb3Zlcl09XCJjYUlucHV0RHJvcGRvd25Qb3BvdmVyXCJcbiAgICAgICAgcG9wb3ZlckNsYXNzPVwiY2EtaW5wdXQtZHJvcGRvd25cIlxuICAgICAgICBbYXV0b0Nsb3NlXT1cIidvdXRzaWRlJ1wiXG4gICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgW3BsYWNlbWVudF09XCJbJ2JvdHRvbS1sZWZ0J11cIlxuICAgICAgICBjbGFzcz1cImlucHV0LWljb25cIlxuICAgICAgICBbc3JjXT1cImlucHV0RHJvcGRvd25TdmdSb3V0ZXMucmVwYWlyUG1TdmdSb3V0ZSArIGlucHV0Q29uZmlnLmlucHV0SWNvblwiXG4gICAgICA+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjYUlucHV0RHJvcGRvd25Qb3BvdmVyPlxuICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEcm9wZG93biBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0Q29uZmlnPy5tZXJnZURyb3Bkb3duQm9keVdpdGhJbnB1dCAmJiBfb3B0aW9ucz8ubGVuZ3RoXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1vcHRpb25zLWRpdmlkZXIge3sgaW5wdXRDb25maWcuZHJvcGRvd25XaWR0aENsYXNzIH19XCJcbiAgICAgIFtjbGFzcy5kaXNwYXRjaF9kcm9wZG93bl09XCJfdGVtcGxhdGUgPT0gJ3N2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUnXCJcbiAgICA+PC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgKGlucHV0Q29uZmlnPy5uYW1lICE9ICdBZGRyZXNzJyAmJlxuICAgICAgICBpbnB1dENvbmZpZz8ubmFtZSAhPSAnUm91dGluZ0FkZHJlc3MnICYmXG4gICAgICAgICFpbnB1dENvbmZpZy5pc0Rpc2FibGVkKSB8fFxuICAgICAgKChpbnB1dENvbmZpZz8ubmFtZSA9PSAnQWRkcmVzcycgfHxcbiAgICAgICAgaW5wdXRDb25maWc/Lm5hbWUgPT0gJ1JvdXRpbmdBZGRyZXNzJykgJiZcbiAgICAgICAgIWlucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgX29wdGlvbnM/Lmxlbmd0aClcbiAgICBcIlxuICA+XG4gICAgPGRpdlxuICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbERyb3Bkb3duKCRldmVudC50YXJnZXQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgc2Nyb2xsOiBfb3B0aW9ucyB8IGNhRHJvcGRvd25Db3VudCA6IF90ZW1wbGF0ZSxcbiAgICAgICAgJ2Ryb3Bkb3duLW9wdGlvbnMtZ3JvdXBzJzpcbiAgICAgICAgICBfdGVtcGxhdGUgPT09ICdncm91cHMnIHx8IF90ZW1wbGF0ZSA9PT0gJ2xvYWQtYnJva2VyLWNvbnRhY3QnLFxuICAgICAgICAnZHJvcGRvd24tb3B0aW9ucy1mdWVsLWZyYW5jaGlzZSc6IF90ZW1wbGF0ZSA9PT0gJ2Z1ZWwtZnJhbmNoaXNlJyxcbiAgICAgICAgJ21lcmdlLWRyb3Bkb3duLWJvZHktd2l0aC1pbnB1dCc6XG4gICAgICAgICAgaW5wdXRDb25maWcubWVyZ2VEcm9wZG93bkJvZHlXaXRoSW5wdXQsXG4gICAgICAgICduby1yZXN1bHQtY29udGFpbmVyJzogX29wdGlvbnNbMF0/Lm5hbWUgPT09ICdObyBSZXN1bHRzJyxcbiAgICAgICAgJ3N2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGUnOlxuICAgICAgICAgIF90ZW1wbGF0ZSA9PSAnc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZSdcbiAgICAgIH1cIlxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1vcHRpb25zICB7eyBpbnB1dENvbmZpZy5kcm9wZG93bldpZHRoQ2xhc3MgfX1cIlxuICAgID5cbiAgICAgIDxkaXYgW25nU3dpdGNoXT1cIl90ZW1wbGF0ZVwiPlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTVkcgVGVtcGxhdGUgKFJlbmRlciBzdmdzIG9yIHRleHQgaWYgc3ZncyBkb2Vzbid0IGV4aXN0ICkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5TVkdfVEVNUExBVEVcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXN2Zy10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLXN2Zy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3ZnIFRleHQgVGVtcGxhdGUgKGRpc3BsYXkgZmxleCkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5TVkdURVhUX1RFTVBMQVRFXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1zdmd0ZXh0LXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLXN2Z3RleHQtdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLURpc3BhdGNoIGRyb3Bkb3duLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlNWR1RFWFRfRElTUEFUQ0hfVEVNUExBVEVcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXN2Z3RleHQtZGlzcGF0Y2gtdGVtcGxhdGVcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tc3ZndGV4dC1kaXNwYXRjaC10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV0YWlscyB0ZW1wbGF0ZSAodHJ1Y2ssIHRyYWlsZXIuLi4gZGV0YWlscy1wYWdlcykgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uREVUQUlMU19URU1QTEFURVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZGV0YWlscy10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgW3NvcnRdPVwiX3NvcnRcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWRldGFpbHMtdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdyb3VwaW5nIHRlbXBsYXRlIChjYW4gc2VlIG9uIGNvbnRhY3QgbW9kYWwpICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLkdST1VQU1wiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZ3JvdXBzXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tZ3JvdXBzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNdWx0aXNlbGVjdCBUZW1wbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLk1VTFRJU0VMRUNUXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1tdWx0aXNlbGVjdFxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2xhc3RBY3RpdmVNdWx0aXNlbGVjdEl0ZW1dPVwibGFzdEFjdGl2ZU11bHRpc2VsZWN0SXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25NdWx0aXNlbGVjdFNlbGVjdCk9XCJvbk11bHRpc2VsZWN0U2VsZWN0KCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1tdWx0aXNlbGVjdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGFiZWxzIFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uTEFCRUxTXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1sYWJlbHNcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJpbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbbGFiZWxNb2RlXT1cImxhYmVsTW9kZVwiXG4gICAgICAgICAgICBbY2FuQWRkTmV3XT1cIl9jYW5BZGROZXdcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWxhYmVscz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGlzcGF0Y2ggVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5ESVNQQVRDSFwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZGlzcGF0Y2hcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1kaXNwYXRjaD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9hZCBEaXNwYXRjaGVyIFRlbXBsYXRlICh1c2VyIGF2YXRhciArIHVzZXIgbmFtZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0RJU1BBVENIRVJcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtZGlzcGF0Y2hlclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtZGlzcGF0Y2hlcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9hZCBDb21iaW5lIFRydWNrLVRyYWlsZXItRHJpdmVyIFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uTE9BRF9ESVNQQVRDSEVTX1RURFwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1kaXNwYXRjaGVzLXR0ZFxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtZGlzcGF0Y2hlcy10dGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvYWQgQnJva2VyIFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uTE9BRF9CUk9LRVJcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWxvYWQtYnJva2VyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvYWQgQnJva2VyIENvbnRhY3QgVGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5MT0FEX0JST0tFUl9DT05UQUNUXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLWJyb2tlci1jb250YWN0XG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tbG9hZC1icm9rZXItY29udGFjdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9hZCBTaGlwcGVyIFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uTE9BRF9TSElQUEVSXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLXNoaXBwZXJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1sb2FkLXNoaXBwZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRlIFRleHQgLSBDb3VudGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uVEVYVF9DT1VOVEVSXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi10ZXh0LWNvdW50ZXJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi10ZXh0LWNvdW50ZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1ZWwgRnJhbmNoaXNlIFRlbXBsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJkcm9wZG93blRlbXBsYXRlVHlwZUVudW0uRlVFTF9GUkFOQ0hJU0VcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLWZ1ZWwtZnJhbmNoaXNlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b2dnbGVOZXN0ZWRMaXN0KT1cInRvZ2dsZU5lc3RlZExpc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtR3JvdXApPVwib25BY3RpdmVJdGVtR3JvdXAoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWZ1ZWwtZnJhbmNoaXNlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIERvdWJsZSBUZXh0IFRlbXBsYXRlIC0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5ET1VCTEVfVEVYVF9URU1QTEFURVwiPlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZG91YmxlLXRleHQtdGVtcGxhdGVcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIl9vcHRpb25zXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtXT1cIl9hY3RpdmVJdGVtXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiZ2V0U3VwZXJDb250cm9sXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1kb3VibGUtdGV4dC10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEb3VibGUgQ29sdW1uIFRlbXBsYXRlIC0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bS5ET1VCTEVfQ09MVU1OX1RFTVBMQVRFXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1kb3VibGUtdGV4dC10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLWRvdWJsZS10ZXh0LXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRyaXBsZSBDb2x1bW4gVGVtcGxhdGUgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlRSSVBMRV9DT0xVTU5fVEVNUExBVEVcIj5cbiAgICAgICAgICA8YXBwLWNhLWlucHV0LWRyb3Bkb3duLXRyaXBsZS10ZXh0LXRlbXBsYXRlXG4gICAgICAgICAgICBbb3B0aW9uc109XCJfb3B0aW9uc1wiXG4gICAgICAgICAgICBbYWN0aXZlSXRlbV09XCJfYWN0aXZlSXRlbVwiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImdldFN1cGVyQ29udHJvbFwiXG4gICAgICAgICAgICAob25BY3RpdmVJdGVtKT1cIm9uQWN0aXZlSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9hcHAtY2EtaW5wdXQtZHJvcGRvd24tdHJpcGxlLXRleHQtdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUEFZUk9MTCBUUlVDS1MgVGVtcGxhdGUgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiZHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtLlBBWVJPTExfVFJVQ0tTXCI+XG4gICAgICAgICAgPGFwcC1jYS1pbnB1dC1kcm9wZG93bi1wYXlyb2xsLXRydWNrc1xuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgKG9uQWN0aXZlSXRlbSk9XCJvbkFjdGl2ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWNhLWlucHV0LWRyb3Bkb3duLXBheXJvbGwtdHJ1Y2tzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEZWZhdWx0IFRlbXBsYXRlIC0gUmVuZGVyIE9ubHkgVGV4dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgIDxhcHAtY2EtaW5wdXQtZHJvcGRvd24tZGVmYXVsdC10ZW1wbGF0ZVxuICAgICAgICAgICAgW29wdGlvbnNdPVwiX29wdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiX2FjdGl2ZUl0ZW1cIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJnZXRTdXBlckNvbnRyb2xcIlxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIChvbkFjdGl2ZUl0ZW0pPVwib25BY3RpdmVJdGVtKCRldmVudClcIlxuICAgICAgICAgID48L2FwcC1jYS1pbnB1dC1kcm9wZG93bi1kZWZhdWx0LXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+Il19
|