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