pcf-assessment-taker 0.1.13
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/README.md +24 -0
- package/assessment-taker.d.ts +5 -0
- package/esm2020/assessment-taker.mjs +5 -0
- package/esm2020/lib/assessment-taker.component.mjs +24 -0
- package/esm2020/lib/assessment-taker.module.mjs +44 -0
- package/esm2020/lib/assessment-taker.routing.module.mjs +23 -0
- package/esm2020/lib/assessment-taker.service.mjs +46 -0
- package/esm2020/lib/components/feature/feature-routing.module.mjs +29 -0
- package/esm2020/lib/components/feature/feature.module.mjs +57 -0
- package/esm2020/lib/components/feature/quest-success/quest-success/quest-success.component.mjs +26 -0
- package/esm2020/lib/components/feature/quest-wizard/quest-wizard.component.mjs +437 -0
- package/esm2020/lib/configuration.mjs +4 -0
- package/esm2020/lib/shared/interceptor/lib-interceptor.interceptor.mjs +26 -0
- package/esm2020/lib/shared/pipe/order-by.pipe.mjs +22 -0
- package/esm2020/lib/shared/services/assessment-id.service.mjs +21 -0
- package/esm2020/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.mjs +97 -0
- package/esm2020/lib/shared/shared-components/question-type-date/question-type-date.component.mjs +42 -0
- package/esm2020/lib/shared/shared-components/question-type-editor/question-type-editor.component.mjs +48 -0
- package/esm2020/lib/shared/shared-components/question-type-long/question-type-long.component.mjs +47 -0
- package/esm2020/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.mjs +55 -0
- package/esm2020/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.mjs +58 -0
- package/esm2020/lib/shared/shared-components/question-type-number/question-type-number.component.mjs +43 -0
- package/esm2020/lib/shared/shared-components/question-type-objective/question-type-objective.component.mjs +59 -0
- package/esm2020/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.mjs +60 -0
- package/esm2020/lib/shared/shared-components/question-type-rating/question-type-rating.component.mjs +49 -0
- package/esm2020/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.mjs +103 -0
- package/esm2020/lib/shared/shared-components/question-type-short/question-type-short.component.mjs +43 -0
- package/esm2020/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.mjs +48 -0
- package/esm2020/lib/shared/shared-components/shared-components.module.mjs +143 -0
- package/esm2020/pcf-assessment-taker.mjs +5 -0
- package/esm2020/public-api.mjs +25 -0
- package/fesm2015/assessment-taker.mjs +1481 -0
- package/fesm2015/assessment-taker.mjs.map +1 -0
- package/fesm2015/pcf-assessment-taker.mjs +1481 -0
- package/fesm2015/pcf-assessment-taker.mjs.map +1 -0
- package/fesm2020/assessment-taker.mjs +1468 -0
- package/fesm2020/assessment-taker.mjs.map +1 -0
- package/fesm2020/pcf-assessment-taker.mjs +1468 -0
- package/fesm2020/pcf-assessment-taker.mjs.map +1 -0
- package/lib/assessment-taker.component.d.ts +13 -0
- package/lib/assessment-taker.module.d.ts +11 -0
- package/lib/assessment-taker.routing.module.d.ts +7 -0
- package/lib/assessment-taker.service.d.ts +18 -0
- package/lib/components/feature/feature-routing.module.d.ts +7 -0
- package/lib/components/feature/feature.module.d.ts +15 -0
- package/lib/components/feature/quest-success/quest-success/quest-success.component.d.ts +12 -0
- package/lib/components/feature/quest-wizard/quest-wizard.component.d.ts +51 -0
- package/lib/configuration.d.ts +6 -0
- package/lib/shared/interceptor/lib-interceptor.interceptor.d.ts +11 -0
- package/lib/shared/pipe/order-by.pipe.d.ts +7 -0
- package/lib/shared/services/assessment-id.service.d.ts +9 -0
- package/lib/shared/shared-components/question-type-add-dialog/question-type-add-dialog.component.d.ts +35 -0
- package/lib/shared/shared-components/question-type-date/question-type-date.component.d.ts +12 -0
- package/lib/shared/shared-components/question-type-editor/question-type-editor.component.d.ts +16 -0
- package/lib/shared/shared-components/question-type-long/question-type-long.component.d.ts +15 -0
- package/lib/shared/shared-components/question-type-multiselect/question-type-multiselect.component.d.ts +15 -0
- package/lib/shared/shared-components/question-type-multiselect-sub/question-type-multiselect-sub.component.d.ts +15 -0
- package/lib/shared/shared-components/question-type-number/question-type-number.component.d.ts +13 -0
- package/lib/shared/shared-components/question-type-objective/question-type-objective.component.d.ts +17 -0
- package/lib/shared/shared-components/question-type-objective-sub/question-type-objective-sub.component.d.ts +16 -0
- package/lib/shared/shared-components/question-type-rating/question-type-rating.component.d.ts +14 -0
- package/lib/shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component.d.ts +35 -0
- package/lib/shared/shared-components/question-type-short/question-type-short.component.d.ts +13 -0
- package/lib/shared/shared-components/question-type-upload-file/question-type-upload-file.component.d.ts +14 -0
- package/lib/shared/shared-components/shared-components.module.d.ts +34 -0
- package/package.json +32 -0
- package/pcf-assessment-taker.d.ts +5 -0
- package/public-api.d.ts +20 -0
- package/src/lib/assets/images/assessment-placeholder-2.png +0 -0
- package/src/lib/assets/images/new_tooltip.jpg +0 -0
- package/src/lib/assets/images/tooltip.png +0 -0
- package/src/lib/assets/images/tooltipimg.jpg +0 -0
- package/src/lib/assets/theme/_theme.scss +1077 -0
- package/src/lib/assets/theme/font.css +36 -0
- package/src/lib/assets/theme/fonts/halant/Halant-Bold.ttf +0 -0
- package/src/lib/assets/theme/fonts/halant/Halant-Light.ttf +0 -0
- package/src/lib/assets/theme/fonts/halant/Halant-Medium.ttf +0 -0
- package/src/lib/assets/theme/fonts/halant/Halant-Regular.ttf +0 -0
- package/src/lib/assets/theme/fonts/halant/Halant-SemiBold.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-Bold.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraBold.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-ExtraLight.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-Light.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-Medium.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-Regular.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-SemiBold.ttf +0 -0
- package/src/lib/assets/theme/fonts/poppins/Poppins-Thin.ttf +0 -0
- package/src/lib/assets/theme/fonts/roboto/Roboto-Bold.ttf +0 -0
- package/src/lib/assets/theme/fonts/roboto/Roboto-Light.ttf +0 -0
- package/src/lib/assets/theme/fonts/roboto/Roboto-Medium.ttf +0 -0
- package/src/lib/assets/theme/fonts/roboto/Roboto-Regular.ttf +0 -0
- package/src/lib/assets/theme/fonts/roboto/Roboto-Thin.ttf +0 -0
- package/src/lib/assets/theme/variables.css +392 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Validators, FormGroup, FormControl } from '@angular/forms';
|
|
3
|
+
import { QuestSuccessComponent } from '../quest-success/quest-success/quest-success.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../assessment-taker.service";
|
|
6
|
+
import * as i2 from "../../../shared/services/assessment-id.service";
|
|
7
|
+
import * as i3 from "@angular/forms";
|
|
8
|
+
import * as i4 from "@angular/material/dialog";
|
|
9
|
+
import * as i5 from "../../../shared/shared-components/question-type-objective/question-type-objective.component";
|
|
10
|
+
import * as i6 from "../../../shared/shared-components/question-type-short/question-type-short.component";
|
|
11
|
+
import * as i7 from "../../../shared/shared-components/question-type-long/question-type-long.component";
|
|
12
|
+
import * as i8 from "../../../shared/shared-components/question-type-date/question-type-date.component";
|
|
13
|
+
import * as i9 from "../../../shared/shared-components/question-type-number/question-type-number.component";
|
|
14
|
+
import * as i10 from "../../../shared/shared-components/question-type-upload-file/question-type-upload-file.component";
|
|
15
|
+
import * as i11 from "../../../shared/shared-components/question-type-multiselect/question-type-multiselect.component";
|
|
16
|
+
import * as i12 from "../../../shared/shared-components/question-type-rating/question-type-rating.component";
|
|
17
|
+
import * as i13 from "../../../shared/shared-components/question-type-editor/question-type-editor.component";
|
|
18
|
+
import * as i14 from "../../../shared/shared-components/question-type-searchable-tag/question-type-searchable-tag.component";
|
|
19
|
+
import * as i15 from "@angular/material/button";
|
|
20
|
+
import * as i16 from "@angular/common";
|
|
21
|
+
import * as i17 from "@angular/material/chips";
|
|
22
|
+
import * as i18 from "@angular/material/tooltip";
|
|
23
|
+
export class QuestWizardComponent {
|
|
24
|
+
constructor(assessmentService, assessmentIdService, fb, dialog, cdr) {
|
|
25
|
+
this.assessmentService = assessmentService;
|
|
26
|
+
this.assessmentIdService = assessmentIdService;
|
|
27
|
+
this.fb = fb;
|
|
28
|
+
this.dialog = dialog;
|
|
29
|
+
this.cdr = cdr;
|
|
30
|
+
this.childQuestionBook = [];
|
|
31
|
+
this.editorName = "editorName";
|
|
32
|
+
this.tooltipText = '';
|
|
33
|
+
this.submitted = false;
|
|
34
|
+
// assessmentId: any
|
|
35
|
+
this.assessmentQuestionPapersList = new Array();
|
|
36
|
+
this.questionIds = {};
|
|
37
|
+
this.startDate = new Date();
|
|
38
|
+
this.group = {};
|
|
39
|
+
this.assessmentHeaderImage = 'https://dev.platformcommons.org/forms/assets/images/domain/assessment-placeholder-2.png';
|
|
40
|
+
this.sectionQuestions = {};
|
|
41
|
+
this.requestPayload = {};
|
|
42
|
+
this.config = {
|
|
43
|
+
editable: true,
|
|
44
|
+
spellcheck: true,
|
|
45
|
+
height: '15rem',
|
|
46
|
+
minHeight: '5rem',
|
|
47
|
+
placeholder: 'Enter text here...',
|
|
48
|
+
translate: 'no',
|
|
49
|
+
defaultParagraphSeparator: 'p',
|
|
50
|
+
defaultFontName: 'Arial',
|
|
51
|
+
toolbarHiddenButtons: [
|
|
52
|
+
['bold']
|
|
53
|
+
],
|
|
54
|
+
customClasses: [
|
|
55
|
+
{
|
|
56
|
+
name: "quote",
|
|
57
|
+
class: "quote",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'redText',
|
|
61
|
+
class: 'redText'
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "titleText",
|
|
65
|
+
class: "titleText",
|
|
66
|
+
tag: "h1",
|
|
67
|
+
},
|
|
68
|
+
]
|
|
69
|
+
};
|
|
70
|
+
this.formGroup = this.fb.group({});
|
|
71
|
+
}
|
|
72
|
+
ngOnChanges(changes) {
|
|
73
|
+
if (changes['assessmentId'] && !changes['assessmentId'].isFirstChange()) {
|
|
74
|
+
this.assessmentId = changes['assessmentId'].currentValue;
|
|
75
|
+
this.ngOnInit();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
ngOnInit() {
|
|
79
|
+
// this.assessmentIdService.currentAssessmentId.subscribe(id => {
|
|
80
|
+
// this.assessmentId = id
|
|
81
|
+
// console.log(this.assessmentId)
|
|
82
|
+
// })
|
|
83
|
+
console.log(this.assessmentId);
|
|
84
|
+
if (this.assessmentId) {
|
|
85
|
+
this.getAssessmentDetails();
|
|
86
|
+
}
|
|
87
|
+
console.log(this.sectionQuestions);
|
|
88
|
+
// this.fb.group({
|
|
89
|
+
/* shortAns: ["", Validators.required],
|
|
90
|
+
longAns1: ["", Validators.required],
|
|
91
|
+
selDate: ["", Validators.required],
|
|
92
|
+
numberAns: ["", Validators.required],
|
|
93
|
+
multiSelectAns: ["", Validators.required],
|
|
94
|
+
multiSubAns: ["", Validators.required],
|
|
95
|
+
objSubAns: ["", Validators.required] */
|
|
96
|
+
// });
|
|
97
|
+
}
|
|
98
|
+
get f() {
|
|
99
|
+
return this.formGroup.controls;
|
|
100
|
+
}
|
|
101
|
+
submitTask() {
|
|
102
|
+
this.formGroup.markAllAsTouched();
|
|
103
|
+
if (this.formGroup.valid) {
|
|
104
|
+
console.log(this.formGroup.value);
|
|
105
|
+
this.requestPayload = {
|
|
106
|
+
"aiadefaultResponseList": [],
|
|
107
|
+
"assessmentInstance": {
|
|
108
|
+
/* assessment: this.assessmentQuestionPapersList.assessment,
|
|
109
|
+
asmtInstDesc: this.assessmentQuestionPapersList.aqpDesc,
|
|
110
|
+
asmtInstName: this.assessmentQuestionPapersList.aqpName, */
|
|
111
|
+
/* scheduleStatus: {
|
|
112
|
+
"code": "ASSESSMENT.PUBLISH",
|
|
113
|
+
"description": "",
|
|
114
|
+
"labels": [
|
|
115
|
+
{
|
|
116
|
+
"text": "Draft",
|
|
117
|
+
"language": {
|
|
118
|
+
"code": "ENG"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"refClass": {
|
|
123
|
+
"code": "SCHEDULE_STATUS"
|
|
124
|
+
}
|
|
125
|
+
}, */ //assesmentSchema.scheduleStatus,
|
|
126
|
+
/* confirmationDate: new Date(),// assesmentSchema.confirmationDate,
|
|
127
|
+
endDate: new Date(),//assesmentSchema.endDate,
|
|
128
|
+
startDate: this.startDate, */
|
|
129
|
+
id: 145,
|
|
130
|
+
/* tenant: this.assessmentQuestionPapersList.tenant,
|
|
131
|
+
imageURL: "",//this.assessmentQuestionPapersList.imageURL,
|
|
132
|
+
isPublic: true,//this.assessmentQuestionPapersList.isPublic,
|
|
133
|
+
specificVisibility: false,//assesmentSchema.specificVisibility,
|
|
134
|
+
editable: false,//assesmentSchema.editable,
|
|
135
|
+
author: "Aashish Zenform",//assesmentSchema.author,
|
|
136
|
+
tenantId: this.assessmentQuestionPapersList.tenantId,
|
|
137
|
+
isActive: true,//assesmentSchema.isActive,
|
|
138
|
+
createdAt: this.assessmentQuestionPapersList.createdAt,
|
|
139
|
+
createdBy: this.assessmentQuestionPapersList.createdBy,
|
|
140
|
+
uuid: this.assessmentQuestionPapersList.uuid */
|
|
141
|
+
},
|
|
142
|
+
assessor: {
|
|
143
|
+
actorId: "0",
|
|
144
|
+
actorType: "ACTOR_TYPE.BRIDGE_USER",
|
|
145
|
+
id: 0,
|
|
146
|
+
isActive: true,
|
|
147
|
+
tenant: "0"
|
|
148
|
+
},
|
|
149
|
+
"id": 0,
|
|
150
|
+
"isActive": true,
|
|
151
|
+
"tenant": "0",
|
|
152
|
+
"assessedForEntityId": "303906",
|
|
153
|
+
"assessedForEntityType": "ACTOR_TYPE.BRIDGE_USER",
|
|
154
|
+
"assessee": {
|
|
155
|
+
actorId: "303906",
|
|
156
|
+
actorType: "ACTOR_TYPE.BRIDGE_USER",
|
|
157
|
+
id: 0,
|
|
158
|
+
isActive: true,
|
|
159
|
+
tenant: "0"
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
this.assessmentQuestionPapersList?.questionPaperSectionList.forEach((section, index) => {
|
|
163
|
+
section.sectionQuestionsList.sort((a, b) => a.orderNo - b.orderNo).forEach((ques, qindex) => {
|
|
164
|
+
var questionResponseObj = {};
|
|
165
|
+
const questionDetails = this.sectionQuestions[0].find(i => i.id === ques.questionId);
|
|
166
|
+
if (questionDetails?.questionType.code === "QUESTION_TYPE.OBJECTIVE" || questionDetails?.questionType.code === "QUESTION_TYPE.SCALE_RATING") {
|
|
167
|
+
const defaultOptions = questionDetails.defaultOptionsList;
|
|
168
|
+
questionResponseObj = { optionId: defaultOptions?.find(i => i.options.id === this.formGroup.value[ques.questionId].id)?.options };
|
|
169
|
+
}
|
|
170
|
+
else if (questionDetails?.questionType.code === "QUESTION_TYPE.MULTISELECT") {
|
|
171
|
+
const defaultOptions = questionDetails.defaultOptionsList;
|
|
172
|
+
const drobjectiveresponseList = [];
|
|
173
|
+
this.formGroup.value[ques.questionId]?.forEach((opt) => {
|
|
174
|
+
const selectedOptions = defaultOptions.find(i => i.options.id === opt.id);
|
|
175
|
+
drobjectiveresponseList.push({
|
|
176
|
+
id: 0,
|
|
177
|
+
defaultOption: selectedOptions
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
questionResponseObj = {
|
|
181
|
+
drobjectiveresponseList
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
else if (questionDetails?.questionType.code === "QUESTION_TYPE.MULTISELECT_SUBJECTIVE") {
|
|
185
|
+
const defaultOptions = questionDetails.defaultOptionsList;
|
|
186
|
+
const drobjectiveresponseList = [];
|
|
187
|
+
this.formGroup.value[`${ques.questionId}_objective`]?.forEach((opt) => {
|
|
188
|
+
const selectedOptions = defaultOptions.find(i => i.options.id === opt.id);
|
|
189
|
+
drobjectiveresponseList.push({
|
|
190
|
+
id: 0,
|
|
191
|
+
defaultOption: selectedOptions
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
questionResponseObj = {
|
|
195
|
+
drobjectiveresponseList,
|
|
196
|
+
drsubjectiveresponseList: [
|
|
197
|
+
{
|
|
198
|
+
id: 0,
|
|
199
|
+
responseText: this.formGroup.value[`${ques.questionId}_subjective`]
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
else if (questionDetails?.questionType.code === "QUESTION_TYPE.OBJECTIVE_SUBJECTIVE") {
|
|
205
|
+
const defaultOptions = questionDetails.defaultOptionsList;
|
|
206
|
+
questionResponseObj = {
|
|
207
|
+
optionId: defaultOptions?.find(i => i.options.id === this.formGroup.value[`${ques.questionId}_objective`].id)?.options,
|
|
208
|
+
drsubjectiveresponseList: [
|
|
209
|
+
{
|
|
210
|
+
id: 0,
|
|
211
|
+
responseText: this.formGroup.value[`${ques.questionId}_subjective`]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
else if (questionDetails?.questionType.code === "QUESTION_TYPE.FILE_UPLOAD") {
|
|
217
|
+
let formData = new FormData();
|
|
218
|
+
/* let maxDepth=123;
|
|
219
|
+
const fileData = this.formGroup.value[ques.questionId];
|
|
220
|
+
let file: File = fileData.fileSourc;
|
|
221
|
+
formData.append('file', file);
|
|
222
|
+
|
|
223
|
+
this.assessmentService.uploadAssessment(formData).subscribe(response => {
|
|
224
|
+
console.log(response);
|
|
225
|
+
// if (response != '') {}
|
|
226
|
+
}); */
|
|
227
|
+
questionResponseObj = {
|
|
228
|
+
drsubjectiveresponseList: [
|
|
229
|
+
{
|
|
230
|
+
id: 0,
|
|
231
|
+
responseText: ''
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
questionResponseObj = {
|
|
238
|
+
drsubjectiveresponseList: [
|
|
239
|
+
{
|
|
240
|
+
id: 0,
|
|
241
|
+
responseText: this.formGroup.value[ques.questionId]
|
|
242
|
+
// responseText: "test"
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
// if (questionDetails?.questionSubtype.code === "QUESTION_SUB_TYPE.SUBJECTIVE") {
|
|
248
|
+
this.requestPayload.aiadefaultResponseList.push({
|
|
249
|
+
...questionResponseObj,
|
|
250
|
+
"id": 0,
|
|
251
|
+
"isActive": true,
|
|
252
|
+
"sectionQuestion": {
|
|
253
|
+
id: ques.id,
|
|
254
|
+
isActive: ques.isActive,
|
|
255
|
+
orderNo: ques.orderNo,
|
|
256
|
+
questionId: ques.questionId,
|
|
257
|
+
questionNumber: ques.questionNumber,
|
|
258
|
+
tenant: ques.tenant,
|
|
259
|
+
secQuestDesc: ques.secQuestDesc
|
|
260
|
+
},
|
|
261
|
+
"tenant": "0"
|
|
262
|
+
});
|
|
263
|
+
// }
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
this.assessmentService.submitAssessmentQuestionPapers(this.requestPayload).subscribe(response => {
|
|
267
|
+
console.log(response);
|
|
268
|
+
if (response != '') {
|
|
269
|
+
const dialogRef = this.dialog.open(QuestSuccessComponent, {
|
|
270
|
+
data: {
|
|
271
|
+
assesmentInstId: 'data'
|
|
272
|
+
},
|
|
273
|
+
disableClose: true
|
|
274
|
+
});
|
|
275
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
276
|
+
if (result?.event == 'close') {
|
|
277
|
+
window.location.reload();
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
console.log(this.requestPayload);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
console.log("invalid form values");
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
getAssessmentDetails() {
|
|
289
|
+
this.assessmentService.getAssessmentQuestionPapers(this.assessmentId).subscribe({
|
|
290
|
+
next: (data) => {
|
|
291
|
+
this.assessmentQuestionPapersList = data?.[0];
|
|
292
|
+
this.assessmentQuestionPapersList?.questionPaperSectionList.forEach((qps, index) => {
|
|
293
|
+
let questionIds = qps?.sectionQuestionsList.map((sectionQuestion) => sectionQuestion?.questionId);
|
|
294
|
+
this.questionIds[index] = questionIds;
|
|
295
|
+
this.getQuestions(this.assessmentId, questionIds, index);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
console.log(this.sectionQuestions);
|
|
300
|
+
}
|
|
301
|
+
getSectionQuestionIds(section) {
|
|
302
|
+
return section?.sectionQuestionsList?.map((question) => question.questionId) || [];
|
|
303
|
+
}
|
|
304
|
+
showTooltip(data) {
|
|
305
|
+
if (data === null || data.match(/^ *$/) !== null) {
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
getTooltipText(data) {
|
|
313
|
+
return data.replace(/<[^>]*>/g, '');
|
|
314
|
+
}
|
|
315
|
+
isQuestionPresentInBank(id) {
|
|
316
|
+
return this.childQuestionBook.findIndex((prev) => prev.questionId == id);
|
|
317
|
+
}
|
|
318
|
+
getchildQuesfrmBook(id) {
|
|
319
|
+
return this.childQuestionBook.find((child) => child.questionId == id);
|
|
320
|
+
}
|
|
321
|
+
getQuestions(assessmentId, questionIdList, index) {
|
|
322
|
+
this.assessmentService.getAssessmentQuestions(assessmentId, questionIdList).subscribe({
|
|
323
|
+
next: (questionsList) => {
|
|
324
|
+
let childQuesList = []; //objective type questions
|
|
325
|
+
this.finalQuestionList = questionsList;
|
|
326
|
+
this.sectionQuestions[index] = this.finalQuestionList;
|
|
327
|
+
console.log('Updated sectionQuestions:', this.sectionQuestions);
|
|
328
|
+
if (this.sectionQuestions && this.sectionQuestions[index]) {
|
|
329
|
+
for (var ques of this.sectionQuestions[index]) {
|
|
330
|
+
if (ques?.questionType.code === "QUESTION_TYPE.OBJECTIVE_SUBJECTIVE" || ques?.questionType.code === "QUESTION_TYPE.MULTISELECT_SUBJECTIVE") {
|
|
331
|
+
this.group[`${ques.id}_objective`] = new FormControl(null, [Validators.required]);
|
|
332
|
+
this.group[`${ques.id}_subjective`] = new FormControl(null, [Validators.required]);
|
|
333
|
+
}
|
|
334
|
+
else if (ques?.questionType.code === "QUESTION_TYPE.OBJECTIVE" ||
|
|
335
|
+
ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_SHORT" ||
|
|
336
|
+
ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_LONG" ||
|
|
337
|
+
ques?.questionType.code === "QUESTION_TYPE.DATE" ||
|
|
338
|
+
ques?.questionType.code === "QUESTION_TYPE.NUMBER" ||
|
|
339
|
+
ques?.questionType.code === "QUESTION_TYPE.FILE_UPLOAD" ||
|
|
340
|
+
ques?.questionType.code === "QUESTION_TYPE.MULTISELECT" ||
|
|
341
|
+
ques?.questionType.code === "QUESTION_TYPE.SCALE_RATING" ||
|
|
342
|
+
ques?.questionType.code === "QUESTION_TYPE.SUBJECTIVE_RICH_TEXT" ||
|
|
343
|
+
ques?.questionType.code === "QUESTION_TYPE.SEARCHABLE_INPUT_MDM") {
|
|
344
|
+
this.group[ques.id] = new FormControl(null, [Validators.required]);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// this.group[this.editorName] = new FormControl(null, [Validators.required])
|
|
350
|
+
// this.group[this.formGroupName] = new FormGroup(this.group1)
|
|
351
|
+
}
|
|
352
|
+
this.formGroup = new FormGroup(this.group);
|
|
353
|
+
this.startDate = new Date();
|
|
354
|
+
//objective type questions
|
|
355
|
+
questionsList.forEach((item) => {
|
|
356
|
+
if (item.questionType.code === "QUESTION_TYPE.OBJECTIVE") {
|
|
357
|
+
item.defaultOptionsList.forEach((option) => {
|
|
358
|
+
option.childQuestionList?.forEach((id) => {
|
|
359
|
+
if (this.isQuestionPresentInBank(id) == -1 && !childQuesList.includes(id)) {
|
|
360
|
+
childQuesList.push(id);
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
if (childQuesList.length) {
|
|
367
|
+
this.fetchChildQues(childQuesList);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
configureChild(event) {
|
|
373
|
+
let childList = event.list;
|
|
374
|
+
let root_question = event.question;
|
|
375
|
+
let child;
|
|
376
|
+
if (childList.length > 0) {
|
|
377
|
+
childList.forEach((id) => {
|
|
378
|
+
child = this.getchildQuesfrmBook(id);
|
|
379
|
+
//add control here
|
|
380
|
+
this.group[child.question.id] = new FormControl(null, [Validators.required]);
|
|
381
|
+
this.formGroup = new FormGroup(this.group);
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
this.finalQuestionList.forEach((question) => {
|
|
385
|
+
if (question.id === root_question.id) {
|
|
386
|
+
if (!this.finalQuestionList.includes(child.question)) {
|
|
387
|
+
this.finalQuestionList.splice(this.finalQuestionList.indexOf(question) + 1, 0, child.question);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
this.cdr.detectChanges();
|
|
392
|
+
console.log('finalquestionlist' + JSON.stringify(this.finalQuestionList));
|
|
393
|
+
}
|
|
394
|
+
fetchChildQues(childQuesList) {
|
|
395
|
+
this.assessmentService.getChildQuestionsWithIdList(this.assessmentId, childQuesList).subscribe((response) => {
|
|
396
|
+
let questionList = response;
|
|
397
|
+
childQuesList = [];
|
|
398
|
+
questionList.forEach((item) => {
|
|
399
|
+
item['userResponse'] = '';
|
|
400
|
+
item['multiSelectResponse'] = '';
|
|
401
|
+
this.childQuestionBook.push({
|
|
402
|
+
question: item,
|
|
403
|
+
questionId: item.id,
|
|
404
|
+
isMandatory: true
|
|
405
|
+
});
|
|
406
|
+
if (item.questionType.code === "QUESTION_TYPE.OBJECTIVE") {
|
|
407
|
+
item.defaultOptionsList.forEach((option) => {
|
|
408
|
+
option.childQuestionList?.forEach((id) => {
|
|
409
|
+
if (this.isQuestionPresentInBank(id) == -1 && !childQuesList.includes(id)) {
|
|
410
|
+
childQuesList.push(id);
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
if (childQuesList.length) {
|
|
417
|
+
this.fetchChildQues(childQuesList);
|
|
418
|
+
}
|
|
419
|
+
}, (error) => {
|
|
420
|
+
console.error('Error fetching child questions:', error);
|
|
421
|
+
throw error;
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
scrollToSection(index) {
|
|
425
|
+
const section = document.getElementById(`section-${index}`);
|
|
426
|
+
section?.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
QuestWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestWizardComponent, deps: [{ token: i1.AssessmentTakerService }, { token: i2.AssessmentIdService }, { token: i3.FormBuilder }, { token: i4.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
430
|
+
QuestWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: QuestWizardComponent, selector: "lib-quest-wizard", inputs: { assessmentId: "assessmentId" }, usesOnChanges: true, ngImport: i0, template: "<link id=\"variableThemeLink\" rel=\"stylesheet\" href=\"../../../assets/theme/variables.css\">\r\n<div class=\"questions-container\">\r\n <img src=\"assets/images/assessment-placeholder-2.png\" class=\"cover-image\" />\r\n <div *ngIf=\"assessmentQuestionPapersList\" class=\"questions-body-container\">\r\n <form class=\"form\" [formGroup]=\"formGroup\" (ngSubmit)=\"submitTask()\" novalidate>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" ><mat-chip class=\"chips-padding\" (click)=\"scrollToSection(i)\" >{{section?.qpsName[0]?.text}}</mat-chip></ng-container>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" >\r\n <div [id]=\"'section-' + i\" class=\"section-header\">\r\n <p class=\"section-header-text\">{{section?.qpsName[0]?.text}}</p>\r\n </div>\r\n <div *ngFor=\"let question of sectionQuestions[i]; let j=index\" class=\"answer-cube\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{j+1}}. {{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n <span class=\"tooltipspan\" *ngIf=\"showTooltip(question.questionSubText[0]?.text)\">\r\n <img src=\"assets/images/new_tooltip.jpg\" matTooltipClass=\"danger-tooltip\" matTooltipPosition=\"above\" class=\"tooltip-image\"\r\n matTooltip=\"{{question.questionSubText[0]?.text}}\" />\r\n </span>\r\n </p>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <lib-question-type-objective [optionsList]=\"question\" (viewChild)=\"configureChild($event)\"\r\n [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <lib-question-type-short [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_LONG'\">\r\n <lib-question-type-long [formControlName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-long>\r\n <!-- <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor> -->\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <lib-question-type-date [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-date>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.NUMBER'\">\r\n <lib-question-type-number [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-number>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.FILE_UPLOAD'\">\r\n <lib-question-type-upload-file [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-upload-file>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT'\">\r\n <lib-question-type-multiselect [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect>\r\n </div>\r\n <div class=\"answer-input\" \r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE_SUBJECTIVE'\">\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formGroupName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <lib-question-type-objective [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-objective>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\"\r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT_SUBJECTIVE'\">\r\n <!-- <lib-question-type-multiselect-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect-sub> -->\r\n <lib-question-type-multiselect [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-multiselect>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.SCALE_RATING'\">\r\n <lib-question-type-rating [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-rating>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_RICH_TEXT'\">\r\n <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SEARCHABLE_INPUT_MDM'\">\r\n <lib-question-type-searchable-tag [optionsList]=\"question\" [formControlName]=\"question.id\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-searchable-tag>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <section>\r\n <div class=\"example-button-row\">\r\n <button mat-flat-button type=\"submit\" [disabled]=\"!formGroup.valid\">Submit</button>\r\n </div>\r\n </section>\r\n </form>\r\n </div>\r\n</div>", styles: [".questions-container{width:66.66%;margin:auto;box-shadow:0 3px 6px #00000029}.chips-padding{margin:.125rem .313rem}.cover-image{width:100%;object-fit:cover}.section-header{padding-bottom:1rem;padding-top:2rem}.section-header-text{font-size:700;font-weight:24px}.questions-body-container{padding:2rem}.answer-cube{padding-bottom:2.5rem}.section-header{font-size:32px;font-weight:600}\n", ":root{--assessment-text-color: #1e1e1e;--assessment-text-secondary-color: #2e2e2e;--assessment-white: #ffffff;--assessment-black: #000000;--assessment-grey-nintyone: #00000045;--assessment-grey-ninty: #dadce04d;--assessment-grey-eighteen: #F5F5F5;--assessment-grey-seventeen: #495057;--assessment-grey-sixteen: #707070;--assessment-grey-fifteen: #0000000D;--assessment-grey-fourteen: #FDFDFD;--assessment-grey-thirteen: #505050;--assessment-grey-twelve: #d4d4d4;--assessment-grey-eleven: #eef2f7;--assessment-grey-ten: #202124;--assessment-grey-nine: #3c4043;--assessment-grey-eight: #5f6368;--assessment-grey-seven: #80868b;--assessment-grey-six: #9aa0a6;--assessment-grey-five: #bdc9d3;--assessment-grey-four: #dadce0;--assessment-grey-three: #e8eaed;--assessment-grey-two: #f1f3f4;--assessment-grey-one: #f8f9fa;--assessment-palette-one: #725cc6;--assessment-palette-two: #5941b54d;--assessment-palette-three: #52B6E0;--assessment-palette-four: #FE795B;--assessment-palette-five: #4D89EB33;--assessment-palette-six: #19CEA1;--assessment-palette-seven: #56C2BB;--assessment-palette-eight: #D7A5D1;--assessment-palette-nine: #725cc61a;--assessment-palette-nine: #106AD21A;--assessment-palette-ten: #894FD1;--assessment-palette-eleven: #EFBD3C;--assessment-palette-twelve: #3D77EE1A;--assessment-palette-thirteen: #F1F1F1;--assessment-palette-fourteen: #725CC61A;--assessment-palette-fifteen: #3D77EE;--assessment-palette-sixteen: #725CC667;--assessment-palette-seventeen: #0000000F;--assessment-palette-eighteen: #F8F8F8;--assessment-palette-ninteen: #e2e2e2;--assessment-palette-twenty: #0000001a;--assessment-palette-twentyone: #00000029;--assessment-palette-twentythree: #9266d533;--assessment-palette-twentyfour: #cbcbcb;--assessment-palette-twentyfive: #ced4da;--assessment-palette-twentysix: #687C97;--assessment-palette-twentyseven: #FDFDFD;--assessment-palette-twentyeight: #00000002;--assessment-palette-twentynine: #7070701A;--assessment-palette-thirty: #EEAE1D;--assessment-palette-thirtyone: #bababa;--assessment-palette-thirtytwo: #0e103f;--assessment-palette-thirtythree: #0e103f;--assessment-palette-thirtyfour: #ffae2c;--assessment-palette-thirtyfive: #565264;--assessment-palette-thirtysix: #B5E0FF;--assessment-palette-thirtyseven: #F9FBFD;--assessment-palette-thirtytwo: #70707033;--assessment-palette-thirtythree: #EDF2F6;--assessment-palette-thirtyeight:#FFC400;--assessment-palette-thirtynine:#FF9102;--assessment-palette-fourty:#F6F9FE;--assessment-palette-fourtyone:#ededed;--assessment-palette-fourtytwo:#E7646F;--assessment-palette-fourtythree:#F06E1D;--assessment-palette-fourtyfour:#8A9AED;--assessment-palette-fourtyfive:#F5C571;--assessment-palette-fourtysix:#DD6012;--assessment-palette-fourtyseven:#f5c5711a;--assessment-palette-fourtyeight:#44B179;--assessment-palette-thirtyeight: #FFC400;--assessment-palette-thirtynine: #FF9102;--assessment-palette-forty: #73B6EA;--assessment-palette-fortyone: #73B6EA1a;--assessment-palette-fortytwo:#ED6F66;--assessment-palette-fortythree:#ED6F661a;--assessment-palette-fortyfour:#35B8E0;--assessment-palette-fortyfive:#FF5B5B;--assessment-palette-fortysix:#FF3B30;--assessment-palette-fortyseven:#b0c256;--assessment-palette-fortyeight:#567ec2;--assessment-palette-fortynine:#8C8CFF;--assessment-palette-fifty:#F3F3FF;--assessment-palette-fiftyone:#A1BEFF;--assessment-palette-fiftytwo:#4D89EB10;--assessment-palette-fiftythree:#dcdcdc45;--assessment-palette-fiftyfour:#FCBE35;--assessment-palette-fiftyfive:#78C89F;--assessment-palette-fiftysix:#F5A570;--assessment-palette-fiftyseven:#F47D32;--assessment-palette-fiftyeight:#FDFBFBC4;--assessment-palette-fiftynine:#EBEDEE80;--assessment-palette-sixty:#343a40;--assessment-palette-sixtyone:#e5e7e9;--assessment-palette-sixtytwo:#858383;--assessment-palette-sixtythree:#757575;--assessment-palette-sixtyfour:#C6C6C6;--assessment-palette-sixtyfive:#7476ED;--assessment-palette-sixtysix:#2A50A4;--assessment-palette-sixtyseven:#5C87E4;--assessment-palette-sixtyeight:#FFFFFF1A;--assessment-palette-sixtynine:#FFFFFFA6;--assessment-palette-seventy:#00000080;--assessment-palette-seventyone:#0A0A0A;--assessment-palette-seventytwo:#333333;--assessment-palette-seventythree:#125DFF;--assessment-palette-seventyfour:#999999;--assessment-palette-seventyfive:#147AD6;--assessment-palette-seventysix:#979797;--assessment-palette-seventyseven:#8d8d8d;--assessment-palette-seventyeight: #323A46;--assessment-palette-seventynine: #dad7d7;--assessment-palette-eighty: #E56F8C;--assessment-palette-eightyone: #E85E4A;--assessment-palette-eightytwo: #87D1AD;--assessment-palette-eightythree: #F8C73B;--assessment-palette-eightyfour: #bdc1c6;--assessment-palette-eightyfive: #00000033;--assessment-palette-eightysix: #ffffffb3;--assessment-palette-eightyseven: #7d95c9;--assessment-palette-eightyeight: #7476ed1f;--assessment-palette-eightynine: #fafbff;--assessment-palette-ninety: #64c2db;--assessment-palette-ninetyone: #7476ed33;--assessment-palette-ninetytwo: #cccccc;--assessment-palette-ninetythree: #7476ed66;--assessment-palette-ninetyfour: #52b6e01a;--assessment-palette-ninetyfive: #0056b3;--assessment-palette-ninetysix: #F1F1FD;--assessment-palette-ninetyseven: #cbc6c6;--assessment-palette-ninetyeight: #007A86;--assessment-palette-ninetynine: #7476ED0F;--assessment-palette-hundred: #7476ED80;--assessment-palette-onehundredone: #e0e0e0;--assessment-palette-onehundredtwo: #7fffd4;--assessment-palette-onehundredthree: #d3d3d3;--assessment-palette-onehundredfour: #1E2222;--assessment-palette-onehundredfive: #ffffff4d;--assessment-palette-onehundredsix: #7476ed1a;--assessment-palette-onehundredseven: #b0c4de;--assessment-palette-onehundredeight: #f7f7f7;--assessment-palette-onehundrednine: #D3E2FC;--assessment-palette-onehundredten: #FF3E58;--assessment-palette-onehundredeleven: #000000de;--assessment-palette-onehundredtwelve: #5D5D5D;--assessment-palette-onehundredthirteen: #04aa6d;--assessment-palette-onehundredfourteen: #D6DBDB;--assessment-palette-onehundredfifteen: #FEF5FF;--assessment-palette-onehundredsixteen: #11143D;--assessment-palette-onehundredseventeen: #b5b5b5;--assessment-palette-onehundredeighteen: #62B79A;--assessment-palette-onehundrednighteen:#E73A2C;--assessment-palette-onehundredtwenty:#FFCE7A;--assessment-palette-onehundredtwentyone:#0000001f;--assessment-palette-onehundredtwentytwo:#55AA7E;--assessment-palette-onehundredtwentythree:#7375ed4d;--assessment-red:#ff0000;--assessment-green: #008000;--assessment-blue:#0000ff;--assessment-dark-red: #E83628;--assessment-golden:#E9CC5A;--assessment-success: #34a853;--assessment-success-bg: #34a8531a;--assessment-success-secondary: #8bc34a;--assessment-success-secondary-bg: #8bc34a1a;--assessment-danger-two: #fff1f1;--assessment-danger: #ff5252;--assessment-danger-bg: #ff52521a;--assessment-warning: #ffa600;--assessment-warning-bg: #ffa6001a;--assessment-warm: #6b71e5;--assessment-link-text: #301f56;--assessment-warm-bg: #6b71e51a;--assessment-primary-light: #0091ff;--assessment-primary-light-bg: #0091ff1a;--assessment-secondary-bg: #f8f9fa;--assessment-placeholder-color: #e18a22;--assessment-primary-one: #4d89eb;--assessment-primary-two: #323a46;--assessment-primary-three: #00000014;--assessment-primary-four: #295EB7;--assessment-primary-five: #F2F7FF;--assessment-linear-gradient-one: transparent linear-gradient(180deg, #e2dafd 0%, #d6cbfc 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-two: transparent linear-gradient(180deg, #F19B96 0%, #ED6F66 100%) no-repeat padding-box;--assessment-linear-gradient-three: transparent linear-gradient(180deg, #81D2F2 0%, #52B6E0 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-four: transparent linear-gradient(180deg, #4D89EB 0%, #295EB7 100%) 0% 0% no-repeat padding-box;--assessment-box-shadow-one: 0px 3px 6px #00000008;--assessment-box-shadow-two: 0px 3px 6px #0000000f;--assessment-box-shadow-three: 0px 6px 12px #00000008;--assessment-box-shadow-four: 0px 6px 12px #0000000f;--assessment-box-shadow-five: 0px 0px 12px #0000000f;--assessment-box-shadow-six: 0px 2px 4px #0000001a;--assessment-box-shadow-seven: 0px 1px 5px #00000029;--assessment-box-shadow-eight: 0px 6px 6px #00000008;--assessment-box-shadow-nine: 0px 6px 12px #00000010;--assessment-box-shadow-ten: 0px 12px 22px #725cc614;--assessment-box-shadow-inset-one: inset 0px 0px 18px #0000001a;--assessment-border-radius-one: 4px;--assessment-border-radius-two: 8px;--assessment-border-radius-three: 10px;--assessment-border-radius-four: 12px;--assessment-border-radius-five: 16px;--assessment-border-radius-six: 20px;--assessment-border-radius-seven: 32px;--assessment-border-radius-rounded: 50%;--assessment-header-height: 5vh;--filter-purple:invert(42%) sepia(74%) saturate(692%) hue-rotate(205deg) brightness(100%) contrast(86%);--app-theme-based-color: #202124;--app-theme-based-one: #3c4043;--app-theme-based-two:#7476ED }.mat-dialog-actions{display:grid!important}.mat-dialog-title,.mat-dialog-content{text-align:center}.mat-dialog-actions button{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}::ng-deep .mat-mdc-tooltip{transform:scale(1.5)!important;position:relative!important}.danger-tooltip{background-color:var(--assessment-blue)!important;font-size:13px!important;font-weight:500;--mdc-plain-tooltip-container-color: var(--assessment-blue);--mdc-plain-tooltip-supporting-text-color: var(--assessment-danger-two) !important;--mdc-plain-tooltip-supporting-text-size: 13px;--mdc-plain-tooltip-supporting-text-weight: 500 !important;--mdc-plain-tooltip-supporting-text-tracing: .033333333em}.mat-tooltip{overflow:visible!important}.danger-tooltip:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-4px;border-width:5px;border-style:solid;border-color:var(--assessment-blue) transparent transparent transparent}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:var(--assessment-blue)!important}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:var(--assessment-blue)!important}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background:var(--assessment-blue)!important}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:var(--assessment-blue)!important}.example-button-row .mat-flat-button{color:var(--assessment-danger-two, var(--assessment-danger-two));background-color:var(--assessment-blue)}.example-button-row{display:table-cell;max-width:600px}.example-button-row .mat-mdc-button-base{margin:8px 8px 8px 0}.tooltip-image{display:inline-block;vertical-align:middle;width:15px;height:15px}.radimatc{margin-top:20px}.example-radio-button,.example-margin{display:block!important;margin:10px}.example-full-width{width:78%}.mat-button-toggle-checked{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}.custmattog{box-shadow:none!important}.mat-button-toggle{padding:5px;white-space:nowrap;position:relative;background-color:var(--assessment-grey-four);border-radius:20px;margin:5px;color:var(--assessment-black)}.textarea-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem;border-bottom:2px solid rgb(118,118,118)}.textarea-tag:focus{border-color:var(--assessment-blue)}.input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:var(--assessment-blue)}.divider{display:flex;justify-content:center;align-items:center;width:100%;margin-top:2rem;margin-bottom:2rem}.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:1rem}.datesty{width:78%}.datesty input{width:92%}\n"], components: [{ type: i5.QuestionTypeObjectiveComponent, selector: "lib-question-type-objective", inputs: ["required", "optionsList"], outputs: ["viewChild"] }, { type: i6.QuestionTypeShortComponent, selector: "lib-question-type-short", inputs: ["optionsList", "required"] }, { type: i7.QuestionTypeLongComponent, selector: "lib-question-type-long", inputs: ["required", "optionsList", "fieldAttributes", "config"] }, { type: i8.QuestionTypeDateComponent, selector: "lib-question-type-date", inputs: ["required"] }, { type: i9.QuestionTypeNumberComponent, selector: "lib-question-type-number", inputs: ["required", "optionsList"] }, { type: i10.QuestionTypeUploadFileComponent, selector: "lib-question-type-upload-file", inputs: ["required"] }, { type: i11.QuestionTypeMultiselectComponent, selector: "lib-question-type-multiselect", inputs: ["required", "optionsList"] }, { type: i12.QuestionTypeRatingComponent, selector: "lib-question-type-rating", inputs: ["required", "optionsList"] }, { type: i13.QuestionTypeEditorComponent, selector: "lib-question-type-editor", inputs: ["required", "optionsList", "fieldAttributes", "config"] }, { type: i14.QuestionTypeSearchableTagComponent, selector: "lib-question-type-searchable-tag", inputs: ["required", "optionsList", "fieldAttributes"] }, { type: i15.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i16.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i16.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i17.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i18.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
|
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: QuestWizardComponent, decorators: [{
|
|
432
|
+
type: Component,
|
|
433
|
+
args: [{ selector: 'lib-quest-wizard', template: "<link id=\"variableThemeLink\" rel=\"stylesheet\" href=\"../../../assets/theme/variables.css\">\r\n<div class=\"questions-container\">\r\n <img src=\"assets/images/assessment-placeholder-2.png\" class=\"cover-image\" />\r\n <div *ngIf=\"assessmentQuestionPapersList\" class=\"questions-body-container\">\r\n <form class=\"form\" [formGroup]=\"formGroup\" (ngSubmit)=\"submitTask()\" novalidate>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" ><mat-chip class=\"chips-padding\" (click)=\"scrollToSection(i)\" >{{section?.qpsName[0]?.text}}</mat-chip></ng-container>\r\n <ng-container *ngFor=\"let section of assessmentQuestionPapersList?.questionPaperSectionList; let i=index\" >\r\n <div [id]=\"'section-' + i\" class=\"section-header\">\r\n <p class=\"section-header-text\">{{section?.qpsName[0]?.text}}</p>\r\n </div>\r\n <div *ngFor=\"let question of sectionQuestions[i]; let j=index\" class=\"answer-cube\">\r\n <p class=\"assessment-text-grey-nine assessment-text-semibold-18\">\r\n {{j+1}}. {{question.questionText[0]?.text}}\r\n <span class=\"mandatory\" *ngIf=\"question['isMandatory']\">*</span>\r\n <span class=\"tooltipspan\" *ngIf=\"showTooltip(question.questionSubText[0]?.text)\">\r\n <img src=\"assets/images/new_tooltip.jpg\" matTooltipClass=\"danger-tooltip\" matTooltipPosition=\"above\" class=\"tooltip-image\"\r\n matTooltip=\"{{question.questionSubText[0]?.text}}\" />\r\n </span>\r\n </p>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE'\">\r\n <lib-question-type-objective [optionsList]=\"question\" (viewChild)=\"configureChild($event)\"\r\n [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_SHORT'\">\r\n <lib-question-type-short [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_LONG'\">\r\n <lib-question-type-long [formControlName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-long>\r\n <!-- <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor> -->\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.DATE'\">\r\n <lib-question-type-date [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-date>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.NUMBER'\">\r\n <lib-question-type-number [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-number>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.FILE_UPLOAD'\">\r\n <lib-question-type-upload-file [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-upload-file>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT'\">\r\n <lib-question-type-multiselect [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect>\r\n </div>\r\n <div class=\"answer-input\" \r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.OBJECTIVE_SUBJECTIVE'\">\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <!-- <lib-question-type-objective-sub [optionsList]=\"question\" [formGroupName]=\"question.id\" [fieldAttributes]=\"question\" [required]=\"true\"></lib-question-type-objective-sub> -->\r\n <lib-question-type-objective [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-objective>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\"\r\n *ngIf=\"question.questionType.code === 'QUESTION_TYPE.MULTISELECT_SUBJECTIVE'\">\r\n <!-- <lib-question-type-multiselect-sub [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-multiselect-sub> -->\r\n <lib-question-type-multiselect [optionsList]=\"question\" formControlName=\"{{question.id}}_objective\" [required]=\"true\"></lib-question-type-multiselect>\r\n <lib-question-type-short [optionsList]=\"question\" formControlName=\"{{question.id}}_subjective\" [required]=\"true\"></lib-question-type-short>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question.questionType.code === 'QUESTION_TYPE.SCALE_RATING'\">\r\n <lib-question-type-rating [optionsList]=\"question\" [formControlName]=\"question.id\" [required]=\"true\"></lib-question-type-rating>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SUBJECTIVE_RICH_TEXT'\">\r\n <lib-question-type-editor [formControlName]=\"question.id\" [config]=\"config\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-editor>\r\n </div>\r\n <div class=\"answer-input\" *ngIf=\"question?.questionType?.code === 'QUESTION_TYPE.SEARCHABLE_INPUT_MDM'\">\r\n <lib-question-type-searchable-tag [optionsList]=\"question\" [formControlName]=\"question.id\" fieldAttributes=\"question\" [required]=\"true\"></lib-question-type-searchable-tag>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <section>\r\n <div class=\"example-button-row\">\r\n <button mat-flat-button type=\"submit\" [disabled]=\"!formGroup.valid\">Submit</button>\r\n </div>\r\n </section>\r\n </form>\r\n </div>\r\n</div>", styles: [".questions-container{width:66.66%;margin:auto;box-shadow:0 3px 6px #00000029}.chips-padding{margin:.125rem .313rem}.cover-image{width:100%;object-fit:cover}.section-header{padding-bottom:1rem;padding-top:2rem}.section-header-text{font-size:700;font-weight:24px}.questions-body-container{padding:2rem}.answer-cube{padding-bottom:2.5rem}.section-header{font-size:32px;font-weight:600}\n", ":root{--assessment-text-color: #1e1e1e;--assessment-text-secondary-color: #2e2e2e;--assessment-white: #ffffff;--assessment-black: #000000;--assessment-grey-nintyone: #00000045;--assessment-grey-ninty: #dadce04d;--assessment-grey-eighteen: #F5F5F5;--assessment-grey-seventeen: #495057;--assessment-grey-sixteen: #707070;--assessment-grey-fifteen: #0000000D;--assessment-grey-fourteen: #FDFDFD;--assessment-grey-thirteen: #505050;--assessment-grey-twelve: #d4d4d4;--assessment-grey-eleven: #eef2f7;--assessment-grey-ten: #202124;--assessment-grey-nine: #3c4043;--assessment-grey-eight: #5f6368;--assessment-grey-seven: #80868b;--assessment-grey-six: #9aa0a6;--assessment-grey-five: #bdc9d3;--assessment-grey-four: #dadce0;--assessment-grey-three: #e8eaed;--assessment-grey-two: #f1f3f4;--assessment-grey-one: #f8f9fa;--assessment-palette-one: #725cc6;--assessment-palette-two: #5941b54d;--assessment-palette-three: #52B6E0;--assessment-palette-four: #FE795B;--assessment-palette-five: #4D89EB33;--assessment-palette-six: #19CEA1;--assessment-palette-seven: #56C2BB;--assessment-palette-eight: #D7A5D1;--assessment-palette-nine: #725cc61a;--assessment-palette-nine: #106AD21A;--assessment-palette-ten: #894FD1;--assessment-palette-eleven: #EFBD3C;--assessment-palette-twelve: #3D77EE1A;--assessment-palette-thirteen: #F1F1F1;--assessment-palette-fourteen: #725CC61A;--assessment-palette-fifteen: #3D77EE;--assessment-palette-sixteen: #725CC667;--assessment-palette-seventeen: #0000000F;--assessment-palette-eighteen: #F8F8F8;--assessment-palette-ninteen: #e2e2e2;--assessment-palette-twenty: #0000001a;--assessment-palette-twentyone: #00000029;--assessment-palette-twentythree: #9266d533;--assessment-palette-twentyfour: #cbcbcb;--assessment-palette-twentyfive: #ced4da;--assessment-palette-twentysix: #687C97;--assessment-palette-twentyseven: #FDFDFD;--assessment-palette-twentyeight: #00000002;--assessment-palette-twentynine: #7070701A;--assessment-palette-thirty: #EEAE1D;--assessment-palette-thirtyone: #bababa;--assessment-palette-thirtytwo: #0e103f;--assessment-palette-thirtythree: #0e103f;--assessment-palette-thirtyfour: #ffae2c;--assessment-palette-thirtyfive: #565264;--assessment-palette-thirtysix: #B5E0FF;--assessment-palette-thirtyseven: #F9FBFD;--assessment-palette-thirtytwo: #70707033;--assessment-palette-thirtythree: #EDF2F6;--assessment-palette-thirtyeight:#FFC400;--assessment-palette-thirtynine:#FF9102;--assessment-palette-fourty:#F6F9FE;--assessment-palette-fourtyone:#ededed;--assessment-palette-fourtytwo:#E7646F;--assessment-palette-fourtythree:#F06E1D;--assessment-palette-fourtyfour:#8A9AED;--assessment-palette-fourtyfive:#F5C571;--assessment-palette-fourtysix:#DD6012;--assessment-palette-fourtyseven:#f5c5711a;--assessment-palette-fourtyeight:#44B179;--assessment-palette-thirtyeight: #FFC400;--assessment-palette-thirtynine: #FF9102;--assessment-palette-forty: #73B6EA;--assessment-palette-fortyone: #73B6EA1a;--assessment-palette-fortytwo:#ED6F66;--assessment-palette-fortythree:#ED6F661a;--assessment-palette-fortyfour:#35B8E0;--assessment-palette-fortyfive:#FF5B5B;--assessment-palette-fortysix:#FF3B30;--assessment-palette-fortyseven:#b0c256;--assessment-palette-fortyeight:#567ec2;--assessment-palette-fortynine:#8C8CFF;--assessment-palette-fifty:#F3F3FF;--assessment-palette-fiftyone:#A1BEFF;--assessment-palette-fiftytwo:#4D89EB10;--assessment-palette-fiftythree:#dcdcdc45;--assessment-palette-fiftyfour:#FCBE35;--assessment-palette-fiftyfive:#78C89F;--assessment-palette-fiftysix:#F5A570;--assessment-palette-fiftyseven:#F47D32;--assessment-palette-fiftyeight:#FDFBFBC4;--assessment-palette-fiftynine:#EBEDEE80;--assessment-palette-sixty:#343a40;--assessment-palette-sixtyone:#e5e7e9;--assessment-palette-sixtytwo:#858383;--assessment-palette-sixtythree:#757575;--assessment-palette-sixtyfour:#C6C6C6;--assessment-palette-sixtyfive:#7476ED;--assessment-palette-sixtysix:#2A50A4;--assessment-palette-sixtyseven:#5C87E4;--assessment-palette-sixtyeight:#FFFFFF1A;--assessment-palette-sixtynine:#FFFFFFA6;--assessment-palette-seventy:#00000080;--assessment-palette-seventyone:#0A0A0A;--assessment-palette-seventytwo:#333333;--assessment-palette-seventythree:#125DFF;--assessment-palette-seventyfour:#999999;--assessment-palette-seventyfive:#147AD6;--assessment-palette-seventysix:#979797;--assessment-palette-seventyseven:#8d8d8d;--assessment-palette-seventyeight: #323A46;--assessment-palette-seventynine: #dad7d7;--assessment-palette-eighty: #E56F8C;--assessment-palette-eightyone: #E85E4A;--assessment-palette-eightytwo: #87D1AD;--assessment-palette-eightythree: #F8C73B;--assessment-palette-eightyfour: #bdc1c6;--assessment-palette-eightyfive: #00000033;--assessment-palette-eightysix: #ffffffb3;--assessment-palette-eightyseven: #7d95c9;--assessment-palette-eightyeight: #7476ed1f;--assessment-palette-eightynine: #fafbff;--assessment-palette-ninety: #64c2db;--assessment-palette-ninetyone: #7476ed33;--assessment-palette-ninetytwo: #cccccc;--assessment-palette-ninetythree: #7476ed66;--assessment-palette-ninetyfour: #52b6e01a;--assessment-palette-ninetyfive: #0056b3;--assessment-palette-ninetysix: #F1F1FD;--assessment-palette-ninetyseven: #cbc6c6;--assessment-palette-ninetyeight: #007A86;--assessment-palette-ninetynine: #7476ED0F;--assessment-palette-hundred: #7476ED80;--assessment-palette-onehundredone: #e0e0e0;--assessment-palette-onehundredtwo: #7fffd4;--assessment-palette-onehundredthree: #d3d3d3;--assessment-palette-onehundredfour: #1E2222;--assessment-palette-onehundredfive: #ffffff4d;--assessment-palette-onehundredsix: #7476ed1a;--assessment-palette-onehundredseven: #b0c4de;--assessment-palette-onehundredeight: #f7f7f7;--assessment-palette-onehundrednine: #D3E2FC;--assessment-palette-onehundredten: #FF3E58;--assessment-palette-onehundredeleven: #000000de;--assessment-palette-onehundredtwelve: #5D5D5D;--assessment-palette-onehundredthirteen: #04aa6d;--assessment-palette-onehundredfourteen: #D6DBDB;--assessment-palette-onehundredfifteen: #FEF5FF;--assessment-palette-onehundredsixteen: #11143D;--assessment-palette-onehundredseventeen: #b5b5b5;--assessment-palette-onehundredeighteen: #62B79A;--assessment-palette-onehundrednighteen:#E73A2C;--assessment-palette-onehundredtwenty:#FFCE7A;--assessment-palette-onehundredtwentyone:#0000001f;--assessment-palette-onehundredtwentytwo:#55AA7E;--assessment-palette-onehundredtwentythree:#7375ed4d;--assessment-red:#ff0000;--assessment-green: #008000;--assessment-blue:#0000ff;--assessment-dark-red: #E83628;--assessment-golden:#E9CC5A;--assessment-success: #34a853;--assessment-success-bg: #34a8531a;--assessment-success-secondary: #8bc34a;--assessment-success-secondary-bg: #8bc34a1a;--assessment-danger-two: #fff1f1;--assessment-danger: #ff5252;--assessment-danger-bg: #ff52521a;--assessment-warning: #ffa600;--assessment-warning-bg: #ffa6001a;--assessment-warm: #6b71e5;--assessment-link-text: #301f56;--assessment-warm-bg: #6b71e51a;--assessment-primary-light: #0091ff;--assessment-primary-light-bg: #0091ff1a;--assessment-secondary-bg: #f8f9fa;--assessment-placeholder-color: #e18a22;--assessment-primary-one: #4d89eb;--assessment-primary-two: #323a46;--assessment-primary-three: #00000014;--assessment-primary-four: #295EB7;--assessment-primary-five: #F2F7FF;--assessment-linear-gradient-one: transparent linear-gradient(180deg, #e2dafd 0%, #d6cbfc 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-two: transparent linear-gradient(180deg, #F19B96 0%, #ED6F66 100%) no-repeat padding-box;--assessment-linear-gradient-three: transparent linear-gradient(180deg, #81D2F2 0%, #52B6E0 100%) 0% 0% no-repeat padding-box;--assessment-linear-gradient-four: transparent linear-gradient(180deg, #4D89EB 0%, #295EB7 100%) 0% 0% no-repeat padding-box;--assessment-box-shadow-one: 0px 3px 6px #00000008;--assessment-box-shadow-two: 0px 3px 6px #0000000f;--assessment-box-shadow-three: 0px 6px 12px #00000008;--assessment-box-shadow-four: 0px 6px 12px #0000000f;--assessment-box-shadow-five: 0px 0px 12px #0000000f;--assessment-box-shadow-six: 0px 2px 4px #0000001a;--assessment-box-shadow-seven: 0px 1px 5px #00000029;--assessment-box-shadow-eight: 0px 6px 6px #00000008;--assessment-box-shadow-nine: 0px 6px 12px #00000010;--assessment-box-shadow-ten: 0px 12px 22px #725cc614;--assessment-box-shadow-inset-one: inset 0px 0px 18px #0000001a;--assessment-border-radius-one: 4px;--assessment-border-radius-two: 8px;--assessment-border-radius-three: 10px;--assessment-border-radius-four: 12px;--assessment-border-radius-five: 16px;--assessment-border-radius-six: 20px;--assessment-border-radius-seven: 32px;--assessment-border-radius-rounded: 50%;--assessment-header-height: 5vh;--filter-purple:invert(42%) sepia(74%) saturate(692%) hue-rotate(205deg) brightness(100%) contrast(86%);--app-theme-based-color: #202124;--app-theme-based-one: #3c4043;--app-theme-based-two:#7476ED }.mat-dialog-actions{display:grid!important}.mat-dialog-title,.mat-dialog-content{text-align:center}.mat-dialog-actions button{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}::ng-deep .mat-mdc-tooltip{transform:scale(1.5)!important;position:relative!important}.danger-tooltip{background-color:var(--assessment-blue)!important;font-size:13px!important;font-weight:500;--mdc-plain-tooltip-container-color: var(--assessment-blue);--mdc-plain-tooltip-supporting-text-color: var(--assessment-danger-two) !important;--mdc-plain-tooltip-supporting-text-size: 13px;--mdc-plain-tooltip-supporting-text-weight: 500 !important;--mdc-plain-tooltip-supporting-text-tracing: .033333333em}.mat-tooltip{overflow:visible!important}.danger-tooltip:after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-4px;border-width:5px;border-style:solid;border-color:var(--assessment-blue) transparent transparent transparent}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:var(--assessment-blue)!important}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:var(--assessment-blue)!important}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background:var(--assessment-blue)!important}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:var(--assessment-blue)!important}.example-button-row .mat-flat-button{color:var(--assessment-danger-two, var(--assessment-danger-two));background-color:var(--assessment-blue)}.example-button-row{display:table-cell;max-width:600px}.example-button-row .mat-mdc-button-base{margin:8px 8px 8px 0}.tooltip-image{display:inline-block;vertical-align:middle;width:15px;height:15px}.radimatc{margin-top:20px}.example-radio-button,.example-margin{display:block!important;margin:10px}.example-full-width{width:78%}.mat-button-toggle-checked{background-color:var(--assessment-blue)!important;color:var(--assessment-danger-two)!important}.custmattog{box-shadow:none!important}.mat-button-toggle{padding:5px;white-space:nowrap;position:relative;background-color:var(--assessment-grey-four);border-radius:20px;margin:5px;color:var(--assessment-black)}.textarea-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem;border-bottom:2px solid rgb(118,118,118)}.textarea-tag:focus{border-color:var(--assessment-blue)}.input-tag{font-family:assessment-Medium;font-size:14px;width:75%;border-left:none;border-right:none;border-top:none;outline:none;padding:.75rem}.input-tag:focus{border-color:var(--assessment-blue)}.divider{display:flex;justify-content:center;align-items:center;width:100%;margin-top:2rem;margin-bottom:2rem}.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:1rem}.datesty{width:78%}.datesty input{width:92%}\n"] }]
|
|
434
|
+
}], ctorParameters: function () { return [{ type: i1.AssessmentTakerService }, { type: i2.AssessmentIdService }, { type: i3.FormBuilder }, { type: i4.MatDialog }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { assessmentId: [{
|
|
435
|
+
type: Input
|
|
436
|
+
}] } });
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Qtd2l6YXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2Vzc21lbnQtdGFrZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZlYXR1cmUvcXVlc3Qtd2l6YXJkL3F1ZXN0LXdpemFyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Nlc3NtZW50LXRha2VyL3NyYy9saWIvY29tcG9uZW50cy9mZWF0dXJlL3F1ZXN0LXdpemFyZC9xdWVzdC13aXphcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUd0RyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBZSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0YsTUFBTSxPQUFPLG9CQUFvQjtJQTZDL0IsWUFBb0IsaUJBQXlDLEVBQ25ELG1CQUF3QyxFQUN4QyxFQUFlLEVBQ2hCLE1BQWlCLEVBQ2hCLEdBQXNCO1FBSlosc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQUNuRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9DaEMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBUSxZQUFZLENBQUM7UUFFL0IsZ0JBQVcsR0FBUyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixvQkFBb0I7UUFDcEIsaUNBQTRCLEdBQVEsSUFBSSxLQUFLLEVBQUUsQ0FB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T0FBTyxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7NEJBQy9DLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQ0FDekUsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTs2QkFDdkI7d0JBQ0gsQ0FBQyxDQUFDLENBQUE7b0JBQ0osQ0FBQyxDQUFDLENBQUE7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQTthQUNuQztRQUNILENBQUMsRUFDQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4RCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2tIQXBiVSxvQkFBb0I7c0dBQXBCLG9CQUFvQix1SENkakMsK2pPQXlFTTs0RkQzRE8sb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQjtpT0FNbkIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50VGFrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXNzZXNzbWVudC10YWtlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudElkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hc3Nlc3NtZW50LWlkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBRdWVzdFN1Y2Nlc3NDb21wb25lbnQgfSBmcm9tICcuLi9xdWVzdC1zdWNjZXNzL3F1ZXN0LXN1Y2Nlc3MvcXVlc3Qtc3VjY2Vzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yQ29uZmlnIH0gZnJvbSAnQGtvbGtvdi9hbmd1bGFyLWVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdC13aXphcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdC13aXphcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0LXdpemFyZC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRdWVzdFdpemFyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnRJZDphbnk7XHJcbiAgY2hpbGRRdWVzdGlvbkJvb2s6IGFueSA9IFtdO1xyXG4gIGVkaXRvck5hbWU6c3RyaW5nPVwiZWRpdG9yTmFtZVwiO1xyXG4gIGFpYWRlZmF1bHRSZXNwb25zZUxpc3Q6IGFueVxyXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc9Jyc7XHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAvLyBhc3Nlc3NtZW50SWQ6IGFueVxyXG4gIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q6IGFueSA9IG5ldyBBcnJheSgpO1xyXG4gIHF1ZXN0aW9uSWRzOiBhbnkgPSB7fTtcclxuICBzdGFydERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIGdyb3VwOiBhbnkgPSB7fTtcclxuICBhc3Nlc3NtZW50SGVhZGVySW1hZ2UgPSAnaHR0cHM6Ly9kZXYucGxhdGZvcm1jb21tb25zLm9yZy9mb3Jtcy9hc3NldHMvaW1hZ2VzL2RvbWFpbi9hc3Nlc3NtZW50LXBsYWNlaG9sZGVyLTIucG5nJztcclxuICBzZWN0aW9uUXVlc3Rpb25zOiB7IFtrZXk6IG51bWJlcl06IGFueVtdIH0gPSB7fVxyXG4gIHJlcXVlc3RQYXlsb2FkOiBhbnkgPSB7fVxyXG4gIGZpbmFsUXVlc3Rpb25MaXN0OmFueTtcclxuICBjb25maWc6IEFuZ3VsYXJFZGl0b3JDb25maWcgPSB7XHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIHNwZWxsY2hlY2s6IHRydWUsXHJcbiAgICBoZWlnaHQ6ICcxNXJlbScsXHJcbiAgICBtaW5IZWlnaHQ6ICc1cmVtJyxcclxuICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgdGV4dCBoZXJlLi4uJyxcclxuICAgIHRyYW5zbGF0ZTogJ25vJyxcclxuICAgIGRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3I6ICdwJyxcclxuICAgIGRlZmF1bHRGb250TmFtZTogJ0FyaWFsJyxcclxuICAgIHRvb2xiYXJIaWRkZW5CdXR0b25zOiBbXHJcbiAgICAgIFsnYm9sZCddXHJcbiAgICAgIF0sXHJcbiAgICBjdXN0b21DbGFzc2VzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInF1b3RlXCIsXHJcbiAgICAgICAgY2xhc3M6IFwicXVvdGVcIixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdyZWRUZXh0JyxcclxuICAgICAgICBjbGFzczogJ3JlZFRleHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIGNsYXNzOiBcInRpdGxlVGV4dFwiLFxyXG4gICAgICAgIHRhZzogXCJoMVwiLFxyXG4gICAgICB9LFxyXG4gICAgXVxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFRha2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudElkU2VydmljZTogQXNzZXNzbWVudElkU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2Fzc2Vzc21lbnRJZCddICYmICFjaGFuZ2VzWydhc3Nlc3NtZW50SWQnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgdGhpcy5hc3Nlc3NtZW50SWQgPSBjaGFuZ2VzWydhc3Nlc3NtZW50SWQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5hc3Nlc3NtZW50SWRTZXJ2aWNlLmN1cnJlbnRBc3Nlc3NtZW50SWQuc3Vic2NyaWJlKGlkID0+IHtcclxuICAgIC8vICAgdGhpcy5hc3Nlc3NtZW50SWQgPSBpZFxyXG4gICAgLy8gICBjb25zb2xlLmxvZyh0aGlzLmFzc2Vzc21lbnRJZClcclxuICAgIC8vIH0pXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmFzc2Vzc21lbnRJZCk7XHJcbiAgICBpZih0aGlzLmFzc2Vzc21lbnRJZCl7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudERldGFpbHMoKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvblF1ZXN0aW9ucylcclxuXHJcbiAgICAvLyB0aGlzLmZiLmdyb3VwKHtcclxuICAgIC8qIHNob3J0QW5zOiBbXCJcIiwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBsb25nQW5zMTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgc2VsRGF0ZTogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgbnVtYmVyQW5zOiBbXCJcIiwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICBtdWx0aVNlbGVjdEFuczogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgbXVsdGlTdWJBbnM6IFtcIlwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIG9ialN1YkFuczogW1wiXCIsIFZhbGlkYXRvcnMucmVxdWlyZWRdICovXHJcbiAgICAvLyB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5jb250cm9scztcclxuICB9XHJcblxyXG4gIHN1Ym1pdFRhc2soKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtR3JvdXAudmFsdWUpO1xyXG4gICAgICB0aGlzLnJlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICAgIFwiYWlhZGVmYXVsdFJlc3BvbnNlTGlzdFwiOiBbXSxcclxuICAgICAgICBcImFzc2Vzc21lbnRJbnN0YW5jZVwiOiB7XHJcbiAgICAgICAgICAvKiBhc3Nlc3NtZW50OiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QuYXNzZXNzbWVudCxcclxuICAgICAgICAgIGFzbXRJbnN0RGVzYzogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmFxcERlc2MsXHJcbiAgICAgICAgICBhc210SW5zdE5hbWU6IHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC5hcXBOYW1lLCAqL1xyXG4gICAgICAgICAgLyogc2NoZWR1bGVTdGF0dXM6IHtcclxuICAgICAgICAgICAgXCJjb2RlXCI6IFwiQVNTRVNTTUVOVC5QVUJMSVNIXCIsXHJcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgICAgXCJsYWJlbHNcIjogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIFwidGV4dFwiOiBcIkRyYWZ0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJsYW5ndWFnZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29kZVwiOiBcIkVOR1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBcInJlZkNsYXNzXCI6IHtcclxuICAgICAgICAgICAgICAgIFwiY29kZVwiOiBcIlNDSEVEVUxFX1NUQVRVU1wiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAqLy8vYXNzZXNtZW50U2NoZW1hLnNjaGVkdWxlU3RhdHVzLFxyXG4gICAgICAgICAgLyogY29uZmlybWF0aW9uRGF0ZTogbmV3IERhdGUoKSwvLyBhc3Nlc21lbnRTY2hlbWEuY29uZmlybWF0aW9uRGF0ZSxcclxuICAgICAgICAgIGVuZERhdGU6IG5ldyBEYXRlKCksLy9hc3Nlc21lbnRTY2hlbWEuZW5kRGF0ZSxcclxuICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5zdGFydERhdGUsICovXHJcbiAgICAgICAgICBpZDogMTQ1LFxyXG4gICAgICAgICAgLyogdGVuYW50OiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QudGVuYW50LFxyXG4gICAgICAgICAgaW1hZ2VVUkw6IFwiXCIsLy90aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QuaW1hZ2VVUkwsXHJcbiAgICAgICAgICBpc1B1YmxpYzogdHJ1ZSwvL3RoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC5pc1B1YmxpYyxcclxuICAgICAgICAgIHNwZWNpZmljVmlzaWJpbGl0eTogZmFsc2UsLy9hc3Nlc21lbnRTY2hlbWEuc3BlY2lmaWNWaXNpYmlsaXR5LFxyXG4gICAgICAgICAgZWRpdGFibGU6IGZhbHNlLC8vYXNzZXNtZW50U2NoZW1hLmVkaXRhYmxlLFxyXG4gICAgICAgICAgYXV0aG9yOiBcIkFhc2hpc2ggWmVuZm9ybVwiLC8vYXNzZXNtZW50U2NoZW1hLmF1dGhvcixcclxuICAgICAgICAgIHRlbmFudElkOiB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3QudGVuYW50SWQsXHJcbiAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSwvL2Fzc2VzbWVudFNjaGVtYS5pc0FjdGl2ZSxcclxuICAgICAgICAgIGNyZWF0ZWRBdDogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmNyZWF0ZWRBdCxcclxuICAgICAgICAgIGNyZWF0ZWRCeTogdGhpcy5hc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0LmNyZWF0ZWRCeSxcclxuICAgICAgICAgIHV1aWQ6IHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdC51dWlkICovXHJcbiAgICAgICAgfSxcclxuICAgICAgICBhc3Nlc3Nvcjoge1xyXG4gICAgICAgICAgYWN0b3JJZDogXCIwXCIsXHJcbiAgICAgICAgICBhY3RvclR5cGU6IFwiQUNUT1JfVFlQRS5CUklER0VfVVNFUlwiLFxyXG4gICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcclxuICAgICAgICAgIHRlbmFudDogXCIwXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiaWRcIjogMCxcclxuICAgICAgICBcImlzQWN0aXZlXCI6IHRydWUsXHJcbiAgICAgICAgXCJ0ZW5hbnRcIjogXCIwXCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZEZvckVudGl0eUlkXCI6IFwiMzAzOTA2XCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZEZvckVudGl0eVR5cGVcIjogXCJBQ1RPUl9UWVBFLkJSSURHRV9VU0VSXCIsXHJcbiAgICAgICAgXCJhc3Nlc3NlZVwiOiB7XHJcbiAgICAgICAgICBhY3RvcklkOiBcIjMwMzkwNlwiLFxyXG4gICAgICAgICAgYWN0b3JUeXBlOiBcIkFDVE9SX1RZUEUuQlJJREdFX1VTRVJcIixcclxuICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgaXNBY3RpdmU6IHRydWUsXHJcbiAgICAgICAgICB0ZW5hbnQ6IFwiMFwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdC5mb3JFYWNoKChzZWN0aW9uOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBzZWN0aW9uLnNlY3Rpb25RdWVzdGlvbnNMaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiBhLm9yZGVyTm8gLSBiLm9yZGVyTm8pLmZvckVhY2goKHF1ZXM6IGFueSwgcWluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIHZhciBxdWVzdGlvblJlc3BvbnNlT2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uRGV0YWlscyA9IHRoaXMuc2VjdGlvblF1ZXN0aW9uc1swXS5maW5kKGkgPT4gaS5pZCA9PT0gcXVlcy5xdWVzdGlvbklkKTtcclxuICAgICAgICAgIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuT0JKRUNUSVZFXCIgfHwgcXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLlNDQUxFX1JBVElOR1wiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBhbnlbXSA9IHF1ZXN0aW9uRGV0YWlscy5kZWZhdWx0T3B0aW9uc0xpc3Q7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7IG9wdGlvbklkOiBkZWZhdWx0T3B0aW9ucz8uZmluZChpID0+IGkub3B0aW9ucy5pZCA9PT0gdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXS5pZCk/Lm9wdGlvbnMgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuTVVMVElTRUxFQ1RcIikge1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogYW55W10gPSBxdWVzdGlvbkRldGFpbHMuZGVmYXVsdE9wdGlvbnNMaXN0O1xyXG4gICAgICAgICAgICBjb25zdCBkcm9iamVjdGl2ZXJlc3BvbnNlTGlzdDogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXT8uZm9yRWFjaCgob3B0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnM6IGFueVtdID0gZGVmYXVsdE9wdGlvbnMuZmluZChpID0+IGkub3B0aW9ucy5pZCA9PT0gb3B0LmlkKVxyXG4gICAgICAgICAgICAgIGRyb2JqZWN0aXZlcmVzcG9uc2VMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0T3B0aW9uOiBzZWxlY3RlZE9wdGlvbnNcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7XHJcbiAgICAgICAgICAgICAgZHJvYmplY3RpdmVyZXNwb25zZUxpc3RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChxdWVzdGlvbkRldGFpbHM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuTVVMVElTRUxFQ1RfU1VCSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBhbnlbXSA9IHF1ZXN0aW9uRGV0YWlscy5kZWZhdWx0T3B0aW9uc0xpc3Q7XHJcbiAgICAgICAgICAgIGNvbnN0IGRyb2JqZWN0aXZlcmVzcG9uc2VMaXN0OiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZVtgJHtxdWVzLnF1ZXN0aW9uSWR9X29iamVjdGl2ZWBdPy5mb3JFYWNoKChvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uczogYW55W10gPSBkZWZhdWx0T3B0aW9ucy5maW5kKGkgPT4gaS5vcHRpb25zLmlkID09PSBvcHQuaWQpXHJcbiAgICAgICAgICAgICAgZHJvYmplY3RpdmVyZXNwb25zZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRPcHRpb246IHNlbGVjdGVkT3B0aW9uc1xyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgcXVlc3Rpb25SZXNwb25zZU9iaiA9IHtcclxuICAgICAgICAgICAgICBkcm9iamVjdGl2ZXJlc3BvbnNlTGlzdCxcclxuICAgICAgICAgICAgICBkcnN1YmplY3RpdmVyZXNwb25zZUxpc3Q6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGV4dDogdGhpcy5mb3JtR3JvdXAudmFsdWVbYCR7cXVlcy5xdWVzdGlvbklkfV9zdWJqZWN0aXZlYF1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IGFueVtdID0gcXVlc3Rpb25EZXRhaWxzLmRlZmF1bHRPcHRpb25zTGlzdDtcclxuICAgICAgICAgICAgcXVlc3Rpb25SZXNwb25zZU9iaiA9IHtcclxuICAgICAgICAgICAgICBvcHRpb25JZDogZGVmYXVsdE9wdGlvbnM/LmZpbmQoaSA9PiBpLm9wdGlvbnMuaWQgPT09IHRoaXMuZm9ybUdyb3VwLnZhbHVlW2Ake3F1ZXMucXVlc3Rpb25JZH1fb2JqZWN0aXZlYF0uaWQpPy5vcHRpb25zLFxyXG4gICAgICAgICAgICAgIGRyc3ViamVjdGl2ZXJlc3BvbnNlTGlzdDogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiB0aGlzLmZvcm1Hcm91cC52YWx1ZVtgJHtxdWVzLnF1ZXN0aW9uSWR9X3N1YmplY3RpdmVgXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0gIGVsc2UgaWYgKHF1ZXN0aW9uRGV0YWlscz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5GSUxFX1VQTE9BRFwiKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsgXHJcbiAgICAgICAgICAgIC8qIGxldCBtYXhEZXB0aD0xMjM7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhID0gdGhpcy5mb3JtR3JvdXAudmFsdWVbcXVlcy5xdWVzdGlvbklkXTtcclxuICAgICAgICAgICAgbGV0IGZpbGU6IEZpbGUgPSBmaWxlRGF0YS5maWxlU291cmM7XHJcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpOyBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UudXBsb2FkQXNzZXNzbWVudChmb3JtRGF0YSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAvLyBpZiAocmVzcG9uc2UgIT0gJycpIHt9XHJcbiAgICAgICAgICAgIH0pOyAqL1xyXG4gICAgICAgICAgICBxdWVzdGlvblJlc3BvbnNlT2JqID0ge1xyXG4gICAgICAgICAgICAgIGRyc3ViamVjdGl2ZXJlc3BvbnNlTGlzdDogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBpZDogMCxcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUZXh0OiAnJ1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uUmVzcG9uc2VPYmogPSB7XHJcbiAgICAgICAgICAgICAgZHJzdWJqZWN0aXZlcmVzcG9uc2VMaXN0OiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiAwLFxyXG4gICAgICAgICAgICAgICAgICByZXNwb25zZVRleHQ6IHRoaXMuZm9ybUdyb3VwLnZhbHVlW3F1ZXMucXVlc3Rpb25JZF1cclxuICAgICAgICAgICAgICAgIC8vICByZXNwb25zZVRleHQ6IFwidGVzdFwiXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBpZiAocXVlc3Rpb25EZXRhaWxzPy5xdWVzdGlvblN1YnR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9TVUJfVFlQRS5TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgIHRoaXMucmVxdWVzdFBheWxvYWQuYWlhZGVmYXVsdFJlc3BvbnNlTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgLi4ucXVlc3Rpb25SZXNwb25zZU9iaixcclxuICAgICAgICAgICAgICBcImlkXCI6IDAsXHJcbiAgICAgICAgICAgICAgXCJpc0FjdGl2ZVwiOiB0cnVlLFxyXG4gICAgICAgICAgICAgIFwic2VjdGlvblF1ZXN0aW9uXCI6IHtcclxuICAgICAgICAgICAgICAgIGlkOiBxdWVzLmlkLFxyXG4gICAgICAgICAgICAgICAgaXNBY3RpdmU6IHF1ZXMuaXNBY3RpdmUsXHJcbiAgICAgICAgICAgICAgICBvcmRlck5vOiBxdWVzLm9yZGVyTm8sXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbklkOiBxdWVzLnF1ZXN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICBxdWVzdGlvbk51bWJlcjogcXVlcy5xdWVzdGlvbk51bWJlcixcclxuICAgICAgICAgICAgICAgIHRlbmFudDogcXVlcy50ZW5hbnQsXHJcbiAgICAgICAgICAgICAgICBzZWNRdWVzdERlc2M6IHF1ZXMuc2VjUXVlc3REZXNjXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBcInRlbmFudFwiOiBcIjBcIlxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc3VibWl0QXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzKHRoaXMucmVxdWVzdFBheWxvYWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICAgaWYgKHJlc3BvbnNlICE9ICcnKSB7XHJcbiAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRdWVzdFN1Y2Nlc3NDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgYXNzZXNtZW50SW5zdElkOiAnZGF0YSdcclxuICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgaWYgKHJlc3VsdD8uZXZlbnQgPT0gJ2Nsb3NlJykge1xyXG4gICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgfSk7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVxdWVzdFBheWxvYWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkICBmb3JtIHZhbHVlc1wiKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXNzZXNzbWVudERldGFpbHMoKSB7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvblBhcGVycyh0aGlzLmFzc2Vzc21lbnRJZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFF1ZXN0aW9uUGFwZXJzTGlzdCA9IGRhdGE/LlswXTtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdC5mb3JFYWNoKChxcHM6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHF1ZXN0aW9uSWRzID0gcXBzPy5zZWN0aW9uUXVlc3Rpb25zTGlzdC5tYXAoKHNlY3Rpb25RdWVzdGlvbjogYW55KSA9PiBzZWN0aW9uUXVlc3Rpb24/LnF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbklkc1tpbmRleF0gPSBxdWVzdGlvbklkc1xyXG4gICAgICAgICAgdGhpcy5nZXRRdWVzdGlvbnModGhpcy5hc3Nlc3NtZW50SWQsIHF1ZXN0aW9uSWRzLCBpbmRleClcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdGlvblF1ZXN0aW9ucylcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25RdWVzdGlvbklkcyhzZWN0aW9uOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gc2VjdGlvbj8uc2VjdGlvblF1ZXN0aW9uc0xpc3Q/Lm1hcCgocXVlc3Rpb246IGFueSkgPT4gcXVlc3Rpb24ucXVlc3Rpb25JZCkgfHwgW107XHJcbiAgfVxyXG5cclxuICBzaG93VG9vbHRpcChkYXRhOnN0cmluZyl7XHJcbiAgICBpZihkYXRhID09PSBudWxsIHx8IGRhdGEubWF0Y2goL14gKiQvKSAhPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRvb2x0aXBUZXh0KGRhdGE6c3RyaW5nKXtcclxuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgaXNRdWVzdGlvblByZXNlbnRJbkJhbmsoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRRdWVzdGlvbkJvb2suZmluZEluZGV4KChwcmV2OiBhbnkpID0+IHByZXYucXVlc3Rpb25JZCA9PSBpZClcclxuICB9XHJcblxyXG4gIGdldGNoaWxkUXVlc2ZybUJvb2soaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRRdWVzdGlvbkJvb2suZmluZCgoY2hpbGQ6IGFueSkgPT4gY2hpbGQucXVlc3Rpb25JZCA9PSBpZClcclxuICB9XHJcblxyXG4gIGdldFF1ZXN0aW9ucyhhc3Nlc3NtZW50SWQ6IGFueSwgcXVlc3Rpb25JZExpc3Q6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRBc3Nlc3NtZW50UXVlc3Rpb25zKGFzc2Vzc21lbnRJZCwgcXVlc3Rpb25JZExpc3QpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChxdWVzdGlvbnNMaXN0OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgbGV0IGNoaWxkUXVlc0xpc3Q6IG51bWJlcltdID0gW107ICAgICAgICAgICAgIC8vb2JqZWN0aXZlIHR5cGUgcXVlc3Rpb25zIFxyXG5cclxuICAgICAgICB0aGlzLmZpbmFsUXVlc3Rpb25MaXN0ID0gcXVlc3Rpb25zTGlzdDtcclxuXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uUXVlc3Rpb25zW2luZGV4XSA9IHRoaXMuZmluYWxRdWVzdGlvbkxpc3Q7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ1VwZGF0ZWQgc2VjdGlvblF1ZXN0aW9uczonLCB0aGlzLnNlY3Rpb25RdWVzdGlvbnMpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlY3Rpb25RdWVzdGlvbnMgJiYgdGhpcy5zZWN0aW9uUXVlc3Rpb25zW2luZGV4XSkge1xyXG4gICAgICAgICAgZm9yICh2YXIgcXVlcyBvZiB0aGlzLnNlY3Rpb25RdWVzdGlvbnNbaW5kZXhdKSB7XHJcbiAgICAgICAgICAgIGlmIChxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFXCIgfHwgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5NVUxUSVNFTEVDVF9TVUJKRUNUSVZFXCIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdyb3VwW2Ake3F1ZXMuaWR9X29iamVjdGl2ZWBdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAgICAgICB0aGlzLmdyb3VwW2Ake3F1ZXMuaWR9X3N1YmplY3RpdmVgXSA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU1VCSkVDVElWRV9TSE9SVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU1VCSkVDVElWRV9MT05HXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5EQVRFXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5OVU1CRVJcIiB8fCBcclxuICAgICAgICAgICAgICBxdWVzPy5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLkZJTEVfVVBMT0FEXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5NVUxUSVNFTEVDVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU0NBTEVfUkFUSU5HXCIgfHwgXHJcbiAgICAgICAgICAgICAgcXVlcz8ucXVlc3Rpb25UeXBlLmNvZGUgPT09IFwiUVVFU1RJT05fVFlQRS5TVUJKRUNUSVZFX1JJQ0hfVEVYVFwiIHx8IFxyXG4gICAgICAgICAgICAgIHF1ZXM/LnF1ZXN0aW9uVHlwZS5jb2RlID09PSBcIlFVRVNUSU9OX1RZUEUuU0VBUkNIQUJMRV9JTlBVVF9NRE1cIil7XHJcbiAgICAgICAgICAgICAgdGhpcy5ncm91cFtxdWVzLmlkXSA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAvLyAgdGhpcy5ncm91cFt0aGlzLmVkaXRvck5hbWVdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAvLyAgdGhpcy5ncm91cFt0aGlzLmZvcm1Hcm91cE5hbWVdID0gbmV3IEZvcm1Hcm91cCh0aGlzLmdyb3VwMSlcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHRoaXMuZ3JvdXApXHJcbiAgICAgICAgdGhpcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpXHJcblxyXG4gICAgICAgIC8vb2JqZWN0aXZlIHR5cGUgcXVlc3Rpb25zIFxyXG4gICAgICAgIHF1ZXN0aW9uc0xpc3QuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbS5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uZGVmYXVsdE9wdGlvbnNMaXN0LmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgb3B0aW9uLmNoaWxkUXVlc3Rpb25MaXN0Py5mb3JFYWNoKChpZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uUHJlc2VudEluQmFuayhpZCkgPT0gLTEgJiYgIWNoaWxkUXVlc0xpc3QuaW5jbHVkZXMoaWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNoaWxkUXVlc0xpc3QucHVzaChpZClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmIChjaGlsZFF1ZXNMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5mZXRjaENoaWxkUXVlcyhjaGlsZFF1ZXNMaXN0KTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY29uZmlndXJlQ2hpbGQoZXZlbnQ6IGFueSkge1xyXG4gICAgbGV0IGNoaWxkTGlzdCA9IGV2ZW50Lmxpc3Q7XHJcbiAgICBsZXQgcm9vdF9xdWVzdGlvbiA9IGV2ZW50LnF1ZXN0aW9uXHJcbiAgICBsZXQgY2hpbGQ6IGFueSA7XHJcbiAgICBpZihjaGlsZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNoaWxkTGlzdC5mb3JFYWNoKChpZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBjaGlsZCA9IHRoaXMuZ2V0Y2hpbGRRdWVzZnJtQm9vayhpZCk7XHJcbiAgICAgICAgICAvL2FkZCBjb250cm9sIGhlcmVcclxuICAgICAgICAgIHRoaXMuZ3JvdXBbY2hpbGQucXVlc3Rpb24uaWRdID0gbmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh0aGlzLmdyb3VwKVxyXG4gICAgICAgIH0pO1xyXG4gICAgIH1cclxuICAgIHRoaXMuZmluYWxRdWVzdGlvbkxpc3QuZm9yRWFjaCgocXVlc3Rpb246IGFueSkgPT4gXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgaWYocXVlc3Rpb24uaWQgPT09IHJvb3RfcXVlc3Rpb24uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmZpbmFsUXVlc3Rpb25MaXN0LmluY2x1ZGVzKGNoaWxkLnF1ZXN0aW9uKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbFF1ZXN0aW9uTGlzdC5zcGxpY2UodGhpcy5maW5hbFF1ZXN0aW9uTGlzdC5pbmRleE9mKHF1ZXN0aW9uKSsxLCAwLCBjaGlsZC5xdWVzdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgY29uc29sZS5sb2coJ2ZpbmFscXVlc3Rpb25saXN0JytKU09OLnN0cmluZ2lmeSh0aGlzLmZpbmFsUXVlc3Rpb25MaXN0KSk7XHJcbiAgfVxyXG4gIFxyXG4gIGZldGNoQ2hpbGRRdWVzKGNoaWxkUXVlc0xpc3Q6IGFueSkge1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRDaGlsZFF1ZXN0aW9uc1dpdGhJZExpc3QodGhpcy5hc3Nlc3NtZW50SWQsIGNoaWxkUXVlc0xpc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgcXVlc3Rpb25MaXN0ID0gcmVzcG9uc2U7XHJcbiAgICAgIGNoaWxkUXVlc0xpc3QgPSBbXVxyXG4gICAgICBxdWVzdGlvbkxpc3QuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbVsndXNlclJlc3BvbnNlJ10gPSAnJztcclxuICAgICAgICBpdGVtWydtdWx0aVNlbGVjdFJlc3BvbnNlJ10gPSAnJztcclxuICAgICAgICB0aGlzLmNoaWxkUXVlc3Rpb25Cb29rLnB1c2goe1xyXG4gICAgICAgICAgcXVlc3Rpb246IGl0ZW0sXHJcbiAgICAgICAgICBxdWVzdGlvbklkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgaXNNYW5kYXRvcnk6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXRlbS5xdWVzdGlvblR5cGUuY29kZSA9PT0gXCJRVUVTVElPTl9UWVBFLk9CSkVDVElWRVwiKSB7XHJcbiAgICAgICAgICBpdGVtLmRlZmF1bHRPcHRpb25zTGlzdC5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb24uY2hpbGRRdWVzdGlvbkxpc3Q/LmZvckVhY2goKGlkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uUHJlc2VudEluQmFuayhpZCkgPT0gLTEgJiYgIWNoaWxkUXVlc0xpc3QuaW5jbHVkZXMoaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBjaGlsZFF1ZXNMaXN0LnB1c2goaWQpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoY2hpbGRRdWVzTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmZldGNoQ2hpbGRRdWVzKGNoaWxkUXVlc0xpc3QpXHJcbiAgICAgIH0gXHJcbiAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNoaWxkIHF1ZXN0aW9uczonLCBlcnJvcik7XHJcbiAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb1NlY3Rpb24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWN0aW9uLSR7aW5kZXh9YCk7XHJcbiAgICBzZWN0aW9uPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XHJcbiAgfVxyXG4gIFxyXG59XHJcblxyXG4iLCI8bGluayBpZD1cInZhcmlhYmxlVGhlbWVMaW5rXCIgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9XCIuLi8uLi8uLi9hc3NldHMvdGhlbWUvdmFyaWFibGVzLmNzc1wiPlxyXG48ZGl2IGNsYXNzPVwicXVlc3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL2Fzc2Vzc21lbnQtcGxhY2Vob2xkZXItMi5wbmdcIiBjbGFzcz1cImNvdmVyLWltYWdlXCIgLz5cclxuICAgIDxkaXYgKm5nSWY9XCJhc3Nlc3NtZW50UXVlc3Rpb25QYXBlcnNMaXN0XCIgY2xhc3M9XCJxdWVzdGlvbnMtYm9keS1jb250YWluZXJcIj5cclxuICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRUYXNrKClcIiBub3ZhbGlkYXRlPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdDsgbGV0IGk9aW5kZXhcIiA+PG1hdC1jaGlwIGNsYXNzPVwiY2hpcHMtcGFkZGluZ1wiIChjbGljayk9XCJzY3JvbGxUb1NlY3Rpb24oaSlcIiA+e3tzZWN0aW9uPy5xcHNOYW1lWzBdPy50ZXh0fX08L21hdC1jaGlwPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGFzc2Vzc21lbnRRdWVzdGlvblBhcGVyc0xpc3Q/LnF1ZXN0aW9uUGFwZXJTZWN0aW9uTGlzdDsgbGV0IGk9aW5kZXhcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInc2VjdGlvbi0nICsgaVwiIGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb24taGVhZGVyLXRleHRcIj57e3NlY3Rpb24/LnFwc05hbWVbMF0/LnRleHR9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2Ygc2VjdGlvblF1ZXN0aW9uc1tpXTsgbGV0IGo9aW5kZXhcIiBjbGFzcz1cImFuc3dlci1jdWJlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtZ3JleS1uaW5lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2orMX19LiZuYnNwO3t7cXVlc3Rpb24ucXVlc3Rpb25UZXh0WzBdPy50ZXh0fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYW5kYXRvcnlcIiAqbmdJZj1cInF1ZXN0aW9uWydpc01hbmRhdG9yeSddXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwc3BhblwiICpuZ0lmPVwic2hvd1Rvb2x0aXAocXVlc3Rpb24ucXVlc3Rpb25TdWJUZXh0WzBdPy50ZXh0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL25ld190b29sdGlwLmpwZ1wiIG1hdFRvb2x0aXBDbGFzcz1cImRhbmdlci10b29sdGlwXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBjbGFzcz1cInRvb2x0aXAtaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e3F1ZXN0aW9uLnF1ZXN0aW9uU3ViVGV4dFswXT8udGV4dH19XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUuY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuT0JKRUNUSVZFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiICh2aWV3Q2hpbGQpPVwiY29uZmlndXJlQ2hpbGQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNVQkpFQ1RJVkVfU0hPUlQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1zaG9ydCBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLXNob3J0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNVQkpFQ1RJVkVfTE9ORydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLWxvbmcgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5pZFwiIFtmaWVsZEF0dHJpYnV0ZXNdPVwicXVlc3Rpb25cIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtbG9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGliLXF1ZXN0aW9uLXR5cGUtZWRpdG9yIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbY29uZmlnXT1cImNvbmZpZ1wiIGZpZWxkQXR0cmlidXRlcz1cInF1ZXN0aW9uXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLWVkaXRvcj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLkRBVEUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1kYXRlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGUuY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuTlVNQkVSJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtbnVtYmVyIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItaW5wdXRcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZS5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5GSUxFX1VQTE9BRCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLXVwbG9hZC1maWxlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtdXBsb2FkLWZpbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk1VTFRJU0VMRUNUJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtbXVsdGlzZWxlY3QgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5pZFwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdHlwZS1tdWx0aXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk9CSkVDVElWRV9TVUJKRUNUSVZFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItcXVlc3Rpb24tdHlwZS1vYmplY3RpdmUtc3ViIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlLXN1Yj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpYi1xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWIgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgW2Zvcm1Hcm91cE5hbWVdPVwicXVlc3Rpb24uaWRcIiBbZmllbGRBdHRyaWJ1dGVzXT1cInF1ZXN0aW9uXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW9iamVjdGl2ZS1zdWI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlIFtvcHRpb25zTGlzdF09XCJxdWVzdGlvblwiIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24uaWR9fV9vYmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtb2JqZWN0aXZlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5pZH19X3N1YmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLk1VTFRJU0VMRUNUX1NVQkpFQ1RJVkUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0LXN1YiBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0LXN1Yj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1tdWx0aXNlbGVjdCBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLmlkfX1fb2JqZWN0aXZlXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQgW29wdGlvbnNMaXN0XT1cInF1ZXN0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5pZH19X3N1YmplY3RpdmVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2hvcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlLmNvZGUgPT09ICdRVUVTVElPTl9UWVBFLlNDQUxFX1JBVElORydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLXJhdGluZyBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW3JlcXVpcmVkXT1cInRydWVcIj48L2xpYi1xdWVzdGlvbi10eXBlLXJhdGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWlucHV0XCIgKm5nSWY9XCJxdWVzdGlvbj8ucXVlc3Rpb25UeXBlPy5jb2RlID09PSAnUVVFU1RJT05fVFlQRS5TVUJKRUNUSVZFX1JJQ0hfVEVYVCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10eXBlLWVkaXRvciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgW2NvbmZpZ109XCJjb25maWdcIiBmaWVsZEF0dHJpYnV0ZXM9XCJxdWVzdGlvblwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+PC9saWItcXVlc3Rpb24tdHlwZS1lZGl0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci1pbnB1dFwiICpuZ0lmPVwicXVlc3Rpb24/LnF1ZXN0aW9uVHlwZT8uY29kZSA9PT0gJ1FVRVNUSU9OX1RZUEUuU0VBUkNIQUJMRV9JTlBVVF9NRE0nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdHlwZS1zZWFyY2hhYmxlLXRhZyBbb3B0aW9uc0xpc3RdPVwicXVlc3Rpb25cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLmlkXCIgZmllbGRBdHRyaWJ1dGVzPVwicXVlc3Rpb25cIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvbGliLXF1ZXN0aW9uLXR5cGUtc2VhcmNoYWJsZS10YWc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4YW1wbGUtYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAgW2Rpc2FibGVkXT1cIiFmb3JtR3JvdXAudmFsaWRcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|