acr-assist-simulator-module
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.
125 lines (124 loc) • 18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, Input } from '@angular/core';
import { AllReportText, MainReportText } from '../assist-data-element/assist-data-element.component';
import { AllTextReport } from '../../core/models/report-text.model';
const /** @type {?} */ $ = require('jquery');
export class AssistReportTextComponent {
constructor() {
this.allReportTexts = [];
this.sections = [];
setInterval(() => {
}, 1000);
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
this.mainReportTexts = new MainReportText();
this.onSelect(this.selectedSectionId);
}
/**
* @param {?} sectionId
* @return {?}
*/
onSelect(sectionId) {
// console.log(this.reportText.allReportText);
this.selectedSectionId = sectionId;
this.sections = [];
this.selectedSection = null;
for (const /** @type {?} */ section in this.reportText.allReportText) {
if (this.reportText.allReportText[section].reportText !== '') {
this.sections.push(section);
}
}
if (sectionId === 'undefined' || sectionId === undefined || sectionId === 'All') {
let /** @type {?} */ allText;
this.allTextReport = [];
allText = '';
for (const /** @type {?} */ section in this.reportText.allReportText) {
if (this.reportText.allReportText[section].reportText !== '') {
const /** @type {?} */ textReport = new AllTextReport();
textReport.heading = section;
textReport.content = this.removeEmptyLine(this.reportText.allReportText[section].reportText);
this.allTextReport.push(textReport);
}
}
this.selectedSectionId = 'All';
}
for (const /** @type {?} */ section in this.reportText.allReportText) {
if (this.reportText.allReportText[section].sectionId === sectionId) {
this.selectedSection = this.reportText.allReportText[section].reportText;
this.selectedSection = this.reportText.reportTextMainContent + ((this.selectedSection !== undefined && this.selectedSection !== '') ? this.removeEmptyLine(this.selectedSection) : '');
break;
}
}
this.mainReportTexts = new MainReportText();
this.allReportTexts = [];
for (const /** @type {?} */ section in this.reportText.allReportText) {
const /** @type {?} */ allreportText = new AllReportText();
allreportText.reportText = this.removeEmptyLine(this.reportText.allReportText[section].reportText);
allreportText.sectionId = this.reportText.allReportText[section].sectionId;
this.allReportTexts.push(allreportText);
}
this.mainReportTexts.allReportText = this.allReportTexts;
this.mainReportTexts.reportTextMainContent = this.reportText.reportTextMainContent;
}
/**
* @param {?} inputText
* @return {?}
*/
removeEmptyLine(inputText) {
if (inputText.trim().length !== 0) {
const /** @type {?} */ lines = inputText.split('\n');
const /** @type {?} */ uniquelines = [];
lines.forEach(function (line, i) {
if (line.trim().length !== 0) {
uniquelines.push(line);
}
});
return uniquelines.join('\n');
}
}
}
AssistReportTextComponent.decorators = [
{ type: Component, args: [{
selector: 'acr-assist-report-text',
template: `<ng-container *ngFor="let textReport of allTextReport; let lastitem = last">
<dt class="text-capitalize">{{textReport.heading}}</dt>
<dd>
<p class="white-space-line" [innerHTML]="textReport.content"></p>
</dd>
<hr *ngIf="!lastitem">
</ng-container>
`,
styles: [``, `.required-field{color:red}.padding-l-5{padding-left:5px}.whitespace{margin-left:5px}.max-w-h-100{max-width:100%;max-height:100%}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.carousel-control.left{background-repeat:repeat-x}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control.right{background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.scroll{overflow-y:scroll;overflow-x:hidden}.div-simulator-form-height{height:calc(100vh - 100px);overflow-y:scroll;overflow-x:hidden}.div-report-text-scroll{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 300px)}.padding-r-10{padding-right:10px}.slide-left{left:30px}.slide-right{right:30px}hr{margin-top:10px;margin-bottom:10px}.white-space-line{white-space:pre-line;word-wrap:break-word}p{margin:0 0 10px}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}h4.modal-title.float-left{float:left}.margin-b-0{margin-bottom:0}.font-weight-400{font-weight:400}.custom-radio-style{float:left;margin-right:15px}.zoom{width:100%;overflow:auto}.zoom img{height:auto;width:100%;min-width:100%;max-width:inherit!important}.btn-zoom{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-zoom.hover,.btn-zoom:active,.btn-zoom:hover{background-color:#e7e7e7} (min-width:768px){label.control-label{padding-left:20px}}.padding-5{padding:5px}`]
},] },
];
/** @nocollapse */
AssistReportTextComponent.ctorParameters = () => [];
AssistReportTextComponent.propDecorators = {
reportText: [{ type: Input }]
};
function AssistReportTextComponent_tsickle_Closure_declarations() {
/** @type {?} */
AssistReportTextComponent.prototype.reportText;
/** @type {?} */
AssistReportTextComponent.prototype.allReportTexts;
/** @type {?} */
AssistReportTextComponent.prototype.selectedSection;
/** @type {?} */
AssistReportTextComponent.prototype.mainReportTexts;
/** @type {?} */
AssistReportTextComponent.prototype.selectedSectionId;
/** @type {?} */
AssistReportTextComponent.prototype.allTextReport;
/** @type {?} */
AssistReportTextComponent.prototype.sections;
/** @type {?} */
AssistReportTextComponent.prototype.prevSectionId;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fjci1hc3Npc3Qtc2ltdWxhdG9yLW1vZHVsZS8iLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9hY3ItYXNzaXN0LXNpbXVsYXRvci9hc3Npc3QtcmVwb3J0LXRleHQvYXNzaXN0LXJlcG9ydC10ZXh0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLHVCQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFhNUIsTUFBTTtJQWNKOzhCQVhpQyxFQUFFO3dCQUtmLEVBQUU7UUFPbEIsV0FBVyxDQUFDLEdBQUcsRUFBRTtTQUNsQixFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ1Q7Ozs7O0lBUEosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQ3ZDOzs7OztJQU1DLFFBQVEsQ0FBQyxTQUFTOztRQUVoQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxDQUFDLHVCQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDcEQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUs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SSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztLQUN0Rjs7Ozs7SUFDRCxlQUFlLENBQUMsU0FBaUI7UUFDN0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLHVCQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLHVCQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBRSxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hCO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7S0FDRjs7O1lBckZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Q0FPWDtnQkFDQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsazdDQUFrN0MsQ0FBQzthQUNqOEM7Ozs7O3lCQUdBLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbGxSZXBvcnRUZXh0LCBNYWluUmVwb3J0VGV4dCB9IGZyb20gJy4uL2Fzc2lzdC1kYXRhLWVsZW1lbnQvYXNzaXN0LWRhdGEtZWxlbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGxUZXh0UmVwb3J0IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvcmVwb3J0LXRleHQubW9kZWwnO1xyXG5jb25zdCAkID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWNyLWFzc2lzdC1yZXBvcnQtdGV4dCcsXHJcbiAgdGVtcGxhdGU6IGA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZXh0UmVwb3J0IG9mIGFsbFRleHRSZXBvcnQ7IGxldCBsYXN0aXRlbSA9IGxhc3RcIj5cclxuICA8ZHQgY2xhc3M9XCJ0ZXh0LWNhcGl0YWxpemVcIj57e3RleHRSZXBvcnQuaGVhZGluZ319PC9kdD5cclxuICA8ZGQ+XHJcbiAgICA8cCBjbGFzcz1cIndoaXRlLXNwYWNlLWxpbmVcIiBbaW5uZXJIVE1MXT1cInRleHRSZXBvcnQuY29udGVudFwiPjwvcD5cclxuICA8L2RkPlxyXG4gIDxociAqbmdJZj1cIiFsYXN0aXRlbVwiPlxyXG48L25nLWNvbnRhaW5lcj5cclxuYCxcclxuICBzdHlsZXM6IFtgYCwgYC5yZXF1aXJlZC1maWVsZHtjb2xvcjpyZWR9LnBhZGRpbmctbC01e3BhZGRpbmctbGVmdDo1cHh9LndoaXRlc3BhY2V7bWFyZ2luLWxlZnQ6NXB4fS5tYXgtdy1oLTEwMHttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNhcm91c2VsLWNvbnRyb2w+LmZhe2ZvbnQtc2l6ZTo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7ei1pbmRleDo1O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6LTIwcHh9LmNhcm91c2VsLWNvbnRyb2wubGVmdHtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0uY2Fyb3VzZWwtY29udHJvbC5sZWZ0LC5jYXJvdXNlbC1jb250cm9sLnJpZ2h0e2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uY2Fyb3VzZWwtY29udHJvbC5yaWdodHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC4wMDAxKSAwLHJnYmEoMCwwLDAsLjUpIDEwMCUpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59LmRpdi1zaW11bGF0b3ItZm9ybS1oZWlnaHR7aGVpZ2h0OmNhbGMoMTAwdmggLSAxMDBweCk7b3ZlcmZsb3cteTpzY3JvbGw7b3ZlcmZsb3cteDpoaWRkZW59LmRpdi1yZXBvcnQtdGV4dC1zY3JvbGx7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIDMwMHB4KX0ucGFkZGluZy1yLTEwe3BhZGRpbmctcmlnaHQ6MTBweH0uc2xpZGUtbGVmdHtsZWZ0OjMwcHh9LnNsaWRlLXJpZ2h0e3JpZ2h0OjMwcHh9aHJ7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MTBweH0ud2hpdGUtc3BhY2UtbGluZXt3aGl0ZS1zcGFjZTpwcmUtbGluZTt3b3JkLXdyYXA6YnJlYWstd29yZH1we21hcmdpbjowIDAgMTBweH0uZm9ybS1jb250cm9se2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWNvbG9yOiNkMmQ2ZGV9aDQubW9kYWwtdGl0bGUuZmxvYXQtbGVmdHtmbG9hdDpsZWZ0fS5tYXJnaW4tYi0we21hcmdpbi1ib3R0b206MH0uZm9udC13ZWlnaHQtNDAwe2ZvbnQtd2VpZ2h0OjQwMH0uY3VzdG9tLXJhZGlvLXN0eWxle2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjE1cHh9Lnpvb217d2lkdGg6MTAwJTtvdmVyZmxvdzphdXRvfS56b29tIGltZ3toZWlnaHQ6YXV0bzt3aWR0aDoxMDAlO21pbi13aWR0aDoxMDAlO21heC13aWR0aDppbmhlcml0IWltcG9ydGFudH0uYnRuLXpvb217YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O2NvbG9yOiM0NDQ7Ym9yZGVyLWNvbG9yOiNkZGR9LmJ0bi16b29tLmhvdmVyLC5idG4tem9vbTphY3RpdmUsLmJ0bi16b29tOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U3ZTdlN31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7bGFiZWwuY29udHJvbC1sYWJlbHtwYWRkaW5nLWxlZnQ6MjBweH19LnBhZGRpbmctNXtwYWRkaW5nOjVweH1gXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzaXN0UmVwb3J0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG5ASW5wdXQoKSByZXBvcnRUZXh0OiBNYWluUmVwb3J0VGV4dDtcclxuYWxsUmVwb3J0VGV4dHM6IEFsbFJlcG9ydFRleHQgW10gPSBbXTtcclxuc2VsZWN0ZWRTZWN0aW9uOiBzdHJpbmc7XHJcbm1haW5SZXBvcnRUZXh0czogTWFpblJlcG9ydFRleHQ7XHJcbnNlbGVjdGVkU2VjdGlvbklkOiBzdHJpbmc7XHJcbmFsbFRleHRSZXBvcnQ6IEFsbFRleHRSZXBvcnRbXTtcclxuc2VjdGlvbnM6IHN0cmluZyBbXSA9IFtdO1xyXG5wcmV2U2VjdGlvbklkOiBzdHJpbmc7XHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICB0aGlzLm1haW5SZXBvcnRUZXh0cyA9IG5ldyBNYWluUmVwb3J0VGV4dCgpO1xyXG4gIHRoaXMub25TZWxlY3QodGhpcy5zZWxlY3RlZFNlY3Rpb25JZCk7XHJcbn1cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgIH1cclxuXHJcbiAgb25TZWxlY3Qoc2VjdGlvbklkKSB7XHJcbiAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uSWQgPSBzZWN0aW9uSWQ7XHJcbiAgICB0aGlzLnNlY3Rpb25zID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IG51bGw7XHJcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHNlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoc2VjdGlvbklkID09PSAndW5kZWZpbmVkJyB8fCBzZWN0aW9uSWQgPT09IHVuZGVmaW5lZCB8fCBzZWN0aW9uSWQgPT09ICdBbGwnICkge1xyXG4gICAgICBsZXQgYWxsVGV4dDogc3RyaW5nO1xyXG4gICAgICB0aGlzLmFsbFRleHRSZXBvcnQgPSBbXTtcclxuICAgICAgYWxsVGV4dCA9ICcnO1xyXG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgICBpZiAodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0ucmVwb3J0VGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgIGNvbnN0IHRleHRSZXBvcnQ6IEFsbFRleHRSZXBvcnQgPSBuZXcgQWxsVGV4dFJlcG9ydCgpO1xyXG4gICAgICAgICAgdGV4dFJlcG9ydC5oZWFkaW5nID0gIHNlY3Rpb247XHJcbiAgICAgICAgICB0ZXh0UmVwb3J0LmNvbnRlbnQgPSB0aGlzLnJlbW92ZUVtcHR5TGluZSh0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dFtzZWN0aW9uXS5yZXBvcnRUZXh0KTtcclxuICAgICAgICAgIHRoaXMuYWxsVGV4dFJlcG9ydC5wdXNoICh0ZXh0UmVwb3J0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25JZCA9ICdBbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBpbiB0aGlzLnJlcG9ydFRleHQuYWxsUmVwb3J0VGV4dCkge1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHRbc2VjdGlvbl0uc2VjdGlvbklkID09PSBzZWN0aW9uSWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQ7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSB0aGlzLnJlcG9ydFRleHQucmVwb3J0VGV4dE1haW5Db250ZW50ICsgKCh0aGlzLnNlbGVjdGVkU2VjdGlvbiAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VsZWN0ZWRTZWN0aW9uICE9PSAnJykgPyB0aGlzLnJlbW92ZUVtcHR5TGluZSh0aGlzLnNlbGVjdGVkU2VjdGlvbikgOiAnJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubWFpblJlcG9ydFRleHRzID0gbmV3IE1haW5SZXBvcnRUZXh0KCk7XHJcbiAgICB0aGlzLmFsbFJlcG9ydFRleHRzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHNlY3Rpb24gaW4gdGhpcy5yZXBvcnRUZXh0LmFsbFJlcG9ydFRleHQpIHtcclxuICAgICAgY29uc3QgYWxscmVwb3J0VGV4dCA9IG5ldyBBbGxSZXBvcnRUZXh0KCk7XHJcbiAgICAgIGFsbHJlcG9ydFRleHQucmVwb3J0VGV4dCA9IHRoaXMucmVtb3ZlRW1wdHlMaW5lKHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnJlcG9ydFRleHQpO1xyXG4gICAgICBhbGxyZXBvcnRUZXh0LnNlY3Rpb25JZCA9IHRoaXMucmVwb3J0VGV4dC5hbGxSZXBvcnRUZXh0W3NlY3Rpb25dLnNlY3Rpb25JZDtcclxuICAgICAgdGhpcy5hbGxSZXBvcnRUZXh0cy5wdXNoKGFsbHJlcG9ydFRleHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tYWluUmVwb3J0VGV4dHMuYWxsUmVwb3J0VGV4dCA9IHRoaXMuYWxsUmVwb3J0VGV4dHM7XHJcbiAgICB0aGlzLm1haW5SZXBvcnRUZXh0cy5yZXBvcnRUZXh0TWFpbkNvbnRlbnQgPSB0aGlzLnJlcG9ydFRleHQucmVwb3J0VGV4dE1haW5Db250ZW50O1xyXG59XHJcbnJlbW92ZUVtcHR5TGluZShpbnB1dFRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoaW5wdXRUZXh0LnRyaW0oKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgY29uc3QgbGluZXMgPSBpbnB1dFRleHQuc3BsaXQoJ1xcbicpO1xyXG4gICAgICBjb25zdCB1bmlxdWVsaW5lcyA9IFtdO1xyXG4gICAgICBsaW5lcy5mb3JFYWNoKCBmdW5jdGlvbiAobGluZSwgaSkge1xyXG4gICAgICAgICAgaWYgKGxpbmUudHJpbSgpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICB1bmlxdWVsaW5lcy5wdXNoKGxpbmUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHVuaXF1ZWxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=