rd-outer-component 0.1.17 → 0.1.18

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.
@@ -330,6 +330,16 @@ export class RdSelectComponent {
330
330
  handleOpenChange(value) {
331
331
  this.isOpen = value;
332
332
  }
333
+ getCurrencyKey(value) {
334
+ const parts = value.split(/[-/]/);
335
+ const mapKeys = Object.keys(this.currencyUrlMap || {});
336
+ for (const part of parts) {
337
+ if (mapKeys.includes(part)) {
338
+ return part;
339
+ }
340
+ }
341
+ return parts[0];
342
+ }
333
343
  ngAfterViewInit() {
334
344
  // 等待下一个变更检测周期,确保所有样式和类已应用
335
345
  setTimeout(() => {
@@ -350,7 +360,7 @@ RdSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
350
360
  useExisting: forwardRef(() => RdSelectComponent),
351
361
  multi: true,
352
362
  },
353
- ], ngImport: i0, template: "<!-- rd-select.component.html -->\n<div\n [class.rd-select-ready]=\"isComponentReady\"\n [class.rd-search-width-auto]=\"isSearchWidthAuto\"\n class=\"rd-select-container\"\n>\n <app-rd-form-item\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [type]=\"'select'\"\n [label]=\"label\"\n [value]=\"nativeValue\"\n [errorMessage]=\"showError && isShowErrorTip ? currentErrorMessage : ''\"\n [ngClass]=\"{\n 'rd-form-item-phone': !label,\n }\"\n (click)=\"openDrawer()\"\n >\n <nz-select\n class=\"rd-form-item-select\"\n [ngStyle]=\"{\n 'pointer-events':\n businessLocation && nzMode === 'multiple' ? 'none' : '',\n }\"\n nzBorderless\n [nzMode]=\"nzMode\"\n [nzShowArrow]=\"false\"\n [(ngModel)]=\"nativeValue\"\n [nzMaxMultipleCount]=\"nzMaxMultipleCount ? nzMaxMultipleCount : null\"\n [nzPlaceHolder]=\"placeholder\"\n [nzCustomTemplate]=\"\n customTpl\n ? customTpl\n : isCurrency\n ? currencySelectedTpl\n : defaultSelectedTpl\n \"\n (nzScrollToBottom)=\"onScrollToBottom()\"\n (ngModelChange)=\"handleValueChange($event)\"\n [disabled]=\"disabled\"\n (nzFocus)=\"isFocus = true\"\n (nzBlur)=\"isFocus = false\"\n [nzDropdownClassName]=\"dropdownClassNames\"\n [nzOptionOverflowSize]=\"5\"\n [nzOptionHeightPx]=\"optionHeightPx || 40\"\n [nzSuffixIcon]=\"customIcon\"\n [nzRemoveIcon]=\"removeIcon\"\n [nzShowSearch]=\"\n nzMode === 'multiple' && businessLocation ? false : isShowSearch\n \"\n (nzOnSearch)=\"onSearch($event)\"\n [name]=\"name\"\n (nzOpenChange)=\"handleOpenChange($event)\"\n [nzDropdownRender]=\"\n showSelectedCount || showClearAll ? customDropdownFooter : null\n \"\n [ngClass]=\"{\n 'rd-select-disabled-open': isMobile && businessLocation,\n }\"\n >\n <nz-option\n *ngIf=\"showTopHint && isShowMaxCount\"\n nzDisabled\n nzCustomContent\n >\n <div class=\"top-hint-option\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n </nz-option>\n\n <nz-option\n *ngFor=\"let option of filteredOptions\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.name || ''\"\n [nzDisabled]=\"option.disabled || false\"\n [nzCustomContent]=\"true\"\n >\n <ng-container *ngIf=\"optionTpl || isCurrency\">\n <ng-container\n *ngTemplateOutlet=\"\n isCurrency ? currencyOptionTpl : optionTpl;\n context: { $implicit: option }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(optionTpl || isCurrency)\">\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </ng-container>\n </nz-option>\n\n <nz-option *ngIf=\"isLoading\" nzDisabled nzCustomContent>\n <nz-spin style=\"padding: 16px 0\"></nz-spin>\n </nz-option>\n </nz-select>\n </app-rd-form-item>\n</div>\n\n<!-- \u81EA\u5B9A\u4E49\u4E0B\u62C9\u83DC\u5355\u5E95\u90E8 -->\n<ng-template #customDropdownFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{\n isMobile ? getDrawerSelectValueLen() : selectedCount\n }}/<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"\n showClearAll &&\n (isMobile ? getDrawerSelectValueLen() : selectedCount) > 0\n \"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n *ngIf=\"isMobile\"\n [disabled]=\"getDisableNext()\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"next\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #customModalFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{ getDrawerSelectValueLen()\n }}<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"showClearAll && getDrawerSelectValueLen() > 0\"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n [disabled]=\"isRquired ? getDrawerSelectValueLen() === 0 : false\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"done\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- \u5176\u4ED6\u6A21\u677F\u4FDD\u6301\u4E0D\u53D8 -->\n<ng-template #defaultSelectedTpl let-selected>\n {{ selected?.nzLabel }}\n</ng-template>\n\n<ng-template #currencyOptionTpl let-option>\n <div class=\"rd-form-item-option-content\">\n <img [src]=\"option.iconUrl\" class=\"rd-token-icon\" alt=\"icon\" />\n <span>{{ option.name }}</span>\n </div>\n</ng-template>\n\n<ng-template #currencySelectedTpl let-selected let-extra>\n <div class=\"rd-form-item-option-content\">\n <img\n [src]=\"currencyUrlMap?.[selected.nzValue]\"\n class=\"rd-token-icon\"\n alt=\"icon\"\n />\n <span>{{ selected.nzLabel }}</span>\n </div>\n</ng-template>\n\n<ng-template #removeIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.39645 2.39645C2.59171 2.20118 2.90829 2.20118 3.10355 2.39645L6 5.29289L8.89645 2.39645C9.09171 2.20118 9.40829 2.20118 9.60355 2.39645C9.79882 2.59171 9.79882 2.90829 9.60355 3.10355L6.70711 6L9.60355 8.89645C9.79882 9.09171 9.79882 9.40829 9.60355 9.60355C9.40829 9.79882 9.09171 9.79882 8.89645 9.60355L6 6.70711L3.10355 9.60355C2.90829 9.79882 2.59171 9.79882 2.39645 9.60355C2.20118 9.40829 2.20118 9.09171 2.39645 8.89645L5.29289 6L2.39645 3.10355C2.20118 2.90829 2.20118 2.59171 2.39645 2.39645Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #customIcon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.60136 4.90777C2.83639 4.68743 3.20555 4.69934 3.42589 4.93437L8.00033 9.81377L12.5748 4.93437C12.7951 4.69934 13.1643 4.68743 13.3993 4.90777C13.6343 5.12812 13.6462 5.49727 13.4259 5.7323L8.42589 11.0656C8.31561 11.1833 8.16157 11.25 8.00033 11.25C7.83909 11.25 7.68504 11.1833 7.57476 11.0656L2.57476 5.7323C2.35442 5.49727 2.36633 5.12811 2.60136 4.90777Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile && businessLocation\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customDropdownFooter\"\n nzWrapClassName=\"select-drawer\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"select-drawer-header\">\n <div class=\"header-title\">\n <div>\n {{\n (businessLocation ? \"select_nature_of_business\" : \" \") | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"w-full\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-drawer-list\">\n <div *ngIf=\"isShowMaxCount\" class=\"my-16 ml-8\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<!-- Modal for desktop business location multi-select -->\n<nz-modal\n [(nzVisible)]=\"modalOpen\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customModalFooter\"\n nzWrapClassName=\"select-modal\"\n (nzOnCancel)=\"closeModal()\"\n [nzWidth]=\"632\"\n [nzBodyStyle]=\"{ height: '600px' }\"\n nzCentered\n>\n <div *nzModalContent>\n <div class=\"select-modal-header\">\n <div\n class=\"header-title d-flex justify-content-between align-items-center\"\n >\n <div>\n {{\n (businessLocationTitle\n ? businessLocationTitle\n : businessLocation\n ? \"select_nature_of_business\"\n : \" \"\n ) | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeModal()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-modal-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-modal-list\">\n <div class=\"mb-16\" *ngIf=\"showTopHint && isShowMaxCount\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-modal>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host .rd-select-container{visibility:hidden}:host .rd-select-container.rd-select-ready{visibility:visible}:host .rd-form-item-select{width:100%}:host .rd-form-item-select ::ng-deep .ant-select-selection-search-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500}:host .rd-form-item-select ::ng-deep .ant-select-selection-placeholder{color:var(--rd-copy-disable)!important}:host .rd-select-disabled-open{pointer-events:none}::ng-deep .rd-form-item-phone .ant-select-selection-search-input{padding:0 5px 12px}::ng-deep .rd-form-item-phone .ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;inset:-8px 11px 0}::ng-deep .rd-select-container:not(.rd-search-width-auto) .rd-form-item-select.ant-select-multiple .ant-select-selection-search{width:100%!important}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search .ant-select-selection-search-input{padding:0 0 12px!important;transform:translate(-2px,4px)!important}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option){background:transparent!important;padding-left:12px!important;cursor:default}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option):before{border:none!important}::ng-deep .rd-form-item-multiple-select-dropdown .select-footer-container{padding:16px 12px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-drawer{background-color:var(--rd-bg-website)}::ng-deep .select-drawer .select-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .select-drawer .select-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .select-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-drawer .close-btn svg{width:24px}::ng-deep .select-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .select-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .select-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .select-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .select-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .select-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .select-drawer .ant-checkbox-inner{border-radius:4px;background-color:var(--rd-control-input-empty);border:1px solid var(--rd-control-border-empty)}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner{background-color:var(--rd-control-input-selected)!important;border:none!important}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid var(--rd-copy-inverse);border-top:0;border-left:0}::ng-deep .select-drawer .ant-checkbox-checked:after{border-radius:4px}::ng-deep .select-drawer .ant-checkbox-disabled+span{color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-disabled .ant-checkbox-inner{border:1px solid var(--rd-control-border-empty)!important}::ng-deep .select-drawer .ant-checkbox-wrapper{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-wrapper>span{margin-left:8px}::ng-deep .select-drawer .ant-drawer-footer{padding:24px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-modal .ant-modal-content{background-color:var(--rd-bg-panel);border-radius:8px}::ng-deep .select-modal .ant-checkbox{margin-right:8px}::ng-deep .select-modal .ant-checkbox>span{border-radius:4px}::ng-deep .select-modal .select-modal-header{padding:24px 0 0;position:sticky;top:0;background-color:var(--rd-bg-panel);z-index:1111}::ng-deep .select-modal .select-modal-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;color:var(--rd-copy-primary);justify-content:space-between}::ng-deep .select-modal .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-modal .close-btn svg{width:24px}::ng-deep .select-modal .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-modal .cascader-modal-search{border-radius:4px;border:1px solid var(--rd-bg-panel-border);background:var(--rd-bg-panel);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-modal .cascader-modal-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-modal .cascader-modal-search .ant-input{background:var(--rd-bg-panel);color:var(--rd-copy-primary);box-shadow:none;outline:none}::ng-deep .select-modal .cascader-modal-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-modal .cascader-modal-list{margin-top:16px;overflow-y:auto;height:460px}::ng-deep .select-modal .ant-modal-body{padding:0 24px 24px}::ng-deep .select-modal .ant-modal-footer{padding:24px!important;border-top:1px solid var(--rd-bg-panel-border)!important;background-color:var(--rd-bg-panel)}::ng-deep .select-modal .ant-modal-close{display:none}\n", "::ng-deep .rd-form-item-select{min-width:113px;min-height:52px;max-height:100%;position:relative}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search{margin-inline-start:0}::ng-deep .rd-form-item-select .ant-select-selection-search-input{padding:12px 4px 0}::ng-deep .rd-form-item-select .ant-select-selection-search-input::placeholder{color:var(--rd-copy-disable)}::ng-deep .rd-form-item-select .ant-select-selection-search .ant-select-selection-search-input{padding:12px 4px 0;transform:translate(-2px,12px)!important}::ng-deep .rd-form-item-select .ant-select-show-search{transform:translateY(10px)}::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:6px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-show-search.ant-select-multiple .ant-select-selector{padding:6px 16px}::ng-deep .rd-form-item-select.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}::ng-deep .rd-form-item-select.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selector{padding:12px 16px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item{border-radius:4px;background:transparent;font-size:14px;font-weight:500;color:var(--rd-copy-primary);display:flex;align-items:center;gap:4px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item .ant-select-selection-item-remove{line-height:1}::ng-deep .rd-form-item-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px}::ng-deep .rd-form-item-select.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px;border:1px solid var(--rd-input-fg-hover);background:var(--rd-input-bg-hover);box-shadow:0 0 0 2px #367af61a}::ng-deep .rd-form-item-select .ant-empty-description{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)}::ng-deep .rd-form-item-select .ant-select-selection-placeholder{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selection-item-content{color:var(--rd-copy-primary);font-weight:500}::ng-deep .rd-form-item-select .ant-select-arrow{transition:ease-in-out .2s all;cursor:pointer;pointer-events:initial}::ng-deep .rd-form-item-select:hover:has(.ant-select-clear) .ant-select-arrow{opacity:0}::ng-deep .rd-form-item-select.ant-select-focused .ant-select-arrow,::ng-deep .rd-form-item-select .ant-select-selector:focus-within .ant-select-arrow{transform:rotate(-180deg);transition:transform .2s ease}::ng-deep .rd-form-item-select-s{min-height:38px}::ng-deep .rd-form-item-select-s.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:100%;min-height:38px;padding:0 12px}::ng-deep .rd-form-item-select-dropdown .ant-select-dropdown,::ng-deep .rd-form-item-select-dropdown-s .ant-select-dropdown,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-dropdown{border-radius:4px;background:var(--rd-bg-card);min-width:113px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option{background-color:transparent;padding:0 6px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;padding:0 6px;display:flex;align-items:center;color:var(--rd-copy-primary);font-size:14px;min-height:40px;font-weight:600}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-active .ant-select-item-option-content{background:rgba(54,122,246,.1)}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content{color:var(--rd-copy-secondary);background:var(--rd-grey-200)}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty img,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty img,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty img{width:61px;height:68px}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty p,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty p,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty p{font-size:13px;color:var(--rd-copy-disable);font-weight:500;margin:0}::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content{padding:0 4px;min-height:32px}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;color:var(--rd-copy-primary);font-size:14px;padding:0 6px 0 32px;position:relative}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content:before{content:\"\";position:absolute;top:50%;left:6px;width:16px;height:16px;transform:translateY(-50%);border-radius:4px;border:1px solid var(--rd-grey-400)}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-selected .ant-select-item-option-content:before{background-image:url(/assets/img/icon/checkbox.svg);background-size:contain;background-position:center;background-repeat:no-repeat;border:none}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-state{display:none}::ng-deep .rd-form-item-option-content{display:flex;align-items:center;gap:8px;height:100%}::ng-deep .rd-form-item-option-content span{font-size:14px;font-weight:500}::ng-deep .rd-form-item-option-content .rd-token-icon{width:20px;height:20px;transition:opacity .3s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: i5.NzOptionComponent, selector: "nz-option", inputs: ["nzLabel", "nzValue", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i5.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i6.FormItemComponent, selector: "app-rd-form-item", inputs: ["errorMessage", "disabled", "label", "type", "focus", "value", "size", "theme"] }, { kind: "component", type: i7.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i7.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "directive", type: i8.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i8.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i8.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i9.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: i9.NzCheckboxWrapperComponent, selector: "nz-checkbox-wrapper", outputs: ["nzOnChange"], exportAs: ["nzCheckboxWrapper"] }, { kind: "directive", type: i10.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i11.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzContent", "nzComponentParams", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i11.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "component", type: i12.RdButtonComponent, selector: "app-rd-button", inputs: ["type", "size", "shape", "disabled", "loading", "block", "htmlType", "outline", "ghost", "dashed", "icon", "danger", "minWidth", "theme"], outputs: ["click"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
363
+ ], ngImport: i0, template: "<!-- rd-select.component.html -->\n<div\n [class.rd-select-ready]=\"isComponentReady\"\n [class.rd-search-width-auto]=\"isSearchWidthAuto\"\n class=\"rd-select-container\"\n>\n <app-rd-form-item\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [type]=\"'select'\"\n [label]=\"label\"\n [value]=\"nativeValue\"\n [errorMessage]=\"showError && isShowErrorTip ? currentErrorMessage : ''\"\n [ngClass]=\"{\n 'rd-form-item-phone': !label,\n }\"\n (click)=\"openDrawer()\"\n >\n <nz-select\n class=\"rd-form-item-select\"\n [ngStyle]=\"{\n 'pointer-events':\n businessLocation && nzMode === 'multiple' ? 'none' : '',\n }\"\n nzBorderless\n [nzMode]=\"nzMode\"\n [nzShowArrow]=\"false\"\n [(ngModel)]=\"nativeValue\"\n [nzMaxMultipleCount]=\"nzMaxMultipleCount ? nzMaxMultipleCount : null\"\n [nzPlaceHolder]=\"placeholder\"\n [nzCustomTemplate]=\"\n customTpl\n ? customTpl\n : isCurrency\n ? currencySelectedTpl\n : defaultSelectedTpl\n \"\n (nzScrollToBottom)=\"onScrollToBottom()\"\n (ngModelChange)=\"handleValueChange($event)\"\n [disabled]=\"disabled\"\n (nzFocus)=\"isFocus = true\"\n (nzBlur)=\"isFocus = false\"\n [nzDropdownClassName]=\"dropdownClassNames\"\n [nzOptionOverflowSize]=\"5\"\n [nzOptionHeightPx]=\"optionHeightPx || 40\"\n [nzSuffixIcon]=\"customIcon\"\n [nzRemoveIcon]=\"removeIcon\"\n [nzShowSearch]=\"\n nzMode === 'multiple' && businessLocation ? false : isShowSearch\n \"\n (nzOnSearch)=\"onSearch($event)\"\n [name]=\"name\"\n (nzOpenChange)=\"handleOpenChange($event)\"\n [nzDropdownRender]=\"\n showSelectedCount || showClearAll ? customDropdownFooter : null\n \"\n [ngClass]=\"{\n 'rd-select-disabled-open': isMobile && businessLocation,\n }\"\n >\n <nz-option\n *ngIf=\"showTopHint && isShowMaxCount\"\n nzDisabled\n nzCustomContent\n >\n <div class=\"top-hint-option\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n </nz-option>\n\n <nz-option\n *ngFor=\"let option of filteredOptions\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.name || ''\"\n [nzDisabled]=\"option.disabled || false\"\n [nzCustomContent]=\"true\"\n >\n <ng-container *ngIf=\"optionTpl || isCurrency\">\n <ng-container\n *ngTemplateOutlet=\"\n isCurrency ? currencyOptionTpl : optionTpl;\n context: { $implicit: option }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(optionTpl || isCurrency)\">\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </ng-container>\n </nz-option>\n\n <nz-option *ngIf=\"isLoading\" nzDisabled nzCustomContent>\n <nz-spin style=\"padding: 16px 0\"></nz-spin>\n </nz-option>\n </nz-select>\n </app-rd-form-item>\n</div>\n\n<!-- \u81EA\u5B9A\u4E49\u4E0B\u62C9\u83DC\u5355\u5E95\u90E8 -->\n<ng-template #customDropdownFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{\n isMobile ? getDrawerSelectValueLen() : selectedCount\n }}/<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"\n showClearAll &&\n (isMobile ? getDrawerSelectValueLen() : selectedCount) > 0\n \"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n *ngIf=\"isMobile\"\n [disabled]=\"getDisableNext()\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"next\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #customModalFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{ getDrawerSelectValueLen()\n }}<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"showClearAll && getDrawerSelectValueLen() > 0\"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n [disabled]=\"isRquired ? getDrawerSelectValueLen() === 0 : false\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"done\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- \u5176\u4ED6\u6A21\u677F\u4FDD\u6301\u4E0D\u53D8 -->\n<ng-template #defaultSelectedTpl let-selected>\n {{ selected?.nzLabel }}\n</ng-template>\n\n<ng-template #currencyOptionTpl let-option>\n <div class=\"rd-form-item-option-content\">\n <img [src]=\"option.iconUrl\" class=\"rd-token-icon\" alt=\"icon\" />\n <span>{{ option.name }}</span>\n </div>\n</ng-template>\n\n<ng-template #currencySelectedTpl let-selected let-extra>\n <div class=\"rd-form-item-option-content\">\n <img\n [src]=\"currencyUrlMap?.[getCurrencyKey(selected.nzValue)]\"\n class=\"rd-token-icon\"\n alt=\"icon\"\n />\n <span>{{ selected.nzLabel }}</span>\n </div>\n</ng-template>\n\n<ng-template #removeIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.39645 2.39645C2.59171 2.20118 2.90829 2.20118 3.10355 2.39645L6 5.29289L8.89645 2.39645C9.09171 2.20118 9.40829 2.20118 9.60355 2.39645C9.79882 2.59171 9.79882 2.90829 9.60355 3.10355L6.70711 6L9.60355 8.89645C9.79882 9.09171 9.79882 9.40829 9.60355 9.60355C9.40829 9.79882 9.09171 9.79882 8.89645 9.60355L6 6.70711L3.10355 9.60355C2.90829 9.79882 2.59171 9.79882 2.39645 9.60355C2.20118 9.40829 2.20118 9.09171 2.39645 8.89645L5.29289 6L2.39645 3.10355C2.20118 2.90829 2.20118 2.59171 2.39645 2.39645Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #customIcon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.60136 4.90777C2.83639 4.68743 3.20555 4.69934 3.42589 4.93437L8.00033 9.81377L12.5748 4.93437C12.7951 4.69934 13.1643 4.68743 13.3993 4.90777C13.6343 5.12812 13.6462 5.49727 13.4259 5.7323L8.42589 11.0656C8.31561 11.1833 8.16157 11.25 8.00033 11.25C7.83909 11.25 7.68504 11.1833 7.57476 11.0656L2.57476 5.7323C2.35442 5.49727 2.36633 5.12811 2.60136 4.90777Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile && businessLocation\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customDropdownFooter\"\n nzWrapClassName=\"select-drawer\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"select-drawer-header\">\n <div class=\"header-title\">\n <div>\n {{\n (businessLocation ? \"select_nature_of_business\" : \" \") | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"w-full\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-drawer-list\">\n <div *ngIf=\"isShowMaxCount\" class=\"my-16 ml-8\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<!-- Modal for desktop business location multi-select -->\n<nz-modal\n [(nzVisible)]=\"modalOpen\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customModalFooter\"\n nzWrapClassName=\"select-modal\"\n (nzOnCancel)=\"closeModal()\"\n [nzWidth]=\"632\"\n [nzBodyStyle]=\"{ height: '600px' }\"\n nzCentered\n>\n <div *nzModalContent>\n <div class=\"select-modal-header\">\n <div\n class=\"header-title d-flex justify-content-between align-items-center\"\n >\n <div>\n {{\n (businessLocationTitle\n ? businessLocationTitle\n : businessLocation\n ? \"select_nature_of_business\"\n : \" \"\n ) | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeModal()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-modal-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-modal-list\">\n <div class=\"mb-16\" *ngIf=\"showTopHint && isShowMaxCount\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-modal>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host .rd-select-container{visibility:hidden}:host .rd-select-container.rd-select-ready{visibility:visible}:host .rd-form-item-select{width:100%}:host .rd-form-item-select ::ng-deep .ant-select-selection-search-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500}:host .rd-form-item-select ::ng-deep .ant-select-selection-placeholder{color:var(--rd-copy-disable)!important}:host .rd-select-disabled-open{pointer-events:none}::ng-deep .rd-form-item-phone .ant-select-selection-search-input{padding:0 5px 12px}::ng-deep .rd-form-item-phone .ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;inset:-8px 11px 0}::ng-deep .rd-select-container:not(.rd-search-width-auto) .rd-form-item-select.ant-select-multiple .ant-select-selection-search{width:100%!important}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search .ant-select-selection-search-input{padding:0 0 12px!important;transform:translate(-2px,4px)!important}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option){background:transparent!important;padding-left:12px!important;cursor:default}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option):before{border:none!important}::ng-deep .rd-form-item-multiple-select-dropdown .select-footer-container{padding:16px 12px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-drawer{background-color:var(--rd-bg-website)}::ng-deep .select-drawer .select-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .select-drawer .select-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .select-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-drawer .close-btn svg{width:24px}::ng-deep .select-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .select-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .select-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .select-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .select-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .select-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .select-drawer .ant-checkbox-inner{border-radius:4px;background-color:var(--rd-control-input-empty);border:1px solid var(--rd-control-border-empty)}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner{background-color:var(--rd-control-input-selected)!important;border:none!important}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid var(--rd-copy-inverse);border-top:0;border-left:0}::ng-deep .select-drawer .ant-checkbox-checked:after{border-radius:4px}::ng-deep .select-drawer .ant-checkbox-disabled+span{color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-disabled .ant-checkbox-inner{border:1px solid var(--rd-control-border-empty)!important}::ng-deep .select-drawer .ant-checkbox-wrapper{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-wrapper>span{margin-left:8px}::ng-deep .select-drawer .ant-drawer-footer{padding:24px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-modal .ant-modal-content{background-color:var(--rd-bg-panel);border-radius:8px}::ng-deep .select-modal .ant-checkbox{margin-right:8px}::ng-deep .select-modal .ant-checkbox>span{border-radius:4px}::ng-deep .select-modal .select-modal-header{padding:24px 0 0;position:sticky;top:0;background-color:var(--rd-bg-panel);z-index:1111}::ng-deep .select-modal .select-modal-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;color:var(--rd-copy-primary);justify-content:space-between}::ng-deep .select-modal .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-modal .close-btn svg{width:24px}::ng-deep .select-modal .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-modal .cascader-modal-search{border-radius:4px;border:1px solid var(--rd-bg-panel-border);background:var(--rd-bg-panel);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-modal .cascader-modal-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-modal .cascader-modal-search .ant-input{background:var(--rd-bg-panel);color:var(--rd-copy-primary);box-shadow:none;outline:none}::ng-deep .select-modal .cascader-modal-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-modal .cascader-modal-list{margin-top:16px;overflow-y:auto;height:460px}::ng-deep .select-modal .ant-modal-body{padding:0 24px 24px}::ng-deep .select-modal .ant-modal-footer{padding:24px!important;border-top:1px solid var(--rd-bg-panel-border)!important;background-color:var(--rd-bg-panel)}::ng-deep .select-modal .ant-modal-close{display:none}\n", "::ng-deep .rd-form-item-select{min-width:113px;min-height:52px;max-height:100%;position:relative}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search{margin-inline-start:0}::ng-deep .rd-form-item-select .ant-select-selection-search-input{padding:12px 4px 0}::ng-deep .rd-form-item-select .ant-select-selection-search-input::placeholder{color:var(--rd-copy-disable)}::ng-deep .rd-form-item-select .ant-select-selection-search .ant-select-selection-search-input{padding:12px 4px 0;transform:translate(-2px,12px)!important}::ng-deep .rd-form-item-select .ant-select-show-search{transform:translateY(10px)}::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:6px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-show-search.ant-select-multiple .ant-select-selector{padding:6px 16px}::ng-deep .rd-form-item-select.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}::ng-deep .rd-form-item-select.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selector{padding:12px 16px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item{border-radius:4px;background:transparent;font-size:14px;font-weight:500;color:var(--rd-copy-primary);display:flex;align-items:center;gap:4px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item .ant-select-selection-item-remove{line-height:1}::ng-deep .rd-form-item-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px}::ng-deep .rd-form-item-select.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px;border:1px solid var(--rd-input-fg-hover);background:var(--rd-input-bg-hover);box-shadow:0 0 0 2px #367af61a}::ng-deep .rd-form-item-select .ant-empty-description{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)}::ng-deep .rd-form-item-select .ant-select-selection-placeholder{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selection-item-content{color:var(--rd-copy-primary);font-weight:500}::ng-deep .rd-form-item-select .ant-select-arrow{transition:ease-in-out .2s all;cursor:pointer;pointer-events:initial}::ng-deep .rd-form-item-select:hover:has(.ant-select-clear) .ant-select-arrow{opacity:0}::ng-deep .rd-form-item-select.ant-select-focused .ant-select-arrow,::ng-deep .rd-form-item-select .ant-select-selector:focus-within .ant-select-arrow{transform:rotate(-180deg);transition:transform .2s ease}::ng-deep .rd-form-item-select-s{min-height:38px}::ng-deep .rd-form-item-select-s.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:100%;min-height:38px;padding:0 12px}::ng-deep .rd-form-item-select-dropdown .ant-select-dropdown,::ng-deep .rd-form-item-select-dropdown-s .ant-select-dropdown,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-dropdown{border-radius:4px;background:var(--rd-bg-card);min-width:113px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option{background-color:transparent;padding:0 6px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;padding:0 6px;display:flex;align-items:center;color:var(--rd-copy-primary);font-size:14px;min-height:40px;font-weight:600}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-active .ant-select-item-option-content{background:rgba(54,122,246,.1)}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content{color:var(--rd-copy-secondary);background:var(--rd-grey-200)}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty img,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty img,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty img{width:61px;height:68px}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty p,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty p,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty p{font-size:13px;color:var(--rd-copy-disable);font-weight:500;margin:0}::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content{padding:0 4px;min-height:32px}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;color:var(--rd-copy-primary);font-size:14px;padding:0 6px 0 32px;position:relative}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content:before{content:\"\";position:absolute;top:50%;left:6px;width:16px;height:16px;transform:translateY(-50%);border-radius:4px;border:1px solid var(--rd-grey-400)}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-selected .ant-select-item-option-content:before{background-image:url(/assets/img/icon/checkbox.svg);background-size:contain;background-position:center;background-repeat:no-repeat;border:none}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-state{display:none}::ng-deep .rd-form-item-option-content{display:flex;align-items:center;gap:8px;height:100%}::ng-deep .rd-form-item-option-content span{font-size:14px;font-weight:500}::ng-deep .rd-form-item-option-content .rd-token-icon{width:20px;height:20px;transition:opacity .3s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: i5.NzOptionComponent, selector: "nz-option", inputs: ["nzLabel", "nzValue", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i5.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i6.FormItemComponent, selector: "app-rd-form-item", inputs: ["errorMessage", "disabled", "label", "type", "focus", "value", "size", "theme"] }, { kind: "component", type: i7.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i7.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "directive", type: i8.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i8.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i8.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "component", type: i9.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: i9.NzCheckboxWrapperComponent, selector: "nz-checkbox-wrapper", outputs: ["nzOnChange"], exportAs: ["nzCheckboxWrapper"] }, { kind: "directive", type: i10.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i11.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzContent", "nzComponentParams", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i11.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "component", type: i12.RdButtonComponent, selector: "app-rd-button", inputs: ["type", "size", "shape", "disabled", "loading", "block", "htmlType", "outline", "ghost", "dashed", "icon", "danger", "minWidth", "theme"], outputs: ["click"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
354
364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdSelectComponent, decorators: [{
355
365
  type: Component,
356
366
  args: [{ selector: 'app-rd-select', providers: [
@@ -364,7 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
364
374
  useExisting: forwardRef(() => RdSelectComponent),
365
375
  multi: true,
366
376
  },
367
- ], template: "<!-- rd-select.component.html -->\n<div\n [class.rd-select-ready]=\"isComponentReady\"\n [class.rd-search-width-auto]=\"isSearchWidthAuto\"\n class=\"rd-select-container\"\n>\n <app-rd-form-item\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [type]=\"'select'\"\n [label]=\"label\"\n [value]=\"nativeValue\"\n [errorMessage]=\"showError && isShowErrorTip ? currentErrorMessage : ''\"\n [ngClass]=\"{\n 'rd-form-item-phone': !label,\n }\"\n (click)=\"openDrawer()\"\n >\n <nz-select\n class=\"rd-form-item-select\"\n [ngStyle]=\"{\n 'pointer-events':\n businessLocation && nzMode === 'multiple' ? 'none' : '',\n }\"\n nzBorderless\n [nzMode]=\"nzMode\"\n [nzShowArrow]=\"false\"\n [(ngModel)]=\"nativeValue\"\n [nzMaxMultipleCount]=\"nzMaxMultipleCount ? nzMaxMultipleCount : null\"\n [nzPlaceHolder]=\"placeholder\"\n [nzCustomTemplate]=\"\n customTpl\n ? customTpl\n : isCurrency\n ? currencySelectedTpl\n : defaultSelectedTpl\n \"\n (nzScrollToBottom)=\"onScrollToBottom()\"\n (ngModelChange)=\"handleValueChange($event)\"\n [disabled]=\"disabled\"\n (nzFocus)=\"isFocus = true\"\n (nzBlur)=\"isFocus = false\"\n [nzDropdownClassName]=\"dropdownClassNames\"\n [nzOptionOverflowSize]=\"5\"\n [nzOptionHeightPx]=\"optionHeightPx || 40\"\n [nzSuffixIcon]=\"customIcon\"\n [nzRemoveIcon]=\"removeIcon\"\n [nzShowSearch]=\"\n nzMode === 'multiple' && businessLocation ? false : isShowSearch\n \"\n (nzOnSearch)=\"onSearch($event)\"\n [name]=\"name\"\n (nzOpenChange)=\"handleOpenChange($event)\"\n [nzDropdownRender]=\"\n showSelectedCount || showClearAll ? customDropdownFooter : null\n \"\n [ngClass]=\"{\n 'rd-select-disabled-open': isMobile && businessLocation,\n }\"\n >\n <nz-option\n *ngIf=\"showTopHint && isShowMaxCount\"\n nzDisabled\n nzCustomContent\n >\n <div class=\"top-hint-option\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n </nz-option>\n\n <nz-option\n *ngFor=\"let option of filteredOptions\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.name || ''\"\n [nzDisabled]=\"option.disabled || false\"\n [nzCustomContent]=\"true\"\n >\n <ng-container *ngIf=\"optionTpl || isCurrency\">\n <ng-container\n *ngTemplateOutlet=\"\n isCurrency ? currencyOptionTpl : optionTpl;\n context: { $implicit: option }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(optionTpl || isCurrency)\">\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </ng-container>\n </nz-option>\n\n <nz-option *ngIf=\"isLoading\" nzDisabled nzCustomContent>\n <nz-spin style=\"padding: 16px 0\"></nz-spin>\n </nz-option>\n </nz-select>\n </app-rd-form-item>\n</div>\n\n<!-- \u81EA\u5B9A\u4E49\u4E0B\u62C9\u83DC\u5355\u5E95\u90E8 -->\n<ng-template #customDropdownFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{\n isMobile ? getDrawerSelectValueLen() : selectedCount\n }}/<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"\n showClearAll &&\n (isMobile ? getDrawerSelectValueLen() : selectedCount) > 0\n \"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n *ngIf=\"isMobile\"\n [disabled]=\"getDisableNext()\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"next\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #customModalFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{ getDrawerSelectValueLen()\n }}<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"showClearAll && getDrawerSelectValueLen() > 0\"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n [disabled]=\"isRquired ? getDrawerSelectValueLen() === 0 : false\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"done\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- \u5176\u4ED6\u6A21\u677F\u4FDD\u6301\u4E0D\u53D8 -->\n<ng-template #defaultSelectedTpl let-selected>\n {{ selected?.nzLabel }}\n</ng-template>\n\n<ng-template #currencyOptionTpl let-option>\n <div class=\"rd-form-item-option-content\">\n <img [src]=\"option.iconUrl\" class=\"rd-token-icon\" alt=\"icon\" />\n <span>{{ option.name }}</span>\n </div>\n</ng-template>\n\n<ng-template #currencySelectedTpl let-selected let-extra>\n <div class=\"rd-form-item-option-content\">\n <img\n [src]=\"currencyUrlMap?.[selected.nzValue]\"\n class=\"rd-token-icon\"\n alt=\"icon\"\n />\n <span>{{ selected.nzLabel }}</span>\n </div>\n</ng-template>\n\n<ng-template #removeIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.39645 2.39645C2.59171 2.20118 2.90829 2.20118 3.10355 2.39645L6 5.29289L8.89645 2.39645C9.09171 2.20118 9.40829 2.20118 9.60355 2.39645C9.79882 2.59171 9.79882 2.90829 9.60355 3.10355L6.70711 6L9.60355 8.89645C9.79882 9.09171 9.79882 9.40829 9.60355 9.60355C9.40829 9.79882 9.09171 9.79882 8.89645 9.60355L6 6.70711L3.10355 9.60355C2.90829 9.79882 2.59171 9.79882 2.39645 9.60355C2.20118 9.40829 2.20118 9.09171 2.39645 8.89645L5.29289 6L2.39645 3.10355C2.20118 2.90829 2.20118 2.59171 2.39645 2.39645Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #customIcon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.60136 4.90777C2.83639 4.68743 3.20555 4.69934 3.42589 4.93437L8.00033 9.81377L12.5748 4.93437C12.7951 4.69934 13.1643 4.68743 13.3993 4.90777C13.6343 5.12812 13.6462 5.49727 13.4259 5.7323L8.42589 11.0656C8.31561 11.1833 8.16157 11.25 8.00033 11.25C7.83909 11.25 7.68504 11.1833 7.57476 11.0656L2.57476 5.7323C2.35442 5.49727 2.36633 5.12811 2.60136 4.90777Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile && businessLocation\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customDropdownFooter\"\n nzWrapClassName=\"select-drawer\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"select-drawer-header\">\n <div class=\"header-title\">\n <div>\n {{\n (businessLocation ? \"select_nature_of_business\" : \" \") | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"w-full\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-drawer-list\">\n <div *ngIf=\"isShowMaxCount\" class=\"my-16 ml-8\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<!-- Modal for desktop business location multi-select -->\n<nz-modal\n [(nzVisible)]=\"modalOpen\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customModalFooter\"\n nzWrapClassName=\"select-modal\"\n (nzOnCancel)=\"closeModal()\"\n [nzWidth]=\"632\"\n [nzBodyStyle]=\"{ height: '600px' }\"\n nzCentered\n>\n <div *nzModalContent>\n <div class=\"select-modal-header\">\n <div\n class=\"header-title d-flex justify-content-between align-items-center\"\n >\n <div>\n {{\n (businessLocationTitle\n ? businessLocationTitle\n : businessLocation\n ? \"select_nature_of_business\"\n : \" \"\n ) | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeModal()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-modal-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-modal-list\">\n <div class=\"mb-16\" *ngIf=\"showTopHint && isShowMaxCount\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-modal>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host .rd-select-container{visibility:hidden}:host .rd-select-container.rd-select-ready{visibility:visible}:host .rd-form-item-select{width:100%}:host .rd-form-item-select ::ng-deep .ant-select-selection-search-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500}:host .rd-form-item-select ::ng-deep .ant-select-selection-placeholder{color:var(--rd-copy-disable)!important}:host .rd-select-disabled-open{pointer-events:none}::ng-deep .rd-form-item-phone .ant-select-selection-search-input{padding:0 5px 12px}::ng-deep .rd-form-item-phone .ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;inset:-8px 11px 0}::ng-deep .rd-select-container:not(.rd-search-width-auto) .rd-form-item-select.ant-select-multiple .ant-select-selection-search{width:100%!important}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search .ant-select-selection-search-input{padding:0 0 12px!important;transform:translate(-2px,4px)!important}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option){background:transparent!important;padding-left:12px!important;cursor:default}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option):before{border:none!important}::ng-deep .rd-form-item-multiple-select-dropdown .select-footer-container{padding:16px 12px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-drawer{background-color:var(--rd-bg-website)}::ng-deep .select-drawer .select-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .select-drawer .select-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .select-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-drawer .close-btn svg{width:24px}::ng-deep .select-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .select-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .select-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .select-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .select-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .select-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .select-drawer .ant-checkbox-inner{border-radius:4px;background-color:var(--rd-control-input-empty);border:1px solid var(--rd-control-border-empty)}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner{background-color:var(--rd-control-input-selected)!important;border:none!important}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid var(--rd-copy-inverse);border-top:0;border-left:0}::ng-deep .select-drawer .ant-checkbox-checked:after{border-radius:4px}::ng-deep .select-drawer .ant-checkbox-disabled+span{color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-disabled .ant-checkbox-inner{border:1px solid var(--rd-control-border-empty)!important}::ng-deep .select-drawer .ant-checkbox-wrapper{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-wrapper>span{margin-left:8px}::ng-deep .select-drawer .ant-drawer-footer{padding:24px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-modal .ant-modal-content{background-color:var(--rd-bg-panel);border-radius:8px}::ng-deep .select-modal .ant-checkbox{margin-right:8px}::ng-deep .select-modal .ant-checkbox>span{border-radius:4px}::ng-deep .select-modal .select-modal-header{padding:24px 0 0;position:sticky;top:0;background-color:var(--rd-bg-panel);z-index:1111}::ng-deep .select-modal .select-modal-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;color:var(--rd-copy-primary);justify-content:space-between}::ng-deep .select-modal .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-modal .close-btn svg{width:24px}::ng-deep .select-modal .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-modal .cascader-modal-search{border-radius:4px;border:1px solid var(--rd-bg-panel-border);background:var(--rd-bg-panel);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-modal .cascader-modal-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-modal .cascader-modal-search .ant-input{background:var(--rd-bg-panel);color:var(--rd-copy-primary);box-shadow:none;outline:none}::ng-deep .select-modal .cascader-modal-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-modal .cascader-modal-list{margin-top:16px;overflow-y:auto;height:460px}::ng-deep .select-modal .ant-modal-body{padding:0 24px 24px}::ng-deep .select-modal .ant-modal-footer{padding:24px!important;border-top:1px solid var(--rd-bg-panel-border)!important;background-color:var(--rd-bg-panel)}::ng-deep .select-modal .ant-modal-close{display:none}\n", "::ng-deep .rd-form-item-select{min-width:113px;min-height:52px;max-height:100%;position:relative}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search{margin-inline-start:0}::ng-deep .rd-form-item-select .ant-select-selection-search-input{padding:12px 4px 0}::ng-deep .rd-form-item-select .ant-select-selection-search-input::placeholder{color:var(--rd-copy-disable)}::ng-deep .rd-form-item-select .ant-select-selection-search .ant-select-selection-search-input{padding:12px 4px 0;transform:translate(-2px,12px)!important}::ng-deep .rd-form-item-select .ant-select-show-search{transform:translateY(10px)}::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:6px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-show-search.ant-select-multiple .ant-select-selector{padding:6px 16px}::ng-deep .rd-form-item-select.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}::ng-deep .rd-form-item-select.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selector{padding:12px 16px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item{border-radius:4px;background:transparent;font-size:14px;font-weight:500;color:var(--rd-copy-primary);display:flex;align-items:center;gap:4px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item .ant-select-selection-item-remove{line-height:1}::ng-deep .rd-form-item-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px}::ng-deep .rd-form-item-select.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px;border:1px solid var(--rd-input-fg-hover);background:var(--rd-input-bg-hover);box-shadow:0 0 0 2px #367af61a}::ng-deep .rd-form-item-select .ant-empty-description{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)}::ng-deep .rd-form-item-select .ant-select-selection-placeholder{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selection-item-content{color:var(--rd-copy-primary);font-weight:500}::ng-deep .rd-form-item-select .ant-select-arrow{transition:ease-in-out .2s all;cursor:pointer;pointer-events:initial}::ng-deep .rd-form-item-select:hover:has(.ant-select-clear) .ant-select-arrow{opacity:0}::ng-deep .rd-form-item-select.ant-select-focused .ant-select-arrow,::ng-deep .rd-form-item-select .ant-select-selector:focus-within .ant-select-arrow{transform:rotate(-180deg);transition:transform .2s ease}::ng-deep .rd-form-item-select-s{min-height:38px}::ng-deep .rd-form-item-select-s.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:100%;min-height:38px;padding:0 12px}::ng-deep .rd-form-item-select-dropdown .ant-select-dropdown,::ng-deep .rd-form-item-select-dropdown-s .ant-select-dropdown,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-dropdown{border-radius:4px;background:var(--rd-bg-card);min-width:113px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option{background-color:transparent;padding:0 6px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;padding:0 6px;display:flex;align-items:center;color:var(--rd-copy-primary);font-size:14px;min-height:40px;font-weight:600}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-active .ant-select-item-option-content{background:rgba(54,122,246,.1)}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content{color:var(--rd-copy-secondary);background:var(--rd-grey-200)}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty img,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty img,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty img{width:61px;height:68px}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty p,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty p,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty p{font-size:13px;color:var(--rd-copy-disable);font-weight:500;margin:0}::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content{padding:0 4px;min-height:32px}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;color:var(--rd-copy-primary);font-size:14px;padding:0 6px 0 32px;position:relative}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content:before{content:\"\";position:absolute;top:50%;left:6px;width:16px;height:16px;transform:translateY(-50%);border-radius:4px;border:1px solid var(--rd-grey-400)}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-selected .ant-select-item-option-content:before{background-image:url(/assets/img/icon/checkbox.svg);background-size:contain;background-position:center;background-repeat:no-repeat;border:none}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-state{display:none}::ng-deep .rd-form-item-option-content{display:flex;align-items:center;gap:8px;height:100%}::ng-deep .rd-form-item-option-content span{font-size:14px;font-weight:500}::ng-deep .rd-form-item-option-content .rd-token-icon{width:20px;height:20px;transition:opacity .3s ease-in-out}\n"] }]
377
+ ], template: "<!-- rd-select.component.html -->\n<div\n [class.rd-select-ready]=\"isComponentReady\"\n [class.rd-search-width-auto]=\"isSearchWidthAuto\"\n class=\"rd-select-container\"\n>\n <app-rd-form-item\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [type]=\"'select'\"\n [label]=\"label\"\n [value]=\"nativeValue\"\n [errorMessage]=\"showError && isShowErrorTip ? currentErrorMessage : ''\"\n [ngClass]=\"{\n 'rd-form-item-phone': !label,\n }\"\n (click)=\"openDrawer()\"\n >\n <nz-select\n class=\"rd-form-item-select\"\n [ngStyle]=\"{\n 'pointer-events':\n businessLocation && nzMode === 'multiple' ? 'none' : '',\n }\"\n nzBorderless\n [nzMode]=\"nzMode\"\n [nzShowArrow]=\"false\"\n [(ngModel)]=\"nativeValue\"\n [nzMaxMultipleCount]=\"nzMaxMultipleCount ? nzMaxMultipleCount : null\"\n [nzPlaceHolder]=\"placeholder\"\n [nzCustomTemplate]=\"\n customTpl\n ? customTpl\n : isCurrency\n ? currencySelectedTpl\n : defaultSelectedTpl\n \"\n (nzScrollToBottom)=\"onScrollToBottom()\"\n (ngModelChange)=\"handleValueChange($event)\"\n [disabled]=\"disabled\"\n (nzFocus)=\"isFocus = true\"\n (nzBlur)=\"isFocus = false\"\n [nzDropdownClassName]=\"dropdownClassNames\"\n [nzOptionOverflowSize]=\"5\"\n [nzOptionHeightPx]=\"optionHeightPx || 40\"\n [nzSuffixIcon]=\"customIcon\"\n [nzRemoveIcon]=\"removeIcon\"\n [nzShowSearch]=\"\n nzMode === 'multiple' && businessLocation ? false : isShowSearch\n \"\n (nzOnSearch)=\"onSearch($event)\"\n [name]=\"name\"\n (nzOpenChange)=\"handleOpenChange($event)\"\n [nzDropdownRender]=\"\n showSelectedCount || showClearAll ? customDropdownFooter : null\n \"\n [ngClass]=\"{\n 'rd-select-disabled-open': isMobile && businessLocation,\n }\"\n >\n <nz-option\n *ngIf=\"showTopHint && isShowMaxCount\"\n nzDisabled\n nzCustomContent\n >\n <div class=\"top-hint-option\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n </nz-option>\n\n <nz-option\n *ngFor=\"let option of filteredOptions\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.name || ''\"\n [nzDisabled]=\"option.disabled || false\"\n [nzCustomContent]=\"true\"\n >\n <ng-container *ngIf=\"optionTpl || isCurrency\">\n <ng-container\n *ngTemplateOutlet=\"\n isCurrency ? currencyOptionTpl : optionTpl;\n context: { $implicit: option }\n \"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(optionTpl || isCurrency)\">\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </ng-container>\n </nz-option>\n\n <nz-option *ngIf=\"isLoading\" nzDisabled nzCustomContent>\n <nz-spin style=\"padding: 16px 0\"></nz-spin>\n </nz-option>\n </nz-select>\n </app-rd-form-item>\n</div>\n\n<!-- \u81EA\u5B9A\u4E49\u4E0B\u62C9\u83DC\u5355\u5E95\u90E8 -->\n<ng-template #customDropdownFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{\n isMobile ? getDrawerSelectValueLen() : selectedCount\n }}/<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"\n showClearAll &&\n (isMobile ? getDrawerSelectValueLen() : selectedCount) > 0\n \"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n *ngIf=\"isMobile\"\n [disabled]=\"getDisableNext()\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"next\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #customModalFooter>\n <div class=\"select-footer-container\">\n <div\n class=\"select-footer-content d-flex justify-content-between align-items-center\"\n >\n <div>\n <!-- \u9009\u4E2D\u8BA1\u6570 -->\n <span *ngIf=\"showSelectedCount\" class=\"t14-400 c-text-primary\">\n {{ selectedLabel }}\n {{ getDrawerSelectValueLen()\n }}<ng-container *ngIf=\"isShowMaxCount\"\n >/{{ nzMaxMultipleCount }}\n </ng-container>\n </span>\n\n <!-- \u6E05\u7A7A\u6309\u94AE -->\n <a\n *ngIf=\"showClearAll && getDrawerSelectValueLen() > 0\"\n class=\"b14 ml-16\"\n (click)=\"clearAll(); $event.stopPropagation()\"\n >\n {{ clearAllLabel }}\n </a>\n </div>\n\n <div>\n <app-rd-button\n type=\"primary\"\n [disabled]=\"isRquired ? getDrawerSelectValueLen() === 0 : false\"\n (click)=\"multSelectMobileNext()\"\n >\n {{ \"done\" | translate }}</app-rd-button\n >\n </div>\n </div>\n </div>\n</ng-template>\n\n<!-- \u5176\u4ED6\u6A21\u677F\u4FDD\u6301\u4E0D\u53D8 -->\n<ng-template #defaultSelectedTpl let-selected>\n {{ selected?.nzLabel }}\n</ng-template>\n\n<ng-template #currencyOptionTpl let-option>\n <div class=\"rd-form-item-option-content\">\n <img [src]=\"option.iconUrl\" class=\"rd-token-icon\" alt=\"icon\" />\n <span>{{ option.name }}</span>\n </div>\n</ng-template>\n\n<ng-template #currencySelectedTpl let-selected let-extra>\n <div class=\"rd-form-item-option-content\">\n <img\n [src]=\"currencyUrlMap?.[getCurrencyKey(selected.nzValue)]\"\n class=\"rd-token-icon\"\n alt=\"icon\"\n />\n <span>{{ selected.nzLabel }}</span>\n </div>\n</ng-template>\n\n<ng-template #removeIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.39645 2.39645C2.59171 2.20118 2.90829 2.20118 3.10355 2.39645L6 5.29289L8.89645 2.39645C9.09171 2.20118 9.40829 2.20118 9.60355 2.39645C9.79882 2.59171 9.79882 2.90829 9.60355 3.10355L6.70711 6L9.60355 8.89645C9.79882 9.09171 9.79882 9.40829 9.60355 9.60355C9.40829 9.79882 9.09171 9.79882 8.89645 9.60355L6 6.70711L3.10355 9.60355C2.90829 9.79882 2.59171 9.79882 2.39645 9.60355C2.20118 9.40829 2.20118 9.09171 2.39645 8.89645L5.29289 6L2.39645 3.10355C2.20118 2.90829 2.20118 2.59171 2.39645 2.39645Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #customIcon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.60136 4.90777C2.83639 4.68743 3.20555 4.69934 3.42589 4.93437L8.00033 9.81377L12.5748 4.93437C12.7951 4.69934 13.1643 4.68743 13.3993 4.90777C13.6343 5.12812 13.6462 5.49727 13.4259 5.7323L8.42589 11.0656C8.31561 11.1833 8.16157 11.25 8.00033 11.25C7.83909 11.25 7.68504 11.1833 7.57476 11.0656L2.57476 5.7323C2.35442 5.49727 2.36633 5.12811 2.60136 4.90777Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile && businessLocation\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customDropdownFooter\"\n nzWrapClassName=\"select-drawer\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"select-drawer-header\">\n <div class=\"header-title\">\n <div>\n {{\n (businessLocation ? \"select_nature_of_business\" : \" \") | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n class=\"w-full\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-drawer-list\">\n <div *ngIf=\"isShowMaxCount\" class=\"my-16 ml-8\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<!-- Modal for desktop business location multi-select -->\n<nz-modal\n [(nzVisible)]=\"modalOpen\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzFooter]=\"customModalFooter\"\n nzWrapClassName=\"select-modal\"\n (nzOnCancel)=\"closeModal()\"\n [nzWidth]=\"632\"\n [nzBodyStyle]=\"{ height: '600px' }\"\n nzCentered\n>\n <div *nzModalContent>\n <div class=\"select-modal-header\">\n <div\n class=\"header-title d-flex justify-content-between align-items-center\"\n >\n <div>\n {{\n (businessLocationTitle\n ? businessLocationTitle\n : businessLocation\n ? \"select_nature_of_business\"\n : \" \"\n ) | translate\n }}\n </div>\n <div class=\"close-btn\" (click)=\"closeModal()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M3.40039 3.3999L8.00039 7.9999M12.6004 12.5999L8.00039 7.9999M8.00039 7.9999L12.6004 3.3999L3.40039 12.5999\"\n stroke=\"var(--rd-copy-primary)\"\n stroke-width=\"1.36\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-modal-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n </div>\n\n <div class=\"cascader-modal-list\">\n <div class=\"mb-16\" *ngIf=\"showTopHint && isShowMaxCount\">\n <span class=\"t14-400 c-text-primary\">{{ topHintText }}</span>\n </div>\n <ng-container *ngIf=\"filteredOptions?.length\">\n <nz-checkbox-wrapper\n class=\"question-content\"\n class=\"t14-400 c-text-primary\"\n (nzOnChange)=\"onCheckboxChange($event)\"\n >\n <div *ngFor=\"let option of filteredOptions\" class=\"mb-8\">\n <label\n nz-checkbox\n [nzValue]=\"option?.value\"\n [nzDisabled]=\"getOptionDisabled(option)\"\n [nzChecked]=\"isValueSelected(option?.value)\"\n >\n <span class=\"t14-400 c-text-primary\">{{ option?.name }}</span>\n </label>\n </div>\n </nz-checkbox-wrapper>\n </ng-container>\n </div>\n </div>\n</nz-modal>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host .rd-select-container{visibility:hidden}:host .rd-select-container.rd-select-ready{visibility:visible}:host .rd-form-item-select{width:100%}:host .rd-form-item-select ::ng-deep .ant-select-selection-search-input{color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500}:host .rd-form-item-select ::ng-deep .ant-select-selection-placeholder{color:var(--rd-copy-disable)!important}:host .rd-select-disabled-open{pointer-events:none}::ng-deep .rd-form-item-phone .ant-select-selection-search-input{padding:0 5px 12px}::ng-deep .rd-form-item-phone .ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;inset:-8px 11px 0}::ng-deep .rd-select-container:not(.rd-search-width-auto) .rd-form-item-select.ant-select-multiple .ant-select-selection-search{width:100%!important}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search .ant-select-selection-search-input{padding:0 0 12px!important;transform:translate(-2px,4px)!important}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option){background:transparent!important;padding-left:12px!important;cursor:default}::ng-deep .has-top-hint .ant-select-item-option-content:has(.top-hint-option):before{border:none!important}::ng-deep .rd-form-item-multiple-select-dropdown .select-footer-container{padding:16px 12px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-drawer{background-color:var(--rd-bg-website)}::ng-deep .select-drawer .select-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .select-drawer .select-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .select-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-drawer .close-btn svg{width:24px}::ng-deep .select-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .select-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .select-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .select-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .select-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .select-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .select-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .select-drawer .ant-checkbox-inner{border-radius:4px;background-color:var(--rd-control-input-empty);border:1px solid var(--rd-control-border-empty)}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner{background-color:var(--rd-control-input-selected)!important;border:none!important}::ng-deep .select-drawer .ant-checkbox-checked .ant-checkbox-inner:after{border:2px solid var(--rd-copy-inverse);border-top:0;border-left:0}::ng-deep .select-drawer .ant-checkbox-checked:after{border-radius:4px}::ng-deep .select-drawer .ant-checkbox-disabled+span{color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-disabled .ant-checkbox-inner{border:1px solid var(--rd-control-border-empty)!important}::ng-deep .select-drawer .ant-checkbox-wrapper{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)!important}::ng-deep .select-drawer .ant-checkbox-wrapper>span{margin-left:8px}::ng-deep .select-drawer .ant-drawer-footer{padding:24px!important;border-top:1px solid var(--rd-grey-700)!important}::ng-deep .select-modal .ant-modal-content{background-color:var(--rd-bg-panel);border-radius:8px}::ng-deep .select-modal .ant-checkbox{margin-right:8px}::ng-deep .select-modal .ant-checkbox>span{border-radius:4px}::ng-deep .select-modal .select-modal-header{padding:24px 0 0;position:sticky;top:0;background-color:var(--rd-bg-panel);z-index:1111}::ng-deep .select-modal .select-modal-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;color:var(--rd-copy-primary);justify-content:space-between}::ng-deep .select-modal .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .select-modal .close-btn svg{width:24px}::ng-deep .select-modal .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .select-modal .cascader-modal-search{border-radius:4px;border:1px solid var(--rd-bg-panel-border);background:var(--rd-bg-panel);height:44px;padding:0 16px;margin-top:16px}::ng-deep .select-modal .cascader-modal-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .select-modal .cascader-modal-search .ant-input{background:var(--rd-bg-panel);color:var(--rd-copy-primary);box-shadow:none;outline:none}::ng-deep .select-modal .cascader-modal-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .select-modal .cascader-modal-list{margin-top:16px;overflow-y:auto;height:460px}::ng-deep .select-modal .ant-modal-body{padding:0 24px 24px}::ng-deep .select-modal .ant-modal-footer{padding:24px!important;border-top:1px solid var(--rd-bg-panel-border)!important;background-color:var(--rd-bg-panel)}::ng-deep .select-modal .ant-modal-close{display:none}\n", "::ng-deep .rd-form-item-select{min-width:113px;min-height:52px;max-height:100%;position:relative}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-search{margin-inline-start:0}::ng-deep .rd-form-item-select .ant-select-selection-search-input{padding:12px 4px 0}::ng-deep .rd-form-item-select .ant-select-selection-search-input::placeholder{color:var(--rd-copy-disable)}::ng-deep .rd-form-item-select .ant-select-selection-search .ant-select-selection-search-input{padding:12px 4px 0;transform:translate(-2px,12px)!important}::ng-deep .rd-form-item-select .ant-select-show-search{transform:translateY(10px)}::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:6px 16px 10px;min-height:52px;height:-moz-fit-content;height:fit-content}.rd-form-item-phone ::ng-deep .rd-form-item-select.ant-select-show-search.ant-select-multiple .ant-select-selector{padding:6px 16px}::ng-deep .rd-form-item-select.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}::ng-deep .rd-form-item-select.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selector{padding:12px 16px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item{border-radius:4px;background:transparent;font-size:14px;font-weight:500;color:var(--rd-copy-primary);display:flex;align-items:center;gap:4px}::ng-deep .rd-form-item-select.ant-select-multiple .ant-select-selection-item .ant-select-selection-item-remove{line-height:1}::ng-deep .rd-form-item-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px}::ng-deep .rd-form-item-select.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-radius:4px;border:1px solid var(--rd-input-fg-hover);background:var(--rd-input-bg-hover);box-shadow:0 0 0 2px #367af61a}::ng-deep .rd-form-item-select .ant-empty-description{font-weight:400;font-size:14px;line-height:22px;color:var(--rd-copy-primary)}::ng-deep .rd-form-item-select .ant-select-selection-placeholder{color:var(--rd-copy-primary);font-weight:500;font-size:14px}::ng-deep .rd-form-item-select .ant-select-selection-item-content{color:var(--rd-copy-primary);font-weight:500}::ng-deep .rd-form-item-select .ant-select-arrow{transition:ease-in-out .2s all;cursor:pointer;pointer-events:initial}::ng-deep .rd-form-item-select:hover:has(.ant-select-clear) .ant-select-arrow{opacity:0}::ng-deep .rd-form-item-select.ant-select-focused .ant-select-arrow,::ng-deep .rd-form-item-select .ant-select-selector:focus-within .ant-select-arrow{transform:rotate(-180deg);transition:transform .2s ease}::ng-deep .rd-form-item-select-s{min-height:38px}::ng-deep .rd-form-item-select-s.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:100%;min-height:38px;padding:0 12px}::ng-deep .rd-form-item-select-dropdown .ant-select-dropdown,::ng-deep .rd-form-item-select-dropdown-s .ant-select-dropdown,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-dropdown{border-radius:4px;background:var(--rd-bg-card);min-width:113px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option{background-color:transparent;padding:0 6px}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;padding:0 6px;display:flex;align-items:center;color:var(--rd-copy-primary);font-size:14px;min-height:40px;font-weight:600}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-active .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-active .ant-select-item-option-content{background:rgba(54,122,246,.1)}::ng-deep .rd-form-item-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-disabled .ant-select-item-option-content,::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-disabled .ant-select-item-option-content{color:var(--rd-copy-secondary);background:var(--rd-grey-200)}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty img,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty img,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty img{width:61px;height:68px}::ng-deep .rd-form-item-select-dropdown .rd-form-item-empty p,::ng-deep .rd-form-item-select-dropdown-s .rd-form-item-empty p,::ng-deep .rd-form-item-multiple-select-dropdown .rd-form-item-empty p{font-size:13px;color:var(--rd-copy-disable);font-weight:500;margin:0}::ng-deep .rd-form-item-select-dropdown-s .ant-select-item-option-content{padding:0 4px;min-height:32px}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content{border-radius:4px;color:var(--rd-copy-primary);font-size:14px;padding:0 6px 0 32px;position:relative}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-content:before{content:\"\";position:absolute;top:50%;left:6px;width:16px;height:16px;transform:translateY(-50%);border-radius:4px;border:1px solid var(--rd-grey-400)}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-selected .ant-select-item-option-content:before{background-image:url(/assets/img/icon/checkbox.svg);background-size:contain;background-position:center;background-repeat:no-repeat;border:none}::ng-deep .rd-form-item-multiple-select-dropdown .ant-select-item-option-state{display:none}::ng-deep .rd-form-item-option-content{display:flex;align-items:center;gap:8px;height:100%}::ng-deep .rd-form-item-option-content span{font-size:14px;font-weight:500}::ng-deep .rd-form-item-option-content .rd-token-icon{width:20px;height:20px;transition:opacity .3s ease-in-out}\n"] }]
368
378
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }]; }, propDecorators: { label: [{
369
379
  type: Input
370
380
  }], customTpl: [{
@@ -429,4 +439,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
429
439
  type: HostListener,
430
440
  args: ['window:resize']
431
441
  }] } });
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1zZWxlY3QvcmQtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1zZWxlY3QvcmQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUVsQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCeEIsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUIsSUFDSSxPQUFPLENBQUMsR0FBb0I7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBMkNELFVBQVU7SUFDVixJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FB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O3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFTRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBY0UsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFhRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQW1DTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JkLXNlbGVjdC5jb21wb25lbnQuc2NzcycsICcuL3NlbGVjdC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VzdG9tVHBsOiBhbnk7XG4gIEBJbnB1dCgpIG9wdGlvblRwbDogYW55O1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG56TW9kZTogJ211bHRpcGxlJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgaXNDdXJyZW5jeT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1cnJlbmN5VXJsTWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgQElucHV0KCkgb3B0aW9uSGVpZ2h0UHg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG56TWF4TXVsdGlwbGVDb3VudDogYW55ID0gMTAwO1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNTaG93U2VhcmNoID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzUmVtb3RlU2VhcmNoID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGlzUnF1aXJlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGlzU2hvd0Vycm9yVGlwID0gdHJ1ZTsgLy8g6Zeu5Y235aSW6YOo5bey57uP5pyJ6ZSZ6K+v5o+Q56S65LqG77yM6L+Z6YeM6ZyA6KaB5b+955WlXG4gIEBJbnB1dCgpIGlzU2VhcmNoV2lkdGhBdXRvID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnModmFsOiBJU2VsZWN0T3B0aW9uW10pIHtcbiAgICB0aGlzLl9yYXdPcHRpb25zID0gdmFsO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdmFsO1xuICB9XG4gIGdldCBvcHRpb25zKCk6IElTZWxlY3RPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jhd09wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHBhdHRlcm46ICdpbnZhbGlkX2Zvcm1hdCcsXG4gICAgY3VzdG9tOiAndmFsaWRhdGlvbl9mYWlsZWQnLFxuICB9O1xuXG4gIEBPdXRwdXQoKSBzZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdPigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsVG9Cb3R0b21FbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3Jhd09wdGlvbnM6IElTZWxlY3RPcHRpb25bXSA9IFtdO1xuICBmaWx0ZXJlZE9wdGlvbnM6IElTZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gIHZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBuYXRpdmVWYWx1ZTogSVNlbGVjdE9wdGlvblsndmFsdWUnXSB8IElTZWxlY3RPcHRpb25bJ3ZhbHVlJ11bXSB8IHVuZGVmaW5lZCA9XG4gICAgdW5kZWZpbmVkO1xuICBkcmF3ZXJTZWxlY3RWYWx1ZTpcbiAgICB8IGFueVxuICAgIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVxuICAgIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVtdXG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHNlYXJjaElucHV0ID0gJyc7XG4gIEBJbnB1dCgpIGJ1c2luZXNzTG9jYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgYnVzaW5lc3NMb2NhdGlvblRpdGxlID0gJyc7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IElTZWxlY3RPcHRpb24gfCBJU2VsZWN0T3B0aW9uW10gfCB1bmRlZmluZWQpID0+IHZvaWQgPVxuICAgICgpID0+IHt9O1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBpc0ZvY3VzID0gZmFsc2U7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBpc0NvbXBvbmVudFJlYWR5ID0gZmFsc2U7XG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgc2VhcmNoVGVybSA9ICcnO1xuICBkcmF3ZXJPcGVuID0gZmFsc2U7XG4gIG1vZGFsT3BlbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93U2VsZWN0ZWRDb3VudCA9IGZhbHNlOyAvLyDmlrDlop7vvJrmmK/lkKbmmL7npLrpgInkuK3orqHmlbBcbiAgQElucHV0KCkgc2hvd0NsZWFyQWxsID0gZmFsc2U7IC8vIOaWsOWinu+8muaYr+WQpuaYvuekuua4heepuuaMiemSrlxuICBASW5wdXQoKSBzZWxlY3RlZExhYmVsID0gJ1NlbGVjdGVkOic7XG4gIEBJbnB1dCgpIGNsZWFyQWxsTGFiZWwgPSAnQ2xlYXIgYWxsJztcbiAgQElucHV0KCkgc2hvd1RvcEhpbnQgPSBmYWxzZTsgLy8g5paw5aKe77ya5piv5ZCm5pi+56S66aG26YOo5o+Q56S6XG4gIEBJbnB1dCgpIHRvcEhpbnRUZXh0ID0gJ1lvdSBjYW4gY2hvb3NlIHVwIHRvIDMgbG9jYXRpb25zJzsgLy8g6aG26YOo5o+Q56S65paH5pysXG4gIC8vIOiuoeeul+mAieS4reeahOaVsOmHj1xuICBnZXQgc2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5uYXRpdmVWYWx1ZSkgPyB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA6IDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hdGl2ZVZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uYXRpdmVWYWx1ZSAhPT0gbnVsbCA/IDEgOiAwO1xuICB9XG5cbiAgZ2V0IGRyb3Bkb3duQ2xhc3NOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIOWfuuehgOexu+WQjVxuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdyZC1mb3JtLWl0ZW0tbXVsdGlwbGUtc2VsZWN0LWRyb3Bkb3duJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsYXNzZXMucHVzaCgncmQtZm9ybS1pdGVtLXNlbGVjdC1kcm9wZG93bicpO1xuICAgIH1cblxuICAgIC8vIOadoeS7tuexu+WQjVxuICAgIGlmICh0aGlzLnNob3dUb3BIaW50KSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hhcy10b3AtaGludCcpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGlzU2hvd01heENvdW50KCkge1xuICAgIC8vIGhhY2tcbiAgICByZXR1cm4gdGhpcy5uek1heE11bHRpcGxlQ291bnQgPCAxMDAwMDtcbiAgfVxuXG4gIC8vIOWTjeW6lOW8j++8muaYr+WQpuaYr+enu+WKqOerr1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy51cGRhdGVJc01vYmlsZSgpO1xuICB9XG5cbiAgLy8g5riF56m65omA5pyJ6YCJ6aG5XG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBbXTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPSBbXTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2w/LmVycm9ycykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0RXJyb3IgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2w/LmVycm9ycyB8fCB7fSlbMF07XG5cbiAgICBjb25zdCBtc2cgPSB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl07XG5cbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ3BsZWFzZV9zZWxlY3QnLFxuICAgICAgICAgICl9JHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmNvbnRyb2w/LmVycm9yc1snY3VzdG9tJ10gfHxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd2YWxpZGF0aW9uX2ZhaWxlZCcpXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5lcnJvck1lc3NhZ2VzW2ZpcnN0RXJyb3JdKSB8fFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJylcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuY29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5jb250cm9sPy50b3VjaGVkIHx8IHRoaXMuY29udHJvbD8uZGlydHkpXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVJc01vYmlsZSgpO1xuICAgIGNvbnN0IG1xID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDk5N3B4KScpO1xuICAgIGlmIChtcS5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICBtcS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtcS5hZGRMaXN0ZW5lcigoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSXNNb2JpbGUoKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA5OTdweCknKS5tYXRjaGVzO1xuICB9XG5cbiAgb3BlbkRyYXdlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuXG4gICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuYnVzaW5lc3NMb2NhdGlvbiAmJiB0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgdGhpcy5tb2RhbE9wZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgZ2V0RHJhd2VyU2VsZWN0VmFsdWVMZW4oKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlPy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlRHJhd2VyKCkge1xuICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICB9XG5cbiAgLy8g6I635Y+W5oq95bGJ5Lit5bey6YCJ5Lit55qE5pWw6YePXG4gIGdldCBkcmF3ZXJTZWxlY3RlZENvdW50KCk6IG51bWJlciB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPyAxIDogMDtcbiAgfVxuXG4gIC8vIOajgOafpemAiemhueaYr+WQpuW6lOivpeiiq+emgeeUqFxuICBnZXRPcHRpb25EaXNhYmxlZChvcHRpb246IElTZWxlY3RPcHRpb24pOiBib29sZWFuIHtcbiAgICAvLyDlpoLmnpzpgInpobnmnKzouqvooqvnpoHnlKjvvIznm7TmjqXov5Tlm550cnVlXG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8g5aaC5p6c5b2T5YmN5LiN5piv5aSa6YCJ5qih5byP77yM6L+U5Zue6YCJ6aG555qEZGlzYWJsZWTnirbmgIFcbiAgICBpZiAodGhpcy5uek1vZGUgIT09ICdtdWx0aXBsZScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyDlnKjnp7vliqjnq6/mir3lsYnkuK3vvIzmo4Dmn6XmmK/lkKbovr7liLDmnIDlpKfpgInmi6nmlbDph49cbiAgICBpZiAoXG4gICAgICAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmJ1c2luZXNzTG9jYXRpb24gJiYgdGhpcy5kcmF3ZXJPcGVuKSB8fFxuICAgICAgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuYnVzaW5lc3NMb2NhdGlvbiAmJiB0aGlzLm1vZGFsT3BlbilcbiAgICApIHtcbiAgICAgIC8vIOWmguaenOW3sue7j+i+vuWIsOacgOWkp+mAieaLqeaVsOmHj++8jOW5tuS4lOW9k+WJjemAiemhueayoeacieiiq+mAieS4re+8jOWImeemgeeUqFxuICAgICAgaWYgKHRoaXMuZHJhd2VyU2VsZWN0ZWRDb3VudCA+PSB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNWYWx1ZVNlbGVjdGVkKG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8g5L+u5pS5IG9uQ2hlY2tib3hDaGFuZ2Ug5pa55rOV77yM5re75Yqg5pWw6YeP6ZmQ5Yi2XG4gIG9uQ2hlY2tib3hDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZXM6IGFueVtdKTogdm9pZCB7XG4gICAgLy8g5qOA5p+l5piv5ZCm6LaF6L+H5pyA5aSn6YCJ5oup5pWw6YePXG4gICAgaWYgKFxuICAgICAgdGhpcy5uek1vZGUgPT09ICdtdWx0aXBsZScgJiZcbiAgICAgIHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IHRoaXMubnpNYXhNdWx0aXBsZUNvdW50XG4gICAgKSB7XG4gICAgICAvLyDlpoLmnpzotoXov4fmnIDlpKfmlbDph4/vvIzlj6rkv53nlZnliY0gbnpNYXhNdWx0aXBsZUNvdW50IOS4qlxuICAgICAgc2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZFZhbHVlcy5zbGljZSgwLCB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCk7XG4gICAgfVxuXG4gICAgbGV0IG5ld0RyYXdlclZhbHVlOiBhbnlbXTtcblxuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0pIHtcbiAgICAgIC8vIOWcqOaQnOe0oueKtuaAgeS4i++8jOWQiOW5tuWOhuWPsumAieS4reWAvOWSjOW9k+WJjemAieS4reWAvFxuICAgICAgY29uc3QgY3VycmVudERyYXdlclZhbHVlID0gQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKVxuICAgICAgICA/IHRoaXMuZHJhd2VyU2VsZWN0VmFsdWVcbiAgICAgICAgOiBbXTtcbiAgICAgIC8vIOaJvuWHuuiiq+WPlua2iOWLvumAieeahOWAvFxuICAgICAgY29uc3QgcHJldmlvdXNGaWx0ZXJlZFZhbHVlcyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zXG4gICAgICAgIC5tYXAoKG9wdCkgPT4gb3B0LnZhbHVlKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gY3VycmVudERyYXdlclZhbHVlLmluY2x1ZGVzKHZhbHVlKSk7XG5cbiAgICAgIGNvbnN0IGRlc2VsZWN0ZWRWYWx1ZXMgPSBwcmV2aW91c0ZpbHRlcmVkVmFsdWVzLmZpbHRlcihcbiAgICAgICAgKHZhbHVlKSA9PiAhc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmFsdWUpLFxuICAgICAgKTtcblxuICAgICAgLy8g5LuO5b2T5YmN5oq95bGJ5YC85Lit56e76Zmk6KKr5Y+W5raI5Yu+6YCJ55qE5YC8XG4gICAgICBjb25zdCByZW1haW5pbmdWYWx1ZXMgPSBjdXJyZW50RHJhd2VyVmFsdWUuZmlsdGVyKFxuICAgICAgICAodmFsdWUpID0+ICFkZXNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKHZhbHVlKSxcbiAgICAgICk7XG5cbiAgICAgIC8vIOWQiOW5tuWJqeS9meWAvOWSjOW9k+WJjemAieS4reWAvO+8iOWOu+mHje+8iVxuICAgICAgbmV3RHJhd2VyVmFsdWUgPSBbLi4ubmV3IFNldChbLi4ucmVtYWluaW5nVmFsdWVzLCAuLi5zZWxlY3RlZFZhbHVlc10pXTtcblxuICAgICAgLy8g5YaN5qyh5qOA5p+l5piv5ZCm6LaF6L+H5pyA5aSn5pWw6YePXG4gICAgICBpZiAobmV3RHJhd2VyVmFsdWUubGVuZ3RoID4gdGhpcy5uek1heE11bHRpcGxlQ291bnQpIHtcbiAgICAgICAgbmV3RHJhd2VyVmFsdWUgPSBuZXdEcmF3ZXJWYWx1ZS5zbGljZSgwLCB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOmdnuaQnOe0oueKtuaAgeS4i++8jOebtOaOpeS9v+eUqOW9k+WJjemAieS4reWAvO+8jOS9huehruS/neS4jei2hei/h+acgOWkp+aVsOmHj1xuICAgICAgbmV3RHJhd2VyVmFsdWUgPVxuICAgICAgICBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPiB0aGlzLm56TWF4TXVsdGlwbGVDb3VudFxuICAgICAgICAgID8gc2VsZWN0ZWRWYWx1ZXMuc2xpY2UoMCwgdGhpcy5uek1heE11bHRpcGxlQ291bnQpXG4gICAgICAgICAgOiBzZWxlY3RlZFZhbHVlcztcbiAgICB9XG5cbiAgICB0aGlzLmRyYXdlclNlbGVjdFZhbHVlID0gbmV3RHJhd2VyVmFsdWU7XG4gIH1cblxuICAvLyDkv67mlLnlpJrpgInnp7vliqjnq6/kuIvkuIDmraXnmoTmlrnms5VcbiAgbXVsdFNlbGVjdE1vYmlsZU5leHQoKTogdm9pZCB7XG4gICAgLy8g56Gu5L+d6YCJ5oup5pWw6YeP5LiN6LaF6L+H5pyA5aSn6ZmQ5Yi2XG4gICAgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKSAmJlxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZS5sZW5ndGggPiB0aGlzLm56TWF4TXVsdGlwbGVDb3VudFxuICAgICkge1xuICAgICAgLy8g5aaC5p6c6LaF6L+H5pyA5aSn5pWw6YeP77yM5oiq5Y+W5YmNbuS4qlxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSA9IHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUuc2xpY2UoXG4gICAgICAgIDAsXG4gICAgICAgIHRoaXMubnpNYXhNdWx0aXBsZUNvdW50LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUpO1xuICAgIHRoaXMuY2xvc2VEcmF3ZXIoKTtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgfVxuXG4gIGdldERpc2FibGVOZXh0KCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZT8ubGVuZ3RoID4gdGhpcy5uek1heE11bHRpcGxlQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBkb01vYmlsZVNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQ6IGFueSkgPT5cbiAgICAgIG9wdC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSksXG4gICAgKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzVmFsdWVTZWxlY3RlZChvcHRpb25WYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubnpNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZS5pbmNsdWRlcyhvcHRpb25WYWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlID09PSBvcHRpb25WYWx1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZT8udmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKFxuICAgIHZhbHVlOiBJU2VsZWN0T3B0aW9uWyd2YWx1ZSddIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVtdLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT4gdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uU2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbUVtaXQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHNlYXJjaFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gc2VhcmNoVmFsdWU7XG4gICAgaWYgKHRoaXMuaXNSZW1vdGVTZWFyY2gpIHtcbiAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoVmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxvd2VyID0gc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuX3Jhd09wdGlvbnMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgaXRlbS5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyKSxcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlT3BlbkNoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNPcGVuID0gdmFsdWU7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8g562J5b6F5LiL5LiA5Liq5Y+Y5pu05qOA5rWL5ZGo5pyf77yM56Gu5L+d5omA5pyJ5qC35byP5ZKM57G75bey5bqU55SoXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzQ29tcG9uZW50UmVhZHkgPSB0cnVlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMCk7XG4gIH1cbn1cbiIsIjwhLS0gcmQtc2VsZWN0LmNvbXBvbmVudC5odG1sIC0tPlxuPGRpdlxuICBbY2xhc3MucmQtc2VsZWN0LXJlYWR5XT1cImlzQ29tcG9uZW50UmVhZHlcIlxuICBbY2xhc3MucmQtc2VhcmNoLXdpZHRoLWF1dG9dPVwiaXNTZWFyY2hXaWR0aEF1dG9cIlxuICBjbGFzcz1cInJkLXNlbGVjdC1jb250YWluZXJcIlxuPlxuICA8YXBwLXJkLWZvcm0taXRlbVxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2ZvY3VzXT1cIiEhc2VhcmNoSW5wdXQgfHwgaXNGb2N1cyB8fCBpc09wZW5cIlxuICAgIFt0eXBlXT1cIidzZWxlY3QnXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFt2YWx1ZV09XCJuYXRpdmVWYWx1ZVwiXG4gICAgW2Vycm9yTWVzc2FnZV09XCJzaG93RXJyb3IgJiYgaXNTaG93RXJyb3JUaXAgPyBjdXJyZW50RXJyb3JNZXNzYWdlIDogJydcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdyZC1mb3JtLWl0ZW0tcGhvbmUnOiAhbGFiZWwsXG4gICAgfVwiXG4gICAgKGNsaWNrKT1cIm9wZW5EcmF3ZXIoKVwiXG4gID5cbiAgICA8bnotc2VsZWN0XG4gICAgICBjbGFzcz1cInJkLWZvcm0taXRlbS1zZWxlY3RcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAncG9pbnRlci1ldmVudHMnOlxuICAgICAgICAgIGJ1c2luZXNzTG9jYXRpb24gJiYgbnpNb2RlID09PSAnbXVsdGlwbGUnID8gJ25vbmUnIDogJycsXG4gICAgICB9XCJcbiAgICAgIG56Qm9yZGVybGVzc1xuICAgICAgW256TW9kZV09XCJuek1vZGVcIlxuICAgICAgW256U2hvd0Fycm93XT1cImZhbHNlXCJcbiAgICAgIFsobmdNb2RlbCldPVwibmF0aXZlVmFsdWVcIlxuICAgICAgW256TWF4TXVsdGlwbGVDb3VudF09XCJuek1heE11bHRpcGxlQ291bnQgPyBuek1heE11bHRpcGxlQ291bnQgOiBudWxsXCJcbiAgICAgIFtuelBsYWNlSG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtuekN1c3RvbVRlbXBsYXRlXT1cIlxuICAgICAgICBjdXN0b21UcGxcbiAgICAgICAgICA/IGN1c3RvbVRwbFxuICAgICAgICAgIDogaXNDdXJyZW5jeVxuICAgICAgICAgICAgPyBjdXJyZW5jeVNlbGVjdGVkVHBsXG4gICAgICAgICAgICA6IGRlZmF1bHRTZWxlY3RlZFRwbFxuICAgICAgXCJcbiAgICAgIChuelNjcm9sbFRvQm90dG9tKT1cIm9uU2Nyb2xsVG9Cb3R0b20oKVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAobnpGb2N1cyk9XCJpc0ZvY3VzID0gdHJ1ZVwiXG4gICAgICAobnpCbHVyKT1cImlzRm9jdXMgPSBmYWxzZVwiXG4gICAgICBbbnpEcm9wZG93bkNsYXNzTmFtZV09XCJkcm9wZG93bkNsYXNzTmFtZXNcIlxuICAgICAgW256T3B0aW9uT3ZlcmZsb3dTaXplXT1cIjVcIlxuICAgICAgW256T3B0aW9uSGVpZ2h0UHhdPVwib3B0aW9uSGVpZ2h0UHggfHwgNDBcIlxuICAgICAgW256U3VmZml4SWNvbl09XCJjdXN0b21JY29uXCJcbiAgICAgIFtuelJlbW92ZUljb25dPVwicmVtb3ZlSWNvblwiXG4gICAgICBbbnpTaG93U2VhcmNoXT1cIlxuICAgICAgICBuek1vZGUgPT09ICdtdWx0aXBsZScgJiYgYnVzaW5lc3NMb2NhdGlvbiA/IGZhbHNlIDogaXNTaG93U2VhcmNoXG4gICAgICBcIlxuICAgICAgKG56T25TZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIChuek9wZW5DaGFuZ2UpPVwiaGFuZGxlT3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtuekRyb3Bkb3duUmVuZGVyXT1cIlxuICAgICAgICBzaG93U2VsZWN0ZWRDb3VudCB8fCBzaG93Q2xlYXJBbGwgPyBjdXN0b21Ecm9wZG93bkZvb3RlciA6IG51bGxcbiAgICAgIFwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdyZC1zZWxlY3QtZGlzYWJsZWQtb3Blbic6IGlzTW9iaWxlICYmIGJ1c2luZXNzTG9jYXRpb24sXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8bnotb3B0aW9uXG4gICAgICAgICpuZ0lmPVwic2hvd1RvcEhpbnQgJiYgaXNTaG93TWF4Q291bnRcIlxuICAgICAgICBuekRpc2FibGVkXG4gICAgICAgIG56Q3VzdG9tQ29udGVudFxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLWhpbnQtb3B0aW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+e3sgdG9wSGludFRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uei1vcHRpb24+XG5cbiAgICAgIDxuei1vcHRpb25cbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIlxuICAgICAgICBbbnpWYWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICBbbnpMYWJlbF09XCJvcHRpb24ubmFtZSB8fCAnJ1wiXG4gICAgICAgIFtuekRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgIFtuekN1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25UcGwgfHwgaXNDdXJyZW5jeVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGlzQ3VycmVuY3kgPyBjdXJyZW5jeU9wdGlvblRwbCA6IG9wdGlvblRwbDtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKG9wdGlvblRwbCB8fCBpc0N1cnJlbmN5KVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPnt7IG9wdGlvbj8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L256LW9wdGlvbj5cblxuICAgICAgPG56LW9wdGlvbiAqbmdJZj1cImlzTG9hZGluZ1wiIG56RGlzYWJsZWQgbnpDdXN0b21Db250ZW50PlxuICAgICAgICA8bnotc3BpbiBzdHlsZT1cInBhZGRpbmc6IDE2cHggMFwiPjwvbnotc3Bpbj5cbiAgICAgIDwvbnotb3B0aW9uPlxuICAgIDwvbnotc2VsZWN0PlxuICA8L2FwcC1yZC1mb3JtLWl0ZW0+XG48L2Rpdj5cblxuPCEtLSDoh6rlrprkuYnkuIvmi4noj5zljZXlupXpg6ggLS0+XG48bmctdGVtcGxhdGUgI2N1c3RvbURyb3Bkb3duRm9vdGVyPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0LWZvb3Rlci1jb250YWluZXJcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNlbGVjdC1mb290ZXItY29udGVudCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICA+XG4gICAgICA8ZGl2PlxuICAgICAgICA8IS0tIOmAieS4reiuoeaVsCAtLT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93U2VsZWN0ZWRDb3VudFwiIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkTGFiZWwgfX1cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgaXNNb2JpbGUgPyBnZXREcmF3ZXJTZWxlY3RWYWx1ZUxlbigpIDogc2VsZWN0ZWRDb3VudFxuICAgICAgICAgIH19LzxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dNYXhDb3VudFwiXG4gICAgICAgICAgICA+L3t7IG56TWF4TXVsdGlwbGVDb3VudCB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSDmuIXnqbrmjInpkq4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIHNob3dDbGVhckFsbCAmJlxuICAgICAgICAgICAgKGlzTW9iaWxlID8gZ2V0RHJhd2VyU2VsZWN0VmFsdWVMZW4oKSA6IHNlbGVjdGVkQ291bnQpID4gMFxuICAgICAgICAgIFwiXG4gICAgICAgICAgY2xhc3M9XCJiMTQgbWwtMTZcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY2xlYXJBbGxMYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPGFwcC1yZC1idXR0b25cbiAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgKm5nSWY9XCJpc01vYmlsZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImdldERpc2FibGVOZXh0KClcIlxuICAgICAgICAgIChjbGljayk9XCJtdWx0U2VsZWN0TW9iaWxlTmV4dCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwibmV4dFwiIHwgdHJhbnNsYXRlIH19PC9hcHAtcmQtYnV0dG9uXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tTW9kYWxGb290ZXI+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3QtZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2VsZWN0LWZvb3Rlci1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgID5cbiAgICAgIDxkaXY+XG4gICAgICAgIDwhLS0g6YCJ5Lit6K6h5pWwIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dTZWxlY3RlZENvdW50XCIgY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+XG4gICAgICAgICAge3sgc2VsZWN0ZWRMYWJlbCB9fVxuICAgICAgICAgIHt7IGdldERyYXdlclNlbGVjdFZhbHVlTGVuKClcbiAgICAgICAgICB9fTxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dNYXhDb3VudFwiXG4gICAgICAgICAgICA+L3t7IG56TWF4TXVsdGlwbGVDb3VudCB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSDmuIXnqbrmjInpkq4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q2xlYXJBbGwgJiYgZ2V0RHJhd2VyU2VsZWN0VmFsdWVMZW4oKSA+IDBcIlxuICAgICAgICAgIGNsYXNzPVwiYjE0IG1sLTE2XCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGwoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNsZWFyQWxsTGFiZWwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhcHAtcmQtYnV0dG9uXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JxdWlyZWQgPyBnZXREcmF3ZXJTZWxlY3RWYWx1ZUxlbigpID09PSAwIDogZmFsc2VcIlxuICAgICAgICAgIChjbGljayk9XCJtdWx0U2VsZWN0TW9iaWxlTmV4dCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwiZG9uZVwiIHwgdHJhbnNsYXRlIH19PC9hcHAtcmQtYnV0dG9uXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0g5YW25LuW5qih5p2/5L+d5oyB5LiN5Y+YIC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0U2VsZWN0ZWRUcGwgbGV0LXNlbGVjdGVkPlxuICB7eyBzZWxlY3RlZD8ubnpMYWJlbCB9fVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXJyZW5jeU9wdGlvblRwbCBsZXQtb3B0aW9uPlxuICA8ZGl2IGNsYXNzPVwicmQtZm9ybS1pdGVtLW9wdGlvbi1jb250ZW50XCI+XG4gICAgPGltZyBbc3JjXT1cIm9wdGlvbi5pY29uVXJsXCIgY2xhc3M9XCJyZC10b2tlbi1pY29uXCIgYWx0PVwiaWNvblwiIC8+XG4gICAgPHNwYW4+e3sgb3B0aW9uLm5hbWUgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXJyZW5jeVNlbGVjdGVkVHBsIGxldC1zZWxlY3RlZCBsZXQtZXh0cmE+XG4gIDxkaXYgY2xhc3M9XCJyZC1mb3JtLWl0ZW0tb3B0aW9uLWNvbnRlbnRcIj5cbiAgICA8aW1nXG4gICAgICBbc3JjXT1cImN1cnJlbmN5VXJsTWFwPy5bc2VsZWN0ZWQubnpWYWx1ZV1cIlxuICAgICAgY2xhc3M9XCJyZC10b2tlbi1pY29uXCJcbiAgICAgIGFsdD1cImljb25cIlxuICAgIC8+XG4gICAgPHNwYW4+e3sgc2VsZWN0ZWQubnpMYWJlbCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlbW92ZUljb24+XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjEyXCJcbiAgICBoZWlnaHQ9XCIxMlwiXG4gICAgdmlld0JveD1cIjAgMCAxMiAxMlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIuMzk2NDUgMi4zOTY0NUMyLjU5MTcxIDIuMjAxMTggMi45MDgyOSAyLjIwMTE4IDMuMTAzNTUgMi4zOTY0NUw2IDUuMjkyODlMOC44OTY0NSAyLjM5NjQ1QzkuMDkxNzEgMi4yMDExOCA5LjQwODI5IDIuMjAxMTggOS42MDM1NSAyLjM5NjQ1QzkuNzk4ODIgMi41OTE3MSA5Ljc5ODgyIDIuOTA4MjkgOS42MDM1NSAzLjEwMzU1TDYuNzA3MTEgNkw5LjYwMzU1IDguODk2NDVDOS43OTg4MiA5LjA5MTcxIDkuNzk4ODIgOS40MDgyOSA5LjYwMzU1IDkuNjAzNTVDOS40MDgyOSA5Ljc5ODgyIDkuMDkxNzEgOS43OTg4MiA4Ljg5NjQ1IDkuNjAzNTVMNiA2LjcwNzExTDMuMTAzNTUgOS42MDM1NUMyLjkwODI5IDkuNzk4ODIgMi41OTE3MSA5Ljc5ODgyIDIuMzk2NDUgOS42MDM1NUMyLjIwMTE4IDkuNDA4MjkgMi4yMDExOCA5LjA5MTcxIDIuMzk2NDUgOC44OTY0NUw1LjI5Mjg5IDZMMi4zOTY0NSAzLjEwMzU1QzIuMjAxMTggMi45MDgyOSAyLjIwMTE4IDIuNTkxNzEgMi4zOTY0NSAyLjM5NjQ1WlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUljb24+XG4gIDxzdmdcbiAgICB3aWR0aD1cIjE2XCJcbiAgICBoZWlnaHQ9XCIxNlwiXG4gICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIuNjAxMzYgNC45MDc3N0MyLjgzNjM5IDQuNjg3NDMgMy4yMDU1NSA0LjY5OTM0IDMuNDI1ODkgNC45MzQzN0w4LjAwMDMzIDkuODEzNzdMMTIuNTc0OCA0LjkzNDM3QzEyLjc5NTEgNC42OTkzNCAxMy4xNjQzIDQuNjg3NDMgMTMuMzk5MyA0LjkwNzc3QzEzLjYzNDMgNS4xMjgxMiAxMy42NDYyIDUuNDk3MjcgMTMuNDI1OSA1LjczMjNMOC40MjU4OSAxMS4wNjU2QzguMzE1NjEgMTEuMTgzMyA4LjE2MTU3IDExLjI1IDguMDAwMzMgMTEuMjVDNy44MzkwOSAxMS4yNSA3LjY4NTA0IDExLjE4MzMgNy41NzQ3NiAxMS4wNjU2TDIuNTc0NzYgNS43MzIzQzIuMzU0NDIgNS40OTcyNyAyLjM2NjMzIDUuMTI4MTEgMi42MDEzNiA0LjkwNzc3WlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bnotZHJhd2VyXG4gIFtuelZpc2libGVdPVwiZHJhd2VyT3BlbiAmJiBpc01vYmlsZSAmJiBidXNpbmVzc0xvY2F0aW9uXCJcbiAgW256UGxhY2VtZW50XT1cIidib3R0b20nXCJcbiAgW256SGVpZ2h0XT1cIic3MHZoJ1wiXG4gIFtuelRpdGxlXT1cIicnXCJcbiAgW256Q2xvc2FibGVdPVwiZmFsc2VcIlxuICBbbnpGb290ZXJdPVwiY3VzdG9tRHJvcGRvd25Gb290ZXJcIlxuICBueldyYXBDbGFzc05hbWU9XCJzZWxlY3QtZHJhd2VyXCJcbiAgKG56T25DbG9zZSk9XCJjbG9zZURyYXdlcigpXCJcbj5cbiAgPGRpdiAqbnpEcmF3ZXJDb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtZHJhd2VyLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAoYnVzaW5lc3NMb2NhdGlvbiA/IFwic2VsZWN0X25hdHVyZV9vZl9idXNpbmVzc1wiIDogXCIgXCIpIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VEcmF3ZXIoKVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTMuNDAwMzkgMy4zOTk5TDguMDAwMzkgNy45OTk5TTEyLjYwMDQgMTIuNTk5OUw4LjAwMDM5IDcuOTk5OU04LjAwMDM5IDcuOTk5OUwxMi42MDA0IDMuMzk5OUwzLjQwMDM5IDEyLjU5OTlcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJ2YXIoLS1yZC1jb3B5LXByaW1hcnkpXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zNlwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bnotaW5wdXQtZ3JvdXBcbiAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItc2VhcmNoXCJcbiAgICAgICAgW256UHJlZml4XT1cInByZWZpeEljb25TZWFyY2hcIlxuICAgICAgICBuekNsZWFyYWJsZVxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJkb01vYmlsZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbnotaW5wdXQtZ3JvdXA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2FzY2FkZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dNYXhDb3VudFwiIGNsYXNzPVwibXktMTYgbWwtOFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIj57eyB0b3BIaW50VGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmVkT3B0aW9ucz8ubGVuZ3RoXCI+XG4gICAgICAgIDxuei1jaGVja2JveC13cmFwcGVyXG4gICAgICAgICAgY2xhc3M9XCJxdWVzdGlvbi1jb250ZW50XCJcbiAgICAgICAgICBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIlxuICAgICAgICAgIChuek9uQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCIgY2xhc3M9XCJtYi04XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgbnotY2hlY2tib3hcbiAgICAgICAgICAgICAgW256VmFsdWVdPVwib3B0aW9uPy52YWx1ZVwiXG4gICAgICAgICAgICAgIFtuekRpc2FibGVkXT1cImdldE9wdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgICBbbnpDaGVja2VkXT1cImlzVmFsdWVTZWxlY3RlZChvcHRpb24/LnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPnt7IG9wdGlvbj8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbnotY2hlY2tib3gtd3JhcHBlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbnotZHJhd2VyPlxuXG48IS0tIE1vZGFsIGZvciBkZXNrdG9wIGJ1c2luZXNzIGxvY2F0aW9uIG11bHRpLXNlbGVjdCAtLT5cbjxuei1tb2RhbFxuICBbKG56VmlzaWJsZSldPVwibW9kYWxPcGVuXCJcbiAgW256VGl0bGVdPVwiJydcIlxuICBbbnpDbG9zYWJsZV09XCJmYWxzZVwiXG4gIFtuekZvb3Rlcl09XCJjdXN0b21Nb2RhbEZvb3RlclwiXG4gIG56V3JhcENsYXNzTmFtZT1cInNlbGVjdC1tb2RhbFwiXG4gIChuek9uQ2FuY2VsKT1cImNsb3NlTW9kYWwoKVwiXG4gIFtueldpZHRoXT1cIjYzMlwiXG4gIFtuekJvZHlTdHlsZV09XCJ7IGhlaWdodDogJzYwMHB4JyB9XCJcbiAgbnpDZW50ZXJlZFxuPlxuICA8ZGl2ICpuek1vZGFsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LW1vZGFsLWhlYWRlclwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImhlYWRlci10aXRsZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgKGJ1c2luZXNzTG9jYXRpb25UaXRsZVxuICAgICAgICAgICAgICA/IGJ1c2luZXNzTG9jYXRpb25UaXRsZVxuICAgICAgICAgICAgICA6IGJ1c2luZXNzTG9jYXRpb25cbiAgICAgICAgICAgICAgICA/IFwic2VsZWN0X25hdHVyZV9vZl9idXNpbmVzc1wiXG4gICAgICAgICAgICAgICAgOiBcIiBcIlxuICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTMuNDAwMzkgMy4zOTk5TDguMDAwMzkgNy45OTk5TTEyLjYwMDQgMTIuNTk5OUw4LjAwMDM5IDcuOTk5OU04LjAwMDM5IDcuOTk5OUwxMi42MDA0IDMuMzk5OUwzLjQwMDM5IDEyLjU5OTlcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJ2YXIoLS1yZC1jb3B5LXByaW1hcnkpXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zNlwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bnotaW5wdXQtZ3JvdXBcbiAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1tb2RhbC1zZWFyY2hcIlxuICAgICAgICBbbnpQcmVmaXhdPVwicHJlZml4SWNvblNlYXJjaFwiXG4gICAgICAgIG56Q2xlYXJhYmxlXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRvTW9iaWxlU2VhcmNoKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9uei1pbnB1dC1ncm91cD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXNjYWRlci1tb2RhbC1saXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTZcIiAqbmdJZj1cInNob3dUb3BIaW50ICYmIGlzU2hvd01heENvdW50XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPnt7IHRvcEhpbnRUZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyZWRPcHRpb25zPy5sZW5ndGhcIj5cbiAgICAgICAgPG56LWNoZWNrYm94LXdyYXBwZXJcbiAgICAgICAgICBjbGFzcz1cInF1ZXN0aW9uLWNvbnRlbnRcIlxuICAgICAgICAgIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgKG56T25DaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIiBjbGFzcz1cIm1iLThcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBuei1jaGVja2JveFxuICAgICAgICAgICAgICBbbnpWYWx1ZV09XCJvcHRpb24/LnZhbHVlXCJcbiAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiZ2V0T3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXG4gICAgICAgICAgICAgIFtuekNoZWNrZWRdPVwiaXNWYWx1ZVNlbGVjdGVkKG9wdGlvbj8udmFsdWUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+e3sgb3B0aW9uPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uei1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNwcmVmaXhJY29uU2VhcmNoPlxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIxNlwiXG4gICAgaGVpZ2h0PVwiMTZcIlxuICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTE0LjQ5NTEgMTMuNjk0OEwxMS4zOTYyIDEwLjU5NTlDMTIuMzE3NSA5LjQ2OTAyIDEyLjc3MDQgOC4wMzEyMiAxMi42NjEzIDYuNTc5ODNDMTIuNTUyMiA1LjEyODQ0IDExLjg4OTQgMy43NzQ1MSAxMC44MSAyLjc5ODA3QzkuNzMwNjYgMS44MjE2NCA4LjMxNzMgMS4yOTc0MSA2Ljg2MjI3IDEuMzMzODFDNS40MDcyMyAxLjM3MDIxIDQuMDIxODUgMS45NjQ0NSAyLjk5MjY2IDIuOTkzNjRDMS45NjM0OCA0LjAyMjgyIDEuMzY5MjMgNS40MDgyIDEuMzMyODMgNi44NjMyM0MxLjI5NjQzIDguMzE4MjYgMS44MjA2NiA5LjczMTYyIDIuNzk3MSAxMC44MTFDMy43NzM1NCAxMS44OTAzIDUuMTI3NDcgMTIuNTUzMSA2LjU3ODg3IDEyLjY2MjJDOC4wMzAyNiAxMi43NzEzIDkuNDY4MDcgMTIuMzE4NCAxMC41OTQ5IDExLjM5NzJMMTMuNjkzOCAxNC41MDMyQzEzLjgwMjcgMTQuNjA3MyAxMy45NDc0IDE0LjY2NTYgMTQuMDk4IDE0LjY2NjNDMTQuMjEwNSAxNC42NjYxIDE0LjMyMDQgMTQuNjMyNSAxNC40MTM4IDE0LjU2OTdDMTQuNTA3MSAxNC41MDY5IDE0LjU3OTYgMTQuNDE3OCAxNC42MjIyIDE0LjMxMzZDMTQuNjY0OCAxNC4yMDk1IDE0LjY3NTQgMTQuMDk1MSAxNC42NTI4IDEzLjk4NDlDMTQuNjMwMiAxMy44NzQ3IDE0LjU3NTMgMTMuNzczNyAxNC40OTUxIDEzLjY5NDhaTTcuMDA2NjcgMTEuNTQ2MUM2LjEwOTA1IDExLjU0NjEgNS4yMzE1OCAxMS4yNzk5IDQuNDg1MjMgMTAuNzgxMkMzLjczODg5IDEwLjI4MjUgMy4xNTcxOCA5LjU3MzcyIDIuODEzNjcgOC43NDQ0M0MyLjQ3MDE3IDcuOTE1MTMgMi4zODAyOSA3LjAwMjYgMi41NTU0MSA2LjEyMjIzQzIuNzMwNTMgNS4yNDE4NSAzLjE2Mjc3IDQuNDMzMTcgMy43OTc0OSAzLjc5ODQ2QzQuNDMyMjEgMy4xNjM3NSA1LjI0MDg4IDIuNzMxNSA2LjEyMTI2IDIuNTU2MzhDNy4wMDE2NCAyLjM4MTI3IDcuOTE0MTcgMi40NzExNCA4Ljc0MzQ3IDIuODE0NjVDOS41NzI3NyAzLjE1ODE1IDEwLjI4MTYgMy43Mzk4NiAxMC43ODAzIDQuNDg2MkMxMS4yNzkgNS4yMzI1NSAxMS41NDUxIDYuMTEwMDEgMTEuNTQ1MSA3LjAwNzYzQzExLjU0MzMgOC4yMTA3MyAxMS4wNjQ1IDkuMzY0MDIgMTAuMjEzOCAxMC4yMTQ3QzkuMzYzMDYgMTEuMDY1NSA4LjIwOTc3IDExLjU0NDIgNy4wMDY2NyAxMS41NDYxWlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1zZWxlY3QvcmQtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1zZWxlY3QvcmQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUVsQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCeEIsTUFBTSxPQUFPLGlCQUFpQjtJQW1CNUIsSUFDSSxPQUFPLENBQUMsR0FBb0I7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBMkNELFVBQVU7SUFDVixJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FB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cEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQW1DTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbW9uLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JkLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JkLXNlbGVjdC5jb21wb25lbnQuc2NzcycsICcuL3NlbGVjdC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VzdG9tVHBsOiBhbnk7XG4gIEBJbnB1dCgpIG9wdGlvblRwbDogYW55O1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG56TW9kZTogJ211bHRpcGxlJyB8ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgaXNDdXJyZW5jeT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1cnJlbmN5VXJsTWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgQElucHV0KCkgb3B0aW9uSGVpZ2h0UHg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG56TWF4TXVsdGlwbGVDb3VudDogYW55ID0gMTAwO1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNTaG93U2VhcmNoID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzUmVtb3RlU2VhcmNoID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGlzUnF1aXJlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGlzU2hvd0Vycm9yVGlwID0gdHJ1ZTsgLy8g6Zeu5Y235aSW6YOo5bey57uP5pyJ6ZSZ6K+v5o+Q56S65LqG77yM6L+Z6YeM6ZyA6KaB5b+955WlXG4gIEBJbnB1dCgpIGlzU2VhcmNoV2lkdGhBdXRvID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IG9wdGlvbnModmFsOiBJU2VsZWN0T3B0aW9uW10pIHtcbiAgICB0aGlzLl9yYXdPcHRpb25zID0gdmFsO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdmFsO1xuICB9XG4gIGdldCBvcHRpb25zKCk6IElTZWxlY3RPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jhd09wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHBhdHRlcm46ICdpbnZhbGlkX2Zvcm1hdCcsXG4gICAgY3VzdG9tOiAndmFsaWRhdGlvbl9mYWlsZWQnLFxuICB9O1xuXG4gIEBPdXRwdXQoKSBzZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdPigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsVG9Cb3R0b21FbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgX3Jhd09wdGlvbnM6IElTZWxlY3RPcHRpb25bXSA9IFtdO1xuICBmaWx0ZXJlZE9wdGlvbnM6IElTZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gIHZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBuYXRpdmVWYWx1ZTogSVNlbGVjdE9wdGlvblsndmFsdWUnXSB8IElTZWxlY3RPcHRpb25bJ3ZhbHVlJ11bXSB8IHVuZGVmaW5lZCA9XG4gICAgdW5kZWZpbmVkO1xuICBkcmF3ZXJTZWxlY3RWYWx1ZTpcbiAgICB8IGFueVxuICAgIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVxuICAgIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVtdXG4gICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHNlYXJjaElucHV0ID0gJyc7XG4gIEBJbnB1dCgpIGJ1c2luZXNzTG9jYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgYnVzaW5lc3NMb2NhdGlvblRpdGxlID0gJyc7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IElTZWxlY3RPcHRpb24gfCBJU2VsZWN0T3B0aW9uW10gfCB1bmRlZmluZWQpID0+IHZvaWQgPVxuICAgICgpID0+IHt9O1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBpc0ZvY3VzID0gZmFsc2U7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBpc0NvbXBvbmVudFJlYWR5ID0gZmFsc2U7XG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgc2VhcmNoVGVybSA9ICcnO1xuICBkcmF3ZXJPcGVuID0gZmFsc2U7XG4gIG1vZGFsT3BlbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93U2VsZWN0ZWRDb3VudCA9IGZhbHNlOyAvLyDmlrDlop7vvJrmmK/lkKbmmL7npLrpgInkuK3orqHmlbBcbiAgQElucHV0KCkgc2hvd0NsZWFyQWxsID0gZmFsc2U7IC8vIOaWsOWinu+8muaYr+WQpuaYvuekuua4heepuuaMiemSrlxuICBASW5wdXQoKSBzZWxlY3RlZExhYmVsID0gJ1NlbGVjdGVkOic7XG4gIEBJbnB1dCgpIGNsZWFyQWxsTGFiZWwgPSAnQ2xlYXIgYWxsJztcbiAgQElucHV0KCkgc2hvd1RvcEhpbnQgPSBmYWxzZTsgLy8g5paw5aKe77ya5piv5ZCm5pi+56S66aG26YOo5o+Q56S6XG4gIEBJbnB1dCgpIHRvcEhpbnRUZXh0ID0gJ1lvdSBjYW4gY2hvb3NlIHVwIHRvIDMgbG9jYXRpb25zJzsgLy8g6aG26YOo5o+Q56S65paH5pysXG4gIC8vIOiuoeeul+mAieS4reeahOaVsOmHj1xuICBnZXQgc2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5uYXRpdmVWYWx1ZSkgPyB0aGlzLm5hdGl2ZVZhbHVlLmxlbmd0aCA6IDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hdGl2ZVZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uYXRpdmVWYWx1ZSAhPT0gbnVsbCA/IDEgOiAwO1xuICB9XG5cbiAgZ2V0IGRyb3Bkb3duQ2xhc3NOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIOWfuuehgOexu+WQjVxuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgY2xhc3Nlcy5wdXNoKCdyZC1mb3JtLWl0ZW0tbXVsdGlwbGUtc2VsZWN0LWRyb3Bkb3duJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsYXNzZXMucHVzaCgncmQtZm9ybS1pdGVtLXNlbGVjdC1kcm9wZG93bicpO1xuICAgIH1cblxuICAgIC8vIOadoeS7tuexu+WQjVxuICAgIGlmICh0aGlzLnNob3dUb3BIaW50KSB7XG4gICAgICBjbGFzc2VzLnB1c2goJ2hhcy10b3AtaGludCcpO1xuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0IGlzU2hvd01heENvdW50KCkge1xuICAgIC8vIGhhY2tcbiAgICByZXR1cm4gdGhpcy5uek1heE11bHRpcGxlQ291bnQgPCAxMDAwMDtcbiAgfVxuXG4gIC8vIOWTjeW6lOW8j++8muaYr+WQpuaYr+enu+WKqOerr1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy51cGRhdGVJc01vYmlsZSgpO1xuICB9XG5cbiAgLy8g5riF56m65omA5pyJ6YCJ6aG5XG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSBbXTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPSBbXTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2w/LmVycm9ycykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGZpcnN0RXJyb3IgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2w/LmVycm9ycyB8fCB7fSlbMF07XG5cbiAgICBjb25zdCBtc2cgPSB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl07XG5cbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ3BsZWFzZV9zZWxlY3QnLFxuICAgICAgICAgICl9JHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmNvbnRyb2w/LmVycm9yc1snY3VzdG9tJ10gfHxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd2YWxpZGF0aW9uX2ZhaWxlZCcpXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5lcnJvck1lc3NhZ2VzW2ZpcnN0RXJyb3JdKSB8fFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJylcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuY29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5jb250cm9sPy50b3VjaGVkIHx8IHRoaXMuY29udHJvbD8uZGlydHkpXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVJc01vYmlsZSgpO1xuICAgIGNvbnN0IG1xID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDk5N3B4KScpO1xuICAgIGlmIChtcS5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICBtcS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtcS5hZGRMaXN0ZW5lcigoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSXNNb2JpbGUoKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA5OTdweCknKS5tYXRjaGVzO1xuICB9XG5cbiAgb3BlbkRyYXdlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuXG4gICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuYnVzaW5lc3NMb2NhdGlvbiAmJiB0aGlzLm56TW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgdGhpcy5tb2RhbE9wZW4gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgZ2V0RHJhd2VyU2VsZWN0VmFsdWVMZW4oKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlPy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlRHJhd2VyKCkge1xuICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICB9XG5cbiAgLy8g6I635Y+W5oq95bGJ5Lit5bey6YCJ5Lit55qE5pWw6YePXG4gIGdldCBkcmF3ZXJTZWxlY3RlZENvdW50KCk6IG51bWJlciB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUgPyAxIDogMDtcbiAgfVxuXG4gIC8vIOajgOafpemAiemhueaYr+WQpuW6lOivpeiiq+emgeeUqFxuICBnZXRPcHRpb25EaXNhYmxlZChvcHRpb246IElTZWxlY3RPcHRpb24pOiBib29sZWFuIHtcbiAgICAvLyDlpoLmnpzpgInpobnmnKzouqvooqvnpoHnlKjvvIznm7TmjqXov5Tlm550cnVlXG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8g5aaC5p6c5b2T5YmN5LiN5piv5aSa6YCJ5qih5byP77yM6L+U5Zue6YCJ6aG555qEZGlzYWJsZWTnirbmgIFcbiAgICBpZiAodGhpcy5uek1vZGUgIT09ICdtdWx0aXBsZScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyDlnKjnp7vliqjnq6/mir3lsYnkuK3vvIzmo4Dmn6XmmK/lkKbovr7liLDmnIDlpKfpgInmi6nmlbDph49cbiAgICBpZiAoXG4gICAgICAodGhpcy5pc01vYmlsZSAmJiB0aGlzLmJ1c2luZXNzTG9jYXRpb24gJiYgdGhpcy5kcmF3ZXJPcGVuKSB8fFxuICAgICAgKCF0aGlzLmlzTW9iaWxlICYmIHRoaXMuYnVzaW5lc3NMb2NhdGlvbiAmJiB0aGlzLm1vZGFsT3BlbilcbiAgICApIHtcbiAgICAgIC8vIOWmguaenOW3sue7j+i+vuWIsOacgOWkp+mAieaLqeaVsOmHj++8jOW5tuS4lOW9k+WJjemAiemhueayoeacieiiq+mAieS4re+8jOWImeemgeeUqFxuICAgICAgaWYgKHRoaXMuZHJhd2VyU2VsZWN0ZWRDb3VudCA+PSB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNWYWx1ZVNlbGVjdGVkKG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8g5L+u5pS5IG9uQ2hlY2tib3hDaGFuZ2Ug5pa55rOV77yM5re75Yqg5pWw6YeP6ZmQ5Yi2XG4gIG9uQ2hlY2tib3hDaGFuZ2Uoc2VsZWN0ZWRWYWx1ZXM6IGFueVtdKTogdm9pZCB7XG4gICAgLy8g5qOA5p+l5piv5ZCm6LaF6L+H5pyA5aSn6YCJ5oup5pWw6YePXG4gICAgaWYgKFxuICAgICAgdGhpcy5uek1vZGUgPT09ICdtdWx0aXBsZScgJiZcbiAgICAgIHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IHRoaXMubnpNYXhNdWx0aXBsZUNvdW50XG4gICAgKSB7XG4gICAgICAvLyDlpoLmnpzotoXov4fmnIDlpKfmlbDph4/vvIzlj6rkv53nlZnliY0gbnpNYXhNdWx0aXBsZUNvdW50IOS4qlxuICAgICAgc2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZFZhbHVlcy5zbGljZSgwLCB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCk7XG4gICAgfVxuXG4gICAgbGV0IG5ld0RyYXdlclZhbHVlOiBhbnlbXTtcblxuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0pIHtcbiAgICAgIC8vIOWcqOaQnOe0oueKtuaAgeS4i++8jOWQiOW5tuWOhuWPsumAieS4reWAvOWSjOW9k+WJjemAieS4reWAvFxuICAgICAgY29uc3QgY3VycmVudERyYXdlclZhbHVlID0gQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKVxuICAgICAgICA/IHRoaXMuZHJhd2VyU2VsZWN0VmFsdWVcbiAgICAgICAgOiBbXTtcbiAgICAgIC8vIOaJvuWHuuiiq+WPlua2iOWLvumAieeahOWAvFxuICAgICAgY29uc3QgcHJldmlvdXNGaWx0ZXJlZFZhbHVlcyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zXG4gICAgICAgIC5tYXAoKG9wdCkgPT4gb3B0LnZhbHVlKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gY3VycmVudERyYXdlclZhbHVlLmluY2x1ZGVzKHZhbHVlKSk7XG5cbiAgICAgIGNvbnN0IGRlc2VsZWN0ZWRWYWx1ZXMgPSBwcmV2aW91c0ZpbHRlcmVkVmFsdWVzLmZpbHRlcihcbiAgICAgICAgKHZhbHVlKSA9PiAhc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXModmFsdWUpLFxuICAgICAgKTtcblxuICAgICAgLy8g5LuO5b2T5YmN5oq95bGJ5YC85Lit56e76Zmk6KKr5Y+W5raI5Yu+6YCJ55qE5YC8XG4gICAgICBjb25zdCByZW1haW5pbmdWYWx1ZXMgPSBjdXJyZW50RHJhd2VyVmFsdWUuZmlsdGVyKFxuICAgICAgICAodmFsdWUpID0+ICFkZXNlbGVjdGVkVmFsdWVzLmluY2x1ZGVzKHZhbHVlKSxcbiAgICAgICk7XG5cbiAgICAgIC8vIOWQiOW5tuWJqeS9meWAvOWSjOW9k+WJjemAieS4reWAvO+8iOWOu+mHje+8iVxuICAgICAgbmV3RHJhd2VyVmFsdWUgPSBbLi4ubmV3IFNldChbLi4ucmVtYWluaW5nVmFsdWVzLCAuLi5zZWxlY3RlZFZhbHVlc10pXTtcblxuICAgICAgLy8g5YaN5qyh5qOA5p+l5piv5ZCm6LaF6L+H5pyA5aSn5pWw6YePXG4gICAgICBpZiAobmV3RHJhd2VyVmFsdWUubGVuZ3RoID4gdGhpcy5uek1heE11bHRpcGxlQ291bnQpIHtcbiAgICAgICAgbmV3RHJhd2VyVmFsdWUgPSBuZXdEcmF3ZXJWYWx1ZS5zbGljZSgwLCB0aGlzLm56TWF4TXVsdGlwbGVDb3VudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOmdnuaQnOe0oueKtuaAgeS4i++8jOebtOaOpeS9v+eUqOW9k+WJjemAieS4reWAvO+8jOS9huehruS/neS4jei2hei/h+acgOWkp+aVsOmHj1xuICAgICAgbmV3RHJhd2VyVmFsdWUgPVxuICAgICAgICBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPiB0aGlzLm56TWF4TXVsdGlwbGVDb3VudFxuICAgICAgICAgID8gc2VsZWN0ZWRWYWx1ZXMuc2xpY2UoMCwgdGhpcy5uek1heE11bHRpcGxlQ291bnQpXG4gICAgICAgICAgOiBzZWxlY3RlZFZhbHVlcztcbiAgICB9XG5cbiAgICB0aGlzLmRyYXdlclNlbGVjdFZhbHVlID0gbmV3RHJhd2VyVmFsdWU7XG4gIH1cblxuICAvLyDkv67mlLnlpJrpgInnp7vliqjnq6/kuIvkuIDmraXnmoTmlrnms5VcbiAgbXVsdFNlbGVjdE1vYmlsZU5leHQoKTogdm9pZCB7XG4gICAgLy8g56Gu5L+d6YCJ5oup5pWw6YeP5LiN6LaF6L+H5pyA5aSn6ZmQ5Yi2XG4gICAgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKSAmJlxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZS5sZW5ndGggPiB0aGlzLm56TWF4TXVsdGlwbGVDb3VudFxuICAgICkge1xuICAgICAgLy8g5aaC5p6c6LaF6L+H5pyA5aSn5pWw6YeP77yM5oiq5Y+W5YmNbuS4qlxuICAgICAgdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZSA9IHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUuc2xpY2UoXG4gICAgICAgIDAsXG4gICAgICAgIHRoaXMubnpNYXhNdWx0aXBsZUNvdW50LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUpO1xuICAgIHRoaXMuY2xvc2VEcmF3ZXIoKTtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgfVxuXG4gIGdldERpc2FibGVOZXh0KCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZHJhd2VyU2VsZWN0VmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZT8ubGVuZ3RoID4gdGhpcy5uek1heE11bHRpcGxlQ291bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBkb01vYmlsZVNlYXJjaCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHQ6IGFueSkgPT5cbiAgICAgIG9wdC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSksXG4gICAgKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzVmFsdWVTZWxlY3RlZChvcHRpb25WYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMubnpNb2RlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRyYXdlclNlbGVjdFZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kcmF3ZXJTZWxlY3RWYWx1ZS5pbmNsdWRlcyhvcHRpb25WYWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRyYXdlclNlbGVjdFZhbHVlID09PSBvcHRpb25WYWx1ZTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBJU2VsZWN0T3B0aW9uIHwgSVNlbGVjdE9wdGlvbltdKTogdm9pZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWUubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZT8udmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKFxuICAgIHZhbHVlOiBJU2VsZWN0T3B0aW9uWyd2YWx1ZSddIHwgSVNlbGVjdE9wdGlvblsndmFsdWUnXVtdLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLm5hdGl2ZVZhbHVlID0gdmFsdWU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT4gdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5vcHRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uU2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbUVtaXQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHNlYXJjaFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gc2VhcmNoVmFsdWU7XG4gICAgaWYgKHRoaXMuaXNSZW1vdGVTZWFyY2gpIHtcbiAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoVmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxvd2VyID0gc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuX3Jhd09wdGlvbnMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgaXRlbS5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyKSxcbiAgICApO1xuICB9XG5cbiAgaGFuZGxlT3BlbkNoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuaXNPcGVuID0gdmFsdWU7XG4gIH1cblxuICBnZXRDdXJyZW5jeUtleSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KC9bLS9dLyk7XG4gICAgY29uc3QgbWFwS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuY3VycmVuY3lVcmxNYXAgfHwge30pO1xuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKG1hcEtleXMuaW5jbHVkZXMocGFydCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcnQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJ0c1swXTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyDnrYnlvoXkuIvkuIDkuKrlj5jmm7Tmo4DmtYvlkajmnJ/vvIznoa7kv53miYDmnInmoLflvI/lkoznsbvlt7LlupTnlKhcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNDb21wb25lbnRSZWFkeSA9IHRydWU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCAwKTtcbiAgfVxufVxuIiwiPCEtLSByZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwgLS0+XG48ZGl2XG4gIFtjbGFzcy5yZC1zZWxlY3QtcmVhZHldPVwiaXNDb21wb25lbnRSZWFkeVwiXG4gIFtjbGFzcy5yZC1zZWFyY2gtd2lkdGgtYXV0b109XCJpc1NlYXJjaFdpZHRoQXV0b1wiXG4gIGNsYXNzPVwicmQtc2VsZWN0LWNvbnRhaW5lclwiXG4+XG4gIDxhcHAtcmQtZm9ybS1pdGVtXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiISFzZWFyY2hJbnB1dCB8fCBpc0ZvY3VzIHx8IGlzT3BlblwiXG4gICAgW3R5cGVdPVwiJ3NlbGVjdCdcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgW3ZhbHVlXT1cIm5hdGl2ZVZhbHVlXCJcbiAgICBbZXJyb3JNZXNzYWdlXT1cInNob3dFcnJvciAmJiBpc1Nob3dFcnJvclRpcCA/IGN1cnJlbnRFcnJvck1lc3NhZ2UgOiAnJ1wiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3JkLWZvcm0taXRlbS1waG9uZSc6ICFsYWJlbCxcbiAgICB9XCJcbiAgICAoY2xpY2spPVwib3BlbkRyYXdlcigpXCJcbiAgPlxuICAgIDxuei1zZWxlY3RcbiAgICAgIGNsYXNzPVwicmQtZm9ybS1pdGVtLXNlbGVjdFwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICdwb2ludGVyLWV2ZW50cyc6XG4gICAgICAgICAgYnVzaW5lc3NMb2NhdGlvbiAmJiBuek1vZGUgPT09ICdtdWx0aXBsZScgPyAnbm9uZScgOiAnJyxcbiAgICAgIH1cIlxuICAgICAgbnpCb3JkZXJsZXNzXG4gICAgICBbbnpNb2RlXT1cIm56TW9kZVwiXG4gICAgICBbbnpTaG93QXJyb3ddPVwiZmFsc2VcIlxuICAgICAgWyhuZ01vZGVsKV09XCJuYXRpdmVWYWx1ZVwiXG4gICAgICBbbnpNYXhNdWx0aXBsZUNvdW50XT1cIm56TWF4TXVsdGlwbGVDb3VudCA/IG56TWF4TXVsdGlwbGVDb3VudCA6IG51bGxcIlxuICAgICAgW256UGxhY2VIb2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW256Q3VzdG9tVGVtcGxhdGVdPVwiXG4gICAgICAgIGN1c3RvbVRwbFxuICAgICAgICAgID8gY3VzdG9tVHBsXG4gICAgICAgICAgOiBpc0N1cnJlbmN5XG4gICAgICAgICAgICA/IGN1cnJlbmN5U2VsZWN0ZWRUcGxcbiAgICAgICAgICAgIDogZGVmYXVsdFNlbGVjdGVkVHBsXG4gICAgICBcIlxuICAgICAgKG56U2Nyb2xsVG9Cb3R0b20pPVwib25TY3JvbGxUb0JvdHRvbSgpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChuekZvY3VzKT1cImlzRm9jdXMgPSB0cnVlXCJcbiAgICAgIChuekJsdXIpPVwiaXNGb2N1cyA9IGZhbHNlXCJcbiAgICAgIFtuekRyb3Bkb3duQ2xhc3NOYW1lXT1cImRyb3Bkb3duQ2xhc3NOYW1lc1wiXG4gICAgICBbbnpPcHRpb25PdmVyZmxvd1NpemVdPVwiNVwiXG4gICAgICBbbnpPcHRpb25IZWlnaHRQeF09XCJvcHRpb25IZWlnaHRQeCB8fCA0MFwiXG4gICAgICBbbnpTdWZmaXhJY29uXT1cImN1c3RvbUljb25cIlxuICAgICAgW256UmVtb3ZlSWNvbl09XCJyZW1vdmVJY29uXCJcbiAgICAgIFtuelNob3dTZWFyY2hdPVwiXG4gICAgICAgIG56TW9kZSA9PT0gJ211bHRpcGxlJyAmJiBidXNpbmVzc0xvY2F0aW9uID8gZmFsc2UgOiBpc1Nob3dTZWFyY2hcbiAgICAgIFwiXG4gICAgICAobnpPblNlYXJjaCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgKG56T3BlbkNoYW5nZSk9XCJoYW5kbGVPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgICAgW256RHJvcGRvd25SZW5kZXJdPVwiXG4gICAgICAgIHNob3dTZWxlY3RlZENvdW50IHx8IHNob3dDbGVhckFsbCA/IGN1c3RvbURyb3Bkb3duRm9vdGVyIDogbnVsbFxuICAgICAgXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3JkLXNlbGVjdC1kaXNhYmxlZC1vcGVuJzogaXNNb2JpbGUgJiYgYnVzaW5lc3NMb2NhdGlvbixcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuei1vcHRpb25cbiAgICAgICAgKm5nSWY9XCJzaG93VG9wSGludCAmJiBpc1Nob3dNYXhDb3VudFwiXG4gICAgICAgIG56RGlzYWJsZWRcbiAgICAgICAgbnpDdXN0b21Db250ZW50XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b3AtaGludC1vcHRpb25cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIj57eyB0b3BIaW50VGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L256LW9wdGlvbj5cblxuICAgICAgPG56LW9wdGlvblxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uc1wiXG4gICAgICAgIFtuelZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIFtuekxhYmVsXT1cIm9wdGlvbi5uYW1lIHx8ICcnXCJcbiAgICAgICAgW256RGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgW256Q3VzdG9tQ29udGVudF09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvblRwbCB8fCBpc0N1cnJlbmN5XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgaXNDdXJyZW5jeSA/IGN1cnJlbmN5T3B0aW9uVHBsIDogb3B0aW9uVHBsO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEob3B0aW9uVHBsIHx8IGlzQ3VycmVuY3kpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+e3sgb3B0aW9uPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbnotb3B0aW9uPlxuXG4gICAgICA8bnotb3B0aW9uICpuZ0lmPVwiaXNMb2FkaW5nXCIgbnpEaXNhYmxlZCBuekN1c3RvbUNvbnRlbnQ+XG4gICAgICAgIDxuei1zcGluIHN0eWxlPVwicGFkZGluZzogMTZweCAwXCI+PC9uei1zcGluPlxuICAgICAgPC9uei1vcHRpb24+XG4gICAgPC9uei1zZWxlY3Q+XG4gIDwvYXBwLXJkLWZvcm0taXRlbT5cbjwvZGl2PlxuXG48IS0tIOiHquWumuS5ieS4i+aLieiPnOWNleW6lemDqCAtLT5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tRHJvcGRvd25Gb290ZXI+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3QtZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2VsZWN0LWZvb3Rlci1jb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgID5cbiAgICAgIDxkaXY+XG4gICAgICAgIDwhLS0g6YCJ5Lit6K6h5pWwIC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dTZWxlY3RlZENvdW50XCIgY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+XG4gICAgICAgICAge3sgc2VsZWN0ZWRMYWJlbCB9fVxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBpc01vYmlsZSA/IGdldERyYXdlclNlbGVjdFZhbHVlTGVuKCkgOiBzZWxlY3RlZENvdW50XG4gICAgICAgICAgfX0vPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd01heENvdW50XCJcbiAgICAgICAgICAgID4ve3sgbnpNYXhNdWx0aXBsZUNvdW50IH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIOa4heepuuaMiemSriAtLT5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgc2hvd0NsZWFyQWxsICYmXG4gICAgICAgICAgICAoaXNNb2JpbGUgPyBnZXREcmF3ZXJTZWxlY3RWYWx1ZUxlbigpIDogc2VsZWN0ZWRDb3VudCkgPiAwXG4gICAgICAgICAgXCJcbiAgICAgICAgICBjbGFzcz1cImIxNCBtbC0xNlwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjbGVhckFsbExhYmVsIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8YXBwLXJkLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAqbmdJZj1cImlzTW9iaWxlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZU5leHQoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm11bHRTZWxlY3RNb2JpbGVOZXh0KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJuZXh0XCIgfCB0cmFuc2xhdGUgfX08L2FwcC1yZC1idXR0b25cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21Nb2RhbEZvb3Rlcj5cbiAgPGRpdiBjbGFzcz1cInNlbGVjdC1mb290ZXItY29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWxlY3QtZm9vdGVyLWNvbnRlbnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgPlxuICAgICAgPGRpdj5cbiAgICAgICAgPCEtLSDpgInkuK3orqHmlbAgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1NlbGVjdGVkQ291bnRcIiBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgICB7eyBzZWxlY3RlZExhYmVsIH19XG4gICAgICAgICAge3sgZ2V0RHJhd2VyU2VsZWN0VmFsdWVMZW4oKVxuICAgICAgICAgIH19PG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd01heENvdW50XCJcbiAgICAgICAgICAgID4ve3sgbnpNYXhNdWx0aXBsZUNvdW50IH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIOa4heepuuaMiemSriAtLT5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cInNob3dDbGVhckFsbCAmJiBnZXREcmF3ZXJTZWxlY3RWYWx1ZUxlbigpID4gMFwiXG4gICAgICAgICAgY2xhc3M9XCJiMTQgbWwtMTZcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhckFsbCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY2xlYXJBbGxMYWJlbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPGFwcC1yZC1idXR0b25cbiAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzUnF1aXJlZCA/IGdldERyYXdlclNlbGVjdFZhbHVlTGVuKCkgPT09IDAgOiBmYWxzZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm11bHRTZWxlY3RNb2JpbGVOZXh0KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJkb25lXCIgfCB0cmFuc2xhdGUgfX08L2FwcC1yZC1idXR0b25cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSDlhbbku5bmqKHmnb/kv53mjIHkuI3lj5ggLS0+XG48bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RlZFRwbCBsZXQtc2VsZWN0ZWQ+XG4gIHt7IHNlbGVjdGVkPy5uekxhYmVsIH19XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1cnJlbmN5T3B0aW9uVHBsIGxldC1vcHRpb24+XG4gIDxkaXYgY2xhc3M9XCJyZC1mb3JtLWl0ZW0tb3B0aW9uLWNvbnRlbnRcIj5cbiAgICA8aW1nIFtzcmNdPVwib3B0aW9uLmljb25VcmxcIiBjbGFzcz1cInJkLXRva2VuLWljb25cIiBhbHQ9XCJpY29uXCIgLz5cbiAgICA8c3Bhbj57eyBvcHRpb24ubmFtZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1cnJlbmN5U2VsZWN0ZWRUcGwgbGV0LXNlbGVjdGVkIGxldC1leHRyYT5cbiAgPGRpdiBjbGFzcz1cInJkLWZvcm0taXRlbS1vcHRpb24tY29udGVudFwiPlxuICAgIDxpbWdcbiAgICAgIFtzcmNdPVwiY3VycmVuY3lVcmxNYXA/LltnZXRDdXJyZW5jeUtleShzZWxlY3RlZC5uelZhbHVlKV1cIlxuICAgICAgY2xhc3M9XCJyZC10b2tlbi1pY29uXCJcbiAgICAgIGFsdD1cImljb25cIlxuICAgIC8+XG4gICAgPHNwYW4+e3sgc2VsZWN0ZWQubnpMYWJlbCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3JlbW92ZUljb24+XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjEyXCJcbiAgICBoZWlnaHQ9XCIxMlwiXG4gICAgdmlld0JveD1cIjAgMCAxMiAxMlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIuMzk2NDUgMi4zOTY0NUMyLjU5MTcxIDIuMjAxMTggMi45MDgyOSAyLjIwMTE4IDMuMTAzNTUgMi4zOTY0NUw2IDUuMjkyODlMOC44OTY0NSAyLjM5NjQ1QzkuMDkxNzEgMi4yMDExOCA5LjQwODI5IDIuMjAxMTggOS42MDM1NSAyLjM5NjQ1QzkuNzk4ODIgMi41OTE3MSA5Ljc5ODgyIDIuOTA4MjkgOS42MDM1NSAzLjEwMzU1TDYuNzA3MTEgNkw5LjYwMzU1IDguODk2NDVDOS43OTg4MiA5LjA5MTcxIDkuNzk4ODIgOS40MDgyOSA5LjYwMzU1IDkuNjAzNTVDOS40MDgyOSA5Ljc5ODgyIDkuMDkxNzEgOS43OTg4MiA4Ljg5NjQ1IDkuNjAzNTVMNiA2LjcwNzExTDMuMTAzNTUgOS42MDM1NUMyLjkwODI5IDkuNzk4ODIgMi41OTE3MSA5Ljc5ODgyIDIuMzk2NDUgOS42MDM1NUMyLjIwMTE4IDkuNDA4MjkgMi4yMDExOCA5LjA5MTcxIDIuMzk2NDUgOC44OTY0NUw1LjI5Mjg5IDZMMi4zOTY0NSAzLjEwMzU1QzIuMjAxMTggMi45MDgyOSAyLjIwMTE4IDIuNTkxNzEgMi4zOTY0NSAyLjM5NjQ1WlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUljb24+XG4gIDxzdmdcbiAgICB3aWR0aD1cIjE2XCJcbiAgICBoZWlnaHQ9XCIxNlwiXG4gICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTIuNjAxMzYgNC45MDc3N0MyLjgzNjM5IDQuNjg3NDMgMy4yMDU1NSA0LjY5OTM0IDMuNDI1ODkgNC45MzQzN0w4LjAwMDMzIDkuODEzNzdMMTIuNTc0OCA0LjkzNDM3QzEyLjc5NTEgNC42OTkzNCAxMy4xNjQzIDQuNjg3NDMgMTMuMzk5MyA0LjkwNzc3QzEzLjYzNDMgNS4xMjgxMiAxMy42NDYyIDUuNDk3MjcgMTMuNDI1OSA1LjczMjNMOC40MjU4OSAxMS4wNjU2QzguMzE1NjEgMTEuMTgzMyA4LjE2MTU3IDExLjI1IDguMDAwMzMgMTEuMjVDNy44MzkwOSAxMS4yNSA3LjY4NTA0IDExLjE4MzMgNy41NzQ3NiAxMS4wNjU2TDIuNTc0NzYgNS43MzIzQzIuMzU0NDIgNS40OTcyNyAyLjM2NjMzIDUuMTI4MTEgMi42MDEzNiA0LjkwNzc3WlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bnotZHJhd2VyXG4gIFtuelZpc2libGVdPVwiZHJhd2VyT3BlbiAmJiBpc01vYmlsZSAmJiBidXNpbmVzc0xvY2F0aW9uXCJcbiAgW256UGxhY2VtZW50XT1cIidib3R0b20nXCJcbiAgW256SGVpZ2h0XT1cIic3MHZoJ1wiXG4gIFtuelRpdGxlXT1cIicnXCJcbiAgW256Q2xvc2FibGVdPVwiZmFsc2VcIlxuICBbbnpGb290ZXJdPVwiY3VzdG9tRHJvcGRvd25Gb290ZXJcIlxuICBueldyYXBDbGFzc05hbWU9XCJzZWxlY3QtZHJhd2VyXCJcbiAgKG56T25DbG9zZSk9XCJjbG9zZURyYXdlcigpXCJcbj5cbiAgPGRpdiAqbnpEcmF3ZXJDb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtZHJhd2VyLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAoYnVzaW5lc3NMb2NhdGlvbiA/IFwic2VsZWN0X25hdHVyZV9vZl9idXNpbmVzc1wiIDogXCIgXCIpIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VEcmF3ZXIoKVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTMuNDAwMzkgMy4zOTk5TDguMDAwMzkgNy45OTk5TTEyLjYwMDQgMTIuNTk5OUw4LjAwMDM5IDcuOTk5OU04LjAwMDM5IDcuOTk5OUwxMi42MDA0IDMuMzk5OUwzLjQwMDM5IDEyLjU5OTlcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJ2YXIoLS1yZC1jb3B5LXByaW1hcnkpXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zNlwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bnotaW5wdXQtZ3JvdXBcbiAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItc2VhcmNoXCJcbiAgICAgICAgW256UHJlZml4XT1cInByZWZpeEljb25TZWFyY2hcIlxuICAgICAgICBuekNsZWFyYWJsZVxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJkb01vYmlsZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbnotaW5wdXQtZ3JvdXA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2FzY2FkZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dNYXhDb3VudFwiIGNsYXNzPVwibXktMTYgbWwtOFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIj57eyB0b3BIaW50VGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmVkT3B0aW9ucz8ubGVuZ3RoXCI+XG4gICAgICAgIDxuei1jaGVja2JveC13cmFwcGVyXG4gICAgICAgICAgY2xhc3M9XCJxdWVzdGlvbi1jb250ZW50XCJcbiAgICAgICAgICBjbGFzcz1cInQxNC00MDAgYy10ZXh0LXByaW1hcnlcIlxuICAgICAgICAgIChuek9uQ2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCIgY2xhc3M9XCJtYi04XCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgbnotY2hlY2tib3hcbiAgICAgICAgICAgICAgW256VmFsdWVdPVwib3B0aW9uPy52YWx1ZVwiXG4gICAgICAgICAgICAgIFtuekRpc2FibGVkXT1cImdldE9wdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgICBbbnpDaGVja2VkXT1cImlzVmFsdWVTZWxlY3RlZChvcHRpb24/LnZhbHVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPnt7IG9wdGlvbj8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbnotY2hlY2tib3gtd3JhcHBlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbnotZHJhd2VyPlxuXG48IS0tIE1vZGFsIGZvciBkZXNrdG9wIGJ1c2luZXNzIGxvY2F0aW9uIG11bHRpLXNlbGVjdCAtLT5cbjxuei1tb2RhbFxuICBbKG56VmlzaWJsZSldPVwibW9kYWxPcGVuXCJcbiAgW256VGl0bGVdPVwiJydcIlxuICBbbnpDbG9zYWJsZV09XCJmYWxzZVwiXG4gIFtuekZvb3Rlcl09XCJjdXN0b21Nb2RhbEZvb3RlclwiXG4gIG56V3JhcENsYXNzTmFtZT1cInNlbGVjdC1tb2RhbFwiXG4gIChuek9uQ2FuY2VsKT1cImNsb3NlTW9kYWwoKVwiXG4gIFtueldpZHRoXT1cIjYzMlwiXG4gIFtuekJvZHlTdHlsZV09XCJ7IGhlaWdodDogJzYwMHB4JyB9XCJcbiAgbnpDZW50ZXJlZFxuPlxuICA8ZGl2ICpuek1vZGFsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LW1vZGFsLWhlYWRlclwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImhlYWRlci10aXRsZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgID5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgKGJ1c2luZXNzTG9jYXRpb25UaXRsZVxuICAgICAgICAgICAgICA/IGJ1c2luZXNzTG9jYXRpb25UaXRsZVxuICAgICAgICAgICAgICA6IGJ1c2luZXNzTG9jYXRpb25cbiAgICAgICAgICAgICAgICA/IFwic2VsZWN0X25hdHVyZV9vZl9idXNpbmVzc1wiXG4gICAgICAgICAgICAgICAgOiBcIiBcIlxuICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTMuNDAwMzkgMy4zOTk5TDguMDAwMzkgNy45OTk5TTEyLjYwMDQgMTIuNTk5OUw4LjAwMDM5IDcuOTk5OU04LjAwMDM5IDcuOTk5OUwxMi42MDA0IDMuMzk5OUwzLjQwMDM5IDEyLjU5OTlcIlxuICAgICAgICAgICAgICBzdHJva2U9XCJ2YXIoLS1yZC1jb3B5LXByaW1hcnkpXCJcbiAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zNlwiXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8bnotaW5wdXQtZ3JvdXBcbiAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1tb2RhbC1zZWFyY2hcIlxuICAgICAgICBbbnpQcmVmaXhdPVwicHJlZml4SWNvblNlYXJjaFwiXG4gICAgICAgIG56Q2xlYXJhYmxlXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImRvTW9iaWxlU2VhcmNoKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9uei1pbnB1dC1ncm91cD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXNjYWRlci1tb2RhbC1saXN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTZcIiAqbmdJZj1cInNob3dUb3BIaW50ICYmIGlzU2hvd01heENvdW50XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiPnt7IHRvcEhpbnRUZXh0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyZWRPcHRpb25zPy5sZW5ndGhcIj5cbiAgICAgICAgPG56LWNoZWNrYm94LXdyYXBwZXJcbiAgICAgICAgICBjbGFzcz1cInF1ZXN0aW9uLWNvbnRlbnRcIlxuICAgICAgICAgIGNsYXNzPVwidDE0LTQwMCBjLXRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgKG56T25DaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIiBjbGFzcz1cIm1iLThcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBuei1jaGVja2JveFxuICAgICAgICAgICAgICBbbnpWYWx1ZV09XCJvcHRpb24/LnZhbHVlXCJcbiAgICAgICAgICAgICAgW256RGlzYWJsZWRdPVwiZ2V0T3B0aW9uRGlzYWJsZWQob3B0aW9uKVwiXG4gICAgICAgICAgICAgIFtuekNoZWNrZWRdPVwiaXNWYWx1ZVNlbGVjdGVkKG9wdGlvbj8udmFsdWUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0MTQtNDAwIGMtdGV4dC1wcmltYXJ5XCI+e3sgb3B0aW9uPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uei1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNwcmVmaXhJY29uU2VhcmNoPlxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIxNlwiXG4gICAgaGVpZ2h0PVwiMTZcIlxuICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTE0LjQ5NTEgMTMuNjk0OEwxMS4zOTYyIDEwLjU5NTlDMTIuMzE3NSA5LjQ2OTAyIDEyLjc3MDQgOC4wMzEyMiAxMi42NjEzIDYuNTc5ODNDMTIuNTUyMiA1LjEyODQ0IDExLjg4OTQgMy43NzQ1MSAxMC44MSAyLjc5ODA3QzkuNzMwNjYgMS44MjE2NCA4LjMxNzMgMS4yOTc0MSA2Ljg2MjI3IDEuMzMzODFDNS40MDcyMyAxLjM3MDIxIDQuMDIxODUgMS45NjQ0NSAyLjk5MjY2IDIuOTkzNjRDMS45NjM0OCA0LjAyMjgyIDEuMzY5MjMgNS40MDgyIDEuMzMyODMgNi44NjMyM0MxLjI5NjQzIDguMzE4MjYgMS44MjA2NiA5LjczMTYyIDIuNzk3MSAxMC44MTFDMy43NzM1NCAxMS44OTAzIDUuMTI3NDcgMTIuNTUzMSA2LjU3ODg3IDEyLjY2MjJDOC4wMzAyNiAxMi43NzEzIDkuNDY4MDcgMTIuMzE4NCAxMC41OTQ5IDExLjM5NzJMMTMuNjkzOCAxNC41MDMyQzEzLjgwMjcgMTQuNjA3MyAxMy45NDc0IDE0LjY2NTYgMTQuMDk4IDE0LjY2NjNDMTQuMjEwNSAxNC42NjYxIDE0LjMyMDQgMTQuNjMyNSAxNC40MTM4IDE0LjU2OTdDMTQuNTA3MSAxNC41MDY5IDE0LjU3OTYgMTQuNDE3OCAxNC42MjIyIDE0LjMxMzZDMTQuNjY0OCAxNC4yMDk1IDE0LjY3NTQgMTQuMDk1MSAxNC42NTI4IDEzLjk4NDlDMTQuNjMwMiAxMy44NzQ3IDE0LjU3NTMgMTMuNzczNyAxNC40OTUxIDEzLjY5NDhaTTcuMDA2NjcgMTEuNTQ2MUM2LjEwOTA1IDExLjU0NjEgNS4yMzE1OCAxMS4yNzk5IDQuNDg1MjMgMTAuNzgxMkMzLjczODg5IDEwLjI4MjUgMy4xNTcxOCA5LjU3MzcyIDIuODEzNjcgOC43NDQ0M0MyLjQ3MDE3IDcuOTE1MTMgMi4zODAyOSA3LjAwMjYgMi41NTU0MSA2LjEyMjIzQzIuNzMwNTMgNS4yNDE4NSAzLjE2Mjc3IDQuNDMzMTcgMy43OTc0OSAzLjc5ODQ2QzQuNDMyMjEgMy4xNjM3NSA1LjI0MDg4IDIuNzMxNSA2LjEyMTI2IDIuNTU2MzhDNy4wMDE2NCAyLjM4MTI3IDcuOTE0MTcgMi40NzExNCA4Ljc0MzQ3IDIuODE0NjVDOS41NzI3NyAzLjE1ODE1IDEwLjI4MTYgMy43Mzk4NiAxMC43ODAzIDQuNDg2MkMxMS4yNzkgNS4yMzI1NSAxMS41NDUxIDYuMTEwMDEgMTEuNTQ1MSA3LjAwNzYzQzExLjU0MzMgOC4yMTA3MyAxMS4wNjQ1IDkuMzY0MDIgMTAuMjEzOCAxMC4yMTQ3QzkuMzYzMDYgMTEuMDY1NSA4LjIwOTc3IDExLjU0NDIgNy4wMDY2NyAxMS41NDYxWlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19