ngx-scandoc 15.2.2 → 16.0.0

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.
Files changed (64) hide show
  1. package/core/components/scan/scan.component.d.ts +3 -1
  2. package/core/components/scan-results/scan-results.component.d.ts +1 -1
  3. package/core/components/webcam/webcam/webcam.component.d.ts +1 -1
  4. package/core/interfaces/config.d.ts +1 -0
  5. package/dialogs/components/scan-profile/scan-profile.component.d.ts +1 -1
  6. package/{esm2020 → esm2022}/core/components/camera-switch/camera-switch.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/core/components/components.module.mjs +21 -21
  8. package/{esm2020 → esm2022}/core/components/manual-scan/manual-scan.component.mjs +4 -4
  9. package/esm2022/core/components/scan/scan.component.mjs +714 -0
  10. package/{esm2020 → esm2022}/core/components/scan-results/scan-results.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/core/components/webcam/webcam/webcam.component.mjs +4 -4
  12. package/{esm2020 → esm2022}/core/components/webcam/webcam.module.mjs +5 -5
  13. package/{esm2020 → esm2022}/core/interfaces/config.mjs +1 -1
  14. package/{esm2020 → esm2022}/core/pipes/pipes.module.mjs +5 -5
  15. package/{esm2020 → esm2022}/core/pipes/safeResourceUrl.pipe.mjs +4 -4
  16. package/{esm2020 → esm2022}/core/shared/material.module.mjs +85 -85
  17. package/{esm2020 → esm2022}/dialogs/components/blank/blank.component.mjs +4 -4
  18. package/{esm2020 → esm2022}/dialogs/components/confirm/confirm.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/dialogs/components/loading/loading.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/dialogs/components/prompt-manual/prompt-manual.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/dialogs/components/scan-profile/scan-profile.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/dialogs/components/scan-selfie/scan-selfie.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/dialogs/components/turn-document/turn-document.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/dialogs/dialogs.core.provider.mjs +4 -4
  25. package/{esm2020 → esm2022}/dialogs/dialogs.module.mjs +35 -35
  26. package/esm2022/forms/form.module.mjs +87 -0
  27. package/{esm2020 → esm2022}/forms/types/avatar.type.mjs +6 -6
  28. package/{esm2020 → esm2022}/forms/types/profile.image.type.mjs +6 -6
  29. package/{esm2020 → esm2022}/forms/types/title.type.mjs +6 -6
  30. package/{esm2020 → esm2022}/lib/ngx-scandoc.module.mjs +5 -5
  31. package/{esm2020 → esm2022}/providers/auth.provider.mjs +4 -4
  32. package/{esm2020 → esm2022}/providers/camera.provider.mjs +4 -4
  33. package/{esm2020 → esm2022}/providers/interceptor.provider.mjs +4 -4
  34. package/{esm2020 → esm2022}/providers/layout.provider.mjs +4 -4
  35. package/{esm2020 → esm2022}/providers/scan.form.mjs +4 -4
  36. package/esm2022/providers/scan.provider.mjs +766 -0
  37. package/{esm2020 → esm2022}/providers/translate-loader.provider.mjs +4 -4
  38. package/{esm2020 → esm2022}/providers/translation.provider.mjs +4 -4
  39. package/{esm2020 → esm2022}/providers/webrtc.provider.mjs +4 -4
  40. package/{fesm2020 → fesm2022}/ngx-scandoc.mjs +322 -321
  41. package/fesm2022/ngx-scandoc.mjs.map +1 -0
  42. package/package.json +13 -19
  43. package/providers/scan.provider.d.ts +8 -1
  44. package/src/assets/i18n/de.json +3 -1
  45. package/src/assets/i18n/en.json +3 -2
  46. package/src/assets/i18n/hr.json +3 -1
  47. package/src/assets/i18n/it.json +3 -1
  48. package/esm2020/core/components/scan/scan.component.mjs +0 -723
  49. package/esm2020/forms/form.module.mjs +0 -87
  50. package/esm2020/providers/scan.provider.mjs +0 -756
  51. package/fesm2015/ngx-scandoc.mjs +0 -4476
  52. package/fesm2015/ngx-scandoc.mjs.map +0 -1
  53. package/fesm2020/ngx-scandoc.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/core/app.worker.mjs +0 -0
  55. /package/{esm2020 → esm2022}/core/components/base.component.mjs +0 -0
  56. /package/{esm2020 → esm2022}/core/components/webcam/domain/webcam-image.mjs +0 -0
  57. /package/{esm2020 → esm2022}/core/components/webcam/domain/webcam-init-error.mjs +0 -0
  58. /package/{esm2020 → esm2022}/core/components/webcam/domain/webcam-mirror-properties.mjs +0 -0
  59. /package/{esm2020 → esm2022}/core/components/webcam/util/webcam.util.mjs +0 -0
  60. /package/{esm2020 → esm2022}/core/helpers/object-utils.mjs +0 -0
  61. /package/{esm2020 → esm2022}/core/interfaces/guest.data.mjs +0 -0
  62. /package/{esm2020 → esm2022}/core/tokens/config.tokens.mjs +0 -0
  63. /package/{esm2020 → esm2022}/ngx-scandoc.mjs +0 -0
  64. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,766 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable, of } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import moment from 'moment';
5
+ import { HttpHeaders } from '@angular/common/http';
6
+ import { SCAN_CONFIG_TOKEN } from '../core/tokens/config.tokens';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ export class ScanProvider {
10
+ constructor(http, injector) {
11
+ this.http = http;
12
+ this.injector = injector;
13
+ // enableVerification = true;
14
+ this.config = this.injector.get(SCAN_CONFIG_TOKEN);
15
+ this.canStoreImages = this.config.canStoreImages;
16
+ }
17
+ genderList() {
18
+ return {
19
+ M: 'MALE',
20
+ 'M/M': 'MALE',
21
+ F: 'FEMALE',
22
+ 'F/F': 'FEMALE',
23
+ };
24
+ }
25
+ get enableVerification() {
26
+ return this.config.enableVerification;
27
+ }
28
+ addGuest(guestData) {
29
+ const data = {
30
+ AcceptTermsAndConditions: true,
31
+ DataFields: {
32
+ GuestImageType: 'base64',
33
+ ...guestData,
34
+ },
35
+ Settings: {},
36
+ };
37
+ const $request = this.http.put(this.config.guestAddPath, data);
38
+ return $request;
39
+ }
40
+ stateless(DocumentFaceImage, LiveFaceImage) {
41
+ const data = {
42
+ AcceptTermsAndConditions: true,
43
+ DataFields: {
44
+ DocumentFaceImageType: 'base64',
45
+ DocumentFaceImage,
46
+ LiveFaceImageType: 'base64',
47
+ LiveFaceImage,
48
+ },
49
+ };
50
+ const $request = this.http.post(this.config.stateLessPath, data);
51
+ return $request;
52
+ }
53
+ sendErrorLog(data) {
54
+ return this.http.post(this.config.errorLoggingPath, data);
55
+ }
56
+ /**
57
+ *
58
+ * @param data
59
+ * @returns
60
+ * @deprecated
61
+ */
62
+ sendLog(data) {
63
+ const { TransactionID } = data.Response;
64
+ const $request = this.http.post(this.config.errorLoggingPath, data, {
65
+ headers: new HttpHeaders({
66
+ TransactionID,
67
+ }),
68
+ });
69
+ return $request;
70
+ }
71
+ burst(Images, BlurValues) {
72
+ const data = {
73
+ AcceptTermsAndConditions: true,
74
+ DataFields: {
75
+ Images,
76
+ BlurValues,
77
+ },
78
+ };
79
+ const $request = this.http.post(this.config.validationPath, data);
80
+ return $request;
81
+ }
82
+ countries() {
83
+ if (this.countryNames) {
84
+ return of(this.countryNames);
85
+ }
86
+ return this.http.get('/assets/data/countries2.json').pipe(map((data) => {
87
+ this.countriesData = data.data;
88
+ return this.countriesData;
89
+ }));
90
+ }
91
+ get countryNames() {
92
+ return [
93
+ { label: 'Aruba', value: 'AW' },
94
+ { label: 'Afghanistan', value: 'AF' },
95
+ { label: 'Angola', value: 'AO' },
96
+ { label: 'Anguilla', value: 'AI' },
97
+ { label: 'Åland Islands', value: 'AX' },
98
+ { label: 'Albania', value: 'AL' },
99
+ { label: 'Andorra', value: 'AD' },
100
+ { label: 'United Arab Emirates', value: 'AE' },
101
+ { label: 'Argentina', value: 'AR' },
102
+ { label: 'Armenia', value: 'AM' },
103
+ { label: 'American Samoa', value: 'AS' },
104
+ { label: 'Antarctica', value: 'AQ' },
105
+ { label: 'French Southern and Antarctic Lands', value: 'TF' },
106
+ { label: 'Antigua and Barbuda', value: 'AG' },
107
+ { label: 'Australia', value: 'AU' },
108
+ { label: 'Austria', value: 'AT' },
109
+ { label: 'Azerbaijan', value: 'AZ' },
110
+ { label: 'Burundi', value: 'BI' },
111
+ { label: 'Belgium', value: 'BE' },
112
+ { label: 'Benin', value: 'BJ' },
113
+ { label: 'Burkina Faso', value: 'BF' },
114
+ { label: 'Bangladesh', value: 'BD' },
115
+ { label: 'Bulgaria', value: 'BG' },
116
+ { label: 'Bahrain', value: 'BH' },
117
+ { label: 'Bahamas', value: 'BS' },
118
+ { label: 'Bosnia and Herzegovina', value: 'BA' },
119
+ { label: 'Saint Barthélemy', value: 'BL' },
120
+ { label: 'Saint Helena, Ascension and Tristan da Cunha', value: 'SH' },
121
+ { label: 'Belarus', value: 'BY' },
122
+ { label: 'Belize', value: 'BZ' },
123
+ { label: 'Bermuda', value: 'BM' },
124
+ { label: 'Bolivia', value: 'BO' },
125
+ { label: 'Caribbean Netherlands', value: 'BQ' },
126
+ { label: 'Brazil', value: 'BR' },
127
+ { label: 'Barbados', value: 'BB' },
128
+ { label: 'Brunei', value: 'BN' },
129
+ { label: 'Bhutan', value: 'BT' },
130
+ { label: 'Bouvet Island', value: 'BV' },
131
+ { label: 'Botswana', value: 'BW' },
132
+ { label: 'Central African Republic', value: 'CF' },
133
+ { label: 'Canada', value: 'CA' },
134
+ { label: 'Cocos (Keeling) Islands', value: 'CC' },
135
+ { label: 'Switzerland', value: 'CH' },
136
+ { label: 'Chile', value: 'CL' },
137
+ { label: 'China', value: 'CN' },
138
+ { label: 'Ivory Coast', value: 'CI' },
139
+ { label: 'Cameroon', value: 'CM' },
140
+ { label: 'DR Congo', value: 'CD' },
141
+ { label: 'Republic of the Congo', value: 'CG' },
142
+ { label: 'Cook Islands', value: 'CK' },
143
+ { label: 'Colombia', value: 'CO' },
144
+ { label: 'Comoros', value: 'KM' },
145
+ { label: 'Cape Verde', value: 'CV' },
146
+ { label: 'Costa Rica', value: 'CR' },
147
+ { label: 'Cuba', value: 'CU' },
148
+ { label: 'Curaçao', value: 'CW' },
149
+ { label: 'Christmas Island', value: 'CX' },
150
+ { label: 'Cayman Islands', value: 'KY' },
151
+ { label: 'Cyprus', value: 'CY' },
152
+ { label: 'Czechia', value: 'CZ' },
153
+ { label: 'Germany', value: 'DE' },
154
+ { label: 'Djibouti', value: 'DJ' },
155
+ { label: 'Dominica', value: 'DM' },
156
+ { label: 'Denmark', value: 'DK' },
157
+ { label: 'Dominican Republic', value: 'DO' },
158
+ { label: 'Algeria', value: 'DZ' },
159
+ { label: 'Ecuador', value: 'EC' },
160
+ { label: 'Egypt', value: 'EG' },
161
+ { label: 'Eritrea', value: 'ER' },
162
+ { label: 'Western Sahara', value: 'EH' },
163
+ { label: 'Spain', value: 'ES' },
164
+ { label: 'Estonia', value: 'EE' },
165
+ { label: 'Ethiopia', value: 'ET' },
166
+ { label: 'Finland', value: 'FI' },
167
+ { label: 'Fiji', value: 'FJ' },
168
+ { label: 'Falkland Islands', value: 'FK' },
169
+ { label: 'France', value: 'FR' },
170
+ { label: 'Faroe Islands', value: 'FO' },
171
+ { label: 'Micronesia', value: 'FM' },
172
+ { label: 'Gabon', value: 'GA' },
173
+ { label: 'United Kingdom', value: 'GB' },
174
+ { label: 'Georgia', value: 'GE' },
175
+ { label: 'Guernsey', value: 'GG' },
176
+ { label: 'Ghana', value: 'GH' },
177
+ { label: 'Gibraltar', value: 'GI' },
178
+ { label: 'Guinea', value: 'GN' },
179
+ { label: 'Guadeloupe', value: 'GP' },
180
+ { label: 'Gambia', value: 'GM' },
181
+ { label: 'Guinea-Bissau', value: 'GW' },
182
+ { label: 'Equatorial Guinea', value: 'GQ' },
183
+ { label: 'Greece', value: 'GR' },
184
+ { label: 'Grenada', value: 'GD' },
185
+ { label: 'Greenland', value: 'GL' },
186
+ { label: 'Guatemala', value: 'GT' },
187
+ { label: 'French Guiana', value: 'GF' },
188
+ { label: 'Guam', value: 'GU' },
189
+ { label: 'Guyana', value: 'GY' },
190
+ { label: 'Hong Kong', value: 'HK' },
191
+ { label: 'Heard Island and McDonald Islands', value: 'HM' },
192
+ { label: 'Honduras', value: 'HN' },
193
+ { label: 'Croatia', value: 'HR' },
194
+ { label: 'Haiti', value: 'HT' },
195
+ { label: 'Hungary', value: 'HU' },
196
+ { label: 'Indonesia', value: 'ID' },
197
+ { label: 'Isle of Man', value: 'IM' },
198
+ { label: 'India', value: 'IN' },
199
+ { label: 'British Indian Ocean Territory', value: 'IO' },
200
+ { label: 'Ireland', value: 'IE' },
201
+ { label: 'Iran', value: 'IR' },
202
+ { label: 'Iraq', value: 'IQ' },
203
+ { label: 'Iceland', value: 'IS' },
204
+ { label: 'Israel', value: 'IL' },
205
+ { label: 'Italy', value: 'IT' },
206
+ { label: 'Jamaica', value: 'JM' },
207
+ { label: 'Jersey', value: 'JE' },
208
+ { label: 'Jordan', value: 'JO' },
209
+ { label: 'Japan', value: 'JP' },
210
+ { label: 'Kazakhstan', value: 'KZ' },
211
+ { label: 'Kenya', value: 'KE' },
212
+ { label: 'Kyrgyzstan', value: 'KG' },
213
+ { label: 'Cambodia', value: 'KH' },
214
+ { label: 'Kiribati', value: 'KI' },
215
+ { label: 'Saint Kitts and Nevis', value: 'KN' },
216
+ { label: 'South Korea', value: 'KR' },
217
+ { label: 'Kuwait', value: 'KW' },
218
+ { label: 'Laos', value: 'LA' },
219
+ { label: 'Lebanon', value: 'LB' },
220
+ { label: 'Liberia', value: 'LR' },
221
+ { label: 'Libya', value: 'LY' },
222
+ { label: 'Saint Lucia', value: 'LC' },
223
+ { label: 'Liechtenstein', value: 'LI' },
224
+ { label: 'Sri Lanka', value: 'LK' },
225
+ { label: 'Lesotho', value: 'LS' },
226
+ { label: 'Lithuania', value: 'LT' },
227
+ { label: 'Luxembourg', value: 'LU' },
228
+ { label: 'Latvia', value: 'LV' },
229
+ { label: 'Macau', value: 'MO' },
230
+ { label: 'Saint Martin', value: 'MF' },
231
+ { label: 'Morocco', value: 'MA' },
232
+ { label: 'Monaco', value: 'MC' },
233
+ { label: 'Moldova', value: 'MD' },
234
+ { label: 'Madagascar', value: 'MG' },
235
+ { label: 'Maldives', value: 'MV' },
236
+ { label: 'Mexico', value: 'MX' },
237
+ { label: 'Marshall Islands', value: 'MH' },
238
+ { label: 'Macedonia', value: 'MK' },
239
+ { label: 'Mali', value: 'ML' },
240
+ { label: 'Malta', value: 'MT' },
241
+ { label: 'Myanmar', value: 'MM' },
242
+ { label: 'Montenegro', value: 'ME' },
243
+ { label: 'Mongolia', value: 'MN' },
244
+ { label: 'Northern Mariana Islands', value: 'MP' },
245
+ { label: 'Mozambique', value: 'MZ' },
246
+ { label: 'Mauritania', value: 'MR' },
247
+ { label: 'Montserrat', value: 'MS' },
248
+ { label: 'Martinique', value: 'MQ' },
249
+ { label: 'Mauritius', value: 'MU' },
250
+ { label: 'Malawi', value: 'MW' },
251
+ { label: 'Malaysia', value: 'MY' },
252
+ { label: 'Mayotte', value: 'YT' },
253
+ { label: 'Namibia', value: 'NA' },
254
+ { label: 'New Caledonia', value: 'NC' },
255
+ { label: 'Niger', value: 'NE' },
256
+ { label: 'Norfolk Island', value: 'NF' },
257
+ { label: 'Nigeria', value: 'NG' },
258
+ { label: 'Nicaragua', value: 'NI' },
259
+ { label: 'Niue', value: 'NU' },
260
+ { label: 'Netherlands', value: 'NL' },
261
+ { label: 'Norway', value: 'NO' },
262
+ { label: 'Nepal', value: 'NP' },
263
+ { label: 'Nauru', value: 'NR' },
264
+ { label: 'New Zealand', value: 'NZ' },
265
+ { label: 'Oman', value: 'OM' },
266
+ { label: 'Pakistan', value: 'PK' },
267
+ { label: 'Panama', value: 'PA' },
268
+ { label: 'Pitcairn Islands', value: 'PN' },
269
+ { label: 'Peru', value: 'PE' },
270
+ { label: 'Philippines', value: 'PH' },
271
+ { label: 'Palau', value: 'PW' },
272
+ { label: 'Papua New Guinea', value: 'PG' },
273
+ { label: 'Poland', value: 'PL' },
274
+ { label: 'Puerto Rico', value: 'PR' },
275
+ { label: 'North Korea', value: 'KP' },
276
+ { label: 'Portugal', value: 'PT' },
277
+ { label: 'Paraguay', value: 'PY' },
278
+ { label: 'Palestine', value: 'PS' },
279
+ { label: 'French Polynesia', value: 'PF' },
280
+ { label: 'Qatar', value: 'QA' },
281
+ { label: 'Réunion', value: 'RE' },
282
+ { label: 'Romania', value: 'RO' },
283
+ { label: 'Russia', value: 'RU' },
284
+ { label: 'Rwanda', value: 'RW' },
285
+ { label: 'Saudi Arabia', value: 'SA' },
286
+ { label: 'Sudan', value: 'SD' },
287
+ { label: 'Senegal', value: 'SN' },
288
+ { label: 'Singapore', value: 'SG' },
289
+ { label: 'South Georgia', value: 'GS' },
290
+ { label: 'Svalbard and Jan Mayen', value: 'SJ' },
291
+ { label: 'Solomon Islands', value: 'SB' },
292
+ { label: 'Sierra Leone', value: 'SL' },
293
+ { label: 'El Salvador', value: 'SV' },
294
+ { label: 'San Marino', value: 'SM' },
295
+ { label: 'Somalia', value: 'SO' },
296
+ { label: 'Saint Pierre and Miquelon', value: 'PM' },
297
+ { label: 'Serbia', value: 'RS' },
298
+ { label: 'South Sudan', value: 'SS' },
299
+ { label: 'São Tomé and Príncipe', value: 'ST' },
300
+ { label: 'Suriname', value: 'SR' },
301
+ { label: 'Slovakia', value: 'SK' },
302
+ { label: 'Slovenia', value: 'SI' },
303
+ { label: 'Sweden', value: 'SE' },
304
+ { label: 'Swaziland', value: 'SZ' },
305
+ { label: 'Seychelles', value: 'SC' },
306
+ { label: 'Syria', value: 'SY' },
307
+ { label: 'Turks and Caicos Islands', value: 'TC' },
308
+ { label: 'Chad', value: 'TD' },
309
+ { label: 'Togo', value: 'TG' },
310
+ { label: 'Thailand', value: 'TH' },
311
+ { label: 'Tajikistan', value: 'TJ' },
312
+ { label: 'Tokelau', value: 'TK' },
313
+ { label: 'Turkmenistan', value: 'TM' },
314
+ { label: 'Timor-Leste', value: 'TL' },
315
+ { label: 'Tonga', value: 'TO' },
316
+ { label: 'Trinidad and Tobago', value: 'TT' },
317
+ { label: 'Tunisia', value: 'TN' },
318
+ { label: 'Turkey', value: 'TR' },
319
+ { label: 'Tuvalu', value: 'TV' },
320
+ { label: 'Taiwan', value: 'TW' },
321
+ { label: 'Tanzania', value: 'TZ' },
322
+ { label: 'Uganda', value: 'UG' },
323
+ { label: 'Ukraine', value: 'UA' },
324
+ { label: 'United States Minor Outlying Islands', value: 'UM' },
325
+ { label: 'Uruguay', value: 'UY' },
326
+ { label: 'United States', value: 'US' },
327
+ { label: 'Uzbekistan', value: 'UZ' },
328
+ { label: 'Vatican City', value: 'VA' },
329
+ { label: 'Saint Vincent and the Grenadines', value: 'VC' },
330
+ { label: 'Venezuela', value: 'VE' },
331
+ { label: 'British Virgin Islands', value: 'VG' },
332
+ { label: 'United States Virgin Islands', value: 'VI' },
333
+ { label: 'Vietnam', value: 'VN' },
334
+ { label: 'Vanuatu', value: 'VU' },
335
+ { label: 'Wallis and Futuna', value: 'WF' },
336
+ { label: 'Samoa', value: 'WS' },
337
+ { label: 'Yemen', value: 'YE' },
338
+ { label: 'South Africa', value: 'ZA' },
339
+ { label: 'Zambia', value: 'ZM' },
340
+ { label: 'Zimbabwe', value: 'ZW' },
341
+ ];
342
+ }
343
+ countryList() {
344
+ return {
345
+ AFG: 'AF',
346
+ ALB: 'AL',
347
+ DZA: 'DZ',
348
+ ASM: 'AS',
349
+ AND: 'AD',
350
+ AGO: 'AO',
351
+ AIA: 'AI',
352
+ ATG: 'AG',
353
+ ARG: 'AR',
354
+ ARM: 'AM',
355
+ ABW: 'AW',
356
+ AUS: 'AU',
357
+ AUT: 'AT',
358
+ AZE: 'AZ',
359
+ BHS: 'BS',
360
+ BHR: 'BH',
361
+ BGD: 'BD',
362
+ BRB: 'BB',
363
+ BLR: 'BY',
364
+ BEL: 'BE',
365
+ BLZ: 'BZ',
366
+ BEN: 'BJ',
367
+ BMU: 'BM',
368
+ BTN: 'BT',
369
+ BOL: 'BO',
370
+ BIH: 'BA',
371
+ BWA: 'BW',
372
+ BRA: 'BR',
373
+ VGB: 'VG',
374
+ BRN: 'BN',
375
+ BGR: 'BG',
376
+ BFA: 'BF',
377
+ BDI: 'BI',
378
+ KHM: 'KH',
379
+ CMR: 'CM',
380
+ CAN: 'CA',
381
+ CPV: 'CV',
382
+ CAF: 'CF',
383
+ TCD: 'TD',
384
+ CHL: 'CL',
385
+ CHN: 'CN',
386
+ HKG: 'HK',
387
+ MAC: 'MO',
388
+ COL: 'CO',
389
+ COM: 'KM',
390
+ COG: 'CG',
391
+ CRI: 'CR',
392
+ CIV: 'CI',
393
+ HRV: 'HR',
394
+ CUB: 'CU',
395
+ CYP: 'CY',
396
+ CZE: 'CZ',
397
+ DNK: 'DK',
398
+ DJI: 'DJ',
399
+ DMA: 'DM',
400
+ DOM: 'DO',
401
+ ECU: 'EC',
402
+ EGY: 'EG',
403
+ SLV: 'SV',
404
+ GNQ: 'GQ',
405
+ ERI: 'ER',
406
+ EST: 'EE',
407
+ ETH: 'ET',
408
+ FRO: 'FO',
409
+ FJI: 'FJ',
410
+ FIN: 'FI',
411
+ FRA: 'FR',
412
+ GUF: 'GF',
413
+ PYF: 'PF',
414
+ GAB: 'GA',
415
+ GMB: 'GM',
416
+ GEO: 'GE',
417
+ DEU: 'DE',
418
+ GHA: 'GH',
419
+ GRC: 'GR',
420
+ GRL: 'GL',
421
+ GRD: 'GD',
422
+ GLP: 'GP',
423
+ GUM: 'GU',
424
+ GTM: 'GT',
425
+ GNB: 'GW',
426
+ HTI: 'HT',
427
+ HND: 'HN',
428
+ ISL: 'IS',
429
+ IDN: 'ID',
430
+ IRQ: 'IQ',
431
+ ITA: 'IT',
432
+ JPN: 'JP',
433
+ JOR: 'JO',
434
+ KAZ: 'KZ',
435
+ KEN: 'KE',
436
+ KIR: 'KI',
437
+ PRK: 'KP',
438
+ KOR: 'KR',
439
+ KWT: 'KW',
440
+ KGZ: 'KG',
441
+ LAO: 'LA',
442
+ LVA: 'LV',
443
+ LBN: 'LB',
444
+ LSO: 'LS',
445
+ LBR: 'LR',
446
+ LBY: 'LY',
447
+ LIE: 'LI',
448
+ LTU: 'LT',
449
+ LUX: 'LU',
450
+ MDG: 'MG',
451
+ MWI: 'MW',
452
+ MYS: 'MY',
453
+ MDV: 'MV',
454
+ MLI: 'ML',
455
+ MLT: 'MT',
456
+ MHL: 'MH',
457
+ MTQ: 'MQ',
458
+ MRT: 'MR',
459
+ MUS: 'MU',
460
+ MEX: 'MX',
461
+ FSM: 'FM',
462
+ MDA: 'MD',
463
+ MCO: 'MC',
464
+ MNG: 'MN',
465
+ MNE: 'ME',
466
+ MSR: 'MS',
467
+ MAR: 'MA',
468
+ MOZ: 'MZ',
469
+ MMR: 'MM',
470
+ NAM: 'NA',
471
+ NRU: 'NR',
472
+ NPL: 'NP',
473
+ NLD: 'NL',
474
+ ANT: 'AN',
475
+ NCL: 'NC',
476
+ NZL: 'NZ',
477
+ NIC: 'NI',
478
+ NER: 'NE',
479
+ NGA: 'NG',
480
+ MNP: 'MP',
481
+ NOR: 'NO',
482
+ OMN: 'OM',
483
+ PAK: 'PK',
484
+ PLW: 'PW',
485
+ PSE: 'PS',
486
+ PAN: 'PA',
487
+ PNG: 'PG',
488
+ PRY: 'PY',
489
+ PER: 'PE',
490
+ PHL: 'PH',
491
+ PCN: 'PN',
492
+ POL: 'PL',
493
+ PRT: 'PT',
494
+ PRI: 'PR',
495
+ QAT: 'QA',
496
+ REU: 'RE',
497
+ ROU: 'RO',
498
+ RUS: 'RU',
499
+ RWA: 'RW',
500
+ KNA: 'KN',
501
+ LCA: 'LC',
502
+ VCT: 'VC',
503
+ WSM: 'WS',
504
+ SMR: 'SM',
505
+ STP: 'ST',
506
+ SAU: 'SA',
507
+ SEN: 'SN',
508
+ SRB: 'RS',
509
+ SYC: 'SC',
510
+ SLE: 'SL',
511
+ SGP: 'SG',
512
+ SVK: 'SK',
513
+ SVN: 'SI',
514
+ SLB: 'SB',
515
+ SOM: 'SO',
516
+ ZAF: 'ZA',
517
+ ESP: 'ES',
518
+ LKA: 'LK',
519
+ SDN: 'SD',
520
+ SUR: 'SR',
521
+ SWZ: 'SZ',
522
+ SWE: 'SE',
523
+ CHE: 'CH',
524
+ SYR: 'SY',
525
+ TJK: 'TJ',
526
+ TZA: 'TZ',
527
+ THA: 'TH',
528
+ TLS: 'TL',
529
+ TGO: 'TG',
530
+ TON: 'TO',
531
+ TTO: 'TT',
532
+ TUN: 'TN',
533
+ TUR: 'TR',
534
+ TKM: 'TM',
535
+ TUV: 'TV',
536
+ UGA: 'UG',
537
+ UKR: 'UA',
538
+ ARE: 'AE',
539
+ GBR: 'GB',
540
+ USA: 'US',
541
+ URY: 'UY',
542
+ UZB: 'UZ',
543
+ VUT: 'VU',
544
+ VEN: 'VE',
545
+ VNM: 'VN',
546
+ VIR: 'VI',
547
+ YEM: 'YE',
548
+ ZMB: 'ZM',
549
+ ZWE: 'ZW',
550
+ };
551
+ }
552
+ get fields() {
553
+ return [
554
+ {
555
+ key: 'Birth Date',
556
+ form: 'birthDate',
557
+ type: 'date',
558
+ main: false,
559
+ blastKey: 'BirthDate',
560
+ },
561
+ {
562
+ key: 'Given Name',
563
+ form: 'firstName',
564
+ ucFirst: true,
565
+ type: 'string',
566
+ main: true,
567
+ blastKey: 'Name',
568
+ },
569
+ {
570
+ key: 'Surname',
571
+ form: 'lastName',
572
+ ucFirst: true,
573
+ type: 'string',
574
+ main: true,
575
+ blastKey: 'Surname',
576
+ },
577
+ {
578
+ key: 'Sex',
579
+ form: 'gender',
580
+ type: 'gender',
581
+ main: false,
582
+ blastKey: 'Gender',
583
+ },
584
+ {
585
+ key: 'Document Class Name',
586
+ type: 'string',
587
+ form: 'documentType',
588
+ main: false,
589
+ blastKey: 'docType',
590
+ },
591
+ {
592
+ key: 'Document Number',
593
+ type: 'string',
594
+ form: 'documentNumber',
595
+ main: false,
596
+ blastKey: 'DocumentNumber',
597
+ },
598
+ {
599
+ key: 'Issuing State Code',
600
+ type: 'country',
601
+ form: 'issueStateCode',
602
+ blastKey: 'CountryOfIssue',
603
+ main: false,
604
+ },
605
+ {
606
+ key: 'Expiration Date',
607
+ type: 'date',
608
+ form: 'expirationDate',
609
+ blastKey: 'ExpiryDate',
610
+ main: false,
611
+ },
612
+ {
613
+ key: 'Issue Date',
614
+ type: 'date',
615
+ form: 'issueDate',
616
+ blastKey: 'IssuedDate',
617
+ main: false,
618
+ },
619
+ {
620
+ key: 'Birth Place',
621
+ type: 'string',
622
+ form: 'birthPlace',
623
+ blastKey: 'PlaceOfBirth',
624
+ main: false,
625
+ },
626
+ {
627
+ key: 'Issuing Authority',
628
+ type: 'string',
629
+ form: 'issuingPlace',
630
+ blastKey: 'IssuingAuthority',
631
+ main: false,
632
+ },
633
+ {
634
+ key: 'Nationality Code',
635
+ type: 'country',
636
+ form: 'nationality',
637
+ main: false,
638
+ blastKey: 'Nationality',
639
+ },
640
+ {
641
+ key: 'street1',
642
+ type: 'string',
643
+ form: 'street1',
644
+ main: false,
645
+ blastKey: 'AddressStreet',
646
+ },
647
+ {
648
+ key: 'city',
649
+ type: 'string',
650
+ form: 'city',
651
+ main: false,
652
+ blastKey: 'AddressCity',
653
+ },
654
+ {
655
+ key: 'country',
656
+ type: 'country',
657
+ form: 'country',
658
+ main: false,
659
+ blastKey: 'Country',
660
+ },
661
+ {
662
+ key: 'zip',
663
+ type: 'string',
664
+ form: 'zip',
665
+ main: false,
666
+ blastKey: 'AddressZip',
667
+ },
668
+ ];
669
+ }
670
+ parseBlast(results) {
671
+ const countries = this.countryList();
672
+ const genders = this.genderList();
673
+ const data = this.fields;
674
+ const validatedAddressFields = [
675
+ 'AddressCity',
676
+ 'AddressZip',
677
+ 'AddressCounty',
678
+ 'AddressStreet',
679
+ ].filter((key) => results[key].Validated);
680
+ // if no address is validated
681
+ if (validatedAddressFields.length === 0) {
682
+ if (results.Address.Validated) {
683
+ results.AddressStreet = results.Address;
684
+ }
685
+ }
686
+ const out = data.map((itm) => {
687
+ const res = results[itm.blastKey];
688
+ if (res) {
689
+ const value = res.RecommendedValue || '';
690
+ switch (itm.type) {
691
+ case 'string':
692
+ itm.value = value;
693
+ if (itm.ucFirst) {
694
+ const name = value.toLowerCase();
695
+ itm.value = name.charAt(0).toUpperCase() + name.slice(1);
696
+ }
697
+ break;
698
+ case 'date':
699
+ itm.value = value ? moment(value, 'DD.MM.YYYY').toDate() : null;
700
+ // if (value.indexOf('/Date') >= 0) {
701
+ // console.log(value);
702
+ // const timestamp = value.replace(/\D/gm, '');
703
+ // //itm.value = moment.unix(timestamp / 1000).toDate();
704
+ // itm.value = moment(
705
+ // timestamp - moment(timestamp, 'x').utcOffset() * 60 * 1000,
706
+ // 'x',
707
+ // ).toDate();
708
+ // }
709
+ break;
710
+ case 'country':
711
+ itm.value = countries[value] || null;
712
+ break;
713
+ case 'gender':
714
+ itm.value = genders[value] || null;
715
+ }
716
+ }
717
+ return itm;
718
+ });
719
+ const model = {};
720
+ out.forEach((element) => {
721
+ console.log(element);
722
+ model[element.form] = element.value;
723
+ });
724
+ model.documentType = results.Metadata.DocumentType;
725
+ console.log(model);
726
+ return {
727
+ fields: out,
728
+ model,
729
+ };
730
+ }
731
+ blastPost(data) {
732
+ // const $request = this.api.http.get('/assets/json/blastscan.json');
733
+ const $request = this.http.post(this.config.extractionPath, data);
734
+ return $request.pipe(map((m) => {
735
+ if (m.Metadata && m.Metadata.length > 0) {
736
+ const metadata = m.Metadata[0];
737
+ m.Data.Country = {
738
+ RecommendedValue: metadata.Country,
739
+ };
740
+ m.Data.Metadata = metadata;
741
+ }
742
+ return m;
743
+ }));
744
+ }
745
+ blobToDataUrl(file) {
746
+ return Observable.create((obs) => {
747
+ const reader = new FileReader();
748
+ reader.onerror = (err) => obs.error(err);
749
+ reader.onabort = (err) => obs.error(err);
750
+ reader.onload = () => {
751
+ obs.next(reader.result);
752
+ };
753
+ reader.onloadend = () => obs.complete();
754
+ return reader.readAsDataURL(file);
755
+ });
756
+ }
757
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScanProvider, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
758
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScanProvider, providedIn: 'root' }); }
759
+ }
760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScanProvider, decorators: [{
761
+ type: Injectable,
762
+ args: [{
763
+ providedIn: 'root',
764
+ }]
765
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
766
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY2FuZG9jL3NyYy9wcm92aWRlcnMvc2Nhbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFLakUsTUFBTSxPQUFPLFlBQVk7SUFNdkIsWUFBb0IsSUFBZ0IsRUFBVSxRQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUpoRSw2QkFBNkI7UUFFdEIsV0FBTSxHQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakUsbUJBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUN1QixDQUFDO0lBQ3BFLFVBQVU7UUFDUixPQUFPO1lBQ0wsQ0FBQyxFQUFFLE1BQU07WUFDVCxLQUFLLEVBQUUsTUFBTTtZQUNiLENBQUMsRUFBRSxRQUFRO1lBQ1gsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxTQUFvQjtRQUMzQixNQUFNLElBQUksR0FBRztZQUNYLHdCQUF3QixFQUFFLElB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QUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0MsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMxQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNuQyxF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QUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVB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T0FBTyxHQUFHO29CQUNmLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxPQUFPO2lCQUNuQyxDQUFDO2dCQUNGLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzthQUM1QjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2d0JVLFlBQVk7bUhBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFNjYW5Db25maWcgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMvY29uZmlnJztcbmltcG9ydCB7IEd1ZXN0RGF0YSB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy9ndWVzdC5kYXRhJztcbmltcG9ydCB7IFNDQU5fQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vY29yZS90b2tlbnMvY29uZmlnLnRva2Vucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FuUHJvdmlkZXIge1xuICBjb3VudHJpZXNEYXRhOiBhbnk7XG4gIC8vIGVuYWJsZVZlcmlmaWNhdGlvbiA9IHRydWU7XG5cbiAgcHVibGljIGNvbmZpZzogU2NhbkNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KFNDQU5fQ09ORklHX1RPS0VOKTtcbiAgY2FuU3RvcmVJbWFnZXMgPSB0aGlzLmNvbmZpZy5jYW5TdG9yZUltYWdlcztcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cbiAgZ2VuZGVyTGlzdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgTTogJ01BTEUnLFxuICAgICAgJ00vTSc6ICdNQUxFJyxcbiAgICAgIEY6ICdGRU1BTEUnLFxuICAgICAgJ0YvRic6ICdGRU1BTEUnLFxuICAgIH07XG4gIH1cblxuICBnZXQgZW5hYmxlVmVyaWZpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5lbmFibGVWZXJpZmljYXRpb247XG4gIH1cbiAgYWRkR3Vlc3QoZ3Vlc3REYXRhOiBHdWVzdERhdGEpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiB0cnVlLFxuICAgICAgRGF0YUZpZWxkczoge1xuICAgICAgICBHdWVzdEltYWdlVHlwZTogJ2Jhc2U2NCcsXG4gICAgICAgIC4uLmd1ZXN0RGF0YSxcbiAgICAgIH0sXG4gICAgICBTZXR0aW5nczoge30sXG4gICAgfTtcbiAgICBjb25zdCAkcmVxdWVzdCA9IHRoaXMuaHR0cC5wdXQodGhpcy5jb25maWcuZ3Vlc3RBZGRQYXRoLCBkYXRhKTtcbiAgICByZXR1cm4gJHJlcXVlc3Q7XG4gIH1cblxuICBzdGF0ZWxlc3MoRG9jdW1lbnRGYWNlSW1hZ2U6IGFueSwgTGl2ZUZhY2VJbWFnZTogYW55KSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIERhdGFGaWVsZHM6IHtcbiAgICAgICAgRG9jdW1lbnRGYWNlSW1hZ2VUeXBlOiAnYmFzZTY0JyxcbiAgICAgICAgRG9jdW1lbnRGYWNlSW1hZ2UsXG4gICAgICAgIExpdmVGYWNlSW1hZ2VUeXBlOiAnYmFzZTY0JyxcbiAgICAgICAgTGl2ZUZhY2VJbWFnZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCAkcmVxdWVzdCA9IHRoaXMuaHR0cC5wb3N0KHRoaXMuY29uZmlnLnN0YXRlTGVzc1BhdGgsIGRhdGEpO1xuICAgIHJldHVybiAkcmVxdWVzdDtcbiAgfVxuXG4gIHNlbmRFcnJvckxvZyhkYXRhOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuZXJyb3JMb2dnaW5nUGF0aCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGRhdGFcbiAgICogQHJldHVybnNcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHNlbmRMb2coZGF0YTogYW55KSB7XG4gICAgY29uc3QgeyBUcmFuc2FjdGlvbklEIH0gPSBkYXRhLlJlc3BvbnNlO1xuICAgIGNvbnN0ICRyZXF1ZXN0ID0gdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuZXJyb3JMb2dnaW5nUGF0aCwgZGF0YSwge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgVHJhbnNhY3Rpb25JRCxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIHJldHVybiAkcmVxdWVzdDtcbiAgfVxuXG4gIGJ1cnN0KEltYWdlczogc3RyaW5nW10sIEJsdXJWYWx1ZXM6IGFueVtdKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIERhdGFGaWVsZHM6IHtcbiAgICAgICAgSW1hZ2VzLFxuICAgICAgICBCbHVyVmFsdWVzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgJHJlcXVlc3QgPSB0aGlzLmh0dHAucG9zdCh0aGlzLmNvbmZpZy52YWxpZGF0aW9uUGF0aCwgZGF0YSk7XG4gICAgcmV0dXJuICRyZXF1ZXN0O1xuICB9XG5cbiAgY291bnRyaWVzKCkge1xuICAgIGlmICh0aGlzLmNvdW50cnlOYW1lcykge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY291bnRyeU5hbWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoJy9hc3NldHMvZGF0YS9jb3VudHJpZXMyLmpzb24nKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb3VudHJpZXNEYXRhID0gZGF0YS5kYXRhO1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJpZXNEYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNvdW50cnlOYW1lcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyBsYWJlbDogJ0FydWJhJywgdmFsdWU6ICdBVycgfSxcbiAgICAgIHsgbGFiZWw6ICdBZmdoYW5pc3RhbicsIHZhbHVlOiAnQUYnIH0sXG4gICAgICB7IGxhYmVsOiAnQW5nb2xhJywgdmFsdWU6ICdBTycgfSxcbiAgICAgIHsgbGFiZWw6ICdBbmd1aWxsYScsIHZhbHVlOiAnQUknIH0sXG4gICAgICB7IGxhYmVsOiAnw4VsYW5kIElzbGFuZHMnLCB2YWx1ZTogJ0FYJyB9LFxuICAgICAgeyBsYWJlbDogJ0FsYmFuaWEnLCB2YWx1ZTogJ0FMJyB9LFxuICAgICAgeyBsYWJlbDogJ0FuZG9ycmEnLCB2YWx1ZTogJ0FEJyB9LFxuICAgICAgeyBsYWJlbDogJ1VuaXRlZCBBcmFiIEVtaXJhdGVzJywgdmFsdWU6ICdBRScgfSxcbiAgICAgIHsgbGFiZWw6ICdBcmdlbnRpbmEnLCB2YWx1ZTogJ0FSJyB9LFxuICAgICAgeyBsYWJlbDogJ0FybWVuaWEnLCB2YWx1ZTogJ0FNJyB9LFxuICAgICAgeyBsYWJlbDogJ0FtZXJpY2FuIFNhbW9hJywgdmFsdWU6ICdBUycgfSxcbiAgICAgIHsgbGFiZWw6ICdBbnRhcmN0aWNhJywgdmFsdWU6ICdBUScgfSxcbiAgICAgIHsgbGFiZWw6ICdGcmVuY2ggU291dGhlcm4gYW5kIEFudGFyY3RpYyBMYW5kcycsIHZhbHVlOiAnVEYnIH0sXG4gICAgICB7IGxhYmVsOiAnQW50aWd1YSBhbmQgQmFyYnVkYScsIHZhbHVlOiAnQUcnIH0sXG4gICAgICB7IGxhYmVsOiAnQXVzdHJhbGlhJywgdmFsdWU6ICdBVScgfSxcbiAgICAgIHsgbGFiZWw6ICdBdXN0cmlhJywgdmFsdWU6ICdBVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdBemVyYmFpamFuJywgdmFsdWU6ICdBWicgfSxcbiAgICAgIHsgbGFiZWw6ICdCdXJ1bmRpJywgdmFsdWU6ICdCSScgfSxcbiAgICAgIHsgbGFiZWw6ICdCZWxnaXVtJywgdmFsdWU6ICdCRScgfSxcbiAgICAgIHsgbGFiZWw6ICdCZW5pbicsIHZhbHVlOiAnQkonIH0sXG4gICAgICB7IGxhYmVsOiAnQnVya2luYSBGYXNvJywgdmFsdWU6ICdCRicgfSxcbiAgICAgIHsgbGFiZWw6ICdCYW5nbGFkZXNoJywgdmFsdWU6ICdCRCcgfSxcbiAgICAgIHsgbGFiZWw6ICdCdWxnYXJpYScsIHZhbHVlOiAnQkcnIH0sXG4gICAgICB7IGxhYmVsOiAnQmFocmFpbicsIHZhbHVlOiAnQkgnIH0sXG4gICAgICB7IGxhYmVsOiAnQmFoYW1hcycsIHZhbHVlOiAnQlMnIH0sXG4gICAgICB7IGxhYmVsOiAnQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYScsIHZhbHVlOiAnQkEnIH0sXG4gICAgICB7IGxhYmVsOiAnU2FpbnQgQmFydGjDqWxlbXknLCB2YWx1ZTogJ0JMJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhaW50IEhlbGVuYSwgQXNjZW5zaW9uIGFuZCBUcmlzdGFuIGRhIEN1bmhhJywgdmFsdWU6ICdTSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdCZWxhcnVzJywgdmFsdWU6ICdCWScgfSxcbiAgICAgIHsgbGFiZWw6ICdCZWxpemUnLCB2YWx1ZTogJ0JaJyB9LFxuICAgICAgeyBsYWJlbDogJ0Jlcm11ZGEnLCB2YWx1ZTogJ0JNJyB9LFxuICAgICAgeyBsYWJlbDogJ0JvbGl2aWEnLCB2YWx1ZTogJ0JPJyB9LFxuICAgICAgeyBsYWJlbDogJ0NhcmliYmVhbiBOZXRoZXJsYW5kcycsIHZhbHVlOiAnQlEnIH0sXG4gICAgICB7IGxhYmVsOiAnQnJhemlsJywgdmFsdWU6ICdCUicgfSxcbiAgICAgIHsgbGFiZWw6ICdCYXJiYWRvcycsIHZhbHVlOiAnQkInIH0sXG4gICAgICB7IGxhYmVsOiAnQnJ1bmVpJywgdmFsdWU6ICdCTicgfSxcbiAgICAgIHsgbGFiZWw6ICdCaHV0YW4nLCB2YWx1ZTogJ0JUJyB9LFxuICAgICAgeyBsYWJlbDogJ0JvdXZldCBJc2xhbmQnLCB2YWx1ZTogJ0JWJyB9LFxuICAgICAgeyBsYWJlbDogJ0JvdHN3YW5hJywgdmFsdWU6ICdCVycgfSxcbiAgICAgIHsgbGFiZWw6ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnLCB2YWx1ZTogJ0NGJyB9LFxuICAgICAgeyBsYWJlbDogJ0NhbmFkYScsIHZhbHVlOiAnQ0EnIH0sXG4gICAgICB7IGxhYmVsOiAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnLCB2YWx1ZTogJ0NDJyB9LFxuICAgICAgeyBsYWJlbDogJ1N3aXR6ZXJsYW5kJywgdmFsdWU6ICdDSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdDaGlsZScsIHZhbHVlOiAnQ0wnIH0sXG4gICAgICB7IGxhYmVsOiAnQ2hpbmEnLCB2YWx1ZTogJ0NOJyB9LFxuICAgICAgeyBsYWJlbDogJ0l2b3J5IENvYXN0JywgdmFsdWU6ICdDSScgfSxcbiAgICAgIHsgbGFiZWw6ICdDYW1lcm9vbicsIHZhbHVlOiAnQ00nIH0sXG4gICAgICB7IGxhYmVsOiAnRFIgQ29uZ28nLCB2YWx1ZTogJ0NEJyB9LFxuICAgICAgeyBsYWJlbDogJ1JlcHVibGljIG9mIHRoZSBDb25nbycsIHZhbHVlOiAnQ0cnIH0sXG4gICAgICB7IGxhYmVsOiAnQ29vayBJc2xhbmRzJywgdmFsdWU6ICdDSycgfSxcbiAgICAgIHsgbGFiZWw6ICdDb2xvbWJpYScsIHZhbHVlOiAnQ08nIH0sXG4gICAgICB7IGxhYmVsOiAnQ29tb3JvcycsIHZhbHVlOiAnS00nIH0sXG4gICAgICB7IGxhYmVsOiAnQ2FwZSBWZXJkZScsIHZhbHVlOiAnQ1YnIH0sXG4gICAgICB7IGxhYmVsOiAnQ29zdGEgUmljYScsIHZhbHVlOiAnQ1InIH0sXG4gICAgICB7IGxhYmVsOiAnQ3ViYScsIHZhbHVlOiAnQ1UnIH0sXG4gICAgICB7IGxhYmVsOiAnQ3VyYcOnYW8nLCB2YWx1ZTogJ0NXJyB9LFxuICAgICAgeyBsYWJlbDogJ0NocmlzdG1hcyBJc2xhbmQnLCB2YWx1ZTogJ0NYJyB9LFxuICAgICAgeyBsYWJlbDogJ0NheW1hbiBJc2xhbmRzJywgdmFsdWU6ICdLWScgfSxcbiAgICAgIHsgbGFiZWw6ICdDeXBydXMnLCB2YWx1ZTogJ0NZJyB9LFxuICAgICAgeyBsYWJlbDogJ0N6ZWNoaWEnLCB2YWx1ZTogJ0NaJyB9LFxuICAgICAgeyBsYWJlbDogJ0dlcm1hbnknLCB2YWx1ZTogJ0RFJyB9LFxuICAgICAgeyBsYWJlbDogJ0RqaWJvdXRpJywgdmFsdWU6ICdESicgfSxcbiAgICAgIHsgbGFiZWw6ICdEb21pbmljYScsIHZhbHVlOiAnRE0nIH0sXG4gICAgICB7IGxhYmVsOiAnRGVubWFyaycsIHZhbHVlOiAnREsnIH0sXG4gICAgICB7IGxhYmVsOiAnRG9taW5pY2FuIFJlcHVibGljJywgdmFsdWU6ICdETycgfSxcbiAgICAgIHsgbGFiZWw6ICdBbGdlcmlhJywgdmFsdWU6ICdEWicgfSxcbiAgICAgIHsgbGFiZWw6ICdFY3VhZG9yJywgdmFsdWU6ICdFQycgfSxcbiAgICAgIHsgbGFiZWw6ICdFZ3lwdCcsIHZhbHVlOiAnRUcnIH0sXG4gICAgICB7IGxhYmVsOiAnRXJpdHJlYScsIHZhbHVlOiAnRVInIH0sXG4gICAgICB7IGxhYmVsOiAnV2VzdGVybiBTYWhhcmEnLCB2YWx1ZTogJ0VIJyB9LFxuICAgICAgeyBsYWJlbDogJ1NwYWluJywgdmFsdWU6ICdFUycgfSxcbiAgICAgIHsgbGFiZWw6ICdFc3RvbmlhJywgdmFsdWU6ICdFRScgfSxcbiAgICAgIHsgbGFiZWw6ICdFdGhpb3BpYScsIHZhbHVlOiAnRVQnIH0sXG4gICAgICB7IGxhYmVsOiAnRmlubGFuZCcsIHZhbHVlOiAnRkknIH0sXG4gICAgICB7IGxhYmVsOiAnRmlqaScsIHZhbHVlOiAnRkonIH0sXG4gICAgICB7IGxhYmVsOiAnRmFsa2xhbmQgSXNsYW5kcycsIHZhbHVlOiAnRksnIH0sXG4gICAgICB7IGxhYmVsOiAnRnJhbmNlJywgdmFsdWU6ICdGUicgfSxcbiAgICAgIHsgbGFiZWw6ICdGYXJvZSBJc2xhbmRzJywgdmFsdWU6ICdGTycgfSxcbiAgICAgIHsgbGFiZWw6ICdNaWNyb25lc2lhJywgdmFsdWU6ICdGTScgfSxcbiAgICAgIHsgbGFiZWw6ICdHYWJvbicsIHZhbHVlOiAnR0EnIH0sXG4gICAgICB7IGxhYmVsOiAnVW5pdGVkIEtpbmdkb20nLCB2YWx1ZTogJ0dCJyB9LFxuICAgICAgeyBsYWJlbDogJ0dlb3JnaWEnLCB2YWx1ZTogJ0dFJyB9LFxuICAgICAgeyBsYWJlbDogJ0d1ZXJuc2V5JywgdmFsdWU6ICdHRycgfSxcbiAgICAgIHsgbGFiZWw6ICdHaGFuYScsIHZhbHVlOiAnR0gnIH0sXG4gICAgICB7IGxhYmVsOiAnR2licmFsdGFyJywgdmFsdWU6ICdHSScgfSxcbiAgICAgIHsgbGFiZWw6ICdHdWluZWEnLCB2YWx1ZTogJ0dOJyB9LFxuICAgICAgeyBsYWJlbDogJ0d1YWRlbG91cGUnLCB2YWx1ZTogJ0dQJyB9LFxuICAgICAgeyBsYWJlbDogJ0dhbWJpYScsIHZhbHVlOiAnR00nIH0sXG4gICAgICB7IGxhYmVsOiAnR3VpbmVhLUJpc3NhdScsIHZhbHVlOiAnR1cnIH0sXG4gICAgICB7IGxhYmVsOiAnRXF1YXRvcmlhbCBHdWluZWEnLCB2YWx1ZTogJ0dRJyB9LFxuICAgICAgeyBsYWJlbDogJ0dyZWVjZScsIHZhbHVlOiAnR1InIH0sXG4gICAgICB7IGxhYmVsOiAnR3JlbmFkYScsIHZhbHVlOiAnR0QnIH0sXG4gICAgICB7IGxhYmVsOiAnR3JlZW5sYW5kJywgdmFsdWU6ICdHTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdHdWF0ZW1hbGEnLCB2YWx1ZTogJ0dUJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZyZW5jaCBHdWlhbmEnLCB2YWx1ZTogJ0dGJyB9LFxuICAgICAgeyBsYWJlbDogJ0d1YW0nLCB2YWx1ZTogJ0dVJyB9LFxuICAgICAgeyBsYWJlbDogJ0d1eWFuYScsIHZhbHVlOiAnR1knIH0sXG4gICAgICB7IGxhYmVsOiAnSG9uZyBLb25nJywgdmFsdWU6ICdISycgfSxcbiAgICAgIHsgbGFiZWw6ICdIZWFyZCBJc2xhbmQgYW5kIE1jRG9uYWxkIElzbGFuZHMnLCB2YWx1ZTogJ0hNJyB9LFxuICAgICAgeyBsYWJlbDogJ0hvbmR1cmFzJywgdmFsdWU6ICdITicgfSxcbiAgICAgIHsgbGFiZWw6ICdDcm9hdGlhJywgdmFsdWU6ICdIUicgfSxcbiAgICAgIHsgbGFiZWw6ICdIYWl0aScsIHZhbHVlOiAnSFQnIH0sXG4gICAgICB7IGxhYmVsOiAnSHVuZ2FyeScsIHZhbHVlOiAnSFUnIH0sXG4gICAgICB7IGxhYmVsOiAnSW5kb25lc2lhJywgdmFsdWU6ICdJRCcgfSxcbiAgICAgIHsgbGFiZWw6ICdJc2xlIG9mIE1hbicsIHZhbHVlOiAnSU0nIH0sXG4gICAgICB7IGxhYmVsOiAnSW5kaWEnLCB2YWx1ZTogJ0lOJyB9LFxuICAgICAgeyBsYWJlbDogJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeScsIHZhbHVlOiAnSU8nIH0sXG4gICAgICB7IGxhYmVsOiAnSXJlbGFuZCcsIHZhbHVlOiAnSUUnIH0sXG4gICAgICB7IGxhYmVsOiAnSXJhbicsIHZhbHVlOiAnSVInIH0sXG4gICAgICB7IGxhYmVsOiAnSXJhcScsIHZhbHVlOiAnSVEnIH0sXG4gICAgICB7IGxhYmVsOiAnSWNlbGFuZCcsIHZhbHVlOiAnSVMnIH0sXG4gICAgICB7IGxhYmVsOiAnSXNyYWVsJywgdmFsdWU6ICdJTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdJdGFseScsIHZhbHVlOiAnSVQnIH0sXG4gICAgICB7IGxhYmVsOiAnSmFtYWljYScsIHZhbHVlOiAnSk0nIH0sXG4gICAgICB7IGxhYmVsOiAnSmVyc2V5JywgdmFsdWU6ICdKRScgfSxcbiAgICAgIHsgbGFiZWw6ICdKb3JkYW4nLCB2YWx1ZTogJ0pPJyB9LFxuICAgICAgeyBsYWJlbDogJ0phcGFuJywgdmFsdWU6ICdKUCcgfSxcbiAgICAgIHsgbGFiZWw6ICdLYXpha2hzdGFuJywgdmFsdWU6ICdLWicgfSxcbiAgICAgIHsgbGFiZWw6ICdLZW55YScsIHZhbHVlOiAnS0UnIH0sXG4gICAgICB7IGxhYmVsOiAnS3lyZ3l6c3RhbicsIHZhbHVlOiAnS0cnIH0sXG4gICAgICB7IGxhYmVsOiAnQ2FtYm9kaWEnLCB2YWx1ZTogJ0tIJyB9LFxuICAgICAgeyBsYWJlbDogJ0tpcmliYXRpJywgdmFsdWU6ICdLSScgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBLaXR0cyBhbmQgTmV2aXMnLCB2YWx1ZTogJ0tOJyB9LFxuICAgICAgeyBsYWJlbDogJ1NvdXRoIEtvcmVhJywgdmFsdWU6ICdLUicgfSxcbiAgICAgIHsgbGFiZWw6ICdLdXdhaXQnLCB2YWx1ZTogJ0tXJyB9LFxuICAgICAgeyBsYWJlbDogJ0xhb3MnLCB2YWx1ZTogJ0xBJyB9LFxuICAgICAgeyBsYWJlbDogJ0xlYmFub24nLCB2YWx1ZTogJ0xCJyB9LFxuICAgICAgeyBsYWJlbDogJ0xpYmVyaWEnLCB2YWx1ZTogJ0xSJyB9LFxuICAgICAgeyBsYWJlbDogJ0xpYnlhJywgdmFsdWU6ICdMWScgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBMdWNpYScsIHZhbHVlOiAnTEMnIH0sXG4gICAgICB7IGxhYmVsOiAnTGllY2h0ZW5zdGVpbicsIHZhbHVlOiAnTEknIH0sXG4gICAgICB7IGxhYmVsOiAnU3JpIExhbmthJywgdmFsdWU6ICdMSycgfSxcbiAgICAgIHsgbGFiZWw6ICdMZXNvdGhvJywgdmFsdWU6ICdMUycgfSxcbiAgICAgIHsgbGFiZWw6ICdMaXRodWFuaWEnLCB2YWx1ZTogJ0xUJyB9LFxuICAgICAgeyBsYWJlbDogJ0x1eGVtYm91cmcnLCB2YWx1ZTogJ0xVJyB9LFxuICAgICAgeyBsYWJlbDogJ0xhdHZpYScsIHZhbHVlOiAnTFYnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFjYXUnLCB2YWx1ZTogJ01PJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhaW50IE1hcnRpbicsIHZhbHVlOiAnTUYnIH0sXG4gICAgICB7IGxhYmVsOiAnTW9yb2NjbycsIHZhbHVlOiAnTUEnIH0sXG4gICAgICB7IGxhYmVsOiAnTW9uYWNvJywgdmFsdWU6ICdNQycgfSxcbiAgICAgIHsgbGFiZWw6ICdNb2xkb3ZhJywgdmFsdWU6ICdNRCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWRhZ2FzY2FyJywgdmFsdWU6ICdNRycgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWxkaXZlcycsIHZhbHVlOiAnTVYnIH0sXG4gICAgICB7IGxhYmVsOiAnTWV4aWNvJywgdmFsdWU6ICdNWCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNYXJzaGFsbCBJc2xhbmRzJywgdmFsdWU6ICdNSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWNlZG9uaWEnLCB2YWx1ZTogJ01LJyB9LFxuICAgICAgeyBsYWJlbDogJ01hbGknLCB2YWx1ZTogJ01MJyB9LFxuICAgICAgeyBsYWJlbDogJ01hbHRhJywgdmFsdWU6ICdNVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNeWFubWFyJywgdmFsdWU6ICdNTScgfSxcbiAgICAgIHsgbGFiZWw6ICdNb250ZW5lZ3JvJywgdmFsdWU6ICdNRScgfSxcbiAgICAgIHsgbGFiZWw6ICdNb25nb2xpYScsIHZhbHVlOiAnTU4nIH0sXG4gICAgICB7IGxhYmVsOiAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJywgdmFsdWU6ICdNUCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNb3phbWJpcXVlJywgdmFsdWU6ICdNWicgfSxcbiAgICAgIHsgbGFiZWw6ICdNYXVyaXRhbmlhJywgdmFsdWU6ICdNUicgfSxcbiAgICAgIHsgbGFiZWw6ICdNb250c2VycmF0JywgdmFsdWU6ICdNUycgfSxcbiAgICAgIHsgbGFiZWw6ICdNYXJ0aW5pcXVlJywgdmFsdWU6ICdNUScgfSxcbiAgICAgIHsgbGFiZWw6ICdNYXVyaXRpdXMnLCB2YWx1ZTogJ01VJyB9LFxuICAgICAgeyBsYWJlbDogJ01hbGF3aScsIHZhbHVlOiAnTVcnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFsYXlzaWEnLCB2YWx1ZTogJ01ZJyB9LFxuICAgICAgeyBsYWJlbDogJ01heW90dGUnLCB2YWx1ZTogJ1lUJyB9LFxuICAgICAgeyBsYWJlbDogJ05hbWliaWEnLCB2YWx1ZTogJ05BJyB9LFxuICAgICAgeyBsYWJlbDogJ05ldyBDYWxlZG9uaWEnLCB2YWx1ZTogJ05DJyB9LFxuICAgICAgeyBsYWJlbDogJ05pZ2VyJywgdmFsdWU6ICdORScgfSxcbiAgICAgIHsgbGFiZWw6ICdOb3Jmb2xrIElzbGFuZCcsIHZhbHVlOiAnTkYnIH0sXG4gICAgICB7IGxhYmVsOiAnTmlnZXJpYScsIHZhbHVlOiAnTkcnIH0sXG4gICAgICB7IGxhYmVsOiAnTmljYXJhZ3VhJywgdmFsdWU6ICdOSScgfSxcbiAgICAgIHsgbGFiZWw6ICdOaXVlJywgdmFsdWU6ICdOVScgfSxcbiAgICAgIHsgbGFiZWw6ICdOZXRoZXJsYW5kcycsIHZhbHVlOiAnTkwnIH0sXG4gICAgICB7IGxhYmVsOiAnTm9yd2F5JywgdmFsdWU6ICdOTycgfSxcbiAgICAgIHsgbGFiZWw6ICdOZXBhbCcsIHZhbHVlOiAnTlAnIH0sXG4gICAgICB7IGxhYmVsOiAnTmF1cnUnLCB2YWx1ZTogJ05SJyB9LFxuICAgICAgeyBsYWJlbDogJ05ldyBaZWFsYW5kJywgdmFsdWU6ICdOWicgfSxcbiAgICAgIHsgbGFiZWw6ICdPbWFuJywgdmFsdWU6ICdPTScgfSxcbiAgICAgIHsgbGFiZWw6ICdQYWtpc3RhbicsIHZhbHVlOiAnUEsnIH0sXG4gICAgICB7IGxhYmVsOiAnUGFuYW1hJywgdmFsdWU6ICdQQScgfSxcbiAgICAgIHsgbGFiZWw6ICdQaXRjYWlybiBJc2xhbmRzJywgdmFsdWU6ICdQTicgfSxcbiAgICAgIHsgbGFiZWw6ICdQZXJ1JywgdmFsdWU6ICdQRScgfSxcbiAgICAgIHsgbGFiZWw6ICdQaGlsaXBwaW5lcycsIHZhbHVlOiAnUEgnIH0sXG4gICAgICB7IGxhYmVsOiAnUGFsYXUnLCB2YWx1ZTogJ1BXJyB9LFxuICAgICAgeyBsYWJlbDogJ1BhcHVhIE5ldyBHdWluZWEnLCB2YWx1ZTogJ1BHJyB9LFxuICAgICAgeyBsYWJlbDogJ1BvbGFuZCcsIHZhbHVlOiAnUEwnIH0sXG4gICAgICB7IGxhYmVsOiAnUHVlcnRvIFJpY28nLCB2YWx1ZTogJ1BSJyB9LFxuICAgICAgeyBsYWJlbDogJ05vcnRoIEtvcmVhJywgdmFsdWU6ICdLUCcgfSxcbiAgICAgIHsgbGFiZWw6ICdQb3J0dWdhbCcsIHZhbHVlOiAnUFQnIH0sXG4gICAgICB7IGxhYmVsOiAnUGFyYWd1YXknLCB2YWx1ZTogJ1BZJyB9LFxuICAgICAgeyBsYWJlbDogJ1BhbGVzdGluZScsIHZhbHVlOiAnUFMnIH0sXG4gICAgICB7IGxhYmVsOiAnRnJlbmNoIFBvbHluZXNpYScsIHZhbHVlOiAnUEYnIH0sXG4gICAgICB7IGxhYmVsOiAnUWF0YXInLCB2YWx1ZTogJ1FBJyB9LFxuICAgICAgeyBsYWJlbDogJ1LDqXVuaW9uJywgdmFsdWU6ICdSRScgfSxcbiAgICAgIHsgbGFiZWw6ICdSb21hbmlhJywgdmFsdWU6ICdSTycgfSxcbiAgICAgIHsgbGFiZWw6ICdSdXNzaWEnLCB2YWx1ZTogJ1JVJyB9LFxuICAgICAgeyBsYWJlbDogJ1J3YW5kYScsIHZhbHVlOiAnUlcnIH0sXG4gICAgICB7IGxhYmVsOiAnU2F1ZGkgQXJhYmlhJywgdmFsdWU6ICdTQScgfSxcbiAgICAgIHsgbGFiZWw6ICdTdWRhbicsIHZhbHVlOiAnU0QnIH0sXG4gICAgICB7IGxhYmVsOiAnU2VuZWdhbCcsIHZhbHVlOiAnU04nIH0sXG4gICAgICB7IGxhYmVsOiAnU2luZ2Fwb3JlJywgdmFsdWU6ICdTRycgfSxcbiAgICAgIHsgbGFiZWw6ICdTb3V0aCBHZW9yZ2lhJywgdmFsdWU6ICdHUycgfSxcbiAgICAgIHsgbGFiZWw6ICdTdmFsYmFyZCBhbmQgSmFuIE1heWVuJywgdmFsdWU6ICdTSicgfSxcbiAgICAgIHsgbGFiZWw6ICdTb2xvbW9uIElzbGFuZHMnLCB2YWx1ZTogJ1NCJyB9LFxuICAgICAgeyBsYWJlbDogJ1NpZXJyYSBMZW9uZScsIHZhbHVlOiAnU0wnIH0sXG4gICAgICB7IGxhYmVsOiAnRWwgU2FsdmFkb3InLCB2YWx1ZTogJ1NWJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhbiBNYXJpbm8nLCB2YWx1ZTogJ1NNJyB9LFxuICAgICAgeyBsYWJlbDogJ1NvbWFsaWEnLCB2YWx1ZTogJ1NPJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24nLCB2YWx1ZTogJ1BNJyB9LFxuICAgICAgeyBsYWJlbDogJ1NlcmJpYScsIHZhbHVlOiAnUlMnIH0sXG4gICAgICB7IGxhYmVsOiAnU291dGggU3VkYW4nLCB2YWx1ZTogJ1NTJyB9LFxuICAgICAgeyBsYWJlbDogJ1PDo28gVG9tw6kgYW5kIFByw61uY2lwZScsIHZhbHVlOiAnU1QnIH0sXG4gICAgICB7IGxhYmVsOiAnU3VyaW5hbWUnLCB2YWx1ZTogJ1NSJyB9LFxuICAgICAgeyBsYWJlbDogJ1Nsb3Zha2lhJywgdmFsdWU6ICdTSycgfSxcbiAgICAgIHsgbGFiZWw6ICdTbG92ZW5pYScsIHZhbHVlOiAnU0knIH0sXG4gICAgICB7IGxhYmVsOiAnU3dlZGVuJywgdmFsdWU6ICdTRScgfSxcbiAgICAgIHsgbGFiZWw6ICdTd2F6aWxhbmQnLCB2YWx1ZTogJ1NaJyB9LFxuICAgICAgeyBsYWJlbDogJ1NleWNoZWxsZXMnLCB2YWx1ZTogJ1NDJyB9LFxuICAgICAgeyBsYWJlbDogJ1N5cmlhJywgdmFsdWU6ICdTWScgfSxcbiAgICAgIHsgbGFiZWw6ICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnLCB2YWx1ZTogJ1RDJyB9LFxuICAgICAgeyBsYWJlbDogJ0NoYWQnLCB2YWx1ZTogJ1REJyB9LFxuICAgICAgeyBsYWJlbDogJ1RvZ28nLCB2YWx1ZTogJ1RHJyB9LFxuICAgICAgeyBsYWJlbDogJ1RoYWlsYW5kJywgdmFsdWU6ICdUSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdUYWppa2lzdGFuJywgdmFsdWU6ICdUSicgfSxcbiAgICAgIHsgbGFiZWw6ICdUb2tlbGF1JywgdmFsdWU6ICdUSycgfSxcbiAgICAgIHsgbGFiZWw6ICdUdXJrbWVuaXN0YW4nLCB2YWx1ZTogJ1RNJyB9LFxuICAgICAgeyBsYWJlbDogJ1RpbW9yLUxlc3RlJywgdmFsdWU6ICdUTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdUb25nYScsIHZhbHVlOiAnVE8nIH0sXG4gICAgICB7IGxhYmVsOiAnVHJpbmlkYWQgYW5kIFRvYmFnbycsIHZhbHVlOiAnVFQnIH0sXG4gICAgICB7IGxhYmVsOiAnVHVuaXNpYScsIHZhbHVlOiAnVE4nIH0sXG4gICAgICB7IGxhYmVsOiAnVHVya2V5JywgdmFsdWU6ICdUUicgfSxcbiAgICAgIHsgbGFiZWw6ICdUdXZhbHUnLCB2YWx1ZTogJ1RWJyB9LFxuICAgICAgeyBsYWJlbDogJ1RhaXdhbicsIHZhbHVlOiAnVFcnIH0sXG4gICAgICB7IGxhYmVsOiAnVGFuemFuaWEnLCB2YWx1ZTogJ1RaJyB9LFxuICAgICAgeyBsYWJlbDogJ1VnYW5kYScsIHZhbHVlOiAnVUcnIH0sXG4gICAgICB7IGxhYmVsOiAnVWtyYWluZScsIHZhbHVlOiAnVUEnIH0sXG4gICAgICB7IGxhYmVsOiAnVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzJywgdmFsdWU6ICdVTScgfSxcbiAgICAgIHsgbGFiZWw6ICdVcnVndWF5JywgdmFsdWU6ICdVWScgfSxcbiAgICAgIHsgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJywgdmFsdWU6ICdVUycgfSxcbiAgICAgIHsgbGFiZWw6ICdVemJla2lzdGFuJywgdmFsdWU6ICdVWicgfSxcbiAgICAgIHsgbGFiZWw6ICdWYXRpY2FuIENpdHknLCB2YWx1ZTogJ1ZBJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJywgdmFsdWU6ICdWQycgfSxcbiAgICAgIHsgbGFiZWw6ICdWZW5lenVlbGEnLCB2YWx1ZTogJ1ZFJyB9LFxuICAgICAgeyBsYWJlbDogJ0JyaXRpc2ggVmlyZ2luIElzbGFuZHMnLCB2YWx1ZTogJ1ZHJyB9LFxuICAgICAgeyBsYWJlbDogJ1VuaXRlZCBTdGF0ZXMgVmlyZ2luIElzbGFuZHMnLCB2YWx1ZTogJ1ZJJyB9LFxuICAgICAgeyBsYWJlbDogJ1ZpZXRuYW0nLCB2YWx1ZTogJ1ZOJyB9LFxuICAgICAgeyBsYWJlbDogJ1ZhbnVhdHUnLCB2YWx1ZTogJ1ZVJyB9LFxuICAgICAgeyBsYWJlbDogJ1dhbGxpcyBhbmQgRnV0dW5hJywgdmFsdWU6ICdXRicgfSxcbiAgICAgIHsgbGFiZWw6ICdTYW1vYScsIHZhbHVlOiAnV1MnIH0sXG4gICAgICB7IGxhYmVsOiAnWWVtZW4nLCB2YWx1ZTogJ1lFJyB9LFxuICAgICAgeyBsYWJlbDogJ1NvdXRoIEFmcmljYScsIHZhbHVlOiAnWkEnIH0sXG4gICAgICB7IGxhYmVsOiAnWmFtYmlhJywgdmFsdWU6ICdaTScgfSxcbiAgICAgIHsgbGFiZWw6ICdaaW1iYWJ3ZScsIHZhbHVlOiAnWlcnIH0sXG4gICAgXTtcbiAgfVxuICBjb3VudHJ5TGlzdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQUZHOiAnQUYnLFxuICAgICAgQUxCOiAnQUwnLFxuICAgICAgRFpBOiAnRFonLFxuICAgICAgQVNNOiAnQVMnLFxuICAgICAgQU5EOiAnQUQnLFxuICAgICAgQUdPOiAnQU8nLFxuICAgICAgQUlBOiAnQUknLFxuICAgICAgQVRHOiAnQUcnLFxuICAgICAgQVJHOiAnQVInLFxuICAgICAgQVJNOiAnQU0nLFxuICAgICAgQUJXOiAnQVcnLFxuICAgICAgQVVTOiAnQVUnLFxuICAgICAgQVVUOiAnQVQnLFxuICAgICAgQVpFOiAnQVonLFxuICAgICAgQkhTOiAnQlMnLFxuICAgICAgQkhSOiAnQkgnLFxuICAgICAgQkdEOiAnQkQnLFxuICAgICAgQlJCOiAnQkInLFxuICAgICAgQkxSOiAnQlknLFxuICAgICAgQkVMOiAnQkUnLFxuICAgICAgQkxaOiAnQlonLFxuICAgICAgQkVOOiAnQkonLFxuICAgICAgQk1VOiAnQk0nLFxuICAgICAgQlROOiAnQlQnLFxuICAgICAgQk9MOiAnQk8nLFxuICAgICAgQklIOiAnQkEnLFxuICAgICAgQldBOiAnQlcnLFxuICAgICAgQlJBOiAnQlInLFxuICAgICAgVkdCOiAnVkcnLFxuICAgICAgQlJOOiAnQk4nLFxuICAgICAgQkdSOiAnQkcnLFxuICAgICAgQkZBOiAnQkYnLFxuICAgICAgQkRJOiAnQkknLFxuICAgICAgS0hNOiAnS0gnLFxuICAgICAgQ01SOiAnQ00nLFxuICAgICAgQ0FOOiAnQ0EnLFxuICAgICAgQ1BWOiAnQ1YnLFxuICAgICAgQ0FGOiAnQ0YnLFxuICAgICAgVENEOiAnVEQnLFxuICAgICAgQ0hMOiAnQ0wnLFxuICAgICAgQ0hOOiAnQ04nLFxuICAgICAgSEtHOiAnSEsnLFxuICAgICAgTUFDOiAnTU8nLFxuICAgICAgQ09MOiAnQ08nLFxuICAgICAgQ09NOiAnS00nLFxuICAgICAgQ09HOiAnQ0cnLFxuICAgICAgQ1JJOiAnQ1InLFxuICAgICAgQ0lWOiAnQ0knLFxuICAgICAgSFJWOiAnSFInLFxuICAgICAgQ1VCOiAnQ1UnLFxuICAgICAgQ1lQOiAnQ1knLFxuICAgICAgQ1pFOiAnQ1onLFxuICAgICAgRE5LOiAnREsnLFxuICAgICAgREpJOiAnREonLFxuICAgICAgRE1BOiAnRE0nLFxuICAgICAgRE9NOiAnRE8nLFxuICAgICAgRUNVOiAnRUMnLFxuICAgICAgRUdZOiAnRUcnLFxuICAgICAgU0xWOiAnU1YnLFxuICAgICAgR05ROiAnR1EnLFxuICAgICAgRVJJOiAnRVInLFxuICAgICAgRVNUOiAnRUUnLFxuICAgICAgRVRIOiAnRVQnLFxuICAgICAgRlJPOiAnRk8nLFxuICAgICAgRkpJOiAnRkonLFxuICAgICAgRklOOiAnRkknLFxuICAgICAgRlJBOiAnRlInLFxuICAgICAgR1VGOiAnR0YnLFxuICAgICAgUFlGOiAnUEYnLFxuICAgICAgR0FCOiAnR0EnLFxuICAgICAgR01COiAnR00nLFxuICAgICAgR0VPOiAnR0UnLFxuICAgICAgREVVOiAnREUnLFxuICAgICAgR0hBOiAnR0gnLFxuICAgICAgR1JDOiAnR1InLFxuICAgICAgR1JMOiAnR0wnLFxuICAgICAgR1JEOiAnR0QnLFxuICAgICAgR0xQOiAnR1AnLFxuICAgICAgR1VNOiAnR1UnLFxuICAgICAgR1RNOiAnR1QnLFxuICAgICAgR05COiAnR1cnLFxuICAgICAgSFRJOiAnSFQnLFxuICAgICAgSE5EOiAnSE4nLFxuICAgICAgSVNMOiAnSVMnLFxuICAgICAgSUROOiAnSUQnLFxuICAgICAgSVJROiAnSVEnLFxuICAgICAgSVRBOiAnSVQnLFxuICAgICAgSlBOOiAnSlAnLFxuICAgICAgSk9SOiAnSk8nLFxuICAgICAgS0FaOiAnS1onLFxuICAgICAgS0VOOiAnS0UnLFxuICAgICAgS0lSOiAnS0knLFxuICAgICAgUFJLOiAnS1AnLFxuICAgICAgS09SOiAnS1InLFxuICAgICAgS1dUOiAnS1cnLFxuICAgICAgS0daOiAnS0cnLFxuICAgICAgTEFPOiAnTEEnLFxuICAgICAgTFZBOiAnTFYnLFxuICAgICAgTEJOOiAnTEInLFxuICAgICAgTFNPOiAnTFMnLFxuICAgICAgTEJSOiAnTFInLFxuICAgICAgTEJZOiAnTFknLFxuICAgICAgTElFOiAnTEknLFxuICAgICAgTFRVOiAnTFQnLFxuICAgICAgTFVYOiAnTFUnLFxuICAgICAgTURHOiAnTUcnLFxuICAgICAgTVdJOiAnTVcnLFxuICAgICAgTVlTOiAnTVknLFxuICAgICAgTURWOiAnTVYnLFxuICAgICAgTUxJOiAnTUwnLFxuICAgICAgTUxUOiAnTVQnLFxuICAgICAgTUhMOiAnTUgnLFxuICAgICAgTVRROiAnTVEnLFxuICAgICAgTVJUOiAnTVInLFxuICAgICAgTVVTOiAnTVUnLFxuICAgICAgTUVYOiAnTVgnLFxuICAgICAgRlNNOiAnRk0nLFxuICAgICAgTURBOiAnTUQnLFxuICAgICAgTUNPOiAnTUMnLFxuICAgICAgTU5HOiAnTU4nLFxuICAgICAgTU5FOiAnTUUnLFxuICAgICAgTVNSOiAnTVMnLFxuICAgICAgTUFSOiAnTUEnLFxuICAgICAgTU9aOiAnTVonLFxuICAgICAgTU1SOiAnTU0nLFxuICAgICAgTkFNOiAnTkEnLFxuICAgICAgTlJVOiAnTlInLFxuICAgICAgTlBMOiAnTlAnLFxuICAgICAgTkxEOiAnTkwnLFxuICAgICAgQU5UOiAnQU4nLFxuICAgICAgTkNMOiAnTkMnLFxuICAgICAgTlpMOiAnTlonLFxuICAgICAgTklDOiAnTkknLFxuICAgICAgTkVSOiAnTkUnLFxuICAgICAgTkdBOiAnTkcnLFxuICAgICAgTU5QOiAnTVAnLFxuICAgICAgTk9SOiAnTk8nLFxuICAgICAgT01OOiAnT00nLFxuICAgICAgUEFLOiAnUEsnLFxuICAgICAgUExXOiAnUFcnLFxuICAgICAgUFNFOiAnUFMnLFxuICAgICAgUEFOOiAnUEEnLFxuICAgICAgUE5HOiAnUEcnLFxuICAgICAgUFJZOiAnUFknLFxuICAgICAgUEVSOiAnUEUnLFxuICAgICAgUEhMOiAnUEgnLFxuICAgICAgUENOOiAnUE4nLFxuICAgICAgUE9MOiAnUEwnLFxuICAgICAgUFJUOiAnUFQnLFxuICAgICAgUFJJOiAnUFInLFxuICAgICAgUUFUOiAnUUEnLFxuICAgICAgUkVVOiAnUkUnLFxuICAgICAgUk9VOiAnUk8nLFxuICAgICAgUlVTOiAnUlUnLFxuICAgICAgUldBOiAnUlcnLFxuICAgICAgS05BOiAnS04nLFxuICAgICAgTENBOiAnTEMnLFxuICAgICAgVkNUOiAnVkMnLFxuICAgICAgV1NNOiAnV1MnLFxuICAgICAgU01SOiAnU00nLFxuICAgICAgU1RQOiAnU1QnLFxuICAgICAgU0FVOiAnU0EnLFxuICAgICAgU0VOOiAnU04nLFxuICAgICAgU1JCOiAnUlMnLFxuICAgICAgU1lDOiAnU0MnLFxuICAgICAgU0xFOiAnU0wnLFxuICAgICAgU0dQOiAnU0cnLFxuICAgICAgU1ZLOiAnU0snLFxuICAgICAgU1ZOOiAnU0knLFxuICAgICAgU0xCOiAnU0InLFxuICAgICAgU09NOiAnU08nLFxuICAgICAgWkFGOiAnWkEnLFxuICAgICAgRVNQOiAnRVMnLFxuICAgICAgTEtBOiAnTEsnLFxuICAgICAgU0ROOiAnU0QnLFxuICAgICAgU1VSOiAnU1InLFxuICAgICAgU1daOiAnU1onLFxuICAgICAgU1dFOiAnU0UnLFxuICAgICAgQ0hFOiAnQ0gnLFxuICAgICAgU1lSOiAnU1knLFxuICAgICAgVEpLOiAnVEonLFxuICAgICAgVFpBOiAnVFonLFxuICAgICAgVEhBOiAnVEgnLFxuICAgICAgVExTOiAnVEwnLFxuICAgICAgVEdPOiAnVEcnLFxuICAgICAgVE9OOiAnVE8nLFxuICAgICAgVFRPOiAnVFQnLFxuICAgICAgVFVOOiAnVE4nLFxuICAgICAgVFVSOiAnVFInLFxuICAgICAgVEtNOiAnVE0nLFxuICAgICAgVFVWOiAnVFYnLFxuICAgICAgVUdBOiAnVUcnLFxuICAgICAgVUtSOiAnVUEnLFxuICAgICAgQVJFOiAnQUUnLFxuICAgICAgR0JSOiAnR0InLFxuICAgICAgVVNBOiAnVVMnLFxuICAgICAgVVJZOiAnVVknLFxuICAgICAgVVpCOiAnVVonLFxuICAgICAgVlVUOiAnVlUnLFxuICAgICAgVkVOOiAnVkUnLFxuICAgICAgVk5NOiAnVk4nLFxuICAgICAgVklSOiAnVkknLFxuICAgICAgWUVNOiAnWUUnLFxuICAgICAgWk1COiAnWk0nLFxuICAgICAgWldFOiAnWlcnLFxuICAgIH07XG4gIH1cblxuICBnZXQgZmllbGRzKCk6IGFueSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnQmlydGggRGF0ZScsXG4gICAgICAgIGZvcm06ICdiaXJ0aERhdGUnLFxuICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ0JpcnRoRGF0ZScsXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIGtleTogJ0dpdmVuIE5hbWUnLFxuICAgICAgICBmb3JtOiAnZmlyc3ROYW1lJyxcbiAgICAgICAgdWNGaXJzdDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIG1haW46IHRydWUsXG4gICAgICAgIGJsYXN0S2V5OiAnTmFtZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdTdXJuYW1lJyxcbiAgICAgICAgZm9ybTogJ2xhc3ROYW1lJyxcbiAgICAgICAgdWNGaXJzdDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIG1haW46IHRydWUsXG4gICAgICAgIGJsYXN0S2V5OiAnU3VybmFtZScsXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIGtleTogJ1NleCcsXG4gICAgICAgIGZvcm06ICdnZW5kZXInLFxuICAgICAgICB0eXBlOiAnZ2VuZGVyJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICAgIGJsYXN0S2V5OiAnR2VuZGVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0RvY3VtZW50IENsYXNzIE5hbWUnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZm9ybTogJ2RvY3VtZW50VHlwZScsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ2RvY1R5cGUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnRG9jdW1lbnQgTnVtYmVyJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdkb2N1bWVudE51bWJlcicsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ0RvY3VtZW50TnVtYmVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0lzc3VpbmcgU3RhdGUgQ29kZScsXG4gICAgICAgIHR5cGU6ICdjb3VudHJ5JyxcbiAgICAgICAgZm9ybTogJ2lzc3VlU3RhdGVDb2RlJyxcbiAgICAgICAgYmxhc3RLZXk6ICdDb3VudHJ5T2ZJc3N1ZScsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnRXhwaXJhdGlvbiBEYXRlJyxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICBmb3JtOiAnZXhwaXJhdGlvbkRhdGUnLFxuICAgICAgICBibGFzdEtleTogJ0V4cGlyeURhdGUnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0lzc3VlIERhdGUnLFxuICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgIGZvcm06ICdpc3N1ZURhdGUnLFxuICAgICAgICBibGFzdEtleTogJ0lzc3VlZERhdGUnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0JpcnRoIFBsYWNlJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdiaXJ0aFBsYWNlJyxcbiAgICAgICAgYmxhc3RLZXk6ICdQbGFjZU9mQmlydGgnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0lzc3VpbmcgQXV0aG9yaXR5JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdpc3N1aW5nUGxhY2UnLFxuICAgICAgICBibGFzdEtleTogJ0lzc3VpbmdBdXRob3JpdHknLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ05hdGlvbmFsaXR5IENvZGUnLFxuICAgICAgICB0eXBlOiAnY291bnRyeScsXG4gICAgICAgIGZvcm06ICduYXRpb25hbGl0eScsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ05hdGlvbmFsaXR5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3N0cmVldDEnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZm9ybTogJ3N0cmVldDEnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdBZGRyZXNzU3RyZWV0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2NpdHknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZm9ybTogJ2NpdHknLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdBZGRyZXNzQ2l0eScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjb3VudHJ5JyxcbiAgICAgICAgdHlwZTogJ2NvdW50cnknLFxuICAgICAgICBmb3JtOiAnY291bnRyeScsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ0NvdW50cnknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnemlwJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICd6aXAnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdBZGRyZXNzWmlwJyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuICBwYXJzZUJsYXN0KHJlc3VsdHM6IGFueSkge1xuICAgIGNvbnN0IGNvdW50cmllczogYW55ID0gdGhpcy5jb3VudHJ5TGlzdCgpO1xuICAgIGNvbnN0IGdlbmRlcnM6IGFueSA9IHRoaXMuZ2VuZGVyTGlzdCgpO1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHRoaXMuZmllbGRzO1xuXG4gICAgY29uc3QgdmFsaWRhdGVkQWRkcmVzc0ZpZWxkcyA9IFtcbiAgICAgICdBZGRyZXNzQ2l0eScsXG4gICAgICAnQWRkcmVzc1ppcCcsXG4gICAgICAnQWRkcmVzc0NvdW50eScsXG4gICAgICAnQWRkcmVzc1N0cmVldCcsXG4gICAgXS5maWx0ZXIoKGtleSkgPT4gcmVzdWx0c1trZXldLlZhbGlkYXRlZCk7XG5cbiAgICAvLyBpZiBubyBhZGRyZXNzIGlzIHZhbGlkYXRlZFxuICAgIGlmICh2YWxpZGF0ZWRBZGRyZXNzRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKHJlc3VsdHMuQWRkcmVzcy5WYWxpZGF0ZWQpIHtcbiAgICAgICAgcmVzdWx0cy5BZGRyZXNzU3RyZWV0ID0gcmVzdWx0cy5BZGRyZXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG91dCA9IGRhdGEubWFwKChpdG06IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gcmVzdWx0c1tpdG0uYmxhc3RLZXldO1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlcy5SZWNvbW1lbmRlZFZhbHVlIHx8ICcnO1xuXG4gICAgICAgIHN3aXRjaCAoaXRtLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgaXRtLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBpZiAoaXRtLnVjRmlyc3QpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIGl0bS52YWx1ZSA9IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBpdG0udmFsdWUgPSB2YWx1ZSA/IG1vbWVudCh2YWx1ZSwgJ0RELk1NLllZWVknKS50b0RhdGUoKSA6IG51bGw7XG4gICAgICAgICAgICAvLyBpZiAodmFsdWUuaW5kZXhPZignL0RhdGUnKSA+PSAwKSB7XG4gICAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKHZhbHVlKTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgdGltZXN0YW1wID0gdmFsdWUucmVwbGFjZSgvXFxEL2dtLCAnJyk7XG4gICAgICAgICAgICAvLyAgIC8vaXRtLnZhbHVlID0gbW9tZW50LnVuaXgodGltZXN0YW1wIC8gMTAwMCkudG9EYXRlKCk7XG4gICAgICAgICAgICAvLyAgIGl0bS52YWx1ZSA9IG1vbWVudChcbiAgICAgICAgICAgIC8vICAgICB0aW1lc3RhbXAgLSBtb21lbnQodGltZXN0YW1wLCAneCcpLnV0Y09mZnNldCgpICogNjAgKiAxMDAwLFxuICAgICAgICAgICAgLy8gICAgICd4JyxcbiAgICAgICAgICAgIC8vICAgKS50b0RhdGUoKTtcbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnY291bnRyeSc6XG4gICAgICAgICAgICBpdG0udmFsdWUgPSBjb3VudHJpZXNbdmFsdWVdIHx8IG51bGw7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdnZW5kZXInOlxuICAgICAgICAgICAgaXRtLnZhbHVlID0gZ2VuZGVyc1t2YWx1ZV0gfHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGl0bTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG1vZGVsOiBhbnkgPSB7fTtcblxuICAgIG91dC5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpO1xuICAgICAgbW9kZWxbZWxlbWVudC5mb3JtXSA9IGVsZW1lbnQudmFsdWU7XG4gICAgfSk7XG5cbiAgICBtb2RlbC5kb2N1bWVudFR5cGUgPSByZXN1bHRzLk1ldGFkYXRhLkRvY3VtZW50VHlwZTtcblxuICAgIGNvbnNvbGUubG9nKG1vZGVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWVsZHM6IG91dCxcbiAgICAgIG1vZGVsLFxuICAgIH07XG4gIH1cblxuICBibGFzdFBvc3QoZGF0YTogYW55KSB7XG4gICAgLy8gY29uc3QgJHJlcXVlc3QgPSB0aGlzLmFwaS5odHRwLmdldCgnL2Fzc2V0cy9qc29uL2JsYXN0c2Nhbi5qc29uJyk7XG5cbiAgICBjb25zdCAkcmVxdWVzdCA9IHRoaXMuaHR0cC5wb3N0KHRoaXMuY29uZmlnLmV4dHJhY3Rpb25QYXRoLCBkYXRhKTtcblxuICAgIHJldHVybiAkcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKChtOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKG0uTWV0YWRhdGEgJiYgbS5NZXRhZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBtLk1ldGFkYXRhWzBdO1xuICAgICAgICAgIG0uRGF0YS5Db3VudHJ5ID0ge1xuICAgICAgICAgICAgUmVjb21tZW5kZWRWYWx1ZTogbWV0YWRhdGEuQ291bnRyeSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIG0uRGF0YS5NZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYmxvYlRvRGF0YVVybChmaWxlOiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnIpID0+IG9icy5lcnJvcihlcnIpO1xuICAgICAgcmVhZGVyLm9uYWJvcnQgPSAoZXJyKSA9PiBvYnMuZXJyb3IoZXJyKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIG9icy5uZXh0KHJlYWRlci5yZXN1bHQpO1xuICAgICAgfTtcbiAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiBvYnMuY29tcGxldGUoKTtcbiAgICAgIHJldHVybiByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICB9KTtcbiAgfVxufVxuIl19