@infordata-web/portal-common-component-lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.
93 lines • 16.5 kB
JavaScript
import { Component, Output, Input, ApplicationRef, EventEmitter } from "@angular/core";
import { of, combineLatest, defer } from "rxjs";
import { Validators, FormControl, FormGroup } from "@angular/forms";
import { map, shareReplay, startWith, switchMap, tap, withLatestFrom } from "rxjs/operators";
import { MessageService } from "../../services/message.service";
import { TipologicheService } from "../../services/tipologiche/tipologiche.service";
import { ComponentOutputStatus } from "../../normalizzazione/component-output-status";
export class DatiTribunaleComponent {
constructor(msg, tipologiche, appRef) {
this.msg = msg;
this.tipologiche = tipologiche;
this.appRef = appRef;
this.form = new FormGroup({});
this.done = new EventEmitter();
}
ngOnDestroy() {
if (this.$valuechangeTrib) {
this.$valuechangeTrib.unsubscribe();
}
if (this.$changeTribunale) {
this.$changeTribunale.unsubscribe();
}
}
ngOnInit() {
var _a, _b;
const localitaProvinciaAC = new FormControl({ value: (_a = this === null || this === void 0 ? void 0 : this.autoritaOrdinante) === null || _a === void 0 ? void 0 : _a.codiceProvincia, disabled: false }, [Validators.required]);
this.form.addControl("localitaProvinciaAC", localitaProvinciaAC);
const tribunaleAC = new FormControl({ value: '', disabled: false }, c => {
return String(c.value || '').length > 0
? {}
: { 'required': 'Il campo è obbligatorio.' };
});
this.form.addControl("tribunaleAC", tribunaleAC);
/* const tribunaleCF = new FormControl(
{ value: "", disabled: true }
);
this.form.addControl("tribunaleCF", tribunaleCF); */
//reccupero_tribunali
this.tribunali$ = localitaProvinciaAC.valueChanges
.pipe(startWith((_b = this.autoritaOrdinante) === null || _b === void 0 ? void 0 : _b.codiceProvincia), switchMap((value) => this.tipologiche.getTribunali$(value)
.pipe(withLatestFrom(of(value)))),
// tap(_ => console.log("outMergeMap", _)),
//SE SI PROVIENE DALLE BOZZE => SI RESETTA IL TRIBUNALE
tap(([tribunali, value]) => {
var _a;
if (value == ((_a = this.autoritaOrdinante) === null || _a === void 0 ? void 0 : _a.codiceProvincia)) {
tribunaleAC.setValue(this.autoritaOrdinante.idTribunale);
}
else {
tribunaleAC.setValue(null);
}
}), map(([tribunali, value]) => tribunali), shareReplay()
// catchError(error=> )
);
//Build_output_steam
const changeTribinali$ = defer(() => this.tribunali$);
const streamOutput$ = combineLatest([
changeTribinali$,
tribunaleAC.valueChanges
])
.pipe(map(([listaTribunali, tribunaleSelected]) => listaTribunali.find(tribunale => tribunale.id == tribunaleSelected)), map(tribunale => ComponentOutputStatus.of(this.form.valid, tribunale)));
/* this.cf$ = tribunaleAC.valueChanges
.pipe(
tap(_ => console.log("cf$", _)),
switchMap(value => this.tribunali$.pipe(
map(trib => trib.find(
tribunale => tribunale.codiceistat == value)?.codiceFiscale
))
)
) */
//OUTPUT_COMPONENT
this.$valuechangeTrib = streamOutput$.pipe().subscribe(out => this.done.emit(out));
}
resetTribunale() { }
}
DatiTribunaleComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-dati-tribunale',
template: "<div class=\"row\" [formGroup]=\"form\">\r\n\t<div class=\"col-12\">\r\n\t\t<!-- <h4 class=\"h5\">{{'inserisci-dati-tribunale' | traduzione}}</h4> -->\r\n\t\t<h3 class=\"h5 mb-0\"><info-tip-label label=\"inserisci-dati-tribunale\"></info-tip-label></h3>\r\n\t</div>\r\n\t<div class=\"col-md-6\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'required' | traduzione}}{{'provincia' | traduzione}}</mat-label>\r\n\t\t\t<mat-select placeholder=\"{{'seleziona' | traduzione}}\" formControlName=\"localitaProvinciaAC\">\r\n\t\t\t\t<mat-option *ngFor=\"let provincia of province | async\" [value]=\"provincia.sigla\">\r\n\t\t\t\t\t{{provincia.denominazione}}\r\n\t\t\t\t</mat-option>\r\n\t\t\t</mat-select>\r\n\t\t\t<mat-error *ngIf=\"form.touched && form.controls[ 'localitaProvinciaAC'].invalid\">\r\n\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls[ 'localitaProvinciaAC']) | traduzione}}\r\n\t\t\t</mat-error>\r\n\t\t\t<mat-hint *infoTip=\"'provincia'\"></mat-hint>\r\n\t\t</mat-form-field>\r\n\t</div>\r\n\t<div class=\"col-md-6\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'required' | traduzione}}{{'tribunale' | traduzione}}</mat-label>\r\n\t\t\t<mat-select formControlName=\"tribunaleAC\">\r\n\t\t\t\t<mat-option *ngFor=\"let tribunale of tribunali$ | async\" [value]=\"tribunale.id\">\r\n\t\t\t\t\t{{tribunale.nomeUfficio}}\r\n\t\t\t\t</mat-option>\r\n\t\t\t</mat-select>\r\n\t\t\t<mat-error *ngIf=\"form.controls[ 'tribunaleAC'].invalid\">\r\n\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls[ 'tribunaleAC']) | traduzione}}\r\n\t\t\t</mat-error>\r\n\t\t\t<mat-hint *infoTip=\"'tribunale'\"></mat-hint>\r\n\t\t</mat-form-field>\r\n\t</div>\r\n\t<!-- <div class=\"col-md-4\" *ngIf=\"cf$ | async\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'codice-fiscale' | traduzione}}</mat-label>\r\n\t\t\t<input matInput formControlName=\"tribunaleCF\" [value]=\"cf$ | async\">\r\n\t\t</mat-form-field>\r\n\t</div> -->\r\n</div>\r\n",
styles: [""]
},] }
];
DatiTribunaleComponent.ctorParameters = () => [
{ type: MessageService },
{ type: TipologicheService },
{ type: ApplicationRef }
];
DatiTribunaleComponent.propDecorators = {
province: [{ type: Input }],
autoritaOrdinante: [{ type: Input }],
done: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0aS10cmlidW5hbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2dldHRpL0RBRy9zb3JnZW50aS9naXRsYWItdGVybmkvY29tbW9uLWNvbXBvbmVudC1saWIvcHJvamVjdHMvcG9ydGFsLWNvbW1vbi1jb21wb25lbnQtbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZXBvc2l0aS9jb21tb24tY29tcG9uZW50L2RhdGktdHJpYnVuYWxlL2RhdGktdHJpYnVuYWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUE0QixFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFZLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFnQnRGLE1BQU0sT0FBTyxzQkFBc0I7SUFjbEMsWUFDUyxHQUFtQixFQUNuQixXQUErQixFQUMvQixNQUFzQjtRQUZ0QixRQUFHLEdBQUgsR0FBRyxDQUFnQjtRQUNuQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFYL0IsU0FBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFD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RSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFekU7Ozs7Ozs7O2dCQVFLO1FBRUwsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUN6QyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUdELGNBQWMsS0FBSyxDQUFDOzs7WUFuR3BCLFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwyNkRBQThDOzthQUU5Qzs7O1lBakJRLGNBQWM7WUFDZCxrQkFBa0I7WUFOMkIsY0FBYzs7O3VCQXdCbEUsS0FBSztnQ0FFTCxLQUFLO21CQU1MLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBPdXRwdXQsIElucHV0LCBBcHBsaWNhdGlvblJlZiwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBPYnNlcnZhYmxlLCBvZiwgY29tYmluZUxhdGVzdCwgZGVmZXIgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBQcm92aW5jaWFEVE8gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3Byb3ZpbmNpYS1kdG9cIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRpcG9sb2dpY2hlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90aXBvbG9naWNoZS90aXBvbG9naWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudE91dHB1dFN0YXR1cyB9IGZyb20gXCIuLi8uLi9ub3JtYWxpenphemlvbmUvY29tcG9uZW50LW91dHB1dC1zdGF0dXNcIjtcclxuaW1wb3J0IHsgVHJpYnVuYWxlRFRPIH0gZnJvbSBcIi4uLy4uL21vZGVscy90cmlidW5hbGUtZHRvXCI7XHJcbmltcG9ydCB7IEF1dG9yaXRhT3JkaW5hbnRlRFRPIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hdXRvcml0YS1vcmRpbmFudGUtZHRvXCI7XHJcbnR5cGUgZXJyb3JTZXJ2aWNlRmFpbGVkID0ge1xyXG5cdGVycm9yOiBzdHJpbmdcclxufVxyXG50eXBlIHByb3ZpbmNpYUFuZFRyaWJ1bmFsaSA9IHtcclxuXHR0cmlidW5hbGk6IEFycmF5PFRyaWJ1bmFsZURUTz4sXHJcblx0c2lnbGFQcm92aW5jaWE6IHN0cmluZ1xyXG59XHJcbnR5cGUgT1VUUFVUX0NPTVBPTkVOVCA9IHN0cmluZyB8IENvbXBvbmVudE91dHB1dFN0YXR1czxUcmlidW5hbGVEVE8+IHwgQ29tcG9uZW50T3V0cHV0U3RhdHVzPGVycm9yU2VydmljZUZhaWxlZD5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdsaWItZGF0aS10cmlidW5hbGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9kYXRpLXRyaWJ1bmFsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vZGF0aS10cmlidW5hbGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRpVHJpYnVuYWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpXHJcblx0cHJvdmluY2U6IE9ic2VydmFibGU8QXJyYXk8UHJvdmluY2lhRFRPPj47XHJcblx0QElucHV0KClcclxuXHRhdXRvcml0YU9yZGluYW50ZTogQXV0b3JpdGFPcmRpbmFudGVEVE87XHJcblx0Y2YkOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcblx0Zm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cdHRyaWJ1bmFsaSQ6IE9ic2VydmFibGU8VHJpYnVuYWxlRFRPW10+O1xyXG5cdCR2YWx1ZWNoYW5nZVRyaWI6IFN1YnNjcmlwdGlvbjtcclxuXHRAT3V0cHV0KClcclxuXHRkb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdCRjaGFuZ2VUcmlidW5hbGU6IFN1YnNjcmlwdGlvbjtcclxuXHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBtc2c6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0aXBvbG9naWNoZTogVGlwb2xvZ2ljaGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmXHJcblxyXG5cdCkgeyB9XHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy4kdmFsdWVjaGFuZ2VUcmliKSB7XHJcblx0XHRcdHRoaXMuJHZhbHVlY2hhbmdlVHJpYi51bnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuJGNoYW5nZVRyaWJ1bmFsZSkge1xyXG5cdFx0XHR0aGlzLiRjaGFuZ2VUcmlidW5hbGUudW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0Y29uc3QgbG9jYWxpdGFQcm92aW5jaWFBQyA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0eyB2YWx1ZTogdGhpcz8uYXV0b3JpdGFPcmRpbmFudGU/LmNvZGljZVByb3ZpbmNpYSwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcblx0XHRcdFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG5cdFx0KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKFwibG9jYWxpdGFQcm92aW5jaWFBQ1wiLCBsb2NhbGl0YVByb3ZpbmNpYUFDKTtcclxuXHJcblx0XHRjb25zdCB0cmlidW5hbGVBQyA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0eyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9LCBjID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gU3RyaW5nKGMudmFsdWUgfHwgJycpLmxlbmd0aCA+IDBcclxuXHRcdFx0XHRcdD8ge31cclxuXHRcdFx0XHRcdDogeyAncmVxdWlyZWQnOiAnSWwgY2FtcG8gw6ggb2JibGlnYXRvcmlvLicgfVxyXG5cdFx0XHR9KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKFwidHJpYnVuYWxlQUNcIiwgdHJpYnVuYWxlQUMpO1xyXG5cclxuXHRcdC8qIGNvbnN0IHRyaWJ1bmFsZUNGID0gbmV3IEZvcm1Db250cm9sKFxyXG5cdFx0XHR7IHZhbHVlOiBcIlwiLCBkaXNhYmxlZDogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cdFx0dGhpcy5mb3JtLmFkZENvbnRyb2woXCJ0cmlidW5hbGVDRlwiLCB0cmlidW5hbGVDRik7ICovXHJcblxyXG5cdFx0Ly9yZWNjdXBlcm9fdHJpYnVuYWxpXHJcblx0XHR0aGlzLnRyaWJ1bmFsaSQgPSBsb2NhbGl0YVByb3ZpbmNpYUFDLnZhbHVlQ2hhbmdlc1xyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzdGFydFdpdGgodGhpcy5hdXRvcml0YU9yZGluYW50ZT8uY29kaWNlUHJvdmluY2lhKSxcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHZhbHVlKSA9PiB0aGlzLnRpcG9sb2dpY2hlLmdldFRyaWJ1bmFsaSQodmFsdWUpXHJcblx0XHRcdFx0XHQucGlwZSh3aXRoTGF0ZXN0RnJvbShvZih2YWx1ZSkpKSksXHJcblx0XHRcdFx0Ly8gdGFwKF8gPT4gY29uc29sZS5sb2coXCJvdXRNZXJnZU1hcFwiLCBfKSksXHJcblx0XHRcdFx0Ly9TRSBTSSBQUk9WSUVORSBEQUxMRSBCT1paRSA9PiBTSSBSRVNFVFRBIElMIFRSSUJVTkFMRVxyXG5cdFx0XHRcdHRhcCgoW3RyaWJ1bmFsaSwgdmFsdWVdKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodmFsdWUgPT0gdGhpcy5hdXRvcml0YU9yZGluYW50ZT8uY29kaWNlUHJvdmluY2lhKSB7XHJcblx0XHRcdFx0XHRcdHRyaWJ1bmFsZUFDLnNldFZhbHVlKHRoaXMuYXV0b3JpdGFPcmRpbmFudGUuaWRUcmlidW5hbGUpXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0cmlidW5hbGVBQy5zZXRWYWx1ZShudWxsKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRtYXAoKFt0cmlidW5hbGksIHZhbHVlXSkgPT4gdHJpYnVuYWxpKSxcclxuXHRcdFx0XHRzaGFyZVJlcGxheSgpXHJcblx0XHRcdFx0Ly8gY2F0Y2hFcnJvcihlcnJvcj0+IClcclxuXHRcdFx0KTtcclxuXHJcblx0XHQvL0J1aWxkX291dHB1dF9zdGVhbVxyXG5cdFx0Y29uc3QgY2hhbmdlVHJpYmluYWxpJCA9IGRlZmVyKCgpID0+IHRoaXMudHJpYnVuYWxpJCk7XHJcblx0XHRjb25zdCBzdHJlYW1PdXRwdXQkID0gY29tYmluZUxhdGVzdChbXHJcblx0XHRcdGNoYW5nZVRyaWJpbmFsaSQsXHJcblx0XHRcdHRyaWJ1bmFsZUFDLnZhbHVlQ2hhbmdlc10pXHJcblx0XHRcdC5waXBlKG1hcCgoW2xpc3RhVHJpYnVuYWxpLCB0cmlidW5hbGVTZWxlY3RlZF0pID0+IGxpc3RhVHJpYnVuYWxpLmZpbmQoXHJcblx0XHRcdFx0dHJpYnVuYWxlID0+IHRyaWJ1bmFsZS5pZCA9PSB0cmlidW5hbGVTZWxlY3RlZCkpLFxyXG5cdFx0XHRcdG1hcCh0cmlidW5hbGUgPT4gQ29tcG9uZW50T3V0cHV0U3RhdHVzLm9mKHRoaXMuZm9ybS52YWxpZCwgdHJpYnVuYWxlKSkpXHJcblxyXG5cdFx0LyogdGhpcy5jZiQgPSB0cmlidW5hbGVBQy52YWx1ZUNoYW5nZXNcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0dGFwKF8gPT4gY29uc29sZS5sb2coXCJjZiRcIiwgXykpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCh2YWx1ZSA9PiB0aGlzLnRyaWJ1bmFsaSQucGlwZShcclxuXHRcdFx0XHRcdG1hcCh0cmliID0+IHRyaWIuZmluZChcclxuXHRcdFx0XHRcdFx0dHJpYnVuYWxlID0+IHRyaWJ1bmFsZS5jb2RpY2Vpc3RhdCA9PSB2YWx1ZSk/LmNvZGljZUZpc2NhbGVcclxuXHRcdFx0XHRcdCkpXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpICovXHJcblxyXG5cdFx0Ly9PVVRQVVRfQ09NUE9ORU5UXHJcblx0XHR0aGlzLiR2YWx1ZWNoYW5nZVRyaWIgPSBzdHJlYW1PdXRwdXQkLnBpcGUoXHJcblx0XHQpLnN1YnNjcmliZShvdXQgPT4gdGhpcy5kb25lLmVtaXQob3V0KSlcclxuXHR9XHJcblxyXG5cclxuXHRyZXNldFRyaWJ1bmFsZSgpIHsgfVxyXG5cclxufSJdfQ==