@hitsoft/kadooglu.kalite 1.0.1 → 1.0.2
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/esm2020/config/providers/route.provider.mjs +10 -10
- package/esm2020/lib/components/intake-form.component.mjs +2 -2
- package/esm2020/lib/components/intake-list.component.mjs +2 -2
- package/esm2020/lib/components/process-analysis.component.mjs +3 -3
- package/esm2020/lib/components/quality-definitions.component.mjs +3 -3
- package/esm2020/lib/components/quality-parameters.component.mjs +4 -4
- package/esm2020/lib/components/quality-reports.component.mjs +2 -2
- package/fesm2015/hitsoft-kadooglu.kalite-config.mjs +9 -9
- package/fesm2015/hitsoft-kadooglu.kalite-config.mjs.map +1 -1
- package/fesm2015/hitsoft-kadooglu.kalite.mjs +10 -10
- package/fesm2015/hitsoft-kadooglu.kalite.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu.kalite-config.mjs +9 -9
- package/fesm2020/hitsoft-kadooglu.kalite-config.mjs.map +1 -1
- package/fesm2020/hitsoft-kadooglu.kalite.mjs +10 -10
- package/fesm2020/hitsoft-kadooglu.kalite.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -26,7 +26,7 @@ export class QualityReportsComponent {
|
|
|
26
26
|
this.api.definitionFacilities().subscribe({ next: x => this.facilities = x, error: e => this.error = errorMessage(e) });
|
|
27
27
|
this.api.qualityMovementTypes().subscribe({ next: x => this.types = x, error: e => this.error = errorMessage(e) });
|
|
28
28
|
}
|
|
29
|
-
get canExport() { return this.permissions.getGrantedPolicy('Kalite.Reports.Export'); }
|
|
29
|
+
get canExport() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Reports.Export'); }
|
|
30
30
|
get visibleForms() { return this.forms.filter(x => (x.controlType || 'Process') === (this.filter.type === 'Process' ? 'Process' : 'Input')); }
|
|
31
31
|
load() { this.busy = true; this.error = ''; this.api.report(this.filter).subscribe({ next: x => { this.report = x; this.busy = false; }, error: e => { this.error = errorMessage(e); this.busy = false; } }); }
|
|
32
32
|
measurement(row, p) { return row.measurements.find(x => x.parameterCode === p.code); }
|
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{ selector: 'lib-quality-reports', template: "<div class=\"container-fluid\"><h3>{{ filter.type === 'Process' ? 'Rafineri Proses Analiz Raporu' : filter.type === 'Rejected' ? 'Kalite Kontrol Ret Raporu' : 'Girdi Kontrol Raporlar\u0131' }}</h3>\r\n <div class=\"card\"><div class=\"card-body\"><div class=\"row\">\r\n <div class=\"col-md-3\"><label>Ba\u015Flang\u0131\u00E7</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.from\" /></div><div class=\"col-md-3\"><label>Biti\u015F</label><input type=\"date\" class=\"form-control\" [(ngModel)]=\"filter.until\" /></div>\r\n <div class=\"col-md-3\"><label>Form</label><select class=\"form-control\" [(ngModel)]=\"filter.formCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let form of visibleForms\" [value]=\"form.code\">{{ form.documentCode }} \u2013 {{ form.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type === 'Process'\"><label>Tesis</label><select class=\"form-control\" [(ngModel)]=\"filter.facilityCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let facility of facilities\" [value]=\"facility.code\">{{ facility.name }}</option></select></div>\r\n <div class=\"col-md-3\" *ngIf=\"filter.type !== 'Process'\"><label>Hareket T\u00FCr\u00FC</label><select class=\"form-control\" [(ngModel)]=\"filter.movementTypeCode\"><option value=\"\">T\u00FCm\u00FC</option><option *ngFor=\"let type of types\" [value]=\"type.code\">{{ type.name }}</option></select></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Muhatap</label><input class=\"form-control\" [(ngModel)]=\"filter.partner\" /></div><div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gemi</label><input class=\"form-control\" [(ngModel)]=\"filter.ship\" /></div>\r\n <div class=\"col-md-3 mt-3\" *ngIf=\"filter.type !== 'Process'\"><label>Gruplama</label><select class=\"form-control\" [(ngModel)]=\"filter.groupBy\"><option value=\"None\">Yok</option><option value=\"Ship\">Gemi / Parti</option><option value=\"Partner\">Muhatap</option><option value=\"Movement\">Hareket T\u00FCr\u00FC / Malzeme</option><option value=\"Month\">Ay</option></select></div>\r\n <div class=\"col-md-3 mt-3\"><label>Durum</label><select class=\"form-control\" [(ngModel)]=\"filter.status\"><option value=\"\">T\u00FCm\u00FC</option><ng-container *ngIf=\"filter.type === 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"LaborantSigned\">Laborant \u0130mzal\u0131</option><option value=\"Checked\">Kontrol Edildi</option><option value=\"Approved\">Onayl\u0131</option></ng-container><ng-container *ngIf=\"filter.type !== 'Process'\"><option value=\"Draft\">Taslak</option><option value=\"Accepted\">Kabul</option><option value=\"Rejected\">Ret</option></ng-container></select></div>\r\n </div><div class=\"mt-3\"><button class=\"btn btn-primary mr-2\" (click)=\"load()\" [disabled]=\"busy\">Raporu Getir</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary mr-2\" (click)=\"pdf()\" [disabled]=\"busy\">PDF</button><button *ngIf=\"canExport\" class=\"btn btn-outline-primary\" (click)=\"excel()\" [disabled]=\"busy\">Excel</button></div>\r\n <div *ngIf=\"error\" class=\"alert alert-danger mt-3\">{{ error }}</div><div *ngIf=\"busy\" class=\"quality-loading\" role=\"status\">Rapor haz\u0131rlan\u0131yor\u2026</div>\r\n </div></div>\r\n <ng-container *ngIf=\"report as r\"><div class=\"card mt-3\"><div class=\"card-body\">Toplam Kay\u0131t: <strong>{{ r.totalRecords }}</strong> \u00B7 Ret: <strong>{{ r.rejectedRecords }}</strong> \u00B7 Ret Oran\u0131: <strong>% {{ r.rejectionRate }}</strong>\r\n <table *ngIf=\"r.type === 'Rejected'\" class=\"table table-sm mt-3\"><thead><tr><th>Grup</th><th>Toplam</th><th>Ret</th><th>Ret Oran\u0131 (%)</th></tr></thead><tbody><tr *ngFor=\"let g of r.rejectionSummary\"><td>{{ g.groupName }}</td><td>{{ g.total }}</td><td>{{ g.rejected }}</td><td>{{ g.rate }}</td></tr></tbody></table>\r\n </div></div>\r\n <div class=\"card mt-3\" *ngFor=\"let section of r.sections\"><div class=\"card-body\"><h5>{{ section.form.name }} \u2013 {{ section.groupName }}</h5><p class=\"text-muted\">{{ section.form.documentCode }} \u00B7 Yay\u0131n: {{ section.form.publicationDate | date:'dd.MM.yyyy' }} \u00B7 Revizyon: {{ section.form.revisionDate | date:'dd.MM.yyyy' }} / {{ section.form.revisionNumber }}</p>\r\n <div class=\"table-responsive\"><table class=\"table table-bordered table-sm\"><thead><tr><th>Tarih / Saat</th><th>{{ r.type === 'Process' ? 'Tank / Aktar\u0131lan Tank' : 'Plaka / Firma / Gemi' }}</th><th>Durum</th><th>Miktar ({{ section.form.quantityUnit || 'kg' }})</th><th *ngFor=\"let p of section.columns\">{{ p.name }} <small>{{ p.unit }}</small></th><th>Analizi Yapan / A\u00E7\u0131klama</th></tr></thead>\r\n <tbody><tr *ngFor=\"let row of section.rows\" [class.rejected-row]=\"row.status === 'Rejected'\"><td>{{ row.date | date:'dd.MM.yyyy HH:mm' }}</td><td>{{ row.composite ? 'Gemi Kompozit Numunesi' : r.type === 'Process' ? ((row.tank || row.outputTank) ? (row.tank || '') + ' / ' + (row.outputTank || '') : '') : row.plate }}<br />{{ row.partner }} {{ row.ship }}</td><td>{{ statusLabel(row.status) }}</td><td>{{ row.quantityKg == null ? '' : row.quantityKg / (section.form.quantityUnit === 't' ? 1000 : 1) }}</td><td *ngFor=\"let p of section.columns\" [class.out-of-limit]=\"measurement(row, p)?.outOfLimit\">{{ measurement(row, p)?.number != null ? (measurement(row, p)?.number | number:'1.0-8') : measurement(row, p)?.text }}</td><td>{{ row.analyst }}<br />{{ row.notes }}</td></tr>\r\n <tr class=\"bg-light\"><th>ORTALAMA</th><th>{{ section.averageMode === 'Weighted' ? 'Miktar a\u011F\u0131rl\u0131kl\u0131' : 'Aritmetik' }}</th><th>TOPLAM</th><th>{{ section.totalKg / (section.form.quantityUnit === 't' ? 1000 : 1) | number:'1.0-2' }}</th><td *ngFor=\"let p of section.columns\">{{ section.averages[p.code] | number:'1.0-8' }}</td><td></td></tr></tbody></table></div>\r\n </div></div><p *ngIf=\"!r.sections.length\" class=\"text-muted mt-3\">Se\u00E7ilen filtrelerde kay\u0131t bulunamad\u0131.</p>\r\n </ng-container>\r\n</div>\r\n", styles: [".quality-loading{padding:1.5rem;text-align:center;color:#5b526c}.print-only{display:none}.quality-status{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .85rem;border:1px solid transparent;border-radius:.4rem;font-size:.9375rem;font-weight:600;line-height:1.4}.quality-status-accepted{color:#166534;background:#dcfce7;border-color:#86efac}.quality-status-rejected{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.quality-status-draft{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.quality-status-waiting{color:#854d0e;background:#fef3c7;border-color:#fcd34d}.vehicle-table{min-width:1950px;white-space:nowrap}.actions{min-width:130px}.quality-questions-link{display:inline-flex;align-items:center;min-height:calc(1.5em + .5rem + 2px);margin-left:.4rem;padding:.25rem .5rem;color:#9a5a00;background:#fff3d6;border:1px solid #edb85b;border-radius:.2rem;font-size:.875rem;line-height:1.5;text-decoration:none}.quality-questions-link:hover,.quality-questions-link:focus{color:#fff;background:#b86b00;border-color:#b86b00;text-decoration:none}.intake-actions-cell{display:flex;align-items:center}:host ::ng-deep .intake-grid .dx-data-row>td{vertical-align:middle}.intake-actions-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .65rem;font-family:inherit;font-size:.8125rem;line-height:1.3}.intake-action-menu{min-width:210px;margin-top:.35rem;padding:.3rem;background:#fff;border:1px solid #dee2e6;border-radius:.375rem;box-shadow:0 .25rem .75rem #0000001a}.intake-action-menu .dropdown-item{display:block;text-align:left;border:0;border-radius:.25rem;background:none;color:#343a40;padding:.5rem .65rem;font-family:inherit;font-size:.8125rem;font-weight:400;line-height:1.4;text-decoration:none;white-space:nowrap;cursor:pointer}.intake-action-menu .dropdown-item:hover,.intake-action-menu .dropdown-item:focus-visible{background:#eef2ff;color:#2446b5}.page-size{width:85px}.vehicle-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.vehicle-info label{font-size:.8rem;color:#6c757d;margin-bottom:.2rem}.vehicle-info p{background:#f5f3f8;padding:.55rem;min-height:2.5rem;overflow-wrap:anywhere}.measurement-table{min-width:700px}.measurement-table th{background:#f2edf7}.measurement-table td{vertical-align:middle}.out-of-limit,.rejected-row{background:#ffe6e9!important}.out-of-limit input,.out-of-limit select{border-color:#dc3545}@media (max-width: 900px){.vehicle-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 550px){.vehicle-info{grid-template-columns:1fr}}\n"] }]
|
|
106
106
|
}], ctorParameters: function () { return [{ type: i1.QualityApiService }, { type: i2.ActivatedRoute }, { type: i3.PermissionService }]; } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBR2xHLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsR0FBc0IsRUFBVSxLQUFxQixFQUFVLFdBQThCO1FBQTdGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFGakgsV0FBTSxHQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzdKLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBQUMsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFBQyxlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQUFDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQUMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUFDLFVBQUssR0FBRyxFQUFFLENBQUM7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TyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzVDO29CQUNELEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQzFMLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDN0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxHQUFHLEVBQUUsZUFBZSxF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LFdBQVcsRUFBRSxDQUFDO29CQUMvQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUVBQW1FLEVBQUUsQ0FBQyxFQUFFLFVBQVUsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7aUJBQ3pLO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFFO3dCQUFTO29CQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2lCQUFFO1lBQzlFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDOztvSEEvRFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDVHBDLHFoTUFzQkE7MkZEYmEsdUJBQXVCO2tCQURuQyxTQUFTOytCQUFhLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBRdWFsaXR5QXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW92ZW1lbnRUeXBlLCBSZXBvcnRGaWx0ZXIsIFF1YWxpdHlSZXBvcnQsIFJlcG9ydFJvdywgUmVwb3J0U2VjdGlvbiB9IGZyb20gJy4uL21vZGVscy9pbnRha2UubW9kZWxzJztcbmltcG9ydCB7IFF1YWxpdHlGb3JtLCBRdWFsaXR5RmFjaWxpdHksIFF1YWxpdHlQYXJhbWV0ZXIgfSBmcm9tICcuLi9tb2RlbHMvcXVhbGl0eS5tb2RlbHMnO1xuaW1wb3J0IHsgZG93bmxvYWQsIGVycm9yTWVzc2FnZSwgbG9jYWxEYXRlLCBzdGF0dXNMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktbWVhc3VyZW1lbnRzJztcblxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLXF1YWxpdHktcmVwb3J0cycsIHRlbXBsYXRlVXJsOiAnLi9xdWFsaXR5LXJlcG9ydHMuY29tcG9uZW50Lmh0bWwnLCBzdHlsZVVybHM6IFsnLi9pbnRha2UuY29tcG9uZW50LnNjc3MnXSB9KVxuZXhwb3J0IGNsYXNzIFF1YWxpdHlSZXBvcnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyOiBSZXBvcnRGaWx0ZXIgPSB7IHR5cGU6ICdJbnB1dCcsIGZyb206IGxvY2FsRGF0ZShuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSwgMSkpLCB1bnRpbDogbG9jYWxEYXRlKCksIGdyb3VwQnk6ICdOb25lJyB9O1xuICByZXBvcnQ6IFF1YWxpdHlSZXBvcnQgfCBudWxsID0gbnVsbDsgZm9ybXM6IFF1YWxpdHlGb3JtW10gPSBbXTsgZmFjaWxpdGllczogUXVhbGl0eUZhY2lsaXR5W10gPSBbXTsgdHlwZXM6IE1vdmVtZW50VHlwZVtdID0gW107IGJ1c3kgPSBmYWxzZTsgZXJyb3IgPSAnJzsgc3RhdHVzTGFiZWwgPSBzdGF0dXNMYWJlbDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IFF1YWxpdHlBcGlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvblNlcnZpY2UpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3R5cGUnXSB8fCAnSW5wdXQnO1xuICAgIHRoaXMuYXBpLnJlcG9ydEZvcm1zKCkuc3Vic2NyaWJlKHsgbmV4dDogeCA9PiB0aGlzLmZvcm1zID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5kZWZpbml0aW9uRmFjaWxpdGllcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy5mYWNpbGl0aWVzID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5xdWFsaXR5TW92ZW1lbnRUeXBlcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy50eXBlcyA9IHgsIGVycm9yOiBlID0+IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSkgfSk7XG4gIH1cbiAgZ2V0IGNhbkV4cG9ydCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMuZ2V0R3JhbnRlZFBvbGljeSgnS2FsaXRlLlJlcG9ydHMuRXhwb3J0Jyk7IH1cbiAgZ2V0IHZpc2libGVGb3JtcygpOiBRdWFsaXR5Rm9ybVtdIHsgcmV0dXJuIHRoaXMuZm9ybXMuZmlsdGVyKHggPT4gKHguY29udHJvbFR5cGUgfHwgJ1Byb2Nlc3MnKSA9PT0gKHRoaXMuZmlsdGVyLnR5cGUgPT09ICdQcm9jZXNzJyA/ICdQcm9jZXNzJyA6ICdJbnB1dCcpKTsgfVxuICBsb2FkKCk6IHZvaWQgeyB0aGlzLmJ1c3kgPSB0cnVlOyB0aGlzLmVycm9yID0gJyc7IHRoaXMuYXBpLnJlcG9ydCh0aGlzLmZpbHRlcikuc3Vic2NyaWJlKHsgbmV4dDogeCA9PiB7IHRoaXMucmVwb3J0ID0geDsgdGhpcy5idXN5ID0gZmFsc2U7IH0sIGVycm9yOiBlID0+IHsgdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKTsgdGhpcy5idXN5ID0gZmFsc2U7IH0gfSk7IH1cbiAgbWVhc3VyZW1lbnQocm93OiBSZXBvcnRSb3csIHA6IFF1YWxpdHlQYXJhbWV0ZXIpIHsgcmV0dXJuIHJvdy5tZWFzdXJlbWVudHMuZmluZCh4ID0+IHgucGFyYW1ldGVyQ29kZSA9PT0gcC5jb2RlKTsgfVxuICBwZGYoKTogdm9pZCB7IHRoaXMuYXBpLnJlcG9ydFBkZih0aGlzLmZpbHRlcikuc3Vic2NyaWJlKHsgbmV4dDogYiA9PiBkb3dubG9hZChiLCBgS2FsaXRlLSR7dGhpcy5maWx0ZXIudHlwZX0tJHt0aGlzLmZpbHRlci5mcm9tfS5wZGZgKSwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTsgfVxuICBleGNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlOyB0aGlzLmVycm9yID0gJyc7XG4gICAgdGhpcy5hcGkucmVwb3J0KHRoaXMuZmlsdGVyLCB0cnVlKS5zdWJzY3JpYmUoeyBuZXh0OiBhc3luYyByZXBvcnQgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBXb3JrYm9vayB9ID0gYXdhaXQgaW1wb3J0KCdleGNlbGpzJyk7XG4gICAgICAgIGNvbnN0IHdvcmtib29rID0gbmV3IFdvcmtib29rKCk7IHdvcmtib29rLmNyZWF0b3IgPSAnS2FsaXRlJztcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgaWYgKHJlcG9ydC50eXBlID09PSAnUmVqZWN0ZWQnKSB7XG4gICAgICAgICAgY29uc3Qgc3VtbWFyeSA9IHdvcmtib29rLmFkZFdvcmtzaGVldCgnUmV0IMOWemV0aScpO1xuICAgICAgICAgIHN1bW1hcnkuYWRkUm93KFsnR3J1cCcsICdUb3BsYW0gS2F5xLF0JywgJ1JldCBBZGVkaScsICdSZXQgT3JhbsSxICglKSddKTtcbiAgICAgICAgICByZXBvcnQucmVqZWN0aW9uU3VtbWFyeS5mb3JFYWNoKGcgPT4gc3VtbWFyeS5hZGRSb3coW2cuZ3JvdXBOYW1lLCBnLnRvdGFsLCBnLnJlamVjdGVkLCBnLnJhdGVdKSk7XG4gICAgICAgICAgc3VtbWFyeS5jb2x1bW5zLmZvckVhY2goYyA9PiBjLndpZHRoID0gMjUpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiByZXBvcnQuc2VjdGlvbnMpIHtcbiAgICAgICAgICBjb25zdCBzaGVldCA9IHdvcmtib29rLmFkZFdvcmtzaGVldChgRm9ybSAkeysraW5kZXh9YCk7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFtzZWN0aW9uLmZvcm0ubmFtZV0pO1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbJ0Rva8O8bWFuJywgc2VjdGlvbi5mb3JtLmRvY3VtZW50Q29kZSwgJ1lhecSxbicsIHNlY3Rpb24uZm9ybS5wdWJsaWNhdGlvbkRhdGUuc2xpY2UoMCwgMTApLCAnUmV2aXp5b24nLCBzZWN0aW9uLmZvcm0ucmV2aXNpb25EYXRlLnNsaWNlKDAsIDEwKSwgc2VjdGlvbi5mb3JtLnJldmlzaW9uTnVtYmVyXSk7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFtzZWN0aW9uLmdyb3VwTmFtZV0pO1xuICAgICAgICAgIGNvbnN0IGRpdmlzb3IgPSBzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMTtcbiAgICAgICAgICBjb25zdCBmaXhlZCA9IFsnVGFyaWggLyBTYWF0JywgJ1BsYWthJywgJ0RvcnNlJywgJ011aGF0YXAnLCAnR2VtaScsICdIYXJla2V0IFTDvHLDvCcsICdEZXRheScsICdNZW7Fn2VpJywgJ1N0b2sgTmFrbGknLCAnVGFuaycsICdBa3RhcsSxbGFuIFRhbmsnLCAnWWHEnyBDaW5zaScsIGBNaWt0YXIgKCR7c2VjdGlvbi5mb3JtLnF1YW50aXR5VW5pdCB8fCAna2cnfSlgLCAnS2FsaXRlIER1cnVtdScsICdBbmFsaXppIFlhcGFuJywgJ0HDp8Sxa2xhbWEnXTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSBzaGVldC5hZGRSb3coWy4uLmZpeGVkLCAuLi5zZWN0aW9uLmNvbHVtbnMubWFwKHAgPT4gcC5uYW1lICsgKHAudW5pdCA/IGAgKCR7cC51bml0fSlgIDogJycpKV0pO1xuICAgICAgICAgIGhlYWRlci5mb250ID0geyBib2xkOiB0cnVlIH07IGhlYWRlci5maWxsID0geyB0eXBlOiAncGF0dGVybicsIHBhdHRlcm46ICdzb2xpZCcsIGZnQ29sb3I6IHsgYXJnYjogJ0ZGRThFMUVGJyB9IH07XG4gICAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygc2VjdGlvbi5yb3dzKSB7XG4gICAgICAgICAgICBjb25zdCBleGNlbFJvdyA9IHNoZWV0LmFkZFJvdyhbbmV3IERhdGUocm93LmRhdGUpLCByb3cuY29tcG9zaXRlID8gJ0dlbWkgS29tcG96aXQgTnVtdW5lc2knIDogcm93LnBsYXRlLCByb3cudHJhaWxlclBsYXRlLFxuICAgICAgICAgICAgICByb3cucGFydG5lciwgcm93LnNoaXAsIHJvdy5tb3ZlbWVudFR5cGUsIHJvdy5kZXRhaWwsIHJvdy5vcmlnaW4gPT09ICdJbXBvcnRlZCcgPyAnxLB0aGFsJyA6IHJvdy5vcmlnaW4gPT09ICdEb21lc3RpYycgPyAnxLDDpyBQaXlhc2EnIDogJycsXG4gICAgICAgICAgICAgIHJvdy5zdG9ja1RyYW5zZmVyLCByb3cudGFuaywgcm93Lm91dHB1dFRhbmssIHJvdy5vaWxUeXBlLCByb3cucXVhbnRpdHlLZyA9PSBudWxsID8gbnVsbCA6IHJvdy5xdWFudGl0eUtnIC8gZGl2aXNvciwgc3RhdHVzTGFiZWwocm93LnN0YXR1cyksIHJvdy5hbmFseXN0LCByb3cubm90ZXMsXG4gICAgICAgICAgICAgIC4uLnNlY3Rpb24uY29sdW1ucy5tYXAocCA9PiB7IGNvbnN0IG0gPSB0aGlzLm1lYXN1cmVtZW50KHJvdywgcCk7IHJldHVybiBtPy5udW1iZXIgPz8gbT8udGV4dCA/PyAnJzsgfSldKTtcbiAgICAgICAgICAgIGV4Y2VsUm93LmdldENlbGwoMSkubnVtRm10ID0gJ2RkLm1tLnl5eXkgaGg6bW0nOyBleGNlbFJvdy5nZXRDZWxsKDEzKS5udW1GbXQgPSAnIywjIzAuMDAnO1xuICAgICAgICAgICAgaWYgKHJvdy5zdGF0dXMgPT09ICdSZWplY3RlZCcpIGV4Y2VsUm93LmVhY2hDZWxsKGMgPT4gYy5maWxsID0geyB0eXBlOiAncGF0dGVybicsIHBhdHRlcm46ICdzb2xpZCcsIGZnQ29sb3I6IHsgYXJnYjogJ0ZGRkZFMUU2JyB9IH0pO1xuICAgICAgICAgICAgc2VjdGlvbi5jb2x1bW5zLmZvckVhY2goKHAsIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IGV4Y2VsUm93LmdldENlbGwoZml4ZWQubGVuZ3RoICsgaSArIDEpO1xuICAgICAgICAgICAgICBjZWxsLm51bUZtdCA9IHAuZGVjaW1hbFBsYWNlcyA/ICcwLicgKyAnMCcucmVwZWF0KHAuZGVjaW1hbFBsYWNlcykgOiAnMCc7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1lYXN1cmVtZW50KHJvdywgcCk/Lm91dE9mTGltaXQpIGNlbGwuZmlsbCA9IHsgdHlwZTogJ3BhdHRlcm4nLCBwYXR0ZXJuOiAnc29saWQnLCBmZ0NvbG9yOiB7IGFyZ2I6ICdGRkZGQUFBQScgfSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRvdGFsczogKHN0cmluZyB8IG51bWJlciB8IG51bGwpW10gPSBBcnJheShmaXhlZC5sZW5ndGgpLmZpbGwobnVsbCk7IHRvdGFsc1swXSA9ICdPUlRBTEFNQSc7IHRvdGFsc1sxXSA9IHNlY3Rpb24uYXZlcmFnZU1vZGUgPT09ICdXZWlnaHRlZCcgPyAnTWlrdGFyIGHEn8SxcmzEsWtsxLEnIDogJ0FyaXRtZXRpayc7IHRvdGFsc1sxMl0gPSBzZWN0aW9uLnRvdGFsS2cgLyBkaXZpc29yO1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbLi4udG90YWxzLCAuLi5zZWN0aW9uLmNvbHVtbnMubWFwKHAgPT4gc2VjdGlvbi5hdmVyYWdlc1twLmNvZGVdID8/IG51bGwpXSkuZm9udCA9IHsgYm9sZDogdHJ1ZSB9O1xuICAgICAgICAgIHNoZWV0LmFkZFJvdyhbJ0FuYWxpemkgWWFwYW4gLyBLb250cm9sIEVkZW4nLCAuLi5BcnJheS5mcm9tKG5ldyBTZXQoc2VjdGlvbi5yb3dzLm1hcChyID0+IHIuYW5hbHlzdCkuZmlsdGVyKEJvb2xlYW4pKSldKTtcbiAgICAgICAgICBpZiAoc2VjdGlvbi5mb3JtLmRvY3VtZW50Q29kZSA9PT0gJ0ZSLjg1Jykgc2hlZXQuYWRkUm93KFsnS0FCVUwnLCAnJywgJ1JFRCcsICcnLCAnxZ5BUlRMSSBLQUJVTCcsICcnXSk7XG4gICAgICAgICAgc2hlZXQuY29sdW1ucy5mb3JFYWNoKGMgPT4geyBjLndpZHRoID0gMjA7IGMuYWxpZ25tZW50ID0geyB2ZXJ0aWNhbDogJ21pZGRsZScsIHdyYXBUZXh0OiB0cnVlIH07IH0pO1xuICAgICAgICAgIHNoZWV0LnZpZXdzID0gW3sgc3RhdGU6ICdmcm96ZW4nLCB5U3BsaXQ6IDQsIHhTcGxpdDogMiB9XTtcbiAgICAgICAgICBzaGVldC5wYWdlU2V0dXAgPSB7IG9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJywgcGFwZXJTaXplOiA4LCBmaXRUb1BhZ2U6IHRydWUsIGZpdFRvV2lkdGg6IDEsIGZpdFRvSGVpZ2h0OiAwIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF3b3JrYm9vay53b3Jrc2hlZXRzLmxlbmd0aCkgd29ya2Jvb2suYWRkV29ya3NoZWV0KCdLYXnEsXQgWW9rJykuYWRkUm93KFsnU2XDp2lsZW4gZmlsdHJlbGVyZGUga2F5xLF0IGJ1bHVuYW1hZMSxLiddKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKTtcbiAgICAgICAgZG93bmxvYWQobmV3IEJsb2IoW2RhdGEgYXMgQmxvYlBhcnRdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcgfSksIGBLYWxpdGUtJHtyZXBvcnQudHlwZX0tJHt0aGlzLmZpbHRlci5mcm9tfS54bHN4YCk7XG4gICAgICB9IGNhdGNoIChlKSB7IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSk7IH0gZmluYWxseSB7IHRoaXMuYnVzeSA9IGZhbHNlOyB9XG4gICAgfSwgZXJyb3I6IGUgPT4geyB0aGlzLmVycm9yID0gZXJyb3JNZXNzYWdlKGUpOyB0aGlzLmJ1c3kgPSBmYWxzZTsgfSB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPjxoMz57eyBmaWx0ZXIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gJ1JhZmluZXJpIFByb3NlcyBBbmFsaXogUmFwb3J1JyA6IGZpbHRlci50eXBlID09PSAnUmVqZWN0ZWQnID8gJ0thbGl0ZSBLb250cm9sIFJldCBSYXBvcnUnIDogJ0dpcmRpIEtvbnRyb2wgUmFwb3JsYXLEsScgfX08L2gzPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+PGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjxsYWJlbD5CYcWfbGFuZ8Sxw6c8L2xhYmVsPjxpbnB1dCB0eXBlPVwiZGF0ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZnJvbVwiIC8+PC9kaXY+PGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+PGxhYmVsPkJpdGnFnzwvbGFiZWw+PGlucHV0IHR5cGU9XCJkYXRlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci51bnRpbFwiIC8+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj48bGFiZWw+Rm9ybTwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmZvcm1Db2RlXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPlTDvG3DvDwvb3B0aW9uPjxvcHRpb24gKm5nRm9yPVwibGV0IGZvcm0gb2YgdmlzaWJsZUZvcm1zXCIgW3ZhbHVlXT1cImZvcm0uY29kZVwiPnt7IGZvcm0uZG9jdW1lbnRDb2RlIH19IOKAkyB7eyBmb3JtLm5hbWUgfX08L29wdGlvbj48L3NlbGVjdD48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5UZXNpczwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLmZhY2lsaXR5Q29kZVwiPjxvcHRpb24gdmFsdWU9XCJcIj5Uw7xtw7w8L29wdGlvbj48b3B0aW9uICpuZ0Zvcj1cImxldCBmYWNpbGl0eSBvZiBmYWNpbGl0aWVzXCIgW3ZhbHVlXT1cImZhY2lsaXR5LmNvZGVcIj57eyBmYWNpbGl0eS5uYW1lIH19PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdJZj1cImZpbHRlci50eXBlICE9PSAnUHJvY2VzcydcIj48bGFiZWw+SGFyZWtldCBUw7xyw7w8L2xhYmVsPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5tb3ZlbWVudFR5cGVDb2RlXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPlTDvG3DvDwvb3B0aW9uPjxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgdHlwZXNcIiBbdmFsdWVdPVwidHlwZS5jb2RlXCI+e3sgdHlwZS5uYW1lIH19PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5NdWhhdGFwPC9sYWJlbD48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5wYXJ0bmVyXCIgLz48L2Rpdj48ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5HZW1pPC9sYWJlbD48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5zaGlwXCIgLz48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0zXCIgKm5nSWY9XCJmaWx0ZXIudHlwZSAhPT0gJ1Byb2Nlc3MnXCI+PGxhYmVsPkdydXBsYW1hPC9sYWJlbD48c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZ3JvdXBCeVwiPjxvcHRpb24gdmFsdWU9XCJOb25lXCI+WW9rPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIlNoaXBcIj5HZW1pIC8gUGFydGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiUGFydG5lclwiPk11aGF0YXA8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTW92ZW1lbnRcIj5IYXJla2V0IFTDvHLDvCAvIE1hbHplbWU8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTW9udGhcIj5BeTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG10LTNcIj48bGFiZWw+RHVydW08L2xhYmVsPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5zdGF0dXNcIj48b3B0aW9uIHZhbHVlPVwiXCI+VMO8bcO8PC9vcHRpb24+PG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci50eXBlID09PSAnUHJvY2VzcydcIj48b3B0aW9uIHZhbHVlPVwiRHJhZnRcIj5UYXNsYWs8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiTGFib3JhbnRTaWduZWRcIj5MYWJvcmFudCDEsG16YWzEsTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJDaGVja2VkXCI+S29udHJvbCBFZGlsZGk8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiQXBwcm92ZWRcIj5PbmF5bMSxPC9vcHRpb24+PC9uZy1jb250YWluZXI+PG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci50eXBlICE9PSAnUHJvY2VzcydcIj48b3B0aW9uIHZhbHVlPVwiRHJhZnRcIj5UYXNsYWs8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiQWNjZXB0ZWRcIj5LYWJ1bDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJSZWplY3RlZFwiPlJldDwvb3B0aW9uPjwvbmctY29udGFpbmVyPjwvc2VsZWN0PjwvZGl2PlxyXG4gIDwvZGl2PjxkaXYgY2xhc3M9XCJtdC0zXCI+PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0yXCIgKGNsaWNrKT1cImxvYWQoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+UmFwb3J1IEdldGlyPC9idXR0b24+PGJ1dHRvbiAqbmdJZj1cImNhbkV4cG9ydFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgbXItMlwiIChjbGljayk9XCJwZGYoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+UERGPC9idXR0b24+PGJ1dHRvbiAqbmdJZj1cImNhbkV4cG9ydFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwiZXhjZWwoKVwiIFtkaXNhYmxlZF09XCJidXN5XCI+RXhjZWw8L2J1dHRvbj48L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlciBtdC0zXCI+e3sgZXJyb3IgfX08L2Rpdj48ZGl2ICpuZ0lmPVwiYnVzeVwiIGNsYXNzPVwicXVhbGl0eS1sb2FkaW5nXCIgcm9sZT1cInN0YXR1c1wiPlJhcG9yIGhhesSxcmxhbsSxeW9y4oCmPC9kaXY+XHJcbiAgPC9kaXY+PC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlcG9ydCBhcyByXCI+PGRpdiBjbGFzcz1cImNhcmQgbXQtM1wiPjxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5Ub3BsYW0gS2F5xLF0OiA8c3Ryb25nPnt7IHIudG90YWxSZWNvcmRzIH19PC9zdHJvbmc+IMK3IFJldDogPHN0cm9uZz57eyByLnJlamVjdGVkUmVjb3JkcyB9fTwvc3Ryb25nPiDCtyBSZXQgT3JhbsSxOiA8c3Ryb25nPiUge3sgci5yZWplY3Rpb25SYXRlIH19PC9zdHJvbmc+XHJcbiAgICA8dGFibGUgKm5nSWY9XCJyLnR5cGUgPT09ICdSZWplY3RlZCdcIiBjbGFzcz1cInRhYmxlIHRhYmxlLXNtIG10LTNcIj48dGhlYWQ+PHRyPjx0aD5HcnVwPC90aD48dGg+VG9wbGFtPC90aD48dGg+UmV0PC90aD48dGg+UmV0IE9yYW7EsSAoJSk8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyICpuZ0Zvcj1cImxldCBnIG9mIHIucmVqZWN0aW9uU3VtbWFyeVwiPjx0ZD57eyBnLmdyb3VwTmFtZSB9fTwvdGQ+PHRkPnt7IGcudG90YWwgfX08L3RkPjx0ZD57eyBnLnJlamVjdGVkIH19PC90ZD48dGQ+e3sgZy5yYXRlIH19PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT5cclxuICA8L2Rpdj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiByLnNlY3Rpb25zXCI+PGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPjxoNT57eyBzZWN0aW9uLmZvcm0ubmFtZSB9fSDigJMge3sgc2VjdGlvbi5ncm91cE5hbWUgfX08L2g1PjxwIGNsYXNzPVwidGV4dC1tdXRlZFwiPnt7IHNlY3Rpb24uZm9ybS5kb2N1bWVudENvZGUgfX0gwrcgWWF5xLFuOiB7eyBzZWN0aW9uLmZvcm0ucHVibGljYXRpb25EYXRlIHwgZGF0ZTonZGQuTU0ueXl5eScgfX0gwrcgUmV2aXp5b246IHt7IHNlY3Rpb24uZm9ybS5yZXZpc2lvbkRhdGUgfCBkYXRlOidkZC5NTS55eXl5JyB9fSAvIHt7IHNlY3Rpb24uZm9ybS5yZXZpc2lvbk51bWJlciB9fTwvcD5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj48dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1zbVwiPjx0aGVhZD48dHI+PHRoPlRhcmloIC8gU2FhdDwvdGg+PHRoPnt7IHIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gJ1RhbmsgLyBBa3RhcsSxbGFuIFRhbmsnIDogJ1BsYWthIC8gRmlybWEgLyBHZW1pJyB9fTwvdGg+PHRoPkR1cnVtPC90aD48dGg+TWlrdGFyICh7eyBzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0IHx8ICdrZycgfX0pPC90aD48dGggKm5nRm9yPVwibGV0IHAgb2Ygc2VjdGlvbi5jb2x1bW5zXCI+e3sgcC5uYW1lIH19IDxzbWFsbD57eyBwLnVuaXQgfX08L3NtYWxsPjwvdGg+PHRoPkFuYWxpemkgWWFwYW4gLyBBw6fEsWtsYW1hPC90aD48L3RyPjwvdGhlYWQ+XHJcbiAgICAgIDx0Ym9keT48dHIgKm5nRm9yPVwibGV0IHJvdyBvZiBzZWN0aW9uLnJvd3NcIiBbY2xhc3MucmVqZWN0ZWQtcm93XT1cInJvdy5zdGF0dXMgPT09ICdSZWplY3RlZCdcIj48dGQ+e3sgcm93LmRhdGUgfCBkYXRlOidkZC5NTS55eXl5IEhIOm1tJyB9fTwvdGQ+PHRkPnt7IHJvdy5jb21wb3NpdGUgPyAnR2VtaSBLb21wb3ppdCBOdW11bmVzaScgOiByLnR5cGUgPT09ICdQcm9jZXNzJyA/ICgocm93LnRhbmsgfHwgcm93Lm91dHB1dFRhbmspID8gKHJvdy50YW5rIHx8ICcnKSArICcgLyAnICsgKHJvdy5vdXRwdXRUYW5rIHx8ICcnKSA6ICcnKSA6IHJvdy5wbGF0ZSB9fTxiciAvPnt7IHJvdy5wYXJ0bmVyIH19IHt7IHJvdy5zaGlwIH19PC90ZD48dGQ+e3sgc3RhdHVzTGFiZWwocm93LnN0YXR1cykgfX08L3RkPjx0ZD57eyByb3cucXVhbnRpdHlLZyA9PSBudWxsID8gJycgOiByb3cucXVhbnRpdHlLZyAvIChzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMSkgfX08L3RkPjx0ZCAqbmdGb3I9XCJsZXQgcCBvZiBzZWN0aW9uLmNvbHVtbnNcIiBbY2xhc3Mub3V0LW9mLWxpbWl0XT1cIm1lYXN1cmVtZW50KHJvdywgcCk/Lm91dE9mTGltaXRcIj57eyBtZWFzdXJlbWVudChyb3csIHApPy5udW1iZXIgIT0gbnVsbCA/IChtZWFzdXJlbWVudChyb3csIHApPy5udW1iZXIgfCBudW1iZXI6JzEuMC04JykgOiBtZWFzdXJlbWVudChyb3csIHApPy50ZXh0IH19PC90ZD48dGQ+e3sgcm93LmFuYWx5c3QgfX08YnIgLz57eyByb3cubm90ZXMgfX08L3RkPjwvdHI+XHJcbiAgICAgIDx0ciBjbGFzcz1cImJnLWxpZ2h0XCI+PHRoPk9SVEFMQU1BPC90aD48dGg+e3sgc2VjdGlvbi5hdmVyYWdlTW9kZSA9PT0gJ1dlaWdodGVkJyA/ICdNaWt0YXIgYcSfxLFybMSxa2zEsScgOiAnQXJpdG1ldGlrJyB9fTwvdGg+PHRoPlRPUExBTTwvdGg+PHRoPnt7IHNlY3Rpb24udG90YWxLZyAvIChzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0ID09PSAndCcgPyAxMDAwIDogMSkgfCBudW1iZXI6JzEuMC0yJyB9fTwvdGg+PHRkICpuZ0Zvcj1cImxldCBwIG9mIHNlY3Rpb24uY29sdW1uc1wiPnt7IHNlY3Rpb24uYXZlcmFnZXNbcC5jb2RlXSB8IG51bWJlcjonMS4wLTgnIH19PC90ZD48dGQ+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj5cclxuICAgIDwvZGl2PjwvZGl2PjxwICpuZ0lmPVwiIXIuc2VjdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJ0ZXh0LW11dGVkIG10LTNcIj5TZcOnaWxlbiBmaWx0cmVsZXJkZSBrYXnEsXQgYnVsdW5hbWFkxLEuPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2thbGl0ZS9zcmMvbGliL2NvbXBvbmVudHMvcXVhbGl0eS1yZXBvcnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFNbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBR2xHLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsR0FBc0IsRUFBVSxLQUFxQixFQUFVLFdBQThCO1FBQTdGLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFGakgsV0FBTSxHQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzdKLFdBQU0sR0FBeUIsSUFBSSxDQUFDO1FBQUMsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFBQyxlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQUFDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQUMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUFDLFVBQUssR0FBRyxFQUFFLENBQUM7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TyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzVDO29CQUNELEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTt3QkFDckMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzt3QkFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQzFMLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzt3QkFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDN0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFdBQVcsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxHQUFHLEVBQUUsZUFBZSxF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LFdBQVcsRUFBRSxDQUFDO29CQUMvQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUVBQW1FLEVBQUUsQ0FBQyxFQUFFLFVBQVUsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7aUJBQ3pLO2dCQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUFFO3dCQUFTO29CQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2lCQUFFO1lBQzlFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDOztvSEEvRFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRDVHBDLHFoTUFzQkE7MkZEYmEsdUJBQXVCO2tCQURuQyxTQUFTOytCQUFhLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBRdWFsaXR5QXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW92ZW1lbnRUeXBlLCBSZXBvcnRGaWx0ZXIsIFF1YWxpdHlSZXBvcnQsIFJlcG9ydFJvdywgUmVwb3J0U2VjdGlvbiB9IGZyb20gJy4uL21vZGVscy9pbnRha2UubW9kZWxzJztcbmltcG9ydCB7IFF1YWxpdHlGb3JtLCBRdWFsaXR5RmFjaWxpdHksIFF1YWxpdHlQYXJhbWV0ZXIgfSBmcm9tICcuLi9tb2RlbHMvcXVhbGl0eS5tb2RlbHMnO1xuaW1wb3J0IHsgZG93bmxvYWQsIGVycm9yTWVzc2FnZSwgbG9jYWxEYXRlLCBzdGF0dXNMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL3F1YWxpdHktbWVhc3VyZW1lbnRzJztcblxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnbGliLXF1YWxpdHktcmVwb3J0cycsIHRlbXBsYXRlVXJsOiAnLi9xdWFsaXR5LXJlcG9ydHMuY29tcG9uZW50Lmh0bWwnLCBzdHlsZVVybHM6IFsnLi9pbnRha2UuY29tcG9uZW50LnNjc3MnXSB9KVxuZXhwb3J0IGNsYXNzIFF1YWxpdHlSZXBvcnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZmlsdGVyOiBSZXBvcnRGaWx0ZXIgPSB7IHR5cGU6ICdJbnB1dCcsIGZyb206IGxvY2FsRGF0ZShuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSwgMSkpLCB1bnRpbDogbG9jYWxEYXRlKCksIGdyb3VwQnk6ICdOb25lJyB9O1xuICByZXBvcnQ6IFF1YWxpdHlSZXBvcnQgfCBudWxsID0gbnVsbDsgZm9ybXM6IFF1YWxpdHlGb3JtW10gPSBbXTsgZmFjaWxpdGllczogUXVhbGl0eUZhY2lsaXR5W10gPSBbXTsgdHlwZXM6IE1vdmVtZW50VHlwZVtdID0gW107IGJ1c3kgPSBmYWxzZTsgZXJyb3IgPSAnJzsgc3RhdHVzTGFiZWwgPSBzdGF0dXNMYWJlbDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IFF1YWxpdHlBcGlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvblNlcnZpY2UpIHt9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbJ3R5cGUnXSB8fCAnSW5wdXQnO1xuICAgIHRoaXMuYXBpLnJlcG9ydEZvcm1zKCkuc3Vic2NyaWJlKHsgbmV4dDogeCA9PiB0aGlzLmZvcm1zID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5kZWZpbml0aW9uRmFjaWxpdGllcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy5mYWNpbGl0aWVzID0geCwgZXJyb3I6IGUgPT4gdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKSB9KTtcbiAgICB0aGlzLmFwaS5xdWFsaXR5TW92ZW1lbnRUeXBlcygpLnN1YnNjcmliZSh7IG5leHQ6IHggPT4gdGhpcy50eXBlcyA9IHgsIGVycm9yOiBlID0+IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSkgfSk7XG4gIH1cbiAgZ2V0IGNhbkV4cG9ydCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMuZ2V0R3JhbnRlZFBvbGljeSgnSGl0c29mdC5LYWRvb2dsdS5LYWxpdGUuUmVwb3J0cy5FeHBvcnQnKTsgfVxuICBnZXQgdmlzaWJsZUZvcm1zKCk6IFF1YWxpdHlGb3JtW10geyByZXR1cm4gdGhpcy5mb3Jtcy5maWx0ZXIoeCA9PiAoeC5jb250cm9sVHlwZSB8fCAnUHJvY2VzcycpID09PSAodGhpcy5maWx0ZXIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gJ1Byb2Nlc3MnIDogJ0lucHV0JykpOyB9XG4gIGxvYWQoKTogdm9pZCB7IHRoaXMuYnVzeSA9IHRydWU7IHRoaXMuZXJyb3IgPSAnJzsgdGhpcy5hcGkucmVwb3J0KHRoaXMuZmlsdGVyKS5zdWJzY3JpYmUoeyBuZXh0OiB4ID0+IHsgdGhpcy5yZXBvcnQgPSB4OyB0aGlzLmJ1c3kgPSBmYWxzZTsgfSwgZXJyb3I6IGUgPT4geyB0aGlzLmVycm9yID0gZXJyb3JNZXNzYWdlKGUpOyB0aGlzLmJ1c3kgPSBmYWxzZTsgfSB9KTsgfVxuICBtZWFzdXJlbWVudChyb3c6IFJlcG9ydFJvdywgcDogUXVhbGl0eVBhcmFtZXRlcikgeyByZXR1cm4gcm93Lm1lYXN1cmVtZW50cy5maW5kKHggPT4geC5wYXJhbWV0ZXJDb2RlID09PSBwLmNvZGUpOyB9XG4gIHBkZigpOiB2b2lkIHsgdGhpcy5hcGkucmVwb3J0UGRmKHRoaXMuZmlsdGVyKS5zdWJzY3JpYmUoeyBuZXh0OiBiID0+IGRvd25sb2FkKGIsIGBLYWxpdGUtJHt0aGlzLmZpbHRlci50eXBlfS0ke3RoaXMuZmlsdGVyLmZyb219LnBkZmApLCBlcnJvcjogZSA9PiB0aGlzLmVycm9yID0gZXJyb3JNZXNzYWdlKGUpIH0pOyB9XG4gIGV4Y2VsKCk6IHZvaWQge1xuICAgIHRoaXMuYnVzeSA9IHRydWU7IHRoaXMuZXJyb3IgPSAnJztcbiAgICB0aGlzLmFwaS5yZXBvcnQodGhpcy5maWx0ZXIsIHRydWUpLnN1YnNjcmliZSh7IG5leHQ6IGFzeW5jIHJlcG9ydCA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IFdvcmtib29rIH0gPSBhd2FpdCBpbXBvcnQoJ2V4Y2VsanMnKTtcbiAgICAgICAgY29uc3Qgd29ya2Jvb2sgPSBuZXcgV29ya2Jvb2soKTsgd29ya2Jvb2suY3JlYXRvciA9ICdLYWxpdGUnO1xuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBpZiAocmVwb3J0LnR5cGUgPT09ICdSZWplY3RlZCcpIHtcbiAgICAgICAgICBjb25zdCBzdW1tYXJ5ID0gd29ya2Jvb2suYWRkV29ya3NoZWV0KCdSZXQgw5Z6ZXRpJyk7XG4gICAgICAgICAgc3VtbWFyeS5hZGRSb3coWydHcnVwJywgJ1RvcGxhbSBLYXnEsXQnLCAnUmV0IEFkZWRpJywgJ1JldCBPcmFuxLEgKCUpJ10pO1xuICAgICAgICAgIHJlcG9ydC5yZWplY3Rpb25TdW1tYXJ5LmZvckVhY2goZyA9PiBzdW1tYXJ5LmFkZFJvdyhbZy5ncm91cE5hbWUsIGcudG90YWwsIGcucmVqZWN0ZWQsIGcucmF0ZV0pKTtcbiAgICAgICAgICBzdW1tYXJ5LmNvbHVtbnMuZm9yRWFjaChjID0+IGMud2lkdGggPSAyNSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHJlcG9ydC5zZWN0aW9ucykge1xuICAgICAgICAgIGNvbnN0IHNoZWV0ID0gd29ya2Jvb2suYWRkV29ya3NoZWV0KGBGb3JtICR7KytpbmRleH1gKTtcbiAgICAgICAgICBzaGVldC5hZGRSb3coW3NlY3Rpb24uZm9ybS5uYW1lXSk7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFsnRG9rw7xtYW4nLCBzZWN0aW9uLmZvcm0uZG9jdW1lbnRDb2RlLCAnWWF5xLFuJywgc2VjdGlvbi5mb3JtLnB1YmxpY2F0aW9uRGF0ZS5zbGljZSgwLCAxMCksICdSZXZpenlvbicsIHNlY3Rpb24uZm9ybS5yZXZpc2lvbkRhdGUuc2xpY2UoMCwgMTApLCBzZWN0aW9uLmZvcm0ucmV2aXNpb25OdW1iZXJdKTtcbiAgICAgICAgICBzaGVldC5hZGRSb3coW3NlY3Rpb24uZ3JvdXBOYW1lXSk7XG4gICAgICAgICAgY29uc3QgZGl2aXNvciA9IHNlY3Rpb24uZm9ybS5xdWFudGl0eVVuaXQgPT09ICd0JyA/IDEwMDAgOiAxO1xuICAgICAgICAgIGNvbnN0IGZpeGVkID0gWydUYXJpaCAvIFNhYXQnLCAnUGxha2EnLCAnRG9yc2UnLCAnTXVoYXRhcCcsICdHZW1pJywgJ0hhcmVrZXQgVMO8csO8JywgJ0RldGF5JywgJ01lbsWfZWknLCAnU3RvayBOYWtsaScsICdUYW5rJywgJ0FrdGFyxLFsYW4gVGFuaycsICdZYcSfIENpbnNpJywgYE1pa3RhciAoJHtzZWN0aW9uLmZvcm0ucXVhbnRpdHlVbml0IHx8ICdrZyd9KWAsICdLYWxpdGUgRHVydW11JywgJ0FuYWxpemkgWWFwYW4nLCAnQcOnxLFrbGFtYSddO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHNoZWV0LmFkZFJvdyhbLi4uZml4ZWQsIC4uLnNlY3Rpb24uY29sdW1ucy5tYXAocCA9PiBwLm5hbWUgKyAocC51bml0ID8gYCAoJHtwLnVuaXR9KWAgOiAnJykpXSk7XG4gICAgICAgICAgaGVhZGVyLmZvbnQgPSB7IGJvbGQ6IHRydWUgfTsgaGVhZGVyLmZpbGwgPSB7IHR5cGU6ICdwYXR0ZXJuJywgcGF0dGVybjogJ3NvbGlkJywgZmdDb2xvcjogeyBhcmdiOiAnRkZFOEUxRUYnIH0gfTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBzZWN0aW9uLnJvd3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4Y2VsUm93ID0gc2hlZXQuYWRkUm93KFtuZXcgRGF0ZShyb3cuZGF0ZSksIHJvdy5jb21wb3NpdGUgPyAnR2VtaSBLb21wb3ppdCBOdW11bmVzaScgOiByb3cucGxhdGUsIHJvdy50cmFpbGVyUGxhdGUsXG4gICAgICAgICAgICAgIHJvdy5wYXJ0bmVyLCByb3cuc2hpcCwgcm93Lm1vdmVtZW50VHlwZSwgcm93LmRldGFpbCwgcm93Lm9yaWdpbiA9PT0gJ0ltcG9ydGVkJyA/ICfEsHRoYWwnIDogcm93Lm9yaWdpbiA9PT0gJ0RvbWVzdGljJyA/ICfEsMOnIFBpeWFzYScgOiAnJyxcbiAgICAgICAgICAgICAgcm93LnN0b2NrVHJhbnNmZXIsIHJvdy50YW5rLCByb3cub3V0cHV0VGFuaywgcm93Lm9pbFR5cGUsIHJvdy5xdWFudGl0eUtnID09IG51bGwgPyBudWxsIDogcm93LnF1YW50aXR5S2cgLyBkaXZpc29yLCBzdGF0dXNMYWJlbChyb3cuc3RhdHVzKSwgcm93LmFuYWx5c3QsIHJvdy5ub3RlcyxcbiAgICAgICAgICAgICAgLi4uc2VjdGlvbi5jb2x1bW5zLm1hcChwID0+IHsgY29uc3QgbSA9IHRoaXMubWVhc3VyZW1lbnQocm93LCBwKTsgcmV0dXJuIG0/Lm51bWJlciA/PyBtPy50ZXh0ID8/ICcnOyB9KV0pO1xuICAgICAgICAgICAgZXhjZWxSb3cuZ2V0Q2VsbCgxKS5udW1GbXQgPSAnZGQubW0ueXl5eSBoaDptbSc7IGV4Y2VsUm93LmdldENlbGwoMTMpLm51bUZtdCA9ICcjLCMjMC4wMCc7XG4gICAgICAgICAgICBpZiAocm93LnN0YXR1cyA9PT0gJ1JlamVjdGVkJykgZXhjZWxSb3cuZWFjaENlbGwoYyA9PiBjLmZpbGwgPSB7IHR5cGU6ICdwYXR0ZXJuJywgcGF0dGVybjogJ3NvbGlkJywgZmdDb2xvcjogeyBhcmdiOiAnRkZGRkUxRTYnIH0gfSk7XG4gICAgICAgICAgICBzZWN0aW9uLmNvbHVtbnMuZm9yRWFjaCgocCwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjZWxsID0gZXhjZWxSb3cuZ2V0Q2VsbChmaXhlZC5sZW5ndGggKyBpICsgMSk7XG4gICAgICAgICAgICAgIGNlbGwubnVtRm10ID0gcC5kZWNpbWFsUGxhY2VzID8gJzAuJyArICcwJy5yZXBlYXQocC5kZWNpbWFsUGxhY2VzKSA6ICcwJztcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWVhc3VyZW1lbnQocm93LCBwKT8ub3V0T2ZMaW1pdCkgY2VsbC5maWxsID0geyB0eXBlOiAncGF0dGVybicsIHBhdHRlcm46ICdzb2xpZCcsIGZnQ29sb3I6IHsgYXJnYjogJ0ZGRkZBQUFBJyB9IH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdG90YWxzOiAoc3RyaW5nIHwgbnVtYmVyIHwgbnVsbClbXSA9IEFycmF5KGZpeGVkLmxlbmd0aCkuZmlsbChudWxsKTsgdG90YWxzWzBdID0gJ09SVEFMQU1BJzsgdG90YWxzWzFdID0gc2VjdGlvbi5hdmVyYWdlTW9kZSA9PT0gJ1dlaWdodGVkJyA/ICdNaWt0YXIgYcSfxLFybMSxa2zEsScgOiAnQXJpdG1ldGlrJzsgdG90YWxzWzEyXSA9IHNlY3Rpb24udG90YWxLZyAvIGRpdmlzb3I7XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFsuLi50b3RhbHMsIC4uLnNlY3Rpb24uY29sdW1ucy5tYXAocCA9PiBzZWN0aW9uLmF2ZXJhZ2VzW3AuY29kZV0gPz8gbnVsbCldKS5mb250ID0geyBib2xkOiB0cnVlIH07XG4gICAgICAgICAgc2hlZXQuYWRkUm93KFsnQW5hbGl6aSBZYXBhbiAvIEtvbnRyb2wgRWRlbicsIC4uLkFycmF5LmZyb20obmV3IFNldChzZWN0aW9uLnJvd3MubWFwKHIgPT4gci5hbmFseXN0KS5maWx0ZXIoQm9vbGVhbikpKV0pO1xuICAgICAgICAgIGlmIChzZWN0aW9uLmZvcm0uZG9jdW1lbnRDb2RlID09PSAnRlIuODUnKSBzaGVldC5hZGRSb3coWydLQUJVTCcsICcnLCAnUkVEJywgJycsICfFnkFSVExJIEtBQlVMJywgJyddKTtcbiAgICAgICAgICBzaGVldC5jb2x1bW5zLmZvckVhY2goYyA9PiB7IGMud2lkdGggPSAyMDsgYy5hbGlnbm1lbnQgPSB7IHZlcnRpY2FsOiAnbWlkZGxlJywgd3JhcFRleHQ6IHRydWUgfTsgfSk7XG4gICAgICAgICAgc2hlZXQudmlld3MgPSBbeyBzdGF0ZTogJ2Zyb3plbicsIHlTcGxpdDogNCwgeFNwbGl0OiAyIH1dO1xuICAgICAgICAgIHNoZWV0LnBhZ2VTZXR1cCA9IHsgb3JpZW50YXRpb246ICdsYW5kc2NhcGUnLCBwYXBlclNpemU6IDgsIGZpdFRvUGFnZTogdHJ1ZSwgZml0VG9XaWR0aDogMSwgZml0VG9IZWlnaHQ6IDAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXdvcmtib29rLndvcmtzaGVldHMubGVuZ3RoKSB3b3JrYm9vay5hZGRXb3Jrc2hlZXQoJ0thecSxdCBZb2snKS5hZGRSb3coWydTZcOnaWxlbiBmaWx0cmVsZXJkZSBrYXnEsXQgYnVsdW5hbWFkxLEuJ10pO1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpO1xuICAgICAgICBkb3dubG9hZChuZXcgQmxvYihbZGF0YSBhcyBCbG9iUGFydF0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB9KSwgYEthbGl0ZS0ke3JlcG9ydC50eXBlfS0ke3RoaXMuZmlsdGVyLmZyb219Lnhsc3hgKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgdGhpcy5lcnJvciA9IGVycm9yTWVzc2FnZShlKTsgfSBmaW5hbGx5IHsgdGhpcy5idXN5ID0gZmFsc2U7IH1cbiAgICB9LCBlcnJvcjogZSA9PiB7IHRoaXMuZXJyb3IgPSBlcnJvck1lc3NhZ2UoZSk7IHRoaXMuYnVzeSA9IGZhbHNlOyB9IH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+PGgzPnt7IGZpbHRlci50eXBlID09PSAnUHJvY2VzcycgPyAnUmFmaW5lcmkgUHJvc2VzIEFuYWxpeiBSYXBvcnUnIDogZmlsdGVyLnR5cGUgPT09ICdSZWplY3RlZCcgPyAnS2FsaXRlIEtvbnRyb2wgUmV0IFJhcG9ydScgOiAnR2lyZGkgS29udHJvbCBSYXBvcmxhcsSxJyB9fTwvaDM+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmRcIj48ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+PGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+PGxhYmVsPkJhxZ9sYW5nxLHDpzwvbGFiZWw+PGlucHV0IHR5cGU9XCJkYXRlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5mcm9tXCIgLz48L2Rpdj48ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj48bGFiZWw+Qml0acWfPC9sYWJlbD48aW5wdXQgdHlwZT1cImRhdGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLnVudGlsXCIgLz48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPjxsYWJlbD5Gb3JtPC9sYWJlbD48c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZm9ybUNvZGVcIj48b3B0aW9uIHZhbHVlPVwiXCI+VMO8bcO8PC9vcHRpb24+PG9wdGlvbiAqbmdGb3I9XCJsZXQgZm9ybSBvZiB2aXNpYmxlRm9ybXNcIiBbdmFsdWVdPVwiZm9ybS5jb2RlXCI+e3sgZm9ybS5kb2N1bWVudENvZGUgfX0g4oCTIHt7IGZvcm0ubmFtZSB9fTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nSWY9XCJmaWx0ZXIudHlwZSA9PT0gJ1Byb2Nlc3MnXCI+PGxhYmVsPlRlc2lzPC9sYWJlbD48c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZmFjaWxpdHlDb2RlXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPlTDvG3DvDwvb3B0aW9uPjxvcHRpb24gKm5nRm9yPVwibGV0IGZhY2lsaXR5IG9mIGZhY2lsaXRpZXNcIiBbdmFsdWVdPVwiZmFjaWxpdHkuY29kZVwiPnt7IGZhY2lsaXR5Lm5hbWUgfX08L29wdGlvbj48L3NlbGVjdD48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxsYWJlbD5IYXJla2V0IFTDvHLDvDwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLm1vdmVtZW50VHlwZUNvZGVcIj48b3B0aW9uIHZhbHVlPVwiXCI+VMO8bcO8PC9vcHRpb24+PG9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiB0eXBlc1wiIFt2YWx1ZV09XCJ0eXBlLmNvZGVcIj57eyB0eXBlLm5hbWUgfX08L29wdGlvbj48L3NlbGVjdD48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0zXCIgKm5nSWY9XCJmaWx0ZXIudHlwZSAhPT0gJ1Byb2Nlc3MnXCI+PGxhYmVsPk11aGF0YXA8L2xhYmVsPjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLnBhcnRuZXJcIiAvPjwvZGl2PjxkaXYgY2xhc3M9XCJjb2wtbWQtMyBtdC0zXCIgKm5nSWY9XCJmaWx0ZXIudHlwZSAhPT0gJ1Byb2Nlc3MnXCI+PGxhYmVsPkdlbWk8L2xhYmVsPjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLnNoaXBcIiAvPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG10LTNcIiAqbmdJZj1cImZpbHRlci50eXBlICE9PSAnUHJvY2VzcydcIj48bGFiZWw+R3J1cGxhbWE8L2xhYmVsPjxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5ncm91cEJ5XCI+PG9wdGlvbiB2YWx1ZT1cIk5vbmVcIj5Zb2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiU2hpcFwiPkdlbWkgLyBQYXJ0aTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJQYXJ0bmVyXCI+TXVoYXRhcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJNb3ZlbWVudFwiPkhhcmVrZXQgVMO8csO8IC8gTWFsemVtZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJNb250aFwiPkF5PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbXQtM1wiPjxsYWJlbD5EdXJ1bTwvbGFiZWw+PHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLnN0YXR1c1wiPjxvcHRpb24gdmFsdWU9XCJcIj5Uw7xtw7w8L29wdGlvbj48bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdQcm9jZXNzJ1wiPjxvcHRpb24gdmFsdWU9XCJEcmFmdFwiPlRhc2xhazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJMYWJvcmFudFNpZ25lZFwiPkxhYm9yYW50IMSwbXphbMSxPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIkNoZWNrZWRcIj5Lb250cm9sIEVkaWxkaTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJBcHByb3ZlZFwiPk9uYXlsxLE8L29wdGlvbj48L25nLWNvbnRhaW5lcj48bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgIT09ICdQcm9jZXNzJ1wiPjxvcHRpb24gdmFsdWU9XCJEcmFmdFwiPlRhc2xhazwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJBY2NlcHRlZFwiPkthYnVsPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1cIlJlamVjdGVkXCI+UmV0PC9vcHRpb24+PC9uZy1jb250YWluZXI+PC9zZWxlY3Q+PC9kaXY+XHJcbiAgPC9kaXY+PGRpdiBjbGFzcz1cIm10LTNcIj48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTJcIiAoY2xpY2spPVwibG9hZCgpXCIgW2Rpc2FibGVkXT1cImJ1c3lcIj5SYXBvcnUgR2V0aXI8L2J1dHRvbj48YnV0dG9uICpuZ0lmPVwiY2FuRXhwb3J0XCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBtci0yXCIgKGNsaWNrKT1cInBkZigpXCIgW2Rpc2FibGVkXT1cImJ1c3lcIj5QREY8L2J1dHRvbj48YnV0dG9uICpuZ0lmPVwiY2FuRXhwb3J0XCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIChjbGljayk9XCJleGNlbCgpXCIgW2Rpc2FibGVkXT1cImJ1c3lcIj5FeGNlbDwvYnV0dG9uPjwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyIG10LTNcIj57eyBlcnJvciB9fTwvZGl2PjxkaXYgKm5nSWY9XCJidXN5XCIgY2xhc3M9XCJxdWFsaXR5LWxvYWRpbmdcIiByb2xlPVwic3RhdHVzXCI+UmFwb3IgaGF6xLFybGFuxLF5b3LigKY8L2Rpdj5cclxuICA8L2Rpdj48L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVwb3J0IGFzIHJcIj48ZGl2IGNsYXNzPVwiY2FyZCBtdC0zXCI+PGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlRvcGxhbSBLYXnEsXQ6IDxzdHJvbmc+e3sgci50b3RhbFJlY29yZHMgfX08L3N0cm9uZz4gwrcgUmV0OiA8c3Ryb25nPnt7IHIucmVqZWN0ZWRSZWNvcmRzIH19PC9zdHJvbmc+IMK3IFJldCBPcmFuxLE6IDxzdHJvbmc+JSB7eyByLnJlamVjdGlvblJhdGUgfX08L3N0cm9uZz5cclxuICAgIDx0YWJsZSAqbmdJZj1cInIudHlwZSA9PT0gJ1JlamVjdGVkJ1wiIGNsYXNzPVwidGFibGUgdGFibGUtc20gbXQtM1wiPjx0aGVhZD48dHI+PHRoPkdydXA8L3RoPjx0aD5Ub3BsYW08L3RoPjx0aD5SZXQ8L3RoPjx0aD5SZXQgT3JhbsSxICglKTwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT48dHIgKm5nRm9yPVwibGV0IGcgb2Ygci5yZWplY3Rpb25TdW1tYXJ5XCI+PHRkPnt7IGcuZ3JvdXBOYW1lIH19PC90ZD48dGQ+e3sgZy50b3RhbCB9fTwvdGQ+PHRkPnt7IGcucmVqZWN0ZWQgfX08L3RkPjx0ZD57eyBnLnJhdGUgfX08L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPlxyXG4gIDwvZGl2PjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgbXQtM1wiICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHIuc2VjdGlvbnNcIj48ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+PGg1Pnt7IHNlY3Rpb24uZm9ybS5uYW1lIH19IOKAkyB7eyBzZWN0aW9uLmdyb3VwTmFtZSB9fTwvaDU+PHAgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3sgc2VjdGlvbi5mb3JtLmRvY3VtZW50Q29kZSB9fSDCtyBZYXnEsW46IHt7IHNlY3Rpb24uZm9ybS5wdWJsaWNhdGlvbkRhdGUgfCBkYXRlOidkZC5NTS55eXl5JyB9fSDCtyBSZXZpenlvbjoge3sgc2VjdGlvbi5mb3JtLnJldmlzaW9uRGF0ZSB8IGRhdGU6J2RkLk1NLnl5eXknIH19IC8ge3sgc2VjdGlvbi5mb3JtLnJldmlzaW9uTnVtYmVyIH19PC9wPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXNtXCI+PHRoZWFkPjx0cj48dGg+VGFyaWggLyBTYWF0PC90aD48dGg+e3sgci50eXBlID09PSAnUHJvY2VzcycgPyAnVGFuayAvIEFrdGFyxLFsYW4gVGFuaycgOiAnUGxha2EgLyBGaXJtYSAvIEdlbWknIH19PC90aD48dGg+RHVydW08L3RoPjx0aD5NaWt0YXIgKHt7IHNlY3Rpb24uZm9ybS5xdWFudGl0eVVuaXQgfHwgJ2tnJyB9fSk8L3RoPjx0aCAqbmdGb3I9XCJsZXQgcCBvZiBzZWN0aW9uLmNvbHVtbnNcIj57eyBwLm5hbWUgfX0gPHNtYWxsPnt7IHAudW5pdCB9fTwvc21hbGw+PC90aD48dGg+QW5hbGl6aSBZYXBhbiAvIEHDp8Sxa2xhbWE8L3RoPjwvdHI+PC90aGVhZD5cclxuICAgICAgPHRib2R5Pjx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHNlY3Rpb24ucm93c1wiIFtjbGFzcy5yZWplY3RlZC1yb3ddPVwicm93LnN0YXR1cyA9PT0gJ1JlamVjdGVkJ1wiPjx0ZD57eyByb3cuZGF0ZSB8IGRhdGU6J2RkLk1NLnl5eXkgSEg6bW0nIH19PC90ZD48dGQ+e3sgcm93LmNvbXBvc2l0ZSA/ICdHZW1pIEtvbXBveml0IE51bXVuZXNpJyA6IHIudHlwZSA9PT0gJ1Byb2Nlc3MnID8gKChyb3cudGFuayB8fCByb3cub3V0cHV0VGFuaykgPyAocm93LnRhbmsgfHwgJycpICsgJyAvICcgKyAocm93Lm91dHB1dFRhbmsgfHwgJycpIDogJycpIDogcm93LnBsYXRlIH19PGJyIC8+e3sgcm93LnBhcnRuZXIgfX0ge3sgcm93LnNoaXAgfX08L3RkPjx0ZD57eyBzdGF0dXNMYWJlbChyb3cuc3RhdHVzKSB9fTwvdGQ+PHRkPnt7IHJvdy5xdWFudGl0eUtnID09IG51bGwgPyAnJyA6IHJvdy5xdWFudGl0eUtnIC8gKHNlY3Rpb24uZm9ybS5xdWFudGl0eVVuaXQgPT09ICd0JyA/IDEwMDAgOiAxKSB9fTwvdGQ+PHRkICpuZ0Zvcj1cImxldCBwIG9mIHNlY3Rpb24uY29sdW1uc1wiIFtjbGFzcy5vdXQtb2YtbGltaXRdPVwibWVhc3VyZW1lbnQocm93LCBwKT8ub3V0T2ZMaW1pdFwiPnt7IG1lYXN1cmVtZW50KHJvdywgcCk/Lm51bWJlciAhPSBudWxsID8gKG1lYXN1cmVtZW50KHJvdywgcCk/Lm51bWJlciB8IG51bWJlcjonMS4wLTgnKSA6IG1lYXN1cmVtZW50KHJvdywgcCk/LnRleHQgfX08L3RkPjx0ZD57eyByb3cuYW5hbHlzdCB9fTxiciAvPnt7IHJvdy5ub3RlcyB9fTwvdGQ+PC90cj5cclxuICAgICAgPHRyIGNsYXNzPVwiYmctbGlnaHRcIj48dGg+T1JUQUxBTUE8L3RoPjx0aD57eyBzZWN0aW9uLmF2ZXJhZ2VNb2RlID09PSAnV2VpZ2h0ZWQnID8gJ01pa3RhciBhxJ/EsXJsxLFrbMSxJyA6ICdBcml0bWV0aWsnIH19PC90aD48dGg+VE9QTEFNPC90aD48dGg+e3sgc2VjdGlvbi50b3RhbEtnIC8gKHNlY3Rpb24uZm9ybS5xdWFudGl0eVVuaXQgPT09ICd0JyA/IDEwMDAgOiAxKSB8IG51bWJlcjonMS4wLTInIH19PC90aD48dGQgKm5nRm9yPVwibGV0IHAgb2Ygc2VjdGlvbi5jb2x1bW5zXCI+e3sgc2VjdGlvbi5hdmVyYWdlc1twLmNvZGVdIHwgbnVtYmVyOicxLjAtOCcgfX08L3RkPjx0ZD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PlxyXG4gICAgPC9kaXY+PC9kaXY+PHAgKm5nSWY9XCIhci5zZWN0aW9ucy5sZW5ndGhcIiBjbGFzcz1cInRleHQtbXV0ZWQgbXQtM1wiPlNlw6dpbGVuIGZpbHRyZWxlcmRlIGthecSxdCBidWx1bmFtYWTEsS48L3A+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -19,7 +19,7 @@ function configureRoutes(routes) {
|
|
|
19
19
|
iconClass: 'fas fa-flask',
|
|
20
20
|
layout: "application" /* eLayoutType.application */,
|
|
21
21
|
order: 3,
|
|
22
|
-
requiredPolicy: 'Kalite.ProcessAnalysis || Kalite.Parameters || Kalite.Definitions || Kalite.Reports || Kalite.Notifications.Configure',
|
|
22
|
+
requiredPolicy: 'Hitsoft.Kadooglu.Kalite.ProcessAnalysis || Hitsoft.Kadooglu.Kalite.Parameters || Hitsoft.Kadooglu.Kalite.Definitions || Hitsoft.Kadooglu.Kalite.Reports || Hitsoft.Kadooglu.Kalite.Notifications.Configure',
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
path: '/kalite/process-analysis',
|
|
@@ -27,7 +27,7 @@ function configureRoutes(routes) {
|
|
|
27
27
|
name: "Kalite::Menu:ProcessAnalysis" /* eKaliteRouteNames.ProcessAnalysis */,
|
|
28
28
|
layout: "application" /* eLayoutType.application */,
|
|
29
29
|
order: 1,
|
|
30
|
-
requiredPolicy: 'Kalite.ProcessAnalysis',
|
|
30
|
+
requiredPolicy: 'Hitsoft.Kadooglu.Kalite.ProcessAnalysis',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
path: '/kalite/parameters',
|
|
@@ -35,24 +35,24 @@ function configureRoutes(routes) {
|
|
|
35
35
|
name: "Kalite::Menu:Parameters" /* eKaliteRouteNames.Parameters */,
|
|
36
36
|
layout: "application" /* eLayoutType.application */,
|
|
37
37
|
order: 2,
|
|
38
|
-
requiredPolicy: 'Kalite.Parameters',
|
|
38
|
+
requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Parameters',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
path: '/kalite/intake',
|
|
42
42
|
parentName: 'KadoogluTartim::Menu:KadoogluTartim',
|
|
43
43
|
name: 'Kalite::Menu:Intake', layout: "application" /* eLayoutType.application */,
|
|
44
|
-
order: 4, requiredPolicy: 'Kalite.Intake',
|
|
44
|
+
order: 4, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Intake',
|
|
45
45
|
},
|
|
46
46
|
{ path: '/kalite/definitions', parentName: "Kalite::Menu:Kalite" /* eKaliteRouteNames.Kalite */, name: 'Kalite::Menu:Definitions',
|
|
47
|
-
layout: "application" /* eLayoutType.application */, order: 3, requiredPolicy: 'Kalite.Definitions' },
|
|
47
|
+
layout: "application" /* eLayoutType.application */, order: 3, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Definitions' },
|
|
48
48
|
{ path: '/kalite/reports/input', parentName: "Kalite::Menu:Kalite" /* eKaliteRouteNames.Kalite */, name: 'Kalite::Menu:InputReports',
|
|
49
|
-
layout: "application" /* eLayoutType.application */, order: 4, requiredPolicy: 'Kalite.Reports' },
|
|
49
|
+
layout: "application" /* eLayoutType.application */, order: 4, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },
|
|
50
50
|
{ path: '/kalite/reports/process', parentName: "Kalite::Menu:Kalite" /* eKaliteRouteNames.Kalite */, name: 'Kalite::Menu:ProcessReports',
|
|
51
|
-
layout: "application" /* eLayoutType.application */, order: 5, requiredPolicy: 'Kalite.Reports' },
|
|
51
|
+
layout: "application" /* eLayoutType.application */, order: 5, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },
|
|
52
52
|
{ path: '/kalite/reports/rejected', parentName: "Kalite::Menu:Kalite" /* eKaliteRouteNames.Kalite */, name: 'Kalite::Menu:RejectionReports',
|
|
53
|
-
layout: "application" /* eLayoutType.application */, order: 6, requiredPolicy: 'Kalite.Reports' },
|
|
53
|
+
layout: "application" /* eLayoutType.application */, order: 6, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },
|
|
54
54
|
{ path: '/kalite/notification-settings', parentName: "Kalite::Menu:Kalite" /* eKaliteRouteNames.Kalite */, name: 'Kalite::Menu:NotificationSettings',
|
|
55
|
-
layout: "application" /* eLayoutType.application */, order: 7, requiredPolicy: 'Kalite.Notifications.Configure' },
|
|
55
|
+
layout: "application" /* eLayoutType.application */, order: 7, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Notifications.Configure' },
|
|
56
56
|
]);
|
|
57
57
|
};
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hitsoft-kadooglu.kalite-config.mjs","sources":["../../../projects/kalite/config/src/providers/route.provider.ts","../../../projects/kalite/config/src/kalite-config.module.ts","../../../projects/kalite/config/src/hitsoft-kadooglu.kalite-config.ts"],"sourcesContent":["import { eLayoutType, RoutesService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Provider } from '@angular/core';\nimport { eKaliteRouteNames } from '../enums/route-names';\n\nexport const KALITE_ROUTE_PROVIDERS: Provider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: configureRoutes,\n deps: [RoutesService],\n multi: true,\n },\n];\n\nexport function configureRoutes(routes: RoutesService) {\n return () => {\n routes.add([\n {\n path: '/kalite',\n name: eKaliteRouteNames.Kalite,\n iconClass: 'fas fa-flask',\n layout: eLayoutType.application,\n order: 3,\n requiredPolicy: 'Kalite.ProcessAnalysis || Kalite.Parameters || Kalite.Definitions || Kalite.Reports || Kalite.Notifications.Configure',\n },\n {\n path: '/kalite/process-analysis',\n parentName: eKaliteRouteNames.Kalite,\n name: eKaliteRouteNames.ProcessAnalysis,\n layout: eLayoutType.application,\n order: 1,\n requiredPolicy: 'Kalite.ProcessAnalysis',\n },\n {\n path: '/kalite/parameters',\n parentName: eKaliteRouteNames.Kalite,\n name: eKaliteRouteNames.Parameters,\n layout: eLayoutType.application,\n order: 2,\n requiredPolicy: 'Kalite.Parameters',\n },\n {\n path: '/kalite/intake',\n parentName: 'KadoogluTartim::Menu:KadoogluTartim',\n name: 'Kalite::Menu:Intake', layout: eLayoutType.application,\n order: 4, requiredPolicy: 'Kalite.Intake',\n },\n { path: '/kalite/definitions', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:Definitions',\n layout: eLayoutType.application, order: 3, requiredPolicy: 'Kalite.Definitions' },\n { path: '/kalite/reports/input', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:InputReports',\n layout: eLayoutType.application, order: 4, requiredPolicy: 'Kalite.Reports' },\n { path: '/kalite/reports/process', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:ProcessReports',\n layout: eLayoutType.application, order: 5, requiredPolicy: 'Kalite.Reports' },\n { path: '/kalite/reports/rejected', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:RejectionReports',\n layout: eLayoutType.application, order: 6, requiredPolicy: 'Kalite.Reports' },\n { path: '/kalite/notification-settings', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:NotificationSettings',\n layout: eLayoutType.application, order: 7, requiredPolicy: 'Kalite.Notifications.Configure' },\n ]);\n };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { KALITE_ROUTE_PROVIDERS } from './providers/route.provider';\n\n@NgModule()\nexport class KaliteConfigModule {\n static forRoot(): ModuleWithProviders<KaliteConfigModule> {\n return {\n ngModule: KaliteConfigModule,\n providers: [KALITE_ROUTE_PROVIDERS],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAIa,MAAA,sBAAsB,GAAe;AAChD,IAAA;AACE,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,eAAe;QAC3B,IAAI,EAAE,CAAC,aAAa,CAAC;AACrB,QAAA,KAAK,EAAE,IAAI;AACZ,KAAA;EACD;AAEI,SAAU,eAAe,CAAC,MAAqB,EAAA;AACnD,IAAA,OAAO,MAAK;QACV,MAAM,CAAC,GAAG,CAAC;AACT,YAAA;AACE,gBAAA,IAAI,EAAE,SAAS;gBACf,IAAI,EAA0B,qBAAA;AAC9B,gBAAA,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAyB,aAAA;AAC/B,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"hitsoft-kadooglu.kalite-config.mjs","sources":["../../../projects/kalite/config/src/providers/route.provider.ts","../../../projects/kalite/config/src/kalite-config.module.ts","../../../projects/kalite/config/src/hitsoft-kadooglu.kalite-config.ts"],"sourcesContent":["import { eLayoutType, RoutesService } from '@abp/ng.core';\nimport { APP_INITIALIZER, Provider } from '@angular/core';\nimport { eKaliteRouteNames } from '../enums/route-names';\n\nexport const KALITE_ROUTE_PROVIDERS: Provider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: configureRoutes,\n deps: [RoutesService],\n multi: true,\n },\n];\n\nexport function configureRoutes(routes: RoutesService) {\n return () => {\n routes.add([\n {\n path: '/kalite',\n name: eKaliteRouteNames.Kalite,\n iconClass: 'fas fa-flask',\n layout: eLayoutType.application,\n order: 3,\n requiredPolicy: 'Hitsoft.Kadooglu.Kalite.ProcessAnalysis || Hitsoft.Kadooglu.Kalite.Parameters || Hitsoft.Kadooglu.Kalite.Definitions || Hitsoft.Kadooglu.Kalite.Reports || Hitsoft.Kadooglu.Kalite.Notifications.Configure',\n },\n {\n path: '/kalite/process-analysis',\n parentName: eKaliteRouteNames.Kalite,\n name: eKaliteRouteNames.ProcessAnalysis,\n layout: eLayoutType.application,\n order: 1,\n requiredPolicy: 'Hitsoft.Kadooglu.Kalite.ProcessAnalysis',\n },\n {\n path: '/kalite/parameters',\n parentName: eKaliteRouteNames.Kalite,\n name: eKaliteRouteNames.Parameters,\n layout: eLayoutType.application,\n order: 2,\n requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Parameters',\n },\n {\n path: '/kalite/intake',\n parentName: 'KadoogluTartim::Menu:KadoogluTartim',\n name: 'Kalite::Menu:Intake', layout: eLayoutType.application,\n order: 4, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Intake',\n },\n { path: '/kalite/definitions', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:Definitions',\n layout: eLayoutType.application, order: 3, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Definitions' },\n { path: '/kalite/reports/input', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:InputReports',\n layout: eLayoutType.application, order: 4, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },\n { path: '/kalite/reports/process', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:ProcessReports',\n layout: eLayoutType.application, order: 5, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },\n { path: '/kalite/reports/rejected', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:RejectionReports',\n layout: eLayoutType.application, order: 6, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Reports' },\n { path: '/kalite/notification-settings', parentName: eKaliteRouteNames.Kalite, name: 'Kalite::Menu:NotificationSettings',\n layout: eLayoutType.application, order: 7, requiredPolicy: 'Hitsoft.Kadooglu.Kalite.Notifications.Configure' },\n ]);\n };\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { KALITE_ROUTE_PROVIDERS } from './providers/route.provider';\n\n@NgModule()\nexport class KaliteConfigModule {\n static forRoot(): ModuleWithProviders<KaliteConfigModule> {\n return {\n ngModule: KaliteConfigModule,\n providers: [KALITE_ROUTE_PROVIDERS],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -339,7 +339,7 @@ class ProcessAnalysisComponent {
|
|
|
339
339
|
get editable() {
|
|
340
340
|
var _a;
|
|
341
341
|
return !this.busy && ((_a = this.analysis) === null || _a === void 0 ? void 0 : _a.status) === 'Draft' &&
|
|
342
|
-
this.permissions.getGrantedPolicy('Kalite.ProcessAnalysis.Create');
|
|
342
|
+
this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.ProcessAnalysis.Create');
|
|
343
343
|
}
|
|
344
344
|
get hasOutOfLimit() {
|
|
345
345
|
var _a;
|
|
@@ -351,7 +351,7 @@ class ProcessAnalysisComponent {
|
|
|
351
351
|
Checked: 'Mühendis kontrol etti', Approved: 'Onaylı' }[((_a = this.analysis) === null || _a === void 0 ? void 0 : _a.status) || ''] || '';
|
|
352
352
|
}
|
|
353
353
|
allowed(permission) {
|
|
354
|
-
return this.permissions.getGrantedPolicy(`Kalite.ProcessAnalysis.${permission}`);
|
|
354
|
+
return this.permissions.getGrantedPolicy(`Hitsoft.Kadooglu.Kalite.ProcessAnalysis.${permission}`);
|
|
355
355
|
}
|
|
356
356
|
load() {
|
|
357
357
|
if (!this.facilityCode || !this.businessDate)
|
|
@@ -564,9 +564,9 @@ class QualityParametersComponent {
|
|
|
564
564
|
error: () => this.error = 'Form listesi yüklenemedi.',
|
|
565
565
|
});
|
|
566
566
|
}
|
|
567
|
-
get canEdit() { return this.permissions.getGrantedPolicy('Kalite.Parameters.Edit'); }
|
|
568
|
-
get canCreate() { return this.permissions.getGrantedPolicy('Kalite.Parameters.Create'); }
|
|
569
|
-
get canDelete() { return this.permissions.getGrantedPolicy('Kalite.Parameters.Delete'); }
|
|
567
|
+
get canEdit() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Parameters.Edit'); }
|
|
568
|
+
get canCreate() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Parameters.Create'); }
|
|
569
|
+
get canDelete() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Parameters.Delete'); }
|
|
570
570
|
get visibleForms() { return this.forms.filter(f => (f.controlType || 'Process') === this.controlType); }
|
|
571
571
|
get visibleDetails() { return this.movementDetails.filter(d => !this.movementTypeCode || d.movementTypeCode === this.movementTypeCode); }
|
|
572
572
|
switchType(type) {
|
|
@@ -856,7 +856,7 @@ class IntakeListComponent {
|
|
|
856
856
|
this.statusLabel = statusLabel;
|
|
857
857
|
}
|
|
858
858
|
ngOnInit() { this.api.qualityMovementTypes().subscribe({ next: types => this.types = types, error: e => this.error = errorMessage(e) }); this.load(); }
|
|
859
|
-
allowed(policy) { return this.permissions.getGrantedPolicy('Kalite.Intake.' + policy); }
|
|
859
|
+
allowed(policy) { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Intake.' + policy); }
|
|
860
860
|
editable(row) { return row.vehicleStatus === '0' && !row.firstWeight && !row.hasExited; }
|
|
861
861
|
load(reset = false) {
|
|
862
862
|
var _a, _b;
|
|
@@ -1015,7 +1015,7 @@ class IntakeFormComponent {
|
|
|
1015
1015
|
this.api.tanks().subscribe({ next: tanks => this.tanks = tanks.filter(x => x.active), error: e => this.error = errorMessage(e) });
|
|
1016
1016
|
}
|
|
1017
1017
|
ngOnDestroy() { this.destroy.next(); this.destroy.complete(); }
|
|
1018
|
-
allowed(action) { return this.permissions.getGrantedPolicy('Kalite.Intake.' + action); }
|
|
1018
|
+
allowed(action) { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Intake.' + action); }
|
|
1019
1019
|
get editable() { var _a; return !!((_a = this.form) === null || _a === void 0 ? void 0 : _a.canEdit) && !this.viewOnly && this.allowed('Edit'); }
|
|
1020
1020
|
get parameters() { var _a, _b; return ((_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.inspection.templateSnapshot) === null || _b === void 0 ? void 0 : _b.parameters.filter(x => x.active).sort((a, b) => a.order - b.order)) || []; }
|
|
1021
1021
|
get palm() { var _a, _b; return ((_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.details.find(x => { var _a; return x.code === ((_a = this.form) === null || _a === void 0 ? void 0 : _a.inspection.movementDetailCode); })) === null || _b === void 0 ? void 0 : _b.profile) === 'PALM'; }
|
|
@@ -1173,8 +1173,8 @@ class QualityDefinitionsComponent {
|
|
|
1173
1173
|
this.laborantsError = '';
|
|
1174
1174
|
this.profiles = [{ code: '', name: 'Soruları kendim tanımlayacağım' }, { code: 'RAW', name: 'Ham Ayçiçek Yağı' }, { code: 'REFINED', name: 'Rafine Yağ' }, { code: 'PALM', name: 'Palm Oil / Palm Olein' }, { code: 'COAL', name: 'Kömür' }, { code: 'NAOH', name: 'Kostik (NaOH)' }, { code: 'PHOSPHORIC', name: 'Fosforik Asit' }, { code: 'SULFURIC', name: 'Sülfürik Asit' }, { code: 'PERLITE', name: 'Perlit' }, { code: 'EARTH', name: 'Ağartma Toprağı' }];
|
|
1175
1175
|
}
|
|
1176
|
-
get canEdit() { return this.permissions.getGrantedPolicy('Kalite.Definitions.Edit'); }
|
|
1177
|
-
get canDelete() { return this.permissions.getGrantedPolicy('Kalite.Definitions.Delete'); }
|
|
1176
|
+
get canEdit() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Definitions.Edit'); }
|
|
1177
|
+
get canDelete() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Definitions.Delete'); }
|
|
1178
1178
|
ngOnInit() { this.load(); }
|
|
1179
1179
|
load() {
|
|
1180
1180
|
this.busy = true;
|
|
@@ -1260,7 +1260,7 @@ class QualityReportsComponent {
|
|
|
1260
1260
|
this.api.definitionFacilities().subscribe({ next: x => this.facilities = x, error: e => this.error = errorMessage(e) });
|
|
1261
1261
|
this.api.qualityMovementTypes().subscribe({ next: x => this.types = x, error: e => this.error = errorMessage(e) });
|
|
1262
1262
|
}
|
|
1263
|
-
get canExport() { return this.permissions.getGrantedPolicy('Kalite.Reports.Export'); }
|
|
1263
|
+
get canExport() { return this.permissions.getGrantedPolicy('Hitsoft.Kadooglu.Kalite.Reports.Export'); }
|
|
1264
1264
|
get visibleForms() { return this.forms.filter(x => (x.controlType || 'Process') === (this.filter.type === 'Process' ? 'Process' : 'Input')); }
|
|
1265
1265
|
load() { this.busy = true; this.error = ''; this.api.report(this.filter).subscribe({ next: x => { this.report = x; this.busy = false; }, error: e => { this.error = errorMessage(e); this.busy = false; } }); }
|
|
1266
1266
|
measurement(row, p) { return row.measurements.find(x => x.parameterCode === p.code); }
|