@byuhbll/components 4.0.7 → 4.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/hbll-footer/hbll-footer.component.mjs +3 -3
- package/esm2022/lib/hbll-header/nav-bar/nav-bar.component.mjs +10 -3
- package/esm2022/lib/hbll-header/nav-bar-dropdown/nav-bar-dropdown.component.mjs +32 -4
- package/fesm2022/byuhbll-components.mjs +41 -6
- package/fesm2022/byuhbll-components.mjs.map +1 -1
- package/lib/hbll-header/nav-bar/nav-bar.component.d.ts +3 -0
- package/lib/hbll-header/nav-bar-dropdown/nav-bar-dropdown.component.d.ts +7 -1
- package/package.json +1 -1
|
@@ -74,11 +74,11 @@ export class HbllFooterComponent {
|
|
|
74
74
|
this.emailForm.controls.status.setValue(status);
|
|
75
75
|
}
|
|
76
76
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllFooterComponent, isStandalone: true, selector: "lib-hbll-footer", inputs: { mainsitebaseurl: "mainsitebaseurl", libraryapibaseuri: "libraryapibaseuri", emailname: "emailname", emailemail: "emailemail", emailmessage: "emailmessage", emailstatus: "emailstatus" }, viewQueries: [{ propertyName: "emailDialog", first: true, predicate: ["emailDialog"], descendants: true }], ngImport: i0, template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <a href=\"tel:801-422-6061\">\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n > <strong>Call</strong> (801) 422-6061\n </a>\n </li>\n <li>\n <a href=\"sms:801-623-6838\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span\n > <strong>Text</strong> (801) 623-6838\n </a>\n </li>\n <li>\n <button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n > \n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://hr.lib.byu.edu/byu-library-jobs\"\n >Employment Opportunities</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />© {{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment <span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:24px!important;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: HbllFooterComponent, isStandalone: true, selector: "lib-hbll-footer", inputs: { mainsitebaseurl: "mainsitebaseurl", libraryapibaseuri: "libraryapibaseuri", emailname: "emailname", emailemail: "emailemail", emailmessage: "emailmessage", emailstatus: "emailstatus" }, viewQueries: [{ propertyName: "emailDialog", first: true, predicate: ["emailDialog"], descendants: true }], ngImport: i0, template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <a href=\"tel:801-422-6061\">\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n > <strong>Call</strong> (801) 422-6061\n </a>\n </li>\n <li>\n <a href=\"sms:801-623-6838\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span\n > <strong>Text</strong> (801) 623-6838\n </a>\n </li>\n <li>\n <button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\" style=\"padding: 0px;\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n > \n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://hr.lib.byu.edu/byu-library-jobs\"\n >Employment Opportunities</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />© {{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment <span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:24px!important;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
78
78
|
}
|
|
79
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: HbllFooterComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
|
-
args: [{ selector: 'lib-hbll-footer', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <a href=\"tel:801-422-6061\">\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n > <strong>Call</strong> (801) 422-6061\n </a>\n </li>\n <li>\n <a href=\"sms:801-623-6838\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span\n > <strong>Text</strong> (801) 623-6838\n </a>\n </li>\n <li>\n <button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n > \n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://hr.lib.byu.edu/byu-library-jobs\"\n >Employment Opportunities</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />© {{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment <span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:24px!important;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"] }]
|
|
81
|
+
args: [{ selector: 'lib-hbll-footer', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "<footer>\n <div class=\"hbll-footer-wrapper\">\n <div class=\"hbll-footer-links\">\n <section>\n <h3>Contact</h3>\n <ul>\n <li>\n <address>\n P.O. Box 26800<br />\n Provo, UT 84602-6800\n </address>\n </li>\n <li>\n <a href=\"tel:801-422-6061\">\n <span class=\"material-symbols-outlined hbll-footer-icon\">\n phone_in_talk </span\n > <strong>Call</strong> (801) 422-6061\n </a>\n </li>\n <li>\n <a href=\"sms:801-623-6838\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> sms </span\n > <strong>Text</strong> (801) 623-6838\n </a>\n </li>\n <li>\n <button (click)=\"emailDialog.showModal()\" data-testid=\"emailUsBtn\" style=\"padding: 0px;\">\n <span class=\"material-symbols-outlined hbll-footer-icon\"> mail </span\n > \n <strong>Email us</strong>\n </button>\n </li>\n </ul>\n </section>\n <section>\n <h3>Resources</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/site-index/\"\n >A-Z Site Index</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/policies/\">Policies</a>\n </li>\n <li>\n <a target=\"_blank\" href=\"{{ mainsitebaseurl }}/about/location/\"\n >Parking & Directions</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://uac.byu.edu/accessibility-lab\"\n >Accessibility Resources</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://hr.lib.byu.edu/byu-library-jobs\"\n >Employment Opportunities</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Friends in the Library</h3>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://ctl.byu.edu\"\n >Center for Teaching and Learning</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://copyright.byu.edu\"\n >Copyright Licensing Office</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://facultycenter.byu.edu/aboutus\"\n >Faculty Center</a\n >\n </li>\n <li>\n <a target=\"_blank\" href=\"https://dining.byu.edu/library-cafe\"\n >Library Cafe</a\n >\n </li>\n </ul>\n </section>\n <section>\n <h3>Connect</h3>\n <ul class=\"hbll-footer-social-list\">\n <li>\n <a target=\"_blank\" href=\"https://www.facebook.com/byuhbll\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/facebook-color-round.svg\"\n alt=\"Facebook\"\n title=\"Facebook\"\n />\n </a>\n </li>\n <li>\n <a target=\"_blank\" href=\"https://www.instagram.com/byu_hbll/\">\n <img\n class=\"hbll-footer-social\"\n src=\"https://media.lib.byu.edu/web-assets/images/1.0.0/instagram-color.svg\"\n alt=\"Instagram\"\n title=\"Instagram\"\n />\n </a>\n </li>\n </ul>\n </section>\n </div>\n <section class=\"hbll-footer-bottom\">\n <div class=\"hbll-footer-title\">\n <a href=\"https://byu.edu\" target=\"_blank\">BRIGHAM YOUNG UNIVERSITY</a>\n </div>\n <br />\n PROVO, UT 84602, USA | <a href=\"sms:801-422-6061\">(801) 422-6061</a>\n <br />© {{ date | date: 'yyyy' }}\n ALL RIGHTS RESERVED\n <div class=\"hbll-footer-privacy\">\n <a href=\"https://privacy.byu.edu/\" target=\"_blank\">Privacy Notice</a>\n |\n <a href=\"https://infosec.byu.edu/cookie-prefs\" target=\"_blank\"\n >Cookie Preferences</a\n >\n </div>\n </section>\n </div>\n</footer>\n\n<dialog\n #emailDialog\n onmousedown=\"event.target === this && this.close()\"\n (close)=\"handleClose()\"\n data-testid=\"dialog\"\n>\n @if (!isEmailSent) {\n <form [formGroup]=\"emailForm\" (submit)=\"sendEmail()\" data-testid=\"form\">\n <div class=\"hbll-footer-email-top\">\n <h1>Email Us</h1>\n <button (click)=\"emailDialog.close()\" type=\"button\" data-testid=\"closeBtn\">\n <span class=\"material-symbols-outlined\"> close </span>\n </button>\n </div>\n <label for=\"hbllFooterEmailName\">Name</label>\n <input\n id=\"hbllFooterEmailName\"\n type=\"text\"\n formControlName=\"name\"\n data-testid=\"emailNameInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Email (please provide if you would like a response)</label\n >\n <input\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"email\"\n data-testid=\"emailEmailInput\"\n />\n <label for=\"hbllFooterEmailEmail\">\n Question or comment <span class=\"hbll-footer-email-required\">*</span>\n </label>\n <textarea\n id=\"hbllFooterEmailEmail\"\n type=\"text\"\n formControlName=\"message\"\n data-testid=\"emailMessageInput\"\n ></textarea>\n @if (isSubmitted && emailForm.controls.message.invalid) {\n <div\n class=\"hbll-footer-email-required hbll-footer-email-error\"\n data-testid=\"commentError\"\n >\n <span class=\"material-symbols-outlined hbll-footer-email-error-icon\">\n warning\n </span>\n <strong>Please fill out this field</strong>\n </div>\n }\n <label for=\"hbllFooterEmailStatus\">Role</label>\n <span class=\"hbll-footer-select-wrapper\">\n <select\n id=\"hbllFooterEmailStatus\"\n formControlName=\"status\"\n data-testid=\"emailStatusInput\"\n >\n <option selected value=\"\"></option>\n @for (status of userStatuses | slice: 1; track status) {\n <option [value]=\"status\">{{ status }}</option>\n }\n </select>\n </span>\n <div class=\"hbll-footer-email-bottom-bar\">\n @if (hasConnectionError) {\n <p class=\"hbll-footer-connection-error\" data-testid=\"connectionError\">\n <i>There was an error sending your email. Please try again later.</i>\n </p>\n }\n <button\n class=\"pill-btn--components\"\n type=\"submit\"\n [disabled]=\"isLoading\"\n data-testid=\"sendEmailBtn\"\n >\n Send\n </button>\n </div>\n </form>\n } @else {\n <div class=\"hbll-footer-email-success\" data-testid=\"successMessage\">\n <p>\n Your email was sent successfully. If you supplied your email address, we will get\n back to you shortly.<br />Thank you!\n </p>\n <button class=\"pill-btn--components\" (click)=\"emailDialog.close()\" type=\"button\">\n Close\n </button>\n </div>\n }\n</dialog>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,200..400;1,200..400&display=swap\";*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}dialog form input,dialog form textarea,dialog form select{appearance:none;font-family:inherit;padding:.38em;border:solid 1px #707070;border-radius:4px;font-size:1em;background-color:#fff}dialog form input:focus,dialog form textarea:focus,dialog form select:focus{outline-color:#3a6093}dialog form .hbll-footer-select-wrapper{position:relative}dialog form .hbll-footer-select-wrapper select{cursor:pointer;padding-right:2em}dialog form .hbll-footer-select-wrapper:after{font-family:Material Symbols Outlined;content:\"arrow_drop_down\";pointer-events:none;top:0;font-size:1.5em;right:.2em;height:100%;position:absolute;display:flex;align-items:center;opacity:70%}.pill-btn--components{background-color:#4070b0;font-size:1em;transition:all .15s;color:#fff;cursor:pointer;font-weight:600;text-align:center}.pill-btn--components:disabled{color:#707070;background-color:#e6e6e6;pointer-events:none}.pill-btn--components:hover{background-color:#6892ca;color:#fff}.destructive.pill-btn--components{background-color:#b04940}.destructive.pill-btn--components:hover{background-color:#c7574d}.pill-btn--components{border-radius:100em;padding:.4em 1.3em}button{border:none;background-color:transparent;font-size:1em}button :hover{cursor:pointer}footer{line-height:1.2em;background-color:#e6e6e6}footer .hbll-footer-wrapper{display:flex;flex-direction:column;align-items:center}footer .hbll-footer-wrapper .hbll-footer-links{max-width:90em;display:flex;align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding-bottom:2em;white-space:nowrap}footer .hbll-footer-wrapper .hbll-footer-links strong{font-weight:600}footer .hbll-footer-wrapper .hbll-footer-links address{font-style:normal}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-icon{font-size:24px!important;margin-right:.2em;color:#002e5d}footer .hbll-footer-wrapper .hbll-footer-links section{padding:2em 1.8em 0;background-color:#e6e6e6;flex:1}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list{display:flex}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list .hbll-footer-social{height:1.5em;margin-right:1em}footer .hbll-footer-wrapper .hbll-footer-links .hbll-footer-social-list li{margin-bottom:0}footer .hbll-footer-wrapper h3{font-weight:600;color:#002e5d;font-size:1.4em;margin-bottom:1em;margin-top:0}footer .hbll-footer-wrapper ul{list-style:none;margin:.4em 0 0;padding:0}footer .hbll-footer-wrapper ul li{display:flex;align-items:center}footer .hbll-footer-wrapper ul li a,footer .hbll-footer-wrapper ul li button{display:inline-flex;align-items:center;color:#305f9c}footer .hbll-footer-wrapper ul li a:hover,footer .hbll-footer-wrapper ul li button:hover{color:#6892ca}footer .hbll-footer-wrapper ul li:not(:last-of-type){margin-bottom:.6em}footer .hbll-footer-wrapper .hbll-footer-bottom{text-align:center;background-color:#002e5d;color:#fff;font-family:Public Sans,sans-serif;font-optical-sizing:auto;font-weight:200;font-style:normal;font-size:.9em;line-height:1.6em;padding:1.8em;width:100%}footer .hbll-footer-wrapper .hbll-footer-bottom a{color:#fff}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-title{font-size:2em;font-weight:400;line-height:1em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy{margin-top:.4em}footer .hbll-footer-wrapper .hbll-footer-bottom .hbll-footer-privacy a{text-decoration:underline}@media screen and (max-width: 40em){.hbll-footer-links{flex-direction:column;justify-content:flex-start;width:100%}}dialog{border:solid 1px #888;border-radius:4px;width:90%;max-width:50em;padding:0;transition:all 5s ease-in-out}dialog .hbll-footer-email-success,dialog form{padding:1.6em 2em}dialog .hbll-footer-email-success p,dialog form p{text-align:center;line-height:1.4em}dialog .hbll-footer-email-success{display:flex;justify-content:center;align-items:center;flex-direction:column}dialog .hbll-footer-email-success button{margin-top:1em}dialog form{display:flex;flex-direction:column;position:relative}dialog form textarea{min-height:100px;resize:vertical}dialog form input,dialog form textarea,dialog form .hbll-footer-select-wrapper{margin-bottom:.6em}dialog form .hbll-footer-email-bottom-bar{display:flex;align-items:center;justify-content:flex-end}dialog form .hbll-footer-email-bottom-bar .hbll-footer-connection-error{text-align:right;flex-grow:1;margin:0 1em 0 0}dialog form label{margin-bottom:.4em;margin-top:.4em}dialog form .hbll-footer-email-error{display:flex;justify-content:center;align-items:center;margin-right:auto;margin-bottom:.6em;font-size:.8em}dialog form .hbll-footer-email-error .hbll-footer-email-error-icon{font-size:1.2em;margin-right:.2em}dialog form .hbll-footer-email-top{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:1em}dialog form .hbll-footer-email-top h1{font-size:1.4em;margin:0}dialog form .hbll-footer-email-required-message{float:right}dialog form .hbll-footer-select-wrapper{margin-right:auto}dialog form .hbll-footer-email-required{color:#d03a3a}dialog form button:not([type=submit]){color:#333}dialog form button:not([type=submit]):hover{color:#696969}dialog form button[type=submit]{margin-left:auto}dialog::backdrop{background-color:#000;opacity:.75}\n"] }]
|
|
82
82
|
}], propDecorators: { emailDialog: [{
|
|
83
83
|
type: ViewChild,
|
|
84
84
|
args: ['emailDialog']
|
|
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
95
95
|
}], emailstatus: [{
|
|
96
96
|
type: Input
|
|
97
97
|
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtZm9vdGVyL2hibGwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWZvb3Rlci9oYmxsLWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBU2pHLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFRcUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNDLHdGQUF3RjtRQUMvRSxvQkFBZSxHQUFHLHFCQUFxQixDQUFDO1FBQ3hDLHNCQUFpQixHQUFHLDZCQUE2QixDQUFDO1FBYWpELFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJ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Q0FBQyxNQUFnQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBbEJRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDJYQ2JoQyxreFNBK05BLGk2S0R0TmMsWUFBWSxzSUFBRSxtQkFBbUI7OzJGQUlsQyxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDOzhCQU9WLFdBQVc7c0JBQTVDLFNBQVM7dUJBQUMsYUFBYTtnQkFFZixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDTyxTQUFTO3NCQUFyQixLQUFLO2dCQUdPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBR08sWUFBWTtzQkFBeEIsS0FBSztnQkFHTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb250YWN0UGF5bG9hZCwgY3JlYXRlQ29udGFjdEZvcm0sIHN1Ym1pdEVtYWlsLCBVU0VSX1NUQVRVU0VTIH0gZnJvbSAnLi4vY29udGFjdC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWhibGwtZm9vdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oYmxsLWZvb3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2hibGwtZm9vdGVyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSGJsbEZvb3RlckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIEBWaWV3Q2hpbGQoJ2VtYWlsRGlhbG9nJykgcHJpdmF0ZSBlbWFpbERpYWxvZyE6IEVsZW1lbnRSZWY7XG4gICAgLy8gVE9ETzogQ29udmVydCB0aGVzZSB0byBzaWduYWwgaW5wdXRzOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81Nzc1NVxuICAgIEBJbnB1dCgpIG1haW5zaXRlYmFzZXVybCA9ICdodHRwczovL2xpYi5ieXUuZWR1JztcbiAgICBASW5wdXQoKSBsaWJyYXJ5YXBpYmFzZXVyaSA9ICdodHRwczovL2FwcHMubGliLmJ5dS5lZHUvdjEnO1xuICAgIEBJbnB1dCgpIHNldCBlbWFpbG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzLm5hbWUuc2V0VmFsdWUobmFtZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBlbWFpbGVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMuZW1haWwuc2V0VmFsdWUoZW1haWwpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgZW1haWxtZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICB0aGlzLmVtYWlsRm9ybS5jb250cm9scy5tZXNzYWdlLnNldFZhbHVlKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgZW1haWxzdGF0dXMoc3RhdHVzOiBDb250YWN0UGF5bG9hZFsnc3RhdHVzJ10pIHtcbiAgICAgICAgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMuc3RhdHVzLnNldFZhbHVlKHN0YXR1cyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBwcm90ZWN0ZWQgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGhhc0Nvbm5lY3Rpb25FcnJvciA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBpc0VtYWlsU2VudCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBlbWFpbEZvcm0gPSBjcmVhdGVDb250YWN0Rm9ybSh0aGlzLmZiKTtcbiAgICBwcm90ZWN0ZWQgdXNlclN0YXR1c2VzID0gVVNFUl9TVEFUVVNFUztcblxuICAgIHByb3RlY3RlZCBzZW5kRW1haWwgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5lbWFpbEZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHN1Ym1pdEVtYWlsKFxuICAgICAgICAgICAgdGhpcy5lbWFpbEZvcm0udmFsdWUgYXMgQ29udGFjdFBheWxvYWQsXG4gICAgICAgICAgICB0aGlzLmh0dHAsXG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlhcGliYXNldXJpLFxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzQ29ubmVjdGlvbkVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbWFpbFNlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1haWxGb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0VtYWlsU2VudCkge1xuICAgICAgICAgICAgdGhpcy5pc0VtYWlsU2VudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIH07XG5cbiAgICAvLyBFeHBvc2UgdGhpcyB0byBiZSBjYWxsZWQgZnJvbSBjb25zdW1pbmcgYXBwbGljYXRpb25zLlxuICAgIG9wZW5FbWFpbEZvcm0gPSAoZm9ybVZhbHVlcz86IHR5cGVvZiB0aGlzLmVtYWlsRm9ybS52YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoZm9ybVZhbHVlcykge1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMubmFtZSkgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMubmFtZS5zZXRWYWx1ZShmb3JtVmFsdWVzLm5hbWUpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMuZW1haWwpIHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzLmVtYWlsLnNldFZhbHVlKGZvcm1WYWx1ZXMuZW1haWwpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMubWVzc2FnZSkgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMubWVzc2FnZS5zZXRWYWx1ZShmb3JtVmFsdWVzLm1lc3NhZ2UpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMuc3RhdHVzKSB0aGlzLmVtYWlsRm9ybS5jb250cm9scy5zdGF0dXMuc2V0VmFsdWUoZm9ybVZhbHVlcy5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1haWxEaWFsb2cubmF0aXZlRWxlbWVudC5zaG93TW9kYWwoKTtcbiAgICB9O1xufVxuIiwiPGZvb3Rlcj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItbGlua3NcIj5cbiAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxoMz5Db250YWN0PC9oMz5cbiAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRyZXNzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAuTy4gQm94IDI2ODAwPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdm8sIFVUIDg0NjAyLTY4MDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRkcmVzcz5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInRlbDo4MDEtNDIyLTYwNjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1mb290ZXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZV9pbl90YWxrIDwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4mbmJzcDsgPHN0cm9uZz5DYWxsPC9zdHJvbmc+Jm5ic3A7KDgwMSkgNDIyLTYwNjFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInNtczo4MDEtNjIzLTY4MzhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1mb290ZXItaWNvblwiPiBzbXMgPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwOyA8c3Ryb25nPlRleHQ8L3N0cm9uZz4mbmJzcDsoODAxKSA2MjMtNjgzOFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWFpbERpYWxvZy5zaG93TW9kYWwoKVwiIGRhdGEtdGVzdGlkPVwiZW1haWxVc0J0blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWZvb3Rlci1pY29uXCI+IG1haWwgPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RW1haWwgdXM8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8aDM+UmVzb3VyY2VzPC9oMz5cbiAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyBtYWluc2l0ZWJhc2V1cmwgfX0vc2l0ZS1pbmRleC9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5BLVogU2l0ZSBJbmRleDwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgbWFpbnNpdGViYXNldXJsIH19L2Fib3V0L3BvbGljaWVzL1wiPlBvbGljaWVzPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgbWFpbnNpdGViYXNldXJsIH19L2Fib3V0L2xvY2F0aW9uL1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlBhcmtpbmcgJiBEaXJlY3Rpb25zPC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3VhYy5ieXUuZWR1L2FjY2Vzc2liaWxpdHktbGFiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+QWNjZXNzaWJpbGl0eSBSZXNvdXJjZXM8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vaHIubGliLmJ5dS5lZHUvYnl1LWxpYnJhcnktam9ic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPkVtcGxveW1lbnQgT3Bwb3J0dW5pdGllczwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8aDM+RnJpZW5kcyBpbiB0aGUgTGlicmFyeTwvaDM+XG4gICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9jdGwuYnl1LmVkdVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPkNlbnRlciBmb3IgVGVhY2hpbmcgYW5kIExlYXJuaW5nPC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL2NvcHlyaWdodC5ieXUuZWR1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Q29weXJpZ2h0IExpY2Vuc2luZyBPZmZpY2U8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vZmFjdWx0eWNlbnRlci5ieXUuZWR1L2Fib3V0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5GYWN1bHR5IENlbnRlcjwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9kaW5pbmcuYnl1LmVkdS9saWJyYXJ5LWNhZmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5MaWJyYXJ5IENhZmU8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPGgzPkNvbm5lY3Q8L2gzPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImhibGwtZm9vdGVyLXNvY2lhbC1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vYnl1aGJsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWZvb3Rlci1zb2NpYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL21lZGlhLmxpYi5ieXUuZWR1L3dlYi1hc3NldHMvaW1hZ2VzLzEuMC4wL2ZhY2Vib29rLWNvbG9yLXJvdW5kLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkZhY2Vib29rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJGYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vYnl1X2hibGwvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtZm9vdGVyLXNvY2lhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vbWVkaWEubGliLmJ5dS5lZHUvd2ViLWFzc2V0cy9pbWFnZXMvMS4wLjAvaW5zdGFncmFtLWNvbG9yLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkluc3RhZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiSW5zdGFncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhibGwtZm9vdGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtZm9vdGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYnl1LmVkdVwiIHRhcmdldD1cIl9ibGFua1wiPkJSSUdIQU0gWU9VTkcgVU5JVkVSU0lUWTwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICBQUk9WTywgVVQgODQ2MDIsIFVTQSB8IDxhIGhyZWY9XCJzbXM6ODAxLTQyMi02MDYxXCI+KDgwMSkgNDIyLTYwNjE8L2E+XG4gICAgICAgICAgICA8YnIgLz4mY29weTsmbmJzcDt7eyBkYXRlIHwgZGF0ZTogJ3l5eXknIH19XG4gICAgICAgICAgICBBTEwgUklHSFRTIFJFU0VSVkVEXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItcHJpdmFjeVwiPlxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kuYnl1LmVkdS9cIiB0YXJnZXQ9XCJfYmxhbmtcIj5Qcml2YWN5IE5vdGljZTwvYT5cbiAgICAgICAgICAgICAgICB8XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vaW5mb3NlYy5ieXUuZWR1L2Nvb2tpZS1wcmVmc1wiIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5Db29raWUgUHJlZmVyZW5jZXM8L2FcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZGl2PlxuPC9mb290ZXI+XG5cbjxkaWFsb2dcbiAgICAjZW1haWxEaWFsb2dcbiAgICBvbm1vdXNlZG93bj1cImV2ZW50LnRhcmdldCA9PT0gdGhpcyAmJiB0aGlzLmNsb3NlKClcIlxuICAgIChjbG9zZSk9XCJoYW5kbGVDbG9zZSgpXCJcbiAgICBkYXRhLXRlc3RpZD1cImRpYWxvZ1wiXG4+XG4gICAgQGlmICghaXNFbWFpbFNlbnQpIHtcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJlbWFpbEZvcm1cIiAoc3VibWl0KT1cInNlbmRFbWFpbCgpXCIgZGF0YS10ZXN0aWQ9XCJmb3JtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItZW1haWwtdG9wXCI+XG4gICAgICAgICAgICAgICAgPGgxPkVtYWlsIFVzPC9oMT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWFpbERpYWxvZy5jbG9zZSgpXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2xvc2VCdG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+IGNsb3NlIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhibGxGb290ZXJFbWFpbE5hbWVcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiaGJsbEZvb3RlckVtYWlsTmFtZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZW1haWxOYW1lSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYmxsRm9vdGVyRW1haWxFbWFpbFwiPlxuICAgICAgICAgICAgICAgIEVtYWlsIChwbGVhc2UgcHJvdmlkZSBpZiB5b3Ugd291bGQgbGlrZSBhIHJlc3BvbnNlKTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiaGJsbEZvb3RlckVtYWlsRW1haWxcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJlbWFpbEVtYWlsSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYmxsRm9vdGVyRW1haWxFbWFpbFwiPlxuICAgICAgICAgICAgICAgIFF1ZXN0aW9uIG9yIGNvbW1lbnQmbmJzcDs8c3BhbiBjbGFzcz1cImhibGwtZm9vdGVyLWVtYWlsLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBpZD1cImhibGxGb290ZXJFbWFpbEVtYWlsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJlbWFpbE1lc3NhZ2VJbnB1dFwiXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIEBpZiAoaXNTdWJtaXR0ZWQgJiYgZW1haWxGb3JtLmNvbnRyb2xzLm1lc3NhZ2UuaW52YWxpZCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWZvb3Rlci1lbWFpbC1yZXF1aXJlZCBoYmxsLWZvb3Rlci1lbWFpbC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY29tbWVudEVycm9yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWZvb3Rlci1lbWFpbC1lcnJvci1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5QbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhibGxGb290ZXJFbWFpbFN0YXR1c1wiPlJvbGU8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYmxsLWZvb3Rlci1zZWxlY3Qtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoYmxsRm9vdGVyRW1haWxTdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImVtYWlsU3RhdHVzSW5wdXRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzdGF0dXMgb2YgdXNlclN0YXR1c2VzIHwgc2xpY2U6IDE7IHRyYWNrIHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwic3RhdHVzXCI+e3sgc3RhdHVzIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWZvb3Rlci1lbWFpbC1ib3R0b20tYmFyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNDb25uZWN0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJoYmxsLWZvb3Rlci1jb25uZWN0aW9uLWVycm9yXCIgZGF0YS10ZXN0aWQ9XCJjb25uZWN0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPlRoZXJlIHdhcyBhbiBlcnJvciBzZW5kaW5nIHlvdXIgZW1haWwuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9pPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWxsLWJ0bi0tY29tcG9uZW50c1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJzZW5kRW1haWxCdG5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgU2VuZFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtZm9vdGVyLWVtYWlsLXN1Y2Nlc3NcIiBkYXRhLXRlc3RpZD1cInN1Y2Nlc3NNZXNzYWdlXCI+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICBZb3VyIGVtYWlsIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS4gSWYgeW91IHN1cHBsaWVkIHlvdXIgZW1haWwgYWRkcmVzcywgd2Ugd2lsbCBnZXRcbiAgICAgICAgICAgICAgICBiYWNrIHRvIHlvdSBzaG9ydGx5LjxiciAvPlRoYW5rIHlvdSFcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwaWxsLWJ0bi0tY29tcG9uZW50c1wiIChjbGljayk9XCJlbWFpbERpYWxvZy5jbG9zZSgpXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIENsb3NlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaWFsb2c+XG4iXX0=
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtZm9vdGVyL2hibGwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWZvb3Rlci9oYmxsLWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBU2pHLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFRcUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNDLHdGQUF3RjtRQUMvRSxvQkFBZSxHQUFHLHFCQUFxQixDQUFDO1FBQ3hDLHNCQUFpQixHQUFHLDZCQUE2QixDQUFDO1FBYWpELFNBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJ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Q0FBQyxNQUFnQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBbEJRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDJYQ2JoQywweVNBK05BLGk2S0R0TmMsWUFBWSxzSUFBRSxtQkFBbUI7OzJGQUlsQyxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0ksaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDOzhCQU9WLFdBQVc7c0JBQTVDLFNBQVM7dUJBQUMsYUFBYTtnQkFFZixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDTyxTQUFTO3NCQUFyQixLQUFLO2dCQUdPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBR08sWUFBWTtzQkFBeEIsS0FBSztnQkFHTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb250YWN0UGF5bG9hZCwgY3JlYXRlQ29udGFjdEZvcm0sIHN1Ym1pdEVtYWlsLCBVU0VSX1NUQVRVU0VTIH0gZnJvbSAnLi4vY29udGFjdC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWhibGwtZm9vdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oYmxsLWZvb3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2hibGwtZm9vdGVyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSGJsbEZvb3RlckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIEBWaWV3Q2hpbGQoJ2VtYWlsRGlhbG9nJykgcHJpdmF0ZSBlbWFpbERpYWxvZyE6IEVsZW1lbnRSZWY7XG4gICAgLy8gVE9ETzogQ29udmVydCB0aGVzZSB0byBzaWduYWwgaW5wdXRzOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81Nzc1NVxuICAgIEBJbnB1dCgpIG1haW5zaXRlYmFzZXVybCA9ICdodHRwczovL2xpYi5ieXUuZWR1JztcbiAgICBASW5wdXQoKSBsaWJyYXJ5YXBpYmFzZXVyaSA9ICdodHRwczovL2FwcHMubGliLmJ5dS5lZHUvdjEnO1xuICAgIEBJbnB1dCgpIHNldCBlbWFpbG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzLm5hbWUuc2V0VmFsdWUobmFtZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBlbWFpbGVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMuZW1haWwuc2V0VmFsdWUoZW1haWwpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgZW1haWxtZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICB0aGlzLmVtYWlsRm9ybS5jb250cm9scy5tZXNzYWdlLnNldFZhbHVlKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgZW1haWxzdGF0dXMoc3RhdHVzOiBDb250YWN0UGF5bG9hZFsnc3RhdHVzJ10pIHtcbiAgICAgICAgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMuc3RhdHVzLnNldFZhbHVlKHN0YXR1cyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBwcm90ZWN0ZWQgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGhhc0Nvbm5lY3Rpb25FcnJvciA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBpc0VtYWlsU2VudCA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBlbWFpbEZvcm0gPSBjcmVhdGVDb250YWN0Rm9ybSh0aGlzLmZiKTtcbiAgICBwcm90ZWN0ZWQgdXNlclN0YXR1c2VzID0gVVNFUl9TVEFUVVNFUztcblxuICAgIHByb3RlY3RlZCBzZW5kRW1haWwgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5lbWFpbEZvcm0uaW52YWxpZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHN1Ym1pdEVtYWlsKFxuICAgICAgICAgICAgdGhpcy5lbWFpbEZvcm0udmFsdWUgYXMgQ29udGFjdFBheWxvYWQsXG4gICAgICAgICAgICB0aGlzLmh0dHAsXG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlhcGliYXNldXJpLFxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzQ29ubmVjdGlvbkVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbWFpbFNlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1haWxGb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0VtYWlsU2VudCkge1xuICAgICAgICAgICAgdGhpcy5pc0VtYWlsU2VudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIH07XG5cbiAgICAvLyBFeHBvc2UgdGhpcyB0byBiZSBjYWxsZWQgZnJvbSBjb25zdW1pbmcgYXBwbGljYXRpb25zLlxuICAgIG9wZW5FbWFpbEZvcm0gPSAoZm9ybVZhbHVlcz86IHR5cGVvZiB0aGlzLmVtYWlsRm9ybS52YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoZm9ybVZhbHVlcykge1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMubmFtZSkgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMubmFtZS5zZXRWYWx1ZShmb3JtVmFsdWVzLm5hbWUpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMuZW1haWwpIHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzLmVtYWlsLnNldFZhbHVlKGZvcm1WYWx1ZXMuZW1haWwpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMubWVzc2FnZSkgdGhpcy5lbWFpbEZvcm0uY29udHJvbHMubWVzc2FnZS5zZXRWYWx1ZShmb3JtVmFsdWVzLm1lc3NhZ2UpO1xuICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZXMuc3RhdHVzKSB0aGlzLmVtYWlsRm9ybS5jb250cm9scy5zdGF0dXMuc2V0VmFsdWUoZm9ybVZhbHVlcy5zdGF0dXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1haWxEaWFsb2cubmF0aXZlRWxlbWVudC5zaG93TW9kYWwoKTtcbiAgICB9O1xufVxuIiwiPGZvb3Rlcj5cbiAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItbGlua3NcIj5cbiAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxoMz5Db250YWN0PC9oMz5cbiAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRyZXNzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAuTy4gQm94IDI2ODAwPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvdm8sIFVUIDg0NjAyLTY4MDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRkcmVzcz5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInRlbDo4MDEtNDIyLTYwNjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1mb290ZXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG9uZV9pbl90YWxrIDwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID4mbmJzcDsgPHN0cm9uZz5DYWxsPC9zdHJvbmc+Jm5ic3A7KDgwMSkgNDIyLTYwNjFcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInNtczo4MDEtNjIzLTY4MzhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1mb290ZXItaWNvblwiPiBzbXMgPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwOyA8c3Ryb25nPlRleHQ8L3N0cm9uZz4mbmJzcDsoODAxKSA2MjMtNjgzOFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWFpbERpYWxvZy5zaG93TW9kYWwoKVwiIGRhdGEtdGVzdGlkPVwiZW1haWxVc0J0blwiIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWZvb3Rlci1pY29uXCI+IG1haWwgPC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+RW1haWwgdXM8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8aDM+UmVzb3VyY2VzPC9oMz5cbiAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7eyBtYWluc2l0ZWJhc2V1cmwgfX0vc2l0ZS1pbmRleC9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5BLVogU2l0ZSBJbmRleDwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgbWFpbnNpdGViYXNldXJsIH19L2Fib3V0L3BvbGljaWVzL1wiPlBvbGljaWVzPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwie3sgbWFpbnNpdGViYXNldXJsIH19L2Fib3V0L2xvY2F0aW9uL1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlBhcmtpbmcgJiBEaXJlY3Rpb25zPC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3VhYy5ieXUuZWR1L2FjY2Vzc2liaWxpdHktbGFiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+QWNjZXNzaWJpbGl0eSBSZXNvdXJjZXM8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vaHIubGliLmJ5dS5lZHUvYnl1LWxpYnJhcnktam9ic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPkVtcGxveW1lbnQgT3Bwb3J0dW5pdGllczwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8aDM+RnJpZW5kcyBpbiB0aGUgTGlicmFyeTwvaDM+XG4gICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9jdGwuYnl1LmVkdVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPkNlbnRlciBmb3IgVGVhY2hpbmcgYW5kIExlYXJuaW5nPC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL2NvcHlyaWdodC5ieXUuZWR1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Q29weXJpZ2h0IExpY2Vuc2luZyBPZmZpY2U8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vZmFjdWx0eWNlbnRlci5ieXUuZWR1L2Fib3V0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5GYWN1bHR5IENlbnRlcjwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9kaW5pbmcuYnl1LmVkdS9saWJyYXJ5LWNhZmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5MaWJyYXJ5IENhZmU8L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPGgzPkNvbm5lY3Q8L2gzPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImhibGwtZm9vdGVyLXNvY2lhbC1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vYnl1aGJsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWZvb3Rlci1zb2NpYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL21lZGlhLmxpYi5ieXUuZWR1L3dlYi1hc3NldHMvaW1hZ2VzLzEuMC4wL2ZhY2Vib29rLWNvbG9yLXJvdW5kLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkZhY2Vib29rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJGYWNlYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vYnl1X2hibGwvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtZm9vdGVyLXNvY2lhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vbWVkaWEubGliLmJ5dS5lZHUvd2ViLWFzc2V0cy9pbWFnZXMvMS4wLjAvaW5zdGFncmFtLWNvbG9yLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkluc3RhZ3JhbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiSW5zdGFncmFtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhibGwtZm9vdGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtZm9vdGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vYnl1LmVkdVwiIHRhcmdldD1cIl9ibGFua1wiPkJSSUdIQU0gWU9VTkcgVU5JVkVSU0lUWTwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICBQUk9WTywgVVQgODQ2MDIsIFVTQSB8IDxhIGhyZWY9XCJzbXM6ODAxLTQyMi02MDYxXCI+KDgwMSkgNDIyLTYwNjE8L2E+XG4gICAgICAgICAgICA8YnIgLz4mY29weTsmbmJzcDt7eyBkYXRlIHwgZGF0ZTogJ3l5eXknIH19XG4gICAgICAgICAgICBBTEwgUklHSFRTIFJFU0VSVkVEXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItcHJpdmFjeVwiPlxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3ByaXZhY3kuYnl1LmVkdS9cIiB0YXJnZXQ9XCJfYmxhbmtcIj5Qcml2YWN5IE5vdGljZTwvYT5cbiAgICAgICAgICAgICAgICB8XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vaW5mb3NlYy5ieXUuZWR1L2Nvb2tpZS1wcmVmc1wiIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5Db29raWUgUHJlZmVyZW5jZXM8L2FcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIDwvZGl2PlxuPC9mb290ZXI+XG5cbjxkaWFsb2dcbiAgICAjZW1haWxEaWFsb2dcbiAgICBvbm1vdXNlZG93bj1cImV2ZW50LnRhcmdldCA9PT0gdGhpcyAmJiB0aGlzLmNsb3NlKClcIlxuICAgIChjbG9zZSk9XCJoYW5kbGVDbG9zZSgpXCJcbiAgICBkYXRhLXRlc3RpZD1cImRpYWxvZ1wiXG4+XG4gICAgQGlmICghaXNFbWFpbFNlbnQpIHtcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJlbWFpbEZvcm1cIiAoc3VibWl0KT1cInNlbmRFbWFpbCgpXCIgZGF0YS10ZXN0aWQ9XCJmb3JtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1mb290ZXItZW1haWwtdG9wXCI+XG4gICAgICAgICAgICAgICAgPGgxPkVtYWlsIFVzPC9oMT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJlbWFpbERpYWxvZy5jbG9zZSgpXCIgdHlwZT1cImJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2xvc2VCdG5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+IGNsb3NlIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhibGxGb290ZXJFbWFpbE5hbWVcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiaGJsbEZvb3RlckVtYWlsTmFtZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZW1haWxOYW1lSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYmxsRm9vdGVyRW1haWxFbWFpbFwiPlxuICAgICAgICAgICAgICAgIEVtYWlsIChwbGVhc2UgcHJvdmlkZSBpZiB5b3Ugd291bGQgbGlrZSBhIHJlc3BvbnNlKTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiaGJsbEZvb3RlckVtYWlsRW1haWxcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJlbWFpbEVtYWlsSW5wdXRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYmxsRm9vdGVyRW1haWxFbWFpbFwiPlxuICAgICAgICAgICAgICAgIFF1ZXN0aW9uIG9yIGNvbW1lbnQmbmJzcDs8c3BhbiBjbGFzcz1cImhibGwtZm9vdGVyLWVtYWlsLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBpZD1cImhibGxGb290ZXJFbWFpbEVtYWlsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJlbWFpbE1lc3NhZ2VJbnB1dFwiXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIEBpZiAoaXNTdWJtaXR0ZWQgJiYgZW1haWxGb3JtLmNvbnRyb2xzLm1lc3NhZ2UuaW52YWxpZCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWZvb3Rlci1lbWFpbC1yZXF1aXJlZCBoYmxsLWZvb3Rlci1lbWFpbC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY29tbWVudEVycm9yXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWZvb3Rlci1lbWFpbC1lcnJvci1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5QbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZDwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhibGxGb290ZXJFbWFpbFN0YXR1c1wiPlJvbGU8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYmxsLWZvb3Rlci1zZWxlY3Qtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoYmxsRm9vdGVyRW1haWxTdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImVtYWlsU3RhdHVzSW5wdXRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzdGF0dXMgb2YgdXNlclN0YXR1c2VzIHwgc2xpY2U6IDE7IHRyYWNrIHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwic3RhdHVzXCI+e3sgc3RhdHVzIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWZvb3Rlci1lbWFpbC1ib3R0b20tYmFyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNDb25uZWN0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJoYmxsLWZvb3Rlci1jb25uZWN0aW9uLWVycm9yXCIgZGF0YS10ZXN0aWQ9XCJjb25uZWN0aW9uRXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpPlRoZXJlIHdhcyBhbiBlcnJvciBzZW5kaW5nIHlvdXIgZW1haWwuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9pPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWxsLWJ0bi0tY29tcG9uZW50c1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJzZW5kRW1haWxCdG5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgU2VuZFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtZm9vdGVyLWVtYWlsLXN1Y2Nlc3NcIiBkYXRhLXRlc3RpZD1cInN1Y2Nlc3NNZXNzYWdlXCI+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICBZb3VyIGVtYWlsIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS4gSWYgeW91IHN1cHBsaWVkIHlvdXIgZW1haWwgYWRkcmVzcywgd2Ugd2lsbCBnZXRcbiAgICAgICAgICAgICAgICBiYWNrIHRvIHlvdSBzaG9ydGx5LjxiciAvPlRoYW5rIHlvdSFcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwaWxsLWJ0bi0tY29tcG9uZW50c1wiIChjbGljayk9XCJlbWFpbERpYWxvZy5jbG9zZSgpXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIENsb3NlXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaWFsb2c+XG4iXX0=
|
|
@@ -10,6 +10,7 @@ export class NavBarComponent {
|
|
|
10
10
|
this.bo = inject(BreakpointObserver);
|
|
11
11
|
this.mainSiteBaseUrl = input.required();
|
|
12
12
|
this.height = input(null);
|
|
13
|
+
this.isInteractingWithNavbar = false;
|
|
13
14
|
// If any section opens up, close all others. Only one section open at a time.
|
|
14
15
|
this.handleDropdownOpenEvent = (title) => {
|
|
15
16
|
this.dropdownComps
|
|
@@ -328,14 +329,20 @@ export class NavBarComponent {
|
|
|
328
329
|
];
|
|
329
330
|
});
|
|
330
331
|
}
|
|
332
|
+
handleHoverStarted() {
|
|
333
|
+
this.isInteractingWithNavbar = true;
|
|
334
|
+
}
|
|
335
|
+
handleNavbarMouseLeave() {
|
|
336
|
+
this.isInteractingWithNavbar = false;
|
|
337
|
+
}
|
|
331
338
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
332
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { mainSiteBaseUrl: { classPropertyName: "mainSiteBaseUrl", publicName: "mainSiteBaseUrl", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen"], outputs: ["openEvent"] }] }); }
|
|
339
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { mainSiteBaseUrl: { classPropertyName: "mainSiteBaseUrl", publicName: "mainSiteBaseUrl", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n (mouseleave)=\"handleNavbarMouseLeave()\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n [isInteracting]=\"isInteractingWithNavbar\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n (hoverStarted)=\"handleHoverStarted()\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen", "isInteracting"], outputs: ["openEvent", "hoverStarted"] }] }); }
|
|
333
340
|
}
|
|
334
341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, decorators: [{
|
|
335
342
|
type: Component,
|
|
336
|
-
args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"] }]
|
|
343
|
+
args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n (mouseleave)=\"handleNavbarMouseLeave()\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n [isInteracting]=\"isInteractingWithNavbar\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n (hoverStarted)=\"handleHoverStarted()\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"] }]
|
|
337
344
|
}], propDecorators: { dropdownComps: [{
|
|
338
345
|
type: ViewChildren,
|
|
339
346
|
args: [NavBarDropdownComponent]
|
|
340
347
|
}] } });
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvaGJsbC1oZWFkZXIvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBMkJ6RCxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQVFZLE9BQUUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxvQkFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUMzQyxXQUFNLEdBQUcsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUlwQyw4RUFBOEU7UUFDcEUsNEJBQXVCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsYUFBYTtpQkFDYixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUFLLENBQUM7aUJBQ3hDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FB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O0tBQ047OEdBdlVZLGVBQWU7a0dBQWYsZUFBZSxxWUFLVix1QkFBdUIsZ0RDcEN6QyxtM0pBdUdBLDR4SUQ1RWMsWUFBWSxrTkFBRSx1QkFBdUI7OzJGQUl0QyxlQUFlO2tCQVAzQixTQUFTOytCQUNJLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUM7OEJBU1QsYUFBYTtzQkFBbkQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgU2lnbmFsLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LWJhci1kcm9wZG93bi9uYXYtYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1NjcmVlblNtYWxsU2lnbmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbnR5cGUgTmF2SW5mbyA9IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIG1haW5TZWN0aW9uPzogU2VjdGlvbjtcbiAgICBvdGhlclNlY3Rpb25zOiBTZWN0aW9uW107XG59O1xuXG50eXBlIFNlY3Rpb24gPSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsaW5rczogTGlua1tdO1xuICAgIGF1eGlsaWFyeUxpbms/OiBMaW5rO1xufTtcblxudHlwZSBMaW5rID0ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLW5hdi1iYXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmF2QmFyRHJvcGRvd25Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbmF2LWJhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE5hdkJhckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIG1haW5TaXRlQmFzZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBoZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTmF2QmFyRHJvcGRvd25Db21wb25lbnQpIGRyb3Bkb3duQ29tcHMhOiBOYXZCYXJEcm9wZG93bkNvbXBvbmVudFtdO1xuXG4gICAgLy8gSWYgYW55IHNlY3Rpb24gb3BlbnMgdXAsIGNsb3NlIGFsbCBvdGhlcnMuIE9ubHkgb25lIHNlY3Rpb24gb3BlbiBhdCBhIHRpbWUuXG4gICAgcHJvdGVjdGVkIGhhbmRsZURyb3Bkb3duT3BlbkV2ZW50ID0gKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBzXG4gICAgICAgICAgICAuZmlsdGVyKChjb21wKSA9PiBjb21wLnRpdGxlKCkgIT09IHRpdGxlKVxuICAgICAgICAgICAgLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgICAgICAgICAgICBjb21wLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgaXNTY3JlZW5TbWFsbCA9IGlzU2NyZWVuU21hbGxTaWduYWwodGhpcy5ibyk7XG5cbiAgICBwcm90ZWN0ZWQgbmF2SW5mb3M6IFNpZ25hbDxOYXZJbmZvW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnTWF0ZXJpYWxzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1N1YmplY3QgQXJlYSBDb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9jb2xsZWN0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RhdGFiYXNlcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGF0YWJhc2VzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0pvdXJuYWxzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9qb3VybmFsc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1RoZXNlcyAmIERpc3NlcnRhdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vdGhlc2VzLWFuZC1kaXNzZXJ0YXRpb25zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTcGVjaWFsIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NwZWNpYWwtY29sbGVjdGlvbnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0RpZ2l0YWwgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vY29sbGVjdGlvbnMvZGlnaXRhbGAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Zvcm1hdHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXJ0aWNsZXMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2FydGljbGVzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBdWRpbycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vYXVkaW9gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0Jvb2tzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9ib29rc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnVmlkZW8nLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3ZpZGVvYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBhbGwgZm9ybWF0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9mb3JtYXRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRXF1aXBtZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0F2YWlsYWJsZSBmb3IgQ2hlY2tvdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9YXZhaWxhYmxlLWZvci1jaGVja291dGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQXZhaWxhYmxlIHdpdGggUmVzZXJ2YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9YXZhaWxhYmxlLXZpYS1yZXNlcnZhdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHVibGljIENvbXB1dGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvcHVibGljLWNvbXB1dGVyc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHJpbnRlcnMgYW5kIENvcHlpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cHJpbnRpbmctYW5kLWNvcHlpbmdgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnUGxhY2VzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1BvcHVsYXIgUGxhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hlbHAgRGVza3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvaGVscC1kZXNrc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFtaWx5IEhpc3RvcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vcmVsaWdpb24tZmFtaWx5LWhpc3RvcnlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Jlc2VhcmNoIGFuZCBXcml0aW5nIENlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9yZXNlYXJjaC1hbmQtd3JpdGluZy1jZW50ZXJgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NwZWNpYWwgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc3BlY2lhbC1jb2xsZWN0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1ZpZXcgRmxvb3IgTWFwcycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2xpYi5ieXUuZWR1L2Zsb29ybWFwcycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnU3BhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbGxlY3Rpb25zICYgQXJjaGl2ZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Y29sbGVjdGlvbnMtYW5kLWFyY2hpdmVzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHcm91cCBTdHVkeSBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2dyb3VwLXN0dWR5LXJvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbmRpdmlkdWFsIFN0dWR5IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1pbmRpdmlkdWFsLXN0dWR5LXNwYWNlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTXVsdGltZWRpYSBDcmVhdGlvbiBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9bXVsdGltZWRpYS1jcmVhdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlkZW8gVmlldyBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9dmlkZW8tdmlld2luZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2xhc3Nyb29tcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jbGFzc3Jvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb25mZXJlbmNlIFJvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNvbmZlcmVuY2Utcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xhYnMgJiBDZW50ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWxhYnMtYW5kLWNlbnRlcnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Jlc2VhcmNoIFJvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPXJlc2VhcmNoLXJvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0V4cGVyaWVuY2VzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0V2ZW50cycsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb25jZXJ0cyAmIEZpbG0gU2hvd2luZ3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvbW90aW9uLXBpY3R1cmUtYXJjaGl2ZS1zZXJpZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xlY3R1cmVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9bGVjdHVyZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdOZXdzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9hYm91dC9uZXdzYCB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBjYWxlbmRhciBvZiBldmVudHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9ldmVudHNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0xlYXJuaW5nIE9wcG9ydHVuaXRpZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGlicmFyeSBJbnN0cnVjdGlvbiBDbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9saWJyYXJ5LWluc3RydWN0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTb2Z0d2FyZSBUcmFpbmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvc29mdHdhcmUtdHJhaW5pbmdgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0ZhbWlseSBIaXN0b3J5IENsYXNzZXMgJiBXZWJpbmFycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvZmFtaWx5LWhpc3RvcnktY2xhc3Nlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRGlzcGxheXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRXhoaWJpdHMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2V4aGliaXRzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHYWxsZXJpZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Z2FsbGVyaWVzLWFuZC1leGhpYml0c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdTZXJ2aWNlcycsXG4gICAgICAgICAgICAgICAgbWFpblNlY3Rpb246IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTZXJ2aWNlcyBGb3InLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ3VycmVudCBTdHVkZW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1zdHVkZW50c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFjdWx0eSBhbmQgU3RhZmYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItZmFjdWx0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUmV0aXJlZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItcmV0aXJlZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Zpc2l0b3JzIGFuZCBBbHVtbmknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItdmlzaXRvcnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgYXV4aWxpYXJ5TGluazoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTZWUgYWxsIFNlcnZpY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0dldHRpbmcgTWF0ZXJpYWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NoZWNrIG91dCBNYXRlcmlhbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Fib3V0L2NoZWNrb3V0LXByaXZpbGVnZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hvbGRzICYgUmVuZXdhbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2hvbGRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdCb3Jyb3cgZnJvbSBhbm90aGVyIExpYnJhcnkgKElMTCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2ludGVybGlicmFyeS1sb2FuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdPdGhlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbnRlcm5zaGlwcywgRmVsbG93c2hpcHMgYW5kIEdyYW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1pbnRlcm5zaGlwcy1mZWxsb3dzaGlwcy1ncmFudHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Byb2dyYW1zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPXByb2dyYW1zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTY2hvbGFybHkgUHVibGlzaGluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jcmVhdGluZy1hbmQtcHVibGlzaGluZy1tYXRlcmlhbHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnQXNrIFVzJyxcblxuICAgICAgICAgICAgICAgIG90aGVyU2VjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdHZXQgSGVscCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBc2sgYSBMaWJyYXJpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2NoYXQ/dXJsPSR7d2luZG93LmxvY2F0aW9uLmhyZWZ9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NoYXRfYnViYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdMaWJyYXJ5IEluc3RydWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9saWJyYXJ5LWluc3RydWN0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdSZXNlYXJjaCBHdWlkZXMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2d1aWRlc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSGVscCAmIEd1aWRhbmNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWhlbHAtYW5kLWd1aWRhbmNlYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdGaW5kIGEuLi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRGVwYXJ0bWVudCcsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdIZWxwIERlc2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2hlbHAtZGVza3NgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xpYnJhcnkgRW1wbG95ZWUgYnkgTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTdWJqZWN0IExpYnJhcmlhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5I2Jyb3dzZS1ieS1zdWJqZWN0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBYm91dCB0aGUgTGlicmFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHZW5lcmFsIEluZm9ybWF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9hYm91dGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRkFRcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZmFxYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9KTtcbn1cbiIsIjxuYXZcbiAgICBbc3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCgpID8gaGVpZ2h0KCkgKyAncHgnIDogJ2F1dG8nIH1cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2hibGwtaGVhZGVyLWRlc2t0b3AnOiAhaXNTY3JlZW5TbWFsbCgpIH1cIlxuICAgIGRhdGEtdGVzdGlkPVwibmF2XCJcbj5cbiAgICA8dWwgY2xhc3M9XCJoYmxsLWhlYWRlci1uYXYtYmFyXCI+XG4gICAgICAgIDxsaSBpZD1cIm5hdkhvbWVcIj5cbiAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5TaXRlQmFzZVVybCgpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gaG9tZSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEhvbWVcbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgQGZvciAobmF2SW5mbyBvZiBuYXZJbmZvcygpOyB0cmFjayBuYXZJbmZvLnRpdGxlKSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGxpYi1uYXYtYmFyLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJuYXZJbmZvLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzU21hbGxTY3JlZW5dPVwiaXNTY3JlZW5TbWFsbCgpID8/IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAob3BlbkV2ZW50KT1cImhhbmRsZURyb3Bkb3duT3BlbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGlzU2NyZWVuU21hbGwoKSA/ICcjMzM2Y2M4JyA6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkluZm8ubWFpblNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPnt7IG5hdkluZm8ubWFpblNlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYmxsLWhlYWRlci1tYWluIGhibGwtaGVhZGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIG5hdkluZm8ubWFpblNlY3Rpb24ubGlua3M7IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImxpbmsudXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXNlZS1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzZWN0aW9uIG9mIG5hdkluZm8ub3RoZXJTZWN0aW9uczsgdHJhY2sgc2VjdGlvbi50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgc2VjdGlvbi50aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImhibGwtaGVhZGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIHNlY3Rpb24ubGlua3M7IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImxpbmsudXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGxpbmsuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsuaWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5hdXhpbGlhcnlMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VlLWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwic2VjdGlvbi5hdXhpbGlhcnlMaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VjdGlvbi5hdXhpbGlhcnlMaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvbl9yaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saWItbmF2LWJhci1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGEgaWQ9XCJuYXZTZWFyY2hcIiBbaHJlZl09XCJtYWluU2l0ZUJhc2VVcmwoKSArICcvc2VhcmNoJ1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlYXJjaFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdoYmxsLWhlYWRlci1pY29uJzogaXNTY3JlZW5TbWFsbCgpIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L25hdj5cbiJdfQ==
|
|
348
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvaGJsbC1oZWFkZXIvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBMkJ6RCxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQVFZLE9BQUUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxvQkFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUMzQyxXQUFNLEdBQUcsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNwQyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFJekMsOEVBQThFO1FBQ3BFLDRCQUF1QixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWE7aUJBQ2IsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssS0FBSyxDQUFDO2lCQUN4QyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtn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QUNKLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztLQUNOO0lBL1RHLGtCQUFrQjtRQUNkLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7OEdBdkJRLGVBQWU7a0dBQWYsZUFBZSxxWUFNVix1QkFBdUIsZ0RDckN6QyxnaUtBMEdBLDR4SUQvRWMsWUFBWSxrTkFBRSx1QkFBdUI7OzJGQUl0QyxlQUFlO2tCQVAzQixTQUFTOytCQUNJLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUM7OEJBVVQsYUFBYTtzQkFBbkQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgU2lnbmFsLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LWJhci1kcm9wZG93bi9uYXYtYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1NjcmVlblNtYWxsU2lnbmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbnR5cGUgTmF2SW5mbyA9IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIG1haW5TZWN0aW9uPzogU2VjdGlvbjtcbiAgICBvdGhlclNlY3Rpb25zOiBTZWN0aW9uW107XG59O1xuXG50eXBlIFNlY3Rpb24gPSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsaW5rczogTGlua1tdO1xuICAgIGF1eGlsaWFyeUxpbms/OiBMaW5rO1xufTtcblxudHlwZSBMaW5rID0ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLW5hdi1iYXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmF2QmFyRHJvcGRvd25Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbmF2LWJhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE5hdkJhckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIG1haW5TaXRlQmFzZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBoZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgICBpc0ludGVyYWN0aW5nV2l0aE5hdmJhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZHJlbihOYXZCYXJEcm9wZG93bkNvbXBvbmVudCkgZHJvcGRvd25Db21wcyE6IE5hdkJhckRyb3Bkb3duQ29tcG9uZW50W107XG5cbiAgICAvLyBJZiBhbnkgc2VjdGlvbiBvcGVucyB1cCwgY2xvc2UgYWxsIG90aGVycy4gT25seSBvbmUgc2VjdGlvbiBvcGVuIGF0IGEgdGltZS5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRHJvcGRvd25PcGVuRXZlbnQgPSAodGl0bGU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29tcHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvbXApID0+IGNvbXAudGl0bGUoKSAhPT0gdGl0bGUpXG4gICAgICAgICAgICAuZm9yRWFjaCgoY29tcCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXAuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGhhbmRsZUhvdmVyU3RhcnRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ludGVyYWN0aW5nV2l0aE5hdmJhciA9IHRydWU7XG4gICAgfVxuXG4gICAgaGFuZGxlTmF2YmFyTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ludGVyYWN0aW5nV2l0aE5hdmJhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc1NjcmVlblNtYWxsID0gaXNTY3JlZW5TbWFsbFNpZ25hbCh0aGlzLmJvKTtcblxuICAgIHByb3RlY3RlZCBuYXZJbmZvczogU2lnbmFsPE5hdkluZm9bXT4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdNYXRlcmlhbHMnLFxuICAgICAgICAgICAgICAgIG1haW5TZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUmVzb3VyY2UgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU3ViamVjdCBBcmVhIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2NvbGxlY3Rpb25zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRGF0YWJhc2VzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9kYXRhYmFzZXNgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnSm91cm5hbHMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2pvdXJuYWxzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVGhlc2VzICYgRGlzc2VydGF0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS90aGVzZXMtYW5kLWRpc3NlcnRhdGlvbnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NwZWNpYWwgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc3BlY2lhbC1jb2xsZWN0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRGlnaXRhbCBDb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9jb2xsZWN0aW9ucy9kaWdpdGFsYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRm9ybWF0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBcnRpY2xlcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vYXJ0aWNsZXNgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0F1ZGlvJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9hdWRpb2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQm9va3MnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Jvb2tzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdWaWRlbycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vdmlkZW9gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV4aWxpYXJ5TGluazoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU2VlIGFsbCBmb3JtYXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Zvcm1hdHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdFcXVpcG1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQXZhaWxhYmxlIGZvciBDaGVja291dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1hdmFpbGFibGUtZm9yLWNoZWNrb3V0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBdmFpbGFibGUgd2l0aCBSZXNlcnZhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1hdmFpbGFibGUtdmlhLXJlc2VydmF0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdQdWJsaWMgQ29tcHV0ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9wdWJsaWMtY29tcHV0ZXJzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdQcmludGVycyBhbmQgQ29weWluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1wcmludGluZy1hbmQtY29weWluZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQbGFjZXMnLFxuICAgICAgICAgICAgICAgIG1haW5TZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUG9wdWxhciBQbGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSGVscCBEZXNrcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9oZWxwLWRlc2tzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdGYW1pbHkgSGlzdG9yeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9yZWxpZ2lvbi1mYW1pbHktaGlzdG9yeWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUmVzZWFyY2ggYW5kIFdyaXRpbmcgQ2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL3Jlc2VhcmNoLWFuZC13cml0aW5nLWNlbnRlcmAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU3BlY2lhbCBDb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zcGVjaWFsLWNvbGxlY3Rpb25zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlldyBGbG9vciBNYXBzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vbGliLmJ5dS5lZHUvZmxvb3JtYXBzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG90aGVyU2VjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ29sbGVjdGlvbnMgJiBBcmNoaXZlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jb2xsZWN0aW9ucy1hbmQtYXJjaGl2ZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0dyb3VwIFN0dWR5IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvZ3JvdXAtc3R1ZHktcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0luZGl2aWR1YWwgU3R1ZHkgU3BhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWluZGl2aWR1YWwtc3R1ZHktc3BhY2VzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdNdWx0aW1lZGlhIENyZWF0aW9uIFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1tdWx0aW1lZGlhLWNyZWF0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdWaWRlbyBWaWV3IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz12aWRlby12aWV3aW5nYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdSb29tcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDbGFzc3Jvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNsYXNzcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbmZlcmVuY2UgUm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Y29uZmVyZW5jZS1yb29tc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGFicyAmIENlbnRlcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9bGFicy1hbmQtY2VudGVyc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUmVzZWFyY2ggUm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cmVzZWFyY2gtcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnRXhwZXJpZW5jZXMnLFxuICAgICAgICAgICAgICAgIG1haW5TZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbmNlcnRzICYgRmlsbSBTaG93aW5ncycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9tb3Rpb24tcGljdHVyZS1hcmNoaXZlLXNlcmllc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGVjdHVyZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1sZWN0dXJlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ05ld3MnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Fib3V0L25ld3NgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU2VlIGNhbGVuZGFyIG9mIGV2ZW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2V2ZW50c2AsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnTGVhcm5pbmcgT3Bwb3J0dW5pdGllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdMaWJyYXJ5IEluc3RydWN0aW9uIENsYXNzZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2xpYnJhcnktaW5zdHJ1Y3Rpb25gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NvZnR3YXJlIFRyYWluaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9zb2Z0d2FyZS10cmFpbmluZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFtaWx5IEhpc3RvcnkgQ2xhc3NlcyAmIFdlYmluYXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9mYW1pbHktaGlzdG9yeS1jbGFzc2VzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdEaXNwbGF5cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdFeGhpYml0cycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZXhoaWJpdHNgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0dhbGxlcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1nYWxsZXJpZXMtYW5kLWV4aGliaXRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1NlcnZpY2VzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1NlcnZpY2VzIEZvcicsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDdXJyZW50IFN0dWRlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Zm9yLXN0dWRlbnRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdGYWN1bHR5IGFuZCBTdGFmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1mYWN1bHR5YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdSZXRpcmVlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1yZXRpcmVlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlzaXRvcnMgYW5kIEFsdW1uaScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci12aXNpdG9yc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBhbGwgU2VydmljZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlc2AsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnR2V0dGluZyBNYXRlcmlhbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2hlY2sgb3V0IE1hdGVyaWFscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vYWJvdXQvY2hlY2tvdXQtcHJpdmlsZWdlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSG9sZHMgJiBSZW5ld2FscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvaG9sZHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0JvcnJvdyBmcm9tIGFub3RoZXIgTGlicmFyeSAoSUxMKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvaW50ZXJsaWJyYXJ5LWxvYW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ090aGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0ludGVybnNoaXBzLCBGZWxsb3dzaGlwcyBhbmQgR3JhbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWludGVybnNoaXBzLWZlbGxvd3NoaXBzLWdyYW50c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHJvZ3JhbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cHJvZ3JhbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NjaG9sYXJseSBQdWJsaXNoaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNyZWF0aW5nLWFuZC1wdWJsaXNoaW5nLW1hdGVyaWFsc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdBc2sgVXMnLFxuXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0dldCBIZWxwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FzayBhIExpYnJhcmlhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vY2hhdD91cmw9JHt3aW5kb3cubG9jYXRpb24uaHJlZn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY2hhdF9idWJibGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xpYnJhcnkgSW5zdHJ1Y3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2xpYnJhcnktaW5zdHJ1Y3Rpb25gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ1Jlc2VhcmNoIEd1aWRlcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZ3VpZGVzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdIZWxwICYgR3VpZGFuY2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9aGVscC1hbmQtZ3VpZGFuY2VgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0ZpbmQgYS4uLicsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdEZXBhcnRtZW50JywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9kaXJlY3RvcnlgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hlbHAgRGVzaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvaGVscC1kZXNrc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGlicmFyeSBFbXBsb3llZSBieSBOYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9kaXJlY3RvcnlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1N1YmplY3QgTGlicmFyaWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9kaXJlY3RvcnkjYnJvd3NlLWJ5LXN1YmplY3RgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Fib3V0IHRoZSBMaWJyYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0dlbmVyYWwgSW5mb3JtYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Fib3V0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdGQVFzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9mYXFgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH0pO1xufVxuIiwiPG5hdlxuICAgIFtzdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0KCkgPyBoZWlnaHQoKSArICdweCcgOiAnYXV0bycgfVwiXG4gICAgW25nQ2xhc3NdPVwieyAnaGJsbC1oZWFkZXItZGVza3RvcCc6ICFpc1NjcmVlblNtYWxsKCkgfVwiXG4gICAgZGF0YS10ZXN0aWQ9XCJuYXZcIlxuICAgIChtb3VzZWxlYXZlKT1cImhhbmRsZU5hdmJhck1vdXNlTGVhdmUoKVwiXG4+XG4gICAgPHVsIGNsYXNzPVwiaGJsbC1oZWFkZXItbmF2LWJhclwiPlxuICAgICAgICA8bGkgaWQ9XCJuYXZIb21lXCI+XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluU2l0ZUJhc2VVcmwoKVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uXCI+IGhvbWUgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBIb21lXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIEBmb3IgKG5hdkluZm8gb2YgbmF2SW5mb3MoKTsgdHJhY2sgbmF2SW5mby50aXRsZSkge1xuICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxsaWItbmF2LWJhci1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwibmF2SW5mby50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc1NtYWxsU2NyZWVuXT1cImlzU2NyZWVuU21hbGwoKSA/PyB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzSW50ZXJhY3RpbmddPVwiaXNJbnRlcmFjdGluZ1dpdGhOYXZiYXJcIlxuICAgICAgICAgICAgICAgICAgICAob3BlbkV2ZW50KT1cImhhbmRsZURyb3Bkb3duT3BlbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoaG92ZXJTdGFydGVkKT1cImhhbmRsZUhvdmVyU3RhcnRlZCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBpc1NjcmVlblNtYWxsKCkgPyAnIzMzNmNjOCcgOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZJbmZvLm1haW5TZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMj57eyBuYXZJbmZvLm1haW5TZWN0aW9uLnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaGJsbC1oZWFkZXItbWFpbiBoYmxsLWhlYWRlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBuYXZJbmZvLm1haW5TZWN0aW9uLmxpbmtzOyB0cmFjayBsaW5rLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJsaW5rLnVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChuYXZJbmZvLm1haW5TZWN0aW9uLmF1eGlsaWFyeUxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci1zZWUtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJuYXZJbmZvLm1haW5TZWN0aW9uLmF1eGlsaWFyeUxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBuYXZJbmZvLm1haW5TZWN0aW9uLmF1eGlsaWFyeUxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGV2cm9uX3JpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2VjdGlvbiBvZiBuYXZJbmZvLm90aGVyU2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24udGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7IHNlY3Rpb24udGl0bGUgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYmxsLWhlYWRlci1saW5rc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBzZWN0aW9uLmxpbmtzOyB0cmFjayBsaW5rLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJsaW5rLnVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChsaW5rLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItaWNvbi1yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmljb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uYXV4aWxpYXJ5TGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXNlZS1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInNlY3Rpb24uYXV4aWxpYXJ5TGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24uYXV4aWxpYXJ5TGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGliLW5hdi1iYXItZHJvcGRvd24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxhIGlkPVwibmF2U2VhcmNoXCIgW2hyZWZdPVwibWFpblNpdGVCYXNlVXJsKCkgKyAnL3NlYXJjaCdcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgICAgICAgICBTZWFyY2hcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaGJsbC1oZWFkZXItaWNvbic6IGlzU2NyZWVuU21hbGwoKSB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICA8L3VsPlxuPC9uYXY+XG4iXX0=
|