@csmart/ngc-smart-victim 1.14.43 → 1.14.45
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +25 -25
- package/esm2020/csmart-ngc-smart-victim.mjs +4 -4
- package/esm2020/lib/caseNote/caseNote.component.mjs +194 -194
- package/esm2020/lib/common-dialog/common-dialog.component.mjs +23 -23
- package/esm2020/lib/common-dialog/common-dialog.module.mjs +34 -34
- package/esm2020/lib/common-dialog/common-dialog.service.mjs +33 -33
- package/esm2020/lib/contact/contact.component.mjs +140 -140
- package/esm2020/lib/email.services.mjs +42 -42
- package/esm2020/lib/intake.service.mjs +57 -57
- package/esm2020/lib/safetyPlan/serviceProvider.component.mjs +99 -99
- package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -116
- package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -340
- package/esm2020/lib/shared/app.shared.module.mjs +215 -215
- package/esm2020/lib/shared/validators/date.validator.mjs +59 -59
- package/esm2020/lib/shared/validators/index.mjs +1 -1
- package/esm2020/lib/smart-victim-delete-confirm.component.mjs +44 -44
- package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +1104 -1104
- package/esm2020/lib/smart-victim.component.mjs +314 -314
- package/esm2020/lib/smart-victim.model.mjs +133 -133
- package/esm2020/lib/smart-victim.module.mjs +128 -128
- package/esm2020/lib/smart-victim.service.mjs +352 -352
- package/esm2020/lib/victim-routing.module.mjs +41 -41
- package/esm2020/lib/victimSearch/VictimSearchFilter.mjs +3 -3
- package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +38 -38
- package/esm2020/public-api.mjs +11 -11
- package/fesm2015/csmart-ngc-smart-victim.mjs +3150 -3150
- package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -1
- package/fesm2020/csmart-ngc-smart-victim.mjs +3138 -3138
- package/fesm2020/csmart-ngc-smart-victim.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/caseNote/caseNote.component.d.ts +51 -51
- package/lib/common-dialog/common-dialog.component.d.ts +14 -14
- package/lib/common-dialog/common-dialog.module.d.ts +8 -8
- package/lib/common-dialog/common-dialog.service.d.ts +11 -11
- package/lib/contact/contact.component.d.ts +40 -40
- package/lib/email.services.d.ts +11 -11
- package/lib/intake.service.d.ts +57 -57
- package/lib/safetyPlan/serviceProvider.component.d.ts +19 -19
- package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -54
- package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -62
- package/lib/shared/app.shared.module.d.ts +33 -33
- package/lib/shared/validators/date.validator.d.ts +9 -9
- package/lib/shared/validators/index.d.ts +1 -1
- package/lib/smart-victim-delete-confirm.component.d.ts +12 -12
- package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -129
- package/lib/smart-victim.component.d.ts +68 -68
- package/lib/smart-victim.model.d.ts +205 -205
- package/lib/smart-victim.module.d.ts +49 -49
- package/lib/smart-victim.service.d.ts +71 -71
- package/lib/victim-routing.module.d.ts +7 -7
- package/lib/victimSearch/VictimSearchFilter.d.ts +7 -7
- package/lib/victimSearch/victimSearchForm.component.d.ts +14 -14
- package/package.json +1 -1
- package/public-api.d.ts +7 -7
@@ -1,352 +1,352 @@
|
|
1
|
-
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
2
|
-
import { Injectable, Inject } from '@angular/core';
|
3
|
-
import { SMART_LOOKUP_SERVICE_URL, SMART_OFFENDER_SERVICE_URL, SMART_VICTIM_SERVICE_URL } from './smart-victim.model';
|
4
|
-
import { throwError as observableThrowError } from 'rxjs';
|
5
|
-
import { map, catchError } from 'rxjs/operators';
|
6
|
-
import { Apollo } from 'apollo-angular';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/common/http";
|
9
|
-
import * as i2 from "apollo-angular";
|
10
|
-
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
11
|
-
const options = { headers: headers };
|
12
|
-
export class NgcSmartVictimService {
|
13
|
-
constructor(http, smartOffenderServiceUrl, smartLookupServiceUrl, smartVictimServiceUrl, apollo) {
|
14
|
-
this.http = http;
|
15
|
-
this.smartOffenderServiceUrl = smartOffenderServiceUrl;
|
16
|
-
this.smartLookupServiceUrl = smartLookupServiceUrl;
|
17
|
-
this.smartVictimServiceUrl = smartVictimServiceUrl;
|
18
|
-
this.apollo = apollo;
|
19
|
-
this.serviceApiUrl = 'https://smart-service-test.azurewebsites.net/graphql';
|
20
|
-
}
|
21
|
-
// getVictimInsurances(offenderId: any) {
|
22
|
-
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?offenderId=' + offenderId).pipe();
|
23
|
-
// }
|
24
|
-
// getVictimInsurance(id: any) {
|
25
|
-
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
26
|
-
// }
|
27
|
-
// postVictimInsurance(val: any) {
|
28
|
-
// return this.http.post(this.smartOffenderServiceUrl + '/VictimInsurances', val).pipe();
|
29
|
-
// }
|
30
|
-
// putVictimInsurance(id: any, val: any) {
|
31
|
-
// return this.http.put(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id, val).pipe();
|
32
|
-
// }
|
33
|
-
// deleteVictimInsurance(id: any) {
|
34
|
-
// return this.http.delete(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
35
|
-
// }
|
36
|
-
// getVictimInsuranceTypes() {
|
37
|
-
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceTypes').pipe();
|
38
|
-
// }
|
39
|
-
// getVictimInsurancePolicyHolders() {
|
40
|
-
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsurancePolicyHolders').pipe();
|
41
|
-
// }
|
42
|
-
// getVictimInsuranceSwitchReasons() {
|
43
|
-
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceSwitchReasons').pipe();
|
44
|
-
// }
|
45
|
-
// getVictimInsuranceProviders() {
|
46
|
-
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProvider').pipe();
|
47
|
-
// }
|
48
|
-
// getVictimInsuranceProvider(id) {
|
49
|
-
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProviders/' + id).pipe();
|
50
|
-
// }
|
51
|
-
// postProviderInformation(val: any) {
|
52
|
-
// return this.http.post(this.smartLookupServiceUrl + '/VictimInsuranceProviders', val).pipe();
|
53
|
-
// }
|
54
|
-
getCurrentHousing(offenderId) {
|
55
|
-
return this.http
|
56
|
-
.get(this.smartOffenderServiceUrl + 'Housings/current/' + offenderId)
|
57
|
-
.pipe();
|
58
|
-
}
|
59
|
-
handleError(error) {
|
60
|
-
console.error(error);
|
61
|
-
return observableThrowError(error.json().error || 'Server error');
|
62
|
-
}
|
63
|
-
getDrugsTypes() {
|
64
|
-
return this.http.get(this.smartLookupServiceUrl + 'DrugTypes', options).pipe(map(res => res));
|
65
|
-
}
|
66
|
-
getDocketList(offenderId) {
|
67
|
-
const queryString = `
|
68
|
-
{
|
69
|
-
findDockets(input: { where: { offenderId:${offenderId} } }) {
|
70
|
-
totalCount
|
71
|
-
message
|
72
|
-
data {
|
73
|
-
docketId
|
74
|
-
docketNumber
|
75
|
-
|
76
|
-
}
|
77
|
-
}
|
78
|
-
}`;
|
79
|
-
return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
|
80
|
-
console.log('dockets for this offender:', data.findDockets.data);
|
81
|
-
return data.findDockets.data;
|
82
|
-
}));
|
83
|
-
}
|
84
|
-
getSupportTypes() {
|
85
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimSupportTypes', options).pipe(map(res => res));
|
86
|
-
}
|
87
|
-
getPrefixes() {
|
88
|
-
return this.http.get(this.smartLookupServiceUrl + 'Prefixes', options).pipe(map(res => res));
|
89
|
-
}
|
90
|
-
getSuffixes() {
|
91
|
-
return this.http.get(this.smartLookupServiceUrl + 'Suffixes', options).pipe(map(res => res));
|
92
|
-
}
|
93
|
-
getRelationshipTypes() {
|
94
|
-
return this.http.get(this.smartLookupServiceUrl + 'RelationshipTypes', options).pipe(map(res => res));
|
95
|
-
}
|
96
|
-
getGenders() {
|
97
|
-
return this.http.get(this.smartLookupServiceUrl + 'Genders', options).pipe(map(res => res));
|
98
|
-
}
|
99
|
-
getWeaponTypes() {
|
100
|
-
return this.http.get(this.smartLookupServiceUrl + 'WeaponTypes', options).pipe(map(res => res));
|
101
|
-
}
|
102
|
-
getFlagOptionYesNoUnknowns() {
|
103
|
-
return this.http.get(this.smartLookupServiceUrl + 'FlagOptionYesNoUnknowns', options).pipe(map(res => {
|
104
|
-
return res;
|
105
|
-
}));
|
106
|
-
}
|
107
|
-
getContactTypes() {
|
108
|
-
return this.http.get(this.smartLookupServiceUrl + 'ContactTypes', options).pipe(map(res => {
|
109
|
-
return res;
|
110
|
-
}));
|
111
|
-
}
|
112
|
-
getContactMethods() {
|
113
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimContactMethods', options).pipe(map(res => {
|
114
|
-
return res;
|
115
|
-
}));
|
116
|
-
}
|
117
|
-
getContactBys() {
|
118
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
119
|
-
return res;
|
120
|
-
}));
|
121
|
-
}
|
122
|
-
getVictimContactPurposes() {
|
123
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
124
|
-
return res;
|
125
|
-
}));
|
126
|
-
}
|
127
|
-
getVictimServiceTypes() {
|
128
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceTypes', options).pipe(map(res => {
|
129
|
-
return res;
|
130
|
-
}));
|
131
|
-
}
|
132
|
-
getVictimServiceStatus() {
|
133
|
-
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceStatus', options).pipe(map(res => {
|
134
|
-
return res;
|
135
|
-
}));
|
136
|
-
}
|
137
|
-
getvVictimServiceTypeProgramProviders() {
|
138
|
-
return this.http.get(this.smartLookupServiceUrl + 'vVictimServiceTypeProgramProviders', options).pipe(map(res => {
|
139
|
-
return res;
|
140
|
-
}));
|
141
|
-
}
|
142
|
-
getVictim(val) {
|
143
|
-
return this.http.get(this.smartVictimServiceUrl + 'Victims/' + val, options).pipe(map(res => {
|
144
|
-
console.log('victim return data');
|
145
|
-
console.log(res);
|
146
|
-
return res;
|
147
|
-
}));
|
148
|
-
}
|
149
|
-
getVictimAdvocate(val) {
|
150
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimAdvocates/' + val, options).pipe(map(res => {
|
151
|
-
return res;
|
152
|
-
}));
|
153
|
-
}
|
154
|
-
getVictimGuardian(val) {
|
155
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimGuardians/' + val, options).pipe(map(res => {
|
156
|
-
return res;
|
157
|
-
}));
|
158
|
-
}
|
159
|
-
postVictims(val) {
|
160
|
-
const tempVal = JSON.stringify(val);
|
161
|
-
return this.http.post(this.smartVictimServiceUrl + 'Victims', tempVal, options).pipe(map(res => { return res; }));
|
162
|
-
}
|
163
|
-
putVictims(id, val) {
|
164
|
-
const tempVal = JSON.stringify(val);
|
165
|
-
return this.http.put(this.smartVictimServiceUrl + 'Victims/' + id, tempVal, options).pipe(map(res => { return res; }));
|
166
|
-
}
|
167
|
-
putVictimAdvocate(id, val) {
|
168
|
-
let body;
|
169
|
-
body = JSON.stringify(val);
|
170
|
-
return this.http.put(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, body, options).pipe(map(res => { return res; }));
|
171
|
-
}
|
172
|
-
postVictimAdvocate(id, val) {
|
173
|
-
const tempVal = JSON.stringify(val);
|
174
|
-
return this.http.post(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, tempVal, options).pipe(map(res => { return res; }));
|
175
|
-
}
|
176
|
-
putVictimGuardian(id, val) {
|
177
|
-
console.log('update victim guardian');
|
178
|
-
console.log(val);
|
179
|
-
const tempVal = JSON.stringify(val);
|
180
|
-
return this.http.put(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
181
|
-
}
|
182
|
-
postVictimGuardian(id, val) {
|
183
|
-
const tempVal = JSON.stringify(val);
|
184
|
-
return this.http.post(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
185
|
-
}
|
186
|
-
getVictimDrugUse(val) {
|
187
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimDrugUses/' + val, options).pipe(map((res) => {
|
188
|
-
return res;
|
189
|
-
}));
|
190
|
-
}
|
191
|
-
putVictimDrugUse(id, val) {
|
192
|
-
const tempVal = JSON.stringify(val);
|
193
|
-
return this.http.put(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
194
|
-
}
|
195
|
-
postVictimDrugUse(id, val) {
|
196
|
-
const tempVal = JSON.stringify(val);
|
197
|
-
return this.http.post(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
198
|
-
}
|
199
|
-
putVictimWeaponUse(id, val) {
|
200
|
-
const tempVal = JSON.stringify(val);
|
201
|
-
return this.http.put(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
202
|
-
}
|
203
|
-
postVictimWeaponUse(id, val) {
|
204
|
-
const tempVal = JSON.stringify(val);
|
205
|
-
return this.http.post(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
206
|
-
}
|
207
|
-
putVictimSupport(id, val) {
|
208
|
-
const tempVal = JSON.stringify(val);
|
209
|
-
return this.http.put(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
210
|
-
}
|
211
|
-
postVictimSupport(id, val) {
|
212
|
-
const tempVal = JSON.stringify(val);
|
213
|
-
return this.http.post(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
214
|
-
}
|
215
|
-
deleteVictims(val, staffId) {
|
216
|
-
return this.http.delete(this.smartVictimServiceUrl + 'Victims/' + val + '?staffId=' + staffId, options).pipe(map(res => { return res; }));
|
217
|
-
}
|
218
|
-
// //==============Victim Serive===================================
|
219
|
-
getVictims(offenderId) {
|
220
|
-
return this.http.get(this.smartVictimServiceUrl + 'Victims/offender/' + offenderId)
|
221
|
-
.pipe(map((res) => {
|
222
|
-
return res;
|
223
|
-
}), catchError(this.handleError));
|
224
|
-
}
|
225
|
-
getVictimsByFilter(filter) {
|
226
|
-
return this.http
|
227
|
-
.post(this.smartVictimServiceUrl + '/Victims', JSON.stringify(filter), { headers: headers })
|
228
|
-
.pipe(map((res) => {
|
229
|
-
return res;
|
230
|
-
}), catchError(this.handleError));
|
231
|
-
}
|
232
|
-
getVictimListByFilter(filter) {
|
233
|
-
console.log('filer in service');
|
234
|
-
console.log(filter);
|
235
|
-
return this.http
|
236
|
-
.post(this.smartVictimServiceUrl + 'vVictims/Filter', JSON.stringify(filter), options)
|
237
|
-
.pipe();
|
238
|
-
}
|
239
|
-
getCasetNotes(victimId) {
|
240
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimCaseNotes/victim/' + victimId)
|
241
|
-
.pipe(map((res) => {
|
242
|
-
return res;
|
243
|
-
}), catchError(this.handleError));
|
244
|
-
}
|
245
|
-
addCaseNote(caseNote) {
|
246
|
-
let body;
|
247
|
-
body = JSON.stringify(caseNote);
|
248
|
-
return this.http
|
249
|
-
.post(this.smartVictimServiceUrl + 'VictimCaseNotes/', body, options);
|
250
|
-
}
|
251
|
-
updateCaseNote(caseNote) {
|
252
|
-
let body;
|
253
|
-
body = JSON.stringify(caseNote);
|
254
|
-
return this.http
|
255
|
-
.put(this.smartVictimServiceUrl + 'VictimCaseNotes/' + caseNote.victimCaseNoteId, body, options);
|
256
|
-
}
|
257
|
-
deleteCaseNote(id, staffId) {
|
258
|
-
return this.http.delete(`${this.smartVictimServiceUrl}VictimCaseNotes/${id}?staffId=${staffId}`);
|
259
|
-
}
|
260
|
-
getContacts(victimId) {
|
261
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimContacts/victim/' + victimId)
|
262
|
-
.pipe(map((res) => {
|
263
|
-
return res;
|
264
|
-
}), catchError(this.handleError));
|
265
|
-
}
|
266
|
-
addContact(contact) {
|
267
|
-
let body;
|
268
|
-
body = JSON.stringify(contact);
|
269
|
-
return this.http
|
270
|
-
.post(this.smartVictimServiceUrl + 'VictimContacts/', body, options);
|
271
|
-
}
|
272
|
-
updateContact(contact) {
|
273
|
-
let body;
|
274
|
-
body = JSON.stringify(contact);
|
275
|
-
return this.http
|
276
|
-
.put(this.smartVictimServiceUrl + 'VictimContacts/' + contact.victimContactId, body, options);
|
277
|
-
}
|
278
|
-
getSafetyPlans(victimId) {
|
279
|
-
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victim/' + victimId)
|
280
|
-
.pipe(map((res) => {
|
281
|
-
return res;
|
282
|
-
}), catchError(this.handleError));
|
283
|
-
}
|
284
|
-
getVictimServices(victimServiceId) {
|
285
|
-
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victimServiceId/' + victimServiceId)
|
286
|
-
.pipe(map((res) => {
|
287
|
-
return res;
|
288
|
-
}), catchError(this.handleError));
|
289
|
-
}
|
290
|
-
getVictimServiceDetail(victimServiceId) {
|
291
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceDetails/' + victimServiceId)
|
292
|
-
.pipe(map((res) => {
|
293
|
-
return res;
|
294
|
-
}), catchError(this.handleError));
|
295
|
-
}
|
296
|
-
addSafetyPlan(victimSafetyPlan) {
|
297
|
-
let body;
|
298
|
-
body = JSON.stringify(victimSafetyPlan);
|
299
|
-
return this.http
|
300
|
-
.post(this.smartVictimServiceUrl + 'VictimServices/', body, options)
|
301
|
-
.pipe();
|
302
|
-
}
|
303
|
-
updateSafetyPlan(victimSafetyPlan) {
|
304
|
-
let body;
|
305
|
-
body = JSON.stringify(victimSafetyPlan);
|
306
|
-
return this.http
|
307
|
-
.put(this.smartVictimServiceUrl + 'VictimServices/' + victimSafetyPlan.victimServiceId, body, options);
|
308
|
-
}
|
309
|
-
addVictimServiceStatus(victimServiceStatusHistory) {
|
310
|
-
let body;
|
311
|
-
body = JSON.stringify(victimServiceStatusHistory);
|
312
|
-
return this.http
|
313
|
-
.post(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/', body, options);
|
314
|
-
}
|
315
|
-
getServiceStatusHistories(victimServiceId) {
|
316
|
-
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/victimServiceId/' + victimServiceId)
|
317
|
-
.pipe(map((res) => {
|
318
|
-
return res;
|
319
|
-
}), catchError(this.handleError));
|
320
|
-
}
|
321
|
-
deleteSafetyPlan(victimServiceId, staffId) {
|
322
|
-
return this.http.delete(`${this.smartVictimServiceUrl}VictimServices/${victimServiceId}?staffId=${staffId}`);
|
323
|
-
}
|
324
|
-
addPlanProvider(victimServiceDetail) {
|
325
|
-
let body;
|
326
|
-
body = JSON.stringify(victimServiceDetail);
|
327
|
-
return this.http
|
328
|
-
.post(this.smartVictimServiceUrl + 'VictimServiceDetails/', body, options)
|
329
|
-
.pipe();
|
330
|
-
}
|
331
|
-
deleteProvider(victimProgramProviderId, staffId) {
|
332
|
-
return this.http.delete(`${this.smartVictimServiceUrl}VictimServiceDetails/${victimProgramProviderId}?staffId=${staffId}`);
|
333
|
-
}
|
334
|
-
}
|
335
|
-
/** @nocollapse */ NgcSmartVictimService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, deps: [{ token: i1.HttpClient }, { token: SMART_OFFENDER_SERVICE_URL }, { token: SMART_LOOKUP_SERVICE_URL }, { token: SMART_VICTIM_SERVICE_URL }, { token: i2.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
336
|
-
/** @nocollapse */ NgcSmartVictimService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, providedIn: 'root' });
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, decorators: [{
|
338
|
-
type: Injectable,
|
339
|
-
args: [{
|
340
|
-
providedIn: 'root'
|
341
|
-
}]
|
342
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
343
|
-
type: Inject,
|
344
|
-
args: [SMART_OFFENDER_SERVICE_URL]
|
345
|
-
}] }, { type: undefined, decorators: [{
|
346
|
-
type: Inject,
|
347
|
-
args: [SMART_LOOKUP_SERVICE_URL]
|
348
|
-
}] }, { type: undefined, decorators: [{
|
349
|
-
type: Inject,
|
350
|
-
args: [SMART_VICTIM_SERVICE_URL]
|
351
|
-
}] }, { type: i2.Apollo }]; } });
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUMsd0JBQXdCLEVBRVcsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQWMsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUMsVUFBVSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSXhDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQUN4RSxNQUFNLE9BQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUtyQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLElBQWdCLEVBRVUsdUJBQStCLEVBQ2pDLHFCQUE2QixFQUM3QixxQkFBNkIsRUFDL0QsTUFBYztRQUxKLFNBQUksR0FBSixJQUFJLENBQVk7UUFFVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVE7UUFDakMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO1FBQzdCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtRQUMvRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLGtCQUFhLEdBQUksc0RBQXNELENBQUM7SUFRMUUsQ0FBQztJQUVQLHlDQUF5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QUMsbUJBQXVDO1FBQ2pELElBQUksSUFBWSxDQUFDO1FBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNmLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN6RSxJQUFJLEVBQUUsQ0FBQztJQUVaLENBQUM7SUFFSCxjQUFjLENBQUMsdUJBQStCLEVBQUUsT0FBZTtRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQix3QkFBd0IsdUJBQXVCLFlBQVksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUU3SCxDQUFDOztxSUF2aEJZLHFCQUFxQiw0Q0FJdEIsMEJBQTBCLGFBQzFCLHdCQUF3QixhQUN4Qix3QkFBd0I7eUlBTnZCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsSHR0cFJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNNQVJUX0xPT0tVUF9TRVJWSUNFX1VSTCwgU01BUlRfT0ZGRU5ERVJfU0VSVklDRV9VUkwsU01BUlRfVklDVElNX1NFUlZJQ0VfVVJMLFxyXG4gICAgVmljdGltTGlzdEZpbHRlcixWaWN0aW1EcnVnVXNlLFZpY3RpbSxWaWN0aW1TYWZldHlQbGFuLFxyXG4gICBDYXNlTm90ZSxDb250YWN0LFZpY3RpbVNlcnZpY2VEZXRhaWwsVmljdGltU2VydmljZVN0YXR1c0hpc3RvcnksVmljdGltQWR2b2NhdGUsVmljdGltR3VhcmRpYW59IGZyb20gJy4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCxjYXRjaEVycm9yLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuXHJcblxyXG5cclxuY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XHJcbmNvbnN0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IGhlYWRlcnMgfTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nY1NtYXJ0VmljdGltU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzZXJ2aWNlQXBpVXJsID0gICdodHRwczovL3NtYXJ0LXNlcnZpY2UtdGVzdC5henVyZXdlYnNpdGVzLm5ldC9ncmFwaHFsJztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgIFxyXG4gICAgQEluamVjdChTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydE9mZmVuZGVyU2VydmljZVVybDogc3RyaW5nLFxyXG4gICAgQEluamVjdChTTUFSVF9MT09LVVBfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnRMb29rdXBTZXJ2aWNlVXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KFNNQVJUX1ZJQ1RJTV9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydFZpY3RpbVNlcnZpY2VVcmw6IHN0cmluZyxcclxuICAgIHByaXZhdGUgYXBvbGxvOiBBcG9sbG9cclxuXHJcbiAgICApIHsgfVxyXG5cclxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2VzKG9mZmVuZGVySWQ6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/b2ZmZW5kZXJJZD0nICsgb2ZmZW5kZXJJZCkucGlwZSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0VmljdGltSW5zdXJhbmNlKGlkOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMvP2lkPScgKyBpZCkucGlwZSgpO1xyXG4gIC8vIH0gXHJcblxyXG4gIC8vIHBvc3RWaWN0aW1JbnN1cmFuY2UodmFsOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VzJywgdmFsKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwdXRWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMvP2lkPScgKyBpZCwgdmFsKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBkZWxldGVWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkKS5waXBlKCk7XHJcbiAgLy8gfVxyXG4gIFxyXG4gIC8vIGdldFZpY3RpbUluc3VyYW5jZVR5cGVzKCkge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlVHlwZXMnKS5waXBlKCk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2VQb2xpY3lIb2xkZXJzKCkge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUG9saWN5SG9sZGVycycpLnBpcGUoKTtcclxuICAvLyB9XHJcblxyXG4vLyAgIGdldFZpY3RpbUluc3VyYW5jZVN3aXRjaFJlYXNvbnMoKSB7XHJcbi8vICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VTd2l0Y2hSZWFzb25zJykucGlwZSgpO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlUHJvdmlkZXJzKCkge1xyXG4vLyAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUHJvdmlkZXInKS5waXBlKCk7XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRWaWN0aW1JbnN1cmFuY2VQcm92aWRlcihpZCkge1xyXG4vLyAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVycy8nICsgaWQpLnBpcGUoKTtcclxuLy8gfVxyXG5cclxuLy8gICBwb3N0UHJvdmlkZXJJbmZvcm1hdGlvbih2YWw6IGFueSkge1xyXG4vLyAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVycycsIHZhbCkucGlwZSgpO1xyXG4vLyAgIH1cclxuXHJcbmdldEN1cnJlbnRIb3VzaW5nKG9mZmVuZGVySWQ6IG51bWJlcikge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAuZ2V0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnSG91c2luZ3MvY3VycmVudC8nICsgb2ZmZW5kZXJJZClcclxuICAgIC5waXBlKCk7XHJcbn1cclxuXHJcbnByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSkge1xyXG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvci5qc29uKCkuZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xyXG59XHJcblxyXG5nZXREcnVnc1R5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdEcnVnVHlwZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldERvY2tldExpc3Qob2ZmZW5kZXJJZDogbnVtYmVyKSB7XHJcbiAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAge1xyXG4gICAgZmluZERvY2tldHMoaW5wdXQ6IHsgd2hlcmU6IHsgb2ZmZW5kZXJJZDoke29mZmVuZGVySWR9IH0gfSkge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICAgIG1lc3NhZ2VcclxuICAgICAgZGF0YSB7XHJcbiAgICAgICAgZG9ja2V0SWRcclxuICAgICAgICBkb2NrZXROdW1iZXJcclxuICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9YDtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KS5waXBlKFxyXG4gICAgbWFwKCh7IGRhdGEgfSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnZG9ja2V0cyBmb3IgdGhpcyBvZmZlbmRlcjonLCBkYXRhLmZpbmREb2NrZXRzLmRhdGEpO1xyXG4gICAgICByZXR1cm4gZGF0YS5maW5kRG9ja2V0cy5kYXRhO1xyXG4gICAgfSkpO1xyXG5cclxuXHJcbn1cclxuXHJcbmdldFN1cHBvcnRUeXBlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICdWaWN0aW1TdXBwb3J0VHlwZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFByZWZpeGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdQcmVmaXhlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0U3VmZml4ZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1N1ZmZpeGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRSZWxhdGlvbnNoaXBUeXBlcygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnUmVsYXRpb25zaGlwVHlwZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldEdlbmRlcnMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ0dlbmRlcnMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiByZXMpXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmdldFdlYXBvblR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdXZWFwb25UeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHJlcylcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0RmxhZ09wdGlvblllc05vVW5rbm93bnMoKSB7XHJcbiByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICdGbGFnT3B0aW9uWWVzTm9Vbmtub3ducycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRDb250YWN0VHlwZXMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnQ29udGFjdFR5cGVzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuIGdldENvbnRhY3RNZXRob2RzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RNZXRob2RzJywgb3B0aW9ucykucGlwZVxyXG4gICAgICAgKFxyXG4gICAgICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICB9KVxyXG4gICAgICAgKTtcclxuIH1cclxuIGdldENvbnRhY3RCeXMoKXtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICdWaWN0aW1Db250YWN0UHVycG9zZXMnLCBvcHRpb25zKS5waXBlXHJcbiAgKFxyXG4gIG1hcChyZXMgPT4geyBcclxuICAgICAgcmV0dXJuIHJlcztcclxuICB9KVxyXG4gICk7XHJcblxyXG4gfVxyXG5cclxuZ2V0VmljdGltQ29udGFjdFB1cnBvc2VzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RQdXJwb3NlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgIChcclxuICAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgfSlcclxuICAgICAgICk7XHJcbiB9XHJcblxyXG4gZ2V0VmljdGltU2VydmljZVR5cGVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VUeXBlcycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgIChcclxuICAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgfSlcclxuICAgICAgICk7XHJcbiB9XHJcbiBnZXRWaWN0aW1TZXJ2aWNlU3RhdHVzKCkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VTdGF0dXMnLCBvcHRpb25zKS5waXBlXHJcbiAgICAgICAoXHJcbiAgICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgIH0pXHJcbiAgICAgICApO1xyXG4gfVxyXG5cclxuIGdldHZWaWN0aW1TZXJ2aWNlVHlwZVByb2dyYW1Qcm92aWRlcnMoKSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAndlZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVycycsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgIChcclxuICAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgfSlcclxuICAgICAgICk7XHJcbiB9XHJcblxyXG5cclxuZ2V0VmljdGltKHZhbDogYW55KSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgKFxyXG4gICAgbWFwKHJlcyA9PiB7IFxyXG4gICAgICBjb25zb2xlLmxvZygndmljdGltIHJldHVybiBkYXRhJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlcyk7ICBcclxuICAgICAgcmV0dXJuIHJlcztcclxuXHJcbiAgICB9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5nZXRWaWN0aW1BZHZvY2F0ZSh2YWw6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuXHJcbiAgICAgIG1hcChyZXMgPT4geyBcclxuICAgICAgICAgIHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0VmljdGltR3VhcmRpYW4odmFsOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIHZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcblxyXG4gICAgICBtYXAocmVzID0+IHsgXHJcbiAgICAgICAgICByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnBvc3RWaWN0aW1zKHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsKyAnVmljdGltcycsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wdXRWaWN0aW1zKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcclxuICAgICAgKFxyXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wdXRWaWN0aW1BZHZvY2F0ZShpZDogYW55LCB2YWw6IFZpY3RpbUFkdm9jYXRlKSB7XHJcbiAgbGV0IGJvZHk6IHN0cmluZztcclxuICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1BZHZvY2F0ZXMvJyArIGlkLCBib2R5LCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxuXHJcblxyXG5cclxuXHJcbn1cclxuXHJcbnBvc3RWaWN0aW1BZHZvY2F0ZShpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1BZHZvY2F0ZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucHV0VmljdGltR3VhcmRpYW4oaWQ6IGFueSwgdmFsOiBhbnkpIHtcclxuICBjb25zb2xlLmxvZygndXBkYXRlIHZpY3RpbSBndWFyZGlhbicpO1xyXG4gIGNvbnNvbGUubG9nKHZhbCk7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltR3VhcmRpYW5zLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnBvc3RWaWN0aW1HdWFyZGlhbihpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxuZ2V0VmljdGltRHJ1Z1VzZSh2YWw6IGFueSk6IE9ic2VydmFibGU8VmljdGltRHJ1Z1VzZVtdPntcclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1EcnVnVXNlcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKChyZXM6IFZpY3RpbURydWdVc2VbXSkgPT4geyBcclxuICAgICAgICAgICAgcmV0dXJuIHJlczt9KVxyXG4gICAgICApO1xyXG59XHJcblxyXG5wdXRWaWN0aW1EcnVnVXNlKGlkOiBhbnksIHZhbDogVmljdGltRHJ1Z1VzZVtdKSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbURydWdVc2VzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnBvc3RWaWN0aW1EcnVnVXNlKGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbURydWdVc2VzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnB1dFZpY3RpbVdlYXBvblVzZShpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVdlYXBvblVzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXHJcbiAgICAgIChcclxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcclxuICAgICAgKTtcclxufVxyXG5cclxucG9zdFZpY3RpbVdlYXBvblVzZShpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1XZWFwb25Vc2VzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxucHV0VmljdGltU3VwcG9ydChpZDogYW55LCB2YWw6IGFueSkge1xyXG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVN1cHBvcnRzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbnBvc3RWaWN0aW1TdXBwb3J0KGlkOiBhbnksIHZhbDogYW55KSB7XHJcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVN1cHBvcnRzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxyXG4gICAgICAoXHJcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgICAgICk7XHJcbn1cclxuXHJcbmRlbGV0ZVZpY3RpbXModmFsOiBhbnksICBzdGFmZklkOiBudW1iZXIpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCsgJ1ZpY3RpbXMvJyArIHZhbCArICc/c3RhZmZJZD0nKyBzdGFmZklkLCBvcHRpb25zKS5waXBlXHJcbiAgKFxyXG4gIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXHJcbiAgKTtcclxufVxyXG5cclxuXHJcbi8vIC8vPT09PT09PT09PT09PT1WaWN0aW0gU2VyaXZlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbmdldFZpY3RpbXMob2ZmZW5kZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8VmljdGltW10+IHtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgICsgJ1ZpY3RpbXMvb2ZmZW5kZXIvJyArIG9mZmVuZGVySWQpXHJcbiAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICBcclxuICAgICAgcmV0dXJuIHJlcztcclxuICB9KVxyXG4gICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxufVxyXG5cclxuZ2V0VmljdGltc0J5RmlsdGVyKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcik6IE9ic2VydmFibGU8VmljdGltW10+e1xyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJy9WaWN0aW1zJywgSlNPTi5zdHJpbmdpZnkoZmlsdGVyKSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXHJcbiAgICAgICAgICAucGlwZShtYXAoKHJlczogVmljdGltW10pID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxufVxyXG5cclxuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikgXHJcbntcclxuICBjb25zb2xlLmxvZygnZmlsZXIgaW4gc2VydmljZScpO1xyXG4gIGNvbnNvbGUubG9nKGZpbHRlcik7XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHBcclxuICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICd2VmljdGltcy9GaWx0ZXInLCBKU09OLnN0cmluZ2lmeShmaWx0ZXIpLCBvcHRpb25zKVxyXG4gIC5waXBlKCk7XHJcblxyXG59XHJcblxyXG5cclxuZ2V0Q2FzZXROb3Rlcyh2aWN0aW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8Q2FzZU5vdGVbXT4ge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1DYXNlTm90ZXMvdmljdGltLycgKyB2aWN0aW1JZClcclxuICAucGlwZShtYXAoKHJlczogQ2FzZU5vdGVbXSkgPT4ge1xyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gIH0pXHJcbiAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xyXG4gXHJcblxyXG59XHJcbmFkZENhc2VOb3RlKGNhc2VOb3RlOiBDYXNlTm90ZSkge1xyXG4gIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjYXNlTm90ZSk7XHJcbiAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy8nLCBib2R5LCBvcHRpb25zKTtcclxuIFxyXG4gfVxyXG5cclxuIFxyXG51cGRhdGVDYXNlTm90ZShjYXNlTm90ZTogQ2FzZU5vdGUpe1xyXG5cclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjYXNlTm90ZSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy8nICsgY2FzZU5vdGUudmljdGltQ2FzZU5vdGVJZCwgYm9keSwgb3B0aW9ucylcclxuXHJcbiAgICAgIDtcclxuIH1cclxuXHJcbmRlbGV0ZUNhc2VOb3RlKGlkOiBudW1iZXIsIHN0YWZmSWQ6IG51bWJlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybH1WaWN0aW1DYXNlTm90ZXMvJHtpZH0/c3RhZmZJZD0ke3N0YWZmSWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250YWN0cyh2aWN0aW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8Q29udGFjdFtdPiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvdmljdGltLycgKyB2aWN0aW1JZClcclxuICAgIC5waXBlKG1hcCgocmVzOiBDb250YWN0W10pID0+IHtcclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfSlcclxuICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuICBcclxuICB9XHJcbiAgYWRkQ29udGFjdChjb250YWN0OiBDb250YWN0KSB7XHJcbiAgICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjb250YWN0KTtcclxuICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RzLycsIGJvZHksIG9wdGlvbnMpO1xyXG4gICBcclxuICAgfVxyXG4gIFxyXG4gICBcclxuICB1cGRhdGVDb250YWN0KGNvbnRhY3Q6IENvbnRhY3Qpe1xyXG4gIFxyXG4gICAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjb250YWN0KTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RzLycgKyBjb250YWN0LnZpY3RpbUNvbnRhY3RJZCwgYm9keSwgb3B0aW9ucylcclxuICBcclxuICAgICAgICA7XHJcbiAgIH1cclxuICBcclxuZ2V0U2FmZXR5UGxhbnModmljdGltSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNhZmV0eVBsYW5bXT4ge1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAndlZpY3RpbVNlcnZpY2VMaXN0cy92aWN0aW0vJyArIHZpY3RpbUlkKVxyXG4gICAgICAucGlwZShtYXAoKHJlczogVmljdGltU2FmZXR5UGxhbltdKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbiAgfVxyXG5cclxuZ2V0VmljdGltU2VydmljZXModmljdGltU2VydmljZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlIDxWaWN0aW1TYWZldHlQbGFuW10+IHtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ3ZWaWN0aW1TZXJ2aWNlTGlzdHMvdmljdGltU2VydmljZUlkLycgKyB2aWN0aW1TZXJ2aWNlSWQpXHJcbiAgICAgIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TYWZldHlQbGFuW10pID0+IHtcclxuICAgICAgICAgIHJldHVybiAgcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbiAgXHJcbiAgfVxyXG5cclxuZ2V0VmljdGltU2VydmljZURldGFpbCh2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNlcnZpY2VEZXRhaWxbXT4ge1xyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlRGV0YWlscy8nICsgdmljdGltU2VydmljZUlkKVxyXG4gIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlRGV0YWlsW10pID0+IHtcclxuICBcclxuICAgICAgcmV0dXJuIHJlcztcclxuICB9KVxyXG4gICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcclxuXHJcbn1cclxuYWRkU2FmZXR5UGxhbih2aWN0aW1TYWZldHlQbGFuOiBWaWN0aW1TYWZldHlQbGFuKSB7XHJcblxyXG4gIGxldCBib2R5OiBzdHJpbmc7XHJcbiAgICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2FmZXR5UGxhbik7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlcy8nLCBib2R5LCBvcHRpb25zKVxyXG4gICAgICAgICAgLnBpcGUoKTtcclxuICBcclxuICB9XHJcbnVwZGF0ZVNhZmV0eVBsYW4odmljdGltU2FmZXR5UGxhbjogVmljdGltU2FmZXR5UGxhbil7XHJcblxyXG4gICAgICBsZXQgYm9keTogc3RyaW5nO1xyXG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2FmZXR5UGxhbik7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZXMvJyArIHZpY3RpbVNhZmV0eVBsYW4udmljdGltU2VydmljZUlkLCBib2R5LCBvcHRpb25zKVxyXG5cclxuICAgICAgICAgIDtcclxuICAgICB9XHJcbmFkZFZpY3RpbVNlcnZpY2VTdGF0dXModmljdGltU2VydmljZVN0YXR1c0hpc3Rvcnk6IFZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3J5KXtcclxuICBsZXQgYm9keTogc3RyaW5nO1xyXG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3JpZXMvJywgYm9keSwgb3B0aW9ucyk7XHJcblxyXG4gIH1cclxuXHJcbmdldFNlcnZpY2VTdGF0dXNIaXN0b3JpZXModmljdGltU2VydmljZUlkOiBudW1iZXIpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3JpZXMvdmljdGltU2VydmljZUlkLycgKyB2aWN0aW1TZXJ2aWNlSWQpXHJcbiAgLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeVtdKSA9PiB7XHJcbiAgXHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxyXG4gICk7XHJcbn1cclxuXHJcbmRlbGV0ZVNhZmV0eVBsYW4odmljdGltU2VydmljZUlkOiBudW1iZXIsIHN0YWZmSWQ6IG51bWJlcikge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbVNlcnZpY2VzLyR7dmljdGltU2VydmljZUlkfT9zdGFmZklkPSR7c3RhZmZJZH1gKTtcclxuXHJcbiAgfVxyXG5hZGRQbGFuUHJvdmlkZXIodmljdGltU2VydmljZURldGFpbDpWaWN0aW1TZXJ2aWNlRGV0YWlsKXtcclxuICAgICAgbGV0IGJvZHk6IHN0cmluZztcclxuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNlcnZpY2VEZXRhaWwpO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VEZXRhaWxzLycsIGJvZHksIG9wdGlvbnMpXHJcbiAgICAgIC5waXBlKCk7XHJcblxyXG4gIH1cclxuXHJcbmRlbGV0ZVByb3ZpZGVyKHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmcsIHN0YWZmSWQ6IG51bWJlcil7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmx9VmljdGltU2VydmljZURldGFpbHMvJHt2aWN0aW1Qcm9ncmFtUHJvdmlkZXJJZH0/c3RhZmZJZD0ke3N0YWZmSWR9YCk7XHJcblxyXG59XHJcblxyXG5cclxuXHJcbn1cclxuIl19
|
1
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
3
|
+
import { SMART_LOOKUP_SERVICE_URL, SMART_OFFENDER_SERVICE_URL, SMART_VICTIM_SERVICE_URL } from './smart-victim.model';
|
4
|
+
import { throwError as observableThrowError } from 'rxjs';
|
5
|
+
import { map, catchError } from 'rxjs/operators';
|
6
|
+
import { Apollo } from 'apollo-angular';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@angular/common/http";
|
9
|
+
import * as i2 from "apollo-angular";
|
10
|
+
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
|
11
|
+
const options = { headers: headers };
|
12
|
+
export class NgcSmartVictimService {
|
13
|
+
constructor(http, smartOffenderServiceUrl, smartLookupServiceUrl, smartVictimServiceUrl, apollo) {
|
14
|
+
this.http = http;
|
15
|
+
this.smartOffenderServiceUrl = smartOffenderServiceUrl;
|
16
|
+
this.smartLookupServiceUrl = smartLookupServiceUrl;
|
17
|
+
this.smartVictimServiceUrl = smartVictimServiceUrl;
|
18
|
+
this.apollo = apollo;
|
19
|
+
this.serviceApiUrl = 'https://smart-service-test.azurewebsites.net/graphql';
|
20
|
+
}
|
21
|
+
// getVictimInsurances(offenderId: any) {
|
22
|
+
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?offenderId=' + offenderId).pipe();
|
23
|
+
// }
|
24
|
+
// getVictimInsurance(id: any) {
|
25
|
+
// return this.http.get(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
26
|
+
// }
|
27
|
+
// postVictimInsurance(val: any) {
|
28
|
+
// return this.http.post(this.smartOffenderServiceUrl + '/VictimInsurances', val).pipe();
|
29
|
+
// }
|
30
|
+
// putVictimInsurance(id: any, val: any) {
|
31
|
+
// return this.http.put(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id, val).pipe();
|
32
|
+
// }
|
33
|
+
// deleteVictimInsurance(id: any) {
|
34
|
+
// return this.http.delete(this.smartOffenderServiceUrl + '/VictimInsurances/?id=' + id).pipe();
|
35
|
+
// }
|
36
|
+
// getVictimInsuranceTypes() {
|
37
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceTypes').pipe();
|
38
|
+
// }
|
39
|
+
// getVictimInsurancePolicyHolders() {
|
40
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsurancePolicyHolders').pipe();
|
41
|
+
// }
|
42
|
+
// getVictimInsuranceSwitchReasons() {
|
43
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceSwitchReasons').pipe();
|
44
|
+
// }
|
45
|
+
// getVictimInsuranceProviders() {
|
46
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProvider').pipe();
|
47
|
+
// }
|
48
|
+
// getVictimInsuranceProvider(id) {
|
49
|
+
// return this.http.get(this.smartLookupServiceUrl + '/VictimInsuranceProviders/' + id).pipe();
|
50
|
+
// }
|
51
|
+
// postProviderInformation(val: any) {
|
52
|
+
// return this.http.post(this.smartLookupServiceUrl + '/VictimInsuranceProviders', val).pipe();
|
53
|
+
// }
|
54
|
+
getCurrentHousing(offenderId) {
|
55
|
+
return this.http
|
56
|
+
.get(this.smartOffenderServiceUrl + 'Housings/current/' + offenderId)
|
57
|
+
.pipe();
|
58
|
+
}
|
59
|
+
handleError(error) {
|
60
|
+
console.error(error);
|
61
|
+
return observableThrowError(error.json().error || 'Server error');
|
62
|
+
}
|
63
|
+
getDrugsTypes() {
|
64
|
+
return this.http.get(this.smartLookupServiceUrl + 'DrugTypes', options).pipe(map(res => res));
|
65
|
+
}
|
66
|
+
getDocketList(offenderId) {
|
67
|
+
const queryString = `
|
68
|
+
{
|
69
|
+
findDockets(input: { where: { offenderId:${offenderId} } }) {
|
70
|
+
totalCount
|
71
|
+
message
|
72
|
+
data {
|
73
|
+
docketId
|
74
|
+
docketNumber
|
75
|
+
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}`;
|
79
|
+
return this.http.post(this.serviceApiUrl, { query: queryString }).pipe(map(({ data }) => {
|
80
|
+
console.log('dockets for this offender:', data.findDockets.data);
|
81
|
+
return data.findDockets.data;
|
82
|
+
}));
|
83
|
+
}
|
84
|
+
getSupportTypes() {
|
85
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimSupportTypes', options).pipe(map(res => res));
|
86
|
+
}
|
87
|
+
getPrefixes() {
|
88
|
+
return this.http.get(this.smartLookupServiceUrl + 'Prefixes', options).pipe(map(res => res));
|
89
|
+
}
|
90
|
+
getSuffixes() {
|
91
|
+
return this.http.get(this.smartLookupServiceUrl + 'Suffixes', options).pipe(map(res => res));
|
92
|
+
}
|
93
|
+
getRelationshipTypes() {
|
94
|
+
return this.http.get(this.smartLookupServiceUrl + 'RelationshipTypes', options).pipe(map(res => res));
|
95
|
+
}
|
96
|
+
getGenders() {
|
97
|
+
return this.http.get(this.smartLookupServiceUrl + 'Genders', options).pipe(map(res => res));
|
98
|
+
}
|
99
|
+
getWeaponTypes() {
|
100
|
+
return this.http.get(this.smartLookupServiceUrl + 'WeaponTypes', options).pipe(map(res => res));
|
101
|
+
}
|
102
|
+
getFlagOptionYesNoUnknowns() {
|
103
|
+
return this.http.get(this.smartLookupServiceUrl + 'FlagOptionYesNoUnknowns', options).pipe(map(res => {
|
104
|
+
return res;
|
105
|
+
}));
|
106
|
+
}
|
107
|
+
getContactTypes() {
|
108
|
+
return this.http.get(this.smartLookupServiceUrl + 'ContactTypes', options).pipe(map(res => {
|
109
|
+
return res;
|
110
|
+
}));
|
111
|
+
}
|
112
|
+
getContactMethods() {
|
113
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactMethods', options).pipe(map(res => {
|
114
|
+
return res;
|
115
|
+
}));
|
116
|
+
}
|
117
|
+
getContactBys() {
|
118
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
119
|
+
return res;
|
120
|
+
}));
|
121
|
+
}
|
122
|
+
getVictimContactPurposes() {
|
123
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimContactPurposes', options).pipe(map(res => {
|
124
|
+
return res;
|
125
|
+
}));
|
126
|
+
}
|
127
|
+
getVictimServiceTypes() {
|
128
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceTypes', options).pipe(map(res => {
|
129
|
+
return res;
|
130
|
+
}));
|
131
|
+
}
|
132
|
+
getVictimServiceStatus() {
|
133
|
+
return this.http.get(this.smartLookupServiceUrl + 'VictimServiceStatus', options).pipe(map(res => {
|
134
|
+
return res;
|
135
|
+
}));
|
136
|
+
}
|
137
|
+
getvVictimServiceTypeProgramProviders() {
|
138
|
+
return this.http.get(this.smartLookupServiceUrl + 'vVictimServiceTypeProgramProviders', options).pipe(map(res => {
|
139
|
+
return res;
|
140
|
+
}));
|
141
|
+
}
|
142
|
+
getVictim(val) {
|
143
|
+
return this.http.get(this.smartVictimServiceUrl + 'Victims/' + val, options).pipe(map(res => {
|
144
|
+
console.log('victim return data');
|
145
|
+
console.log(res);
|
146
|
+
return res;
|
147
|
+
}));
|
148
|
+
}
|
149
|
+
getVictimAdvocate(val) {
|
150
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimAdvocates/' + val, options).pipe(map(res => {
|
151
|
+
return res;
|
152
|
+
}));
|
153
|
+
}
|
154
|
+
getVictimGuardian(val) {
|
155
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimGuardians/' + val, options).pipe(map(res => {
|
156
|
+
return res;
|
157
|
+
}));
|
158
|
+
}
|
159
|
+
postVictims(val) {
|
160
|
+
const tempVal = JSON.stringify(val);
|
161
|
+
return this.http.post(this.smartVictimServiceUrl + 'Victims', tempVal, options).pipe(map(res => { return res; }));
|
162
|
+
}
|
163
|
+
putVictims(id, val) {
|
164
|
+
const tempVal = JSON.stringify(val);
|
165
|
+
return this.http.put(this.smartVictimServiceUrl + 'Victims/' + id, tempVal, options).pipe(map(res => { return res; }));
|
166
|
+
}
|
167
|
+
putVictimAdvocate(id, val) {
|
168
|
+
let body;
|
169
|
+
body = JSON.stringify(val);
|
170
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, body, options).pipe(map(res => { return res; }));
|
171
|
+
}
|
172
|
+
postVictimAdvocate(id, val) {
|
173
|
+
const tempVal = JSON.stringify(val);
|
174
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimAdvocates/' + id, tempVal, options).pipe(map(res => { return res; }));
|
175
|
+
}
|
176
|
+
putVictimGuardian(id, val) {
|
177
|
+
console.log('update victim guardian');
|
178
|
+
console.log(val);
|
179
|
+
const tempVal = JSON.stringify(val);
|
180
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
181
|
+
}
|
182
|
+
postVictimGuardian(id, val) {
|
183
|
+
const tempVal = JSON.stringify(val);
|
184
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimGuardians/' + id, tempVal, options).pipe(map(res => { return res; }));
|
185
|
+
}
|
186
|
+
getVictimDrugUse(val) {
|
187
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimDrugUses/' + val, options).pipe(map((res) => {
|
188
|
+
return res;
|
189
|
+
}));
|
190
|
+
}
|
191
|
+
putVictimDrugUse(id, val) {
|
192
|
+
const tempVal = JSON.stringify(val);
|
193
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
194
|
+
}
|
195
|
+
postVictimDrugUse(id, val) {
|
196
|
+
const tempVal = JSON.stringify(val);
|
197
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimDrugUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
198
|
+
}
|
199
|
+
putVictimWeaponUse(id, val) {
|
200
|
+
const tempVal = JSON.stringify(val);
|
201
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
202
|
+
}
|
203
|
+
postVictimWeaponUse(id, val) {
|
204
|
+
const tempVal = JSON.stringify(val);
|
205
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimWeaponUses/' + id, tempVal, options).pipe(map(res => { return res; }));
|
206
|
+
}
|
207
|
+
putVictimSupport(id, val) {
|
208
|
+
const tempVal = JSON.stringify(val);
|
209
|
+
return this.http.put(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
210
|
+
}
|
211
|
+
postVictimSupport(id, val) {
|
212
|
+
const tempVal = JSON.stringify(val);
|
213
|
+
return this.http.post(this.smartVictimServiceUrl + 'VictimSupports/' + id, tempVal, options).pipe(map(res => { return res; }));
|
214
|
+
}
|
215
|
+
deleteVictims(val, staffId) {
|
216
|
+
return this.http.delete(this.smartVictimServiceUrl + 'Victims/' + val + '?staffId=' + staffId, options).pipe(map(res => { return res; }));
|
217
|
+
}
|
218
|
+
// //==============Victim Serive===================================
|
219
|
+
getVictims(offenderId) {
|
220
|
+
return this.http.get(this.smartVictimServiceUrl + 'Victims/offender/' + offenderId)
|
221
|
+
.pipe(map((res) => {
|
222
|
+
return res;
|
223
|
+
}), catchError(this.handleError));
|
224
|
+
}
|
225
|
+
getVictimsByFilter(filter) {
|
226
|
+
return this.http
|
227
|
+
.post(this.smartVictimServiceUrl + '/Victims', JSON.stringify(filter), { headers: headers })
|
228
|
+
.pipe(map((res) => {
|
229
|
+
return res;
|
230
|
+
}), catchError(this.handleError));
|
231
|
+
}
|
232
|
+
getVictimListByFilter(filter) {
|
233
|
+
console.log('filer in service');
|
234
|
+
console.log(filter);
|
235
|
+
return this.http
|
236
|
+
.post(this.smartVictimServiceUrl + 'vVictims/Filter', JSON.stringify(filter), options)
|
237
|
+
.pipe();
|
238
|
+
}
|
239
|
+
getCasetNotes(victimId) {
|
240
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimCaseNotes/victim/' + victimId)
|
241
|
+
.pipe(map((res) => {
|
242
|
+
return res;
|
243
|
+
}), catchError(this.handleError));
|
244
|
+
}
|
245
|
+
addCaseNote(caseNote) {
|
246
|
+
let body;
|
247
|
+
body = JSON.stringify(caseNote);
|
248
|
+
return this.http
|
249
|
+
.post(this.smartVictimServiceUrl + 'VictimCaseNotes/', body, options);
|
250
|
+
}
|
251
|
+
updateCaseNote(caseNote) {
|
252
|
+
let body;
|
253
|
+
body = JSON.stringify(caseNote);
|
254
|
+
return this.http
|
255
|
+
.put(this.smartVictimServiceUrl + 'VictimCaseNotes/' + caseNote.victimCaseNoteId, body, options);
|
256
|
+
}
|
257
|
+
deleteCaseNote(id, staffId) {
|
258
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimCaseNotes/${id}?staffId=${staffId}`);
|
259
|
+
}
|
260
|
+
getContacts(victimId) {
|
261
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimContacts/victim/' + victimId)
|
262
|
+
.pipe(map((res) => {
|
263
|
+
return res;
|
264
|
+
}), catchError(this.handleError));
|
265
|
+
}
|
266
|
+
addContact(contact) {
|
267
|
+
let body;
|
268
|
+
body = JSON.stringify(contact);
|
269
|
+
return this.http
|
270
|
+
.post(this.smartVictimServiceUrl + 'VictimContacts/', body, options);
|
271
|
+
}
|
272
|
+
updateContact(contact) {
|
273
|
+
let body;
|
274
|
+
body = JSON.stringify(contact);
|
275
|
+
return this.http
|
276
|
+
.put(this.smartVictimServiceUrl + 'VictimContacts/' + contact.victimContactId, body, options);
|
277
|
+
}
|
278
|
+
getSafetyPlans(victimId) {
|
279
|
+
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victim/' + victimId)
|
280
|
+
.pipe(map((res) => {
|
281
|
+
return res;
|
282
|
+
}), catchError(this.handleError));
|
283
|
+
}
|
284
|
+
getVictimServices(victimServiceId) {
|
285
|
+
return this.http.get(this.smartVictimServiceUrl + 'vVictimServiceLists/victimServiceId/' + victimServiceId)
|
286
|
+
.pipe(map((res) => {
|
287
|
+
return res;
|
288
|
+
}), catchError(this.handleError));
|
289
|
+
}
|
290
|
+
getVictimServiceDetail(victimServiceId) {
|
291
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceDetails/' + victimServiceId)
|
292
|
+
.pipe(map((res) => {
|
293
|
+
return res;
|
294
|
+
}), catchError(this.handleError));
|
295
|
+
}
|
296
|
+
addSafetyPlan(victimSafetyPlan) {
|
297
|
+
let body;
|
298
|
+
body = JSON.stringify(victimSafetyPlan);
|
299
|
+
return this.http
|
300
|
+
.post(this.smartVictimServiceUrl + 'VictimServices/', body, options)
|
301
|
+
.pipe();
|
302
|
+
}
|
303
|
+
updateSafetyPlan(victimSafetyPlan) {
|
304
|
+
let body;
|
305
|
+
body = JSON.stringify(victimSafetyPlan);
|
306
|
+
return this.http
|
307
|
+
.put(this.smartVictimServiceUrl + 'VictimServices/' + victimSafetyPlan.victimServiceId, body, options);
|
308
|
+
}
|
309
|
+
addVictimServiceStatus(victimServiceStatusHistory) {
|
310
|
+
let body;
|
311
|
+
body = JSON.stringify(victimServiceStatusHistory);
|
312
|
+
return this.http
|
313
|
+
.post(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/', body, options);
|
314
|
+
}
|
315
|
+
getServiceStatusHistories(victimServiceId) {
|
316
|
+
return this.http.get(this.smartVictimServiceUrl + 'VictimServiceStatusHistories/victimServiceId/' + victimServiceId)
|
317
|
+
.pipe(map((res) => {
|
318
|
+
return res;
|
319
|
+
}), catchError(this.handleError));
|
320
|
+
}
|
321
|
+
deleteSafetyPlan(victimServiceId, staffId) {
|
322
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimServices/${victimServiceId}?staffId=${staffId}`);
|
323
|
+
}
|
324
|
+
addPlanProvider(victimServiceDetail) {
|
325
|
+
let body;
|
326
|
+
body = JSON.stringify(victimServiceDetail);
|
327
|
+
return this.http
|
328
|
+
.post(this.smartVictimServiceUrl + 'VictimServiceDetails/', body, options)
|
329
|
+
.pipe();
|
330
|
+
}
|
331
|
+
deleteProvider(victimProgramProviderId, staffId) {
|
332
|
+
return this.http.delete(`${this.smartVictimServiceUrl}VictimServiceDetails/${victimProgramProviderId}?staffId=${staffId}`);
|
333
|
+
}
|
334
|
+
}
|
335
|
+
/** @nocollapse */ NgcSmartVictimService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, deps: [{ token: i1.HttpClient }, { token: SMART_OFFENDER_SERVICE_URL }, { token: SMART_LOOKUP_SERVICE_URL }, { token: SMART_VICTIM_SERVICE_URL }, { token: i2.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
|
336
|
+
/** @nocollapse */ NgcSmartVictimService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, providedIn: 'root' });
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimService, decorators: [{
|
338
|
+
type: Injectable,
|
339
|
+
args: [{
|
340
|
+
providedIn: 'root'
|
341
|
+
}]
|
342
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
343
|
+
type: Inject,
|
344
|
+
args: [SMART_OFFENDER_SERVICE_URL]
|
345
|
+
}] }, { type: undefined, decorators: [{
|
346
|
+
type: Inject,
|
347
|
+
args: [SMART_LOOKUP_SERVICE_URL]
|
348
|
+
}] }, { type: undefined, decorators: [{
|
349
|
+
type: Inject,
|
350
|
+
args: [SMART_VICTIM_SERVICE_URL]
|
351
|
+
}] }, { type: i2.Apollo }]; } });
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUMsd0JBQXdCLEVBRVcsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQWMsVUFBVSxJQUFJLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUMsVUFBVSxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSXhDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQUN4RSxNQUFNLE9BQU8sR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUtyQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLElBQWdCLEVBRVUsdUJBQStCLEVBQ2pDLHFCQUE2QixFQUM3QixxQkFBNkIsRUFDL0QsTUFBYztRQUxKLFNBQUksR0FBSixJQUFJLENBQVk7UUFFVSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVE7UUFDakMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO1FBQzdCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtRQUMvRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLGtCQUFhLEdBQUksc0RBQXNELENBQUM7SUFRMUUsQ0FBQztJQUVQLHlDQUF5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QUMsbUJBQXVDO1FBQ2pELElBQUksSUFBWSxDQUFDO1FBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNmLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN6RSxJQUFJLEVBQUUsQ0FBQztJQUVaLENBQUM7SUFFSCxjQUFjLENBQUMsdUJBQStCLEVBQUUsT0FBZTtRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQix3QkFBd0IsdUJBQXVCLFlBQVksT0FBTyxFQUFFLENBQUMsQ0FBQztJQUU3SCxDQUFDOztxSUF2aEJZLHFCQUFxQiw0Q0FJdEIsMEJBQTBCLGFBQzFCLHdCQUF3QixhQUN4Qix3QkFBd0I7eUlBTnZCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsSHR0cFJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU01BUlRfTE9PS1VQX1NFUlZJQ0VfVVJMLCBTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCxTTUFSVF9WSUNUSU1fU0VSVklDRV9VUkwsXG4gICAgVmljdGltTGlzdEZpbHRlcixWaWN0aW1EcnVnVXNlLFZpY3RpbSxWaWN0aW1TYWZldHlQbGFuLFxuICAgQ2FzZU5vdGUsQ29udGFjdCxWaWN0aW1TZXJ2aWNlRGV0YWlsLFZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3J5LFZpY3RpbUFkdm9jYXRlLFZpY3RpbUd1YXJkaWFufSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCxjYXRjaEVycm9yLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5cblxuXG5jb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcbmNvbnN0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IGhlYWRlcnMgfTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzZXJ2aWNlQXBpVXJsID0gICdodHRwczovL3NtYXJ0LXNlcnZpY2UtdGVzdC5henVyZXdlYnNpdGVzLm5ldC9ncmFwaHFsJztcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgXG4gICAgQEluamVjdChTTUFSVF9PRkZFTkRFUl9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydE9mZmVuZGVyU2VydmljZVVybDogc3RyaW5nLFxuICAgIEBJbmplY3QoU01BUlRfTE9PS1VQX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0TG9va3VwU2VydmljZVVybDogc3RyaW5nLFxuICAgIEBJbmplY3QoU01BUlRfVklDVElNX1NFUlZJQ0VfVVJMKSBwcml2YXRlIHNtYXJ0VmljdGltU2VydmljZVVybDogc3RyaW5nLFxuICAgIHByaXZhdGUgYXBvbGxvOiBBcG9sbG9cblxuICAgICkgeyB9XG5cbiAgLy8gZ2V0VmljdGltSW5zdXJhbmNlcyhvZmZlbmRlcklkOiBhbnkpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0T2ZmZW5kZXJTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VzLz9vZmZlbmRlcklkPScgKyBvZmZlbmRlcklkKS5waXBlKCk7XG4gIC8vIH1cblxuICAvLyBnZXRWaWN0aW1JbnN1cmFuY2UoaWQ6IGFueSkge1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZXMvP2lkPScgKyBpZCkucGlwZSgpO1xuICAvLyB9IFxuXG4gIC8vIHBvc3RWaWN0aW1JbnN1cmFuY2UodmFsOiBhbnkpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcycsIHZhbCkucGlwZSgpO1xuICAvLyB9XG5cbiAgLy8gcHV0VmljdGltSW5zdXJhbmNlKGlkOiBhbnksIHZhbDogYW55KSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkLCB2YWwpLnBpcGUoKTtcbiAgLy8gfVxuXG4gIC8vIGRlbGV0ZVZpY3RpbUluc3VyYW5jZShpZDogYW55KSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodGhpcy5zbWFydE9mZmVuZGVyU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlcy8/aWQ9JyArIGlkKS5waXBlKCk7XG4gIC8vIH1cbiAgXG4gIC8vIGdldFZpY3RpbUluc3VyYW5jZVR5cGVzKCkge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVR5cGVzJykucGlwZSgpO1xuICAvLyB9XG5cbiAgLy8gZ2V0VmljdGltSW5zdXJhbmNlUG9saWN5SG9sZGVycygpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VQb2xpY3lIb2xkZXJzJykucGlwZSgpO1xuICAvLyB9XG5cbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlU3dpdGNoUmVhc29ucygpIHtcbi8vICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJy9WaWN0aW1JbnN1cmFuY2VTd2l0Y2hSZWFzb25zJykucGlwZSgpO1xuLy8gICB9XG5cbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlUHJvdmlkZXJzKCkge1xuLy8gICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVyJykucGlwZSgpO1xuLy8gICB9XG5cbi8vICAgZ2V0VmljdGltSW5zdXJhbmNlUHJvdmlkZXIoaWQpIHtcbi8vICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICcvVmljdGltSW5zdXJhbmNlUHJvdmlkZXJzLycgKyBpZCkucGlwZSgpO1xuLy8gfVxuXG4vLyAgIHBvc3RQcm92aWRlckluZm9ybWF0aW9uKHZhbDogYW55KSB7XG4vLyAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnL1ZpY3RpbUluc3VyYW5jZVByb3ZpZGVycycsIHZhbCkucGlwZSgpO1xuLy8gICB9XG5cbmdldEN1cnJlbnRIb3VzaW5nKG9mZmVuZGVySWQ6IG51bWJlcikge1xuXG4gIHJldHVybiB0aGlzLmh0dHBcbiAgICAuZ2V0KHRoaXMuc21hcnRPZmZlbmRlclNlcnZpY2VVcmwgKyAnSG91c2luZ3MvY3VycmVudC8nICsgb2ZmZW5kZXJJZClcbiAgICAucGlwZSgpO1xufVxuXG5wcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpIHtcbiAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvci5qc29uKCkuZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xufVxuXG5nZXREcnVnc1R5cGVzKCkge1xuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnRHJ1Z1R5cGVzJywgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiByZXMpXG4gICAgICApO1xufVxuXG5nZXREb2NrZXRMaXN0KG9mZmVuZGVySWQ6IG51bWJlcikge1xuICBjb25zdCBxdWVyeVN0cmluZyA9IGBcbiAge1xuICAgIGZpbmREb2NrZXRzKGlucHV0OiB7IHdoZXJlOiB7IG9mZmVuZGVySWQ6JHtvZmZlbmRlcklkfSB9IH0pIHtcbiAgICAgIHRvdGFsQ291bnRcbiAgICAgIG1lc3NhZ2VcbiAgICAgIGRhdGEge1xuICAgICAgICBkb2NrZXRJZFxuICAgICAgICBkb2NrZXROdW1iZXJcbiAgICAgIFxuICAgICAgfVxuICAgIH1cbiAgfWA7XG5cbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5zZXJ2aWNlQXBpVXJsLCB7IHF1ZXJ5OiBxdWVyeVN0cmluZyB9KS5waXBlKFxuICAgIG1hcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdkb2NrZXRzIGZvciB0aGlzIG9mZmVuZGVyOicsIGRhdGEuZmluZERvY2tldHMuZGF0YSk7XG4gICAgICByZXR1cm4gZGF0YS5maW5kRG9ja2V0cy5kYXRhO1xuICAgIH0pKTtcblxuXG59XG5cbmdldFN1cHBvcnRUeXBlcygpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydFR5cGVzJywgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiByZXMpXG4gICAgICApO1xufVxuXG5nZXRQcmVmaXhlcygpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1ByZWZpeGVzJywgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiByZXMpXG4gICAgICApO1xufVxuXG5nZXRTdWZmaXhlcygpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1N1ZmZpeGVzJywgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiByZXMpXG4gICAgICApO1xufVxuXG5nZXRSZWxhdGlvbnNoaXBUeXBlcygpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgICsgJ1JlbGF0aW9uc2hpcFR5cGVzJywgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiByZXMpXG4gICAgICApO1xufVxuXG5nZXRHZW5kZXJzKCkge1xuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCAgKyAnR2VuZGVycycsIG9wdGlvbnMpLnBpcGVcbiAgICAgIChcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxuICAgICAgKTtcbn1cblxuZ2V0V2VhcG9uVHlwZXMoKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICArICdXZWFwb25UeXBlcycsIG9wdGlvbnMpLnBpcGVcbiAgICAgIChcbiAgICAgIG1hcChyZXMgPT4gcmVzKVxuICAgICAgKTtcbn1cblxuZ2V0RmxhZ09wdGlvblllc05vVW5rbm93bnMoKSB7XG4gcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnRmxhZ09wdGlvblllc05vVW5rbm93bnMnLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgXG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH0pXG4gICAgICApO1xufVxuXG5nZXRDb250YWN0VHlwZXMoKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ0NvbnRhY3RUeXBlcycsIG9wdGlvbnMpLnBpcGVcbiAgICAgICAoXG4gICAgICAgbWFwKHJlcyA9PiB7IFxuICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgIH0pXG4gICAgICAgKTtcbiB9XG4gZ2V0Q29udGFjdE1ldGhvZHMoKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RNZXRob2RzJywgb3B0aW9ucykucGlwZVxuICAgICAgIChcbiAgICAgICBtYXAocmVzID0+IHsgXG4gICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgfSlcbiAgICAgICApO1xuIH1cbiBnZXRDb250YWN0QnlzKCl7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RQdXJwb3NlcycsIG9wdGlvbnMpLnBpcGVcbiAgKFxuICBtYXAocmVzID0+IHsgXG4gICAgICByZXR1cm4gcmVzO1xuICB9KVxuICApO1xuXG4gfVxuXG5nZXRWaWN0aW1Db250YWN0UHVycG9zZXMoKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RQdXJwb3NlcycsIG9wdGlvbnMpLnBpcGVcbiAgICAgICAoXG4gICAgICAgbWFwKHJlcyA9PiB7IFxuICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgIH0pXG4gICAgICAgKTtcbiB9XG5cbiBnZXRWaWN0aW1TZXJ2aWNlVHlwZXMoKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRMb29rdXBTZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VUeXBlcycsIG9wdGlvbnMpLnBpcGVcbiAgICAgICAoXG4gICAgICAgbWFwKHJlcyA9PiB7IFxuICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgIH0pXG4gICAgICAgKTtcbiB9XG4gZ2V0VmljdGltU2VydmljZVN0YXR1cygpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydExvb2t1cFNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVN0YXR1cycsIG9wdGlvbnMpLnBpcGVcbiAgICAgICAoXG4gICAgICAgbWFwKHJlcyA9PiB7IFxuICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgIH0pXG4gICAgICAgKTtcbiB9XG5cbiBnZXR2VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzKCkge1xuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0TG9va3VwU2VydmljZVVybCArICd2VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJzJywgb3B0aW9ucykucGlwZVxuICAgICAgIChcbiAgICAgICBtYXAocmVzID0+IHsgXG4gICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgfSlcbiAgICAgICApO1xuIH1cblxuXG5nZXRWaWN0aW0odmFsOiBhbnkpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXG4gIChcbiAgICBtYXAocmVzID0+IHsgXG4gICAgICBjb25zb2xlLmxvZygndmljdGltIHJldHVybiBkYXRhJyk7XG4gICAgICBjb25zb2xlLmxvZyhyZXMpOyAgXG4gICAgICByZXR1cm4gcmVzO1xuXG4gICAgfSlcbiAgICAgICk7XG59XG5cbmdldFZpY3RpbUFkdm9jYXRlKHZhbDogYW55KSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUFkdm9jYXRlcy8nICsgdmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG5cbiAgICAgIG1hcChyZXMgPT4geyBcbiAgICAgICAgICByZXR1cm4gcmVzO30pXG4gICAgICApO1xufVxuXG5nZXRWaWN0aW1HdWFyZGlhbih2YWw6IGFueSkge1xuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIHZhbCwgb3B0aW9ucykucGlwZVxuICAgICAgKFxuXG4gICAgICBtYXAocmVzID0+IHsgXG4gICAgICAgICAgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxucG9zdFZpY3RpbXModmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCsgJ1ZpY3RpbXMnLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxucHV0VmljdGltcyhpZDogYW55LCB2YWw6IGFueSkge1xuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcbiAgICAgIChcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXG4gICAgICApO1xufVxuXG5wdXRWaWN0aW1BZHZvY2F0ZShpZDogYW55LCB2YWw6IFZpY3RpbUFkdm9jYXRlKSB7XG4gIGxldCBib2R5OiBzdHJpbmc7XG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1BZHZvY2F0ZXMvJyArIGlkLCBib2R5LCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcblxuXG5cblxufVxuXG5wb3N0VmljdGltQWR2b2NhdGUoaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1BZHZvY2F0ZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxucHV0VmljdGltR3VhcmRpYW4oaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc29sZS5sb2coJ3VwZGF0ZSB2aWN0aW0gZ3VhcmRpYW4nKTtcbiAgY29uc29sZS5sb2codmFsKTtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUd1YXJkaWFucy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcbiAgICAgIChcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXG4gICAgICApO1xufVxuXG5wb3N0VmljdGltR3VhcmRpYW4oaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1HdWFyZGlhbnMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxuZ2V0VmljdGltRHJ1Z1VzZSh2YWw6IGFueSk6IE9ic2VydmFibGU8VmljdGltRHJ1Z1VzZVtdPntcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIHZhbCwgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKChyZXM6IFZpY3RpbURydWdVc2VbXSkgPT4geyBcbiAgICAgICAgICAgIHJldHVybiByZXM7fSlcbiAgICAgICk7XG59XG5cbnB1dFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBWaWN0aW1EcnVnVXNlW10pIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG5cbiAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltRHJ1Z1VzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxucG9zdFZpY3RpbURydWdVc2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1EcnVnVXNlcy8nICsgaWQsIHRlbXBWYWwsIG9wdGlvbnMpLnBpcGVcbiAgICAgIChcbiAgICAgIG1hcChyZXMgPT4geyByZXR1cm4gcmVzO30pXG4gICAgICApO1xufVxuXG5wdXRWaWN0aW1XZWFwb25Vc2UoaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVdlYXBvblVzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxucG9zdFZpY3RpbVdlYXBvblVzZShpZDogYW55LCB2YWw6IGFueSkge1xuICBjb25zdCB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkodmFsKTtcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVdlYXBvblVzZXMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cbnB1dFZpY3RpbVN1cHBvcnQoaWQ6IGFueSwgdmFsOiBhbnkpIHtcbiAgY29uc3QgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVN1cHBvcnRzLycgKyBpZCwgdGVtcFZhbCwgb3B0aW9ucykucGlwZVxuICAgICAgKFxuICAgICAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcbiAgICAgICk7XG59XG5cbnBvc3RWaWN0aW1TdXBwb3J0KGlkOiBhbnksIHZhbDogYW55KSB7XG4gIGNvbnN0IHRlbXBWYWwgPSBKU09OLnN0cmluZ2lmeSh2YWwpO1xuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU3VwcG9ydHMvJyArIGlkLCB0ZW1wVmFsLCBvcHRpb25zKS5waXBlXG4gICAgICAoXG4gICAgICBtYXAocmVzID0+IHsgcmV0dXJuIHJlczt9KVxuICAgICAgKTtcbn1cblxuZGVsZXRlVmljdGltcyh2YWw6IGFueSwgIHN0YWZmSWQ6IG51bWJlcikge1xuICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCsgJ1ZpY3RpbXMvJyArIHZhbCArICc/c3RhZmZJZD0nKyBzdGFmZklkLCBvcHRpb25zKS5waXBlXG4gIChcbiAgbWFwKHJlcyA9PiB7IHJldHVybiByZXM7fSlcbiAgKTtcbn1cblxuXG4vLyAvLz09PT09PT09PT09PT09VmljdGltIFNlcml2ZT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmdldFZpY3RpbXMob2ZmZW5kZXJJZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8VmljdGltW10+IHtcblxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCAgKyAnVmljdGltcy9vZmZlbmRlci8nICsgb2ZmZW5kZXJJZClcbiAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVtdKSA9PiB7XG4gICAgXG4gICAgICByZXR1cm4gcmVzO1xuICB9KVxuICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG59XG5cbmdldFZpY3RpbXNCeUZpbHRlcihmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpOiBPYnNlcnZhYmxlPFZpY3RpbVtdPntcbiAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJy9WaWN0aW1zJywgSlNPTi5zdHJpbmdpZnkoZmlsdGVyKSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pXG4gICAgICAgICAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVtdKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG59XG5cbmdldFZpY3RpbUxpc3RCeUZpbHRlcihmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIFxue1xuICBjb25zb2xlLmxvZygnZmlsZXIgaW4gc2VydmljZScpO1xuICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xuXG4gIHJldHVybiB0aGlzLmh0dHBcbiAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAndlZpY3RpbXMvRmlsdGVyJywgSlNPTi5zdHJpbmdpZnkoZmlsdGVyKSwgb3B0aW9ucylcbiAgLnBpcGUoKTtcblxufVxuXG5cbmdldENhc2V0Tm90ZXModmljdGltSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPENhc2VOb3RlW10+IHtcblxuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1DYXNlTm90ZXMvdmljdGltLycgKyB2aWN0aW1JZClcbiAgLnBpcGUobWFwKChyZXM6IENhc2VOb3RlW10pID0+IHtcbiAgICAgIHJldHVybiByZXM7XG4gIH0pXG4gICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiBcblxufVxuYWRkQ2FzZU5vdGUoY2FzZU5vdGU6IENhc2VOb3RlKSB7XG4gIGxldCBib2R5OiBzdHJpbmc7XG4gICAgICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoY2FzZU5vdGUpO1xuICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgIC5wb3N0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNhc2VOb3Rlcy8nLCBib2R5LCBvcHRpb25zKTtcbiBcbiB9XG5cbiBcbnVwZGF0ZUNhc2VOb3RlKGNhc2VOb3RlOiBDYXNlTm90ZSl7XG5cbiAgbGV0IGJvZHk6IHN0cmluZztcbiAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGNhc2VOb3RlKTtcbiAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1DYXNlTm90ZXMvJyArIGNhc2VOb3RlLnZpY3RpbUNhc2VOb3RlSWQsIGJvZHksIG9wdGlvbnMpXG5cbiAgICAgIDtcbiB9XG5cbmRlbGV0ZUNhc2VOb3RlKGlkOiBudW1iZXIsIHN0YWZmSWQ6IG51bWJlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmx9VmljdGltQ2FzZU5vdGVzLyR7aWR9P3N0YWZmSWQ9JHtzdGFmZklkfWApO1xuICB9XG5cbiAgZ2V0Q29udGFjdHModmljdGltSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPENvbnRhY3RbXT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvdmljdGltLycgKyB2aWN0aW1JZClcbiAgICAucGlwZShtYXAoKHJlczogQ29udGFjdFtdKSA9PiB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSlcbiAgICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIFxuICB9XG4gIGFkZENvbnRhY3QoY29udGFjdDogQ29udGFjdCkge1xuICAgIGxldCBib2R5OiBzdHJpbmc7XG4gICAgICAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShjb250YWN0KTtcbiAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltQ29udGFjdHMvJywgYm9keSwgb3B0aW9ucyk7XG4gICBcbiAgIH1cbiAgXG4gICBcbiAgdXBkYXRlQ29udGFjdChjb250YWN0OiBDb250YWN0KXtcbiAgXG4gICAgbGV0IGJvZHk6IHN0cmluZztcbiAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29udGFjdCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAucHV0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbUNvbnRhY3RzLycgKyBjb250YWN0LnZpY3RpbUNvbnRhY3RJZCwgYm9keSwgb3B0aW9ucylcbiAgXG4gICAgICAgIDtcbiAgIH1cbiAgXG5nZXRTYWZldHlQbGFucyh2aWN0aW1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZSA8VmljdGltU2FmZXR5UGxhbltdPiB7XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ3ZWaWN0aW1TZXJ2aWNlTGlzdHMvdmljdGltLycgKyB2aWN0aW1JZClcbiAgICAgIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TYWZldHlQbGFuW10pID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG5nZXRWaWN0aW1TZXJ2aWNlcyh2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNhZmV0eVBsYW5bXT4ge1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICd2VmljdGltU2VydmljZUxpc3RzL3ZpY3RpbVNlcnZpY2VJZC8nICsgdmljdGltU2VydmljZUlkKVxuICAgICAgLnBpcGUobWFwKChyZXM6IFZpY3RpbVNhZmV0eVBsYW5bXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAgcmVzO1xuICAgICAgfSlcbiAgICAgICxjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgXG4gIH1cblxuZ2V0VmljdGltU2VydmljZURldGFpbCh2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcik6IE9ic2VydmFibGUgPFZpY3RpbVNlcnZpY2VEZXRhaWxbXT4ge1xuXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsICsgJ1ZpY3RpbVNlcnZpY2VEZXRhaWxzLycgKyB2aWN0aW1TZXJ2aWNlSWQpXG4gIC5waXBlKG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlRGV0YWlsW10pID0+IHtcbiAgXG4gICAgICByZXR1cm4gcmVzO1xuICB9KVxuICAsY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG5cbn1cbmFkZFNhZmV0eVBsYW4odmljdGltU2FmZXR5UGxhbjogVmljdGltU2FmZXR5UGxhbikge1xuXG4gIGxldCBib2R5OiBzdHJpbmc7XG4gICAgICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNhZmV0eVBsYW4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlcy8nLCBib2R5LCBvcHRpb25zKVxuICAgICAgICAgIC5waXBlKCk7XG4gIFxuICB9XG51cGRhdGVTYWZldHlQbGFuKHZpY3RpbVNhZmV0eVBsYW46IFZpY3RpbVNhZmV0eVBsYW4pe1xuXG4gICAgICBsZXQgYm9keTogc3RyaW5nO1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KHZpY3RpbVNhZmV0eVBsYW4pO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgIC5wdXQodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZXMvJyArIHZpY3RpbVNhZmV0eVBsYW4udmljdGltU2VydmljZUlkLCBib2R5LCBvcHRpb25zKVxuXG4gICAgICAgICAgO1xuICAgICB9XG5hZGRWaWN0aW1TZXJ2aWNlU3RhdHVzKHZpY3RpbVNlcnZpY2VTdGF0dXNIaXN0b3J5OiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSl7XG4gIGxldCBib2R5OiBzdHJpbmc7XG4gIGJvZHkgPSBKU09OLnN0cmluZ2lmeSh2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeSk7XG4gIHJldHVybiB0aGlzLmh0dHBcbiAgLnBvc3QodGhpcy5zbWFydFZpY3RpbVNlcnZpY2VVcmwgKyAnVmljdGltU2VydmljZVN0YXR1c0hpc3Rvcmllcy8nLCBib2R5LCBvcHRpb25zKTtcblxuICB9XG5cbmdldFNlcnZpY2VTdGF0dXNIaXN0b3JpZXModmljdGltU2VydmljZUlkOiBudW1iZXIpe1xuICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yaWVzL3ZpY3RpbVNlcnZpY2VJZC8nICsgdmljdGltU2VydmljZUlkKVxuICAucGlwZShcbiAgICAgIG1hcCgocmVzOiBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeVtdKSA9PiB7XG4gIFxuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICB9KVxuICAgICAgLGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxuZGVsZXRlU2FmZXR5UGxhbih2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlciwgc3RhZmZJZDogbnVtYmVyKSB7XG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbVNlcnZpY2VzLyR7dmljdGltU2VydmljZUlkfT9zdGFmZklkPSR7c3RhZmZJZH1gKTtcblxuICB9XG5hZGRQbGFuUHJvdmlkZXIodmljdGltU2VydmljZURldGFpbDpWaWN0aW1TZXJ2aWNlRGV0YWlsKXtcbiAgICAgIGxldCBib2R5OiBzdHJpbmc7XG4gICAgICBib2R5ID0gSlNPTi5zdHJpbmdpZnkodmljdGltU2VydmljZURldGFpbCk7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdCh0aGlzLnNtYXJ0VmljdGltU2VydmljZVVybCArICdWaWN0aW1TZXJ2aWNlRGV0YWlscy8nLCBib2R5LCBvcHRpb25zKVxuICAgICAgLnBpcGUoKTtcblxuICB9XG5cbmRlbGV0ZVByb3ZpZGVyKHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmcsIHN0YWZmSWQ6IG51bWJlcil7XG4gIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuc21hcnRWaWN0aW1TZXJ2aWNlVXJsfVZpY3RpbVNlcnZpY2VEZXRhaWxzLyR7dmljdGltUHJvZ3JhbVByb3ZpZGVySWR9P3N0YWZmSWQ9JHtzdGFmZklkfWApO1xuXG59XG5cblxuXG59XG4iXX0=
|