@atlasauth/angular 0.3.0 → 0.5.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.
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject, } from '@angular/core';
2
+ import { localizedErrorMessage, } from '@atlasauth/js';
2
3
  import { AtlasService } from '../atlas.service';
3
4
  import { classFor } from '../appearance';
4
5
  import { translate } from '../i18n';
@@ -8,7 +9,9 @@ import * as i0 from "@angular/core";
8
9
  * The create-account step of `<atlas-sign-up>`: the instance's configured extra
9
10
  * fields, email + password, the legal-consent row and — when the instance
10
11
  * requires one on sign-up — the captcha widget. Values live on the component so
11
- * a refused submit never clears them.
12
+ * a refused submit never clears them. When the app cannot send the verification
13
+ * email (`settings.emailDelivery.passwordSignUp === false`) it shows the
14
+ * `signUp.emailUnavailable` notice instead of the form.
12
15
  */
13
16
  export class SignUpFormComponent {
14
17
  atlas = inject(AtlasService);
@@ -23,12 +26,22 @@ export class SignUpFormComponent {
23
26
  t(key, vars) {
24
27
  return translate(this.atlas.localization, key, vars);
25
28
  }
29
+ /** A server error in the app's language (`error.<reason>`, else the server's message). */
30
+ errorText(error) {
31
+ // `errorLocalization` is read defensively: a stand-in service may lack it.
32
+ const layer = this.atlas.errorLocalization;
33
+ return localizedErrorMessage(error, layer ?? this.atlas.localization, this.atlas.localization);
34
+ }
26
35
  cls(key, base) {
27
36
  return classFor(key, this.atlas.appearance, base);
28
37
  }
29
38
  setValue(name, value) {
30
39
  this.values = { ...this.values, [name]: value };
31
40
  }
41
+ /** Email + password sign-up cannot complete: the app cannot send the verification email. */
42
+ emailUnavailable() {
43
+ return this.settings?.emailDelivery?.passwordSignUp === false;
44
+ }
32
45
  fields() {
33
46
  return this.settings?.signUpFields ?? [];
34
47
  }
@@ -67,7 +80,7 @@ export class SignUpFormComponent {
67
80
  }
68
81
  onSubmit(event) {
69
82
  event.preventDefault();
70
- if (!this.consentOk())
83
+ if (this.emailUnavailable() || !this.consentOk())
71
84
  return;
72
85
  this.submitSignUp.emit({
73
86
  values: { ...this.values },
@@ -79,8 +92,15 @@ export class SignUpFormComponent {
79
92
  <div [class]="cls('card', 'atlas-card')">
80
93
  <h1 [class]="cls('headerTitle', 'atlas-title')">{{ t('signUp.title') }}</h1>
81
94
 
95
+ @if (emailUnavailable()) {
96
+ <!-- The app cannot send the verification email, so an email + password
97
+ sign-up could never complete: say so instead of offering the form. -->
98
+ <p [class]="cls('formFieldError', 'atlas-error')" role="alert" data-atlas-email-unavailable="">
99
+ {{ t('signUp.emailUnavailable') }}
100
+ </p>
101
+ } @else {
82
102
  @for (error of formErrors(); track error.code) {
83
- <p [class]="cls('formFieldError', 'atlas-error')" role="alert">{{ error.message }}</p>
103
+ <p [class]="cls('formFieldError', 'atlas-error')" role="alert">{{ errorText(error) }}</p>
84
104
  }
85
105
 
86
106
  <form (submit)="onSubmit($event)">
@@ -103,7 +123,7 @@ export class SignUpFormComponent {
103
123
  }
104
124
  </span>
105
125
  @for (error of fieldErrorsFor(f.key); track error.code) {
106
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
126
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
107
127
  }
108
128
  </div>
109
129
  } @else {
@@ -151,7 +171,7 @@ export class SignUpFormComponent {
151
171
  />
152
172
  }
153
173
  @for (error of fieldErrorsFor(f.key); track error.code) {
154
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
174
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
155
175
  }
156
176
  </label>
157
177
  }
@@ -169,7 +189,7 @@ export class SignUpFormComponent {
169
189
  (input)="setValue('email', $any($event.target).value)"
170
190
  />
171
191
  @for (error of fieldErrorsFor('email'); track error.code) {
172
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
192
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
173
193
  }
174
194
  </label>
175
195
 
@@ -185,7 +205,7 @@ export class SignUpFormComponent {
185
205
  (input)="setValue('password', $any($event.target).value)"
186
206
  />
187
207
  @for (error of fieldErrorsFor('password'); track error.code) {
188
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
208
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
189
209
  }
190
210
  </label>
191
211
 
@@ -212,7 +232,7 @@ export class SignUpFormComponent {
212
232
  }.
213
233
  </span>
214
234
  @for (error of fieldErrorsFor('consent'); track error.code) {
215
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
235
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
216
236
  }
217
237
  </label>
218
238
  }
@@ -229,6 +249,7 @@ export class SignUpFormComponent {
229
249
  {{ t('signUp.submit') }}
230
250
  </button>
231
251
  </form>
252
+ }
232
253
  </div>
233
254
  `, isInline: true, dependencies: [{ kind: "directive", type: AtlasCaptchaSlotDirective, selector: "[atlasCaptchaSlot]", inputs: ["atlasCaptchaSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
234
255
  }
@@ -243,8 +264,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
243
264
  <div [class]="cls('card', 'atlas-card')">
244
265
  <h1 [class]="cls('headerTitle', 'atlas-title')">{{ t('signUp.title') }}</h1>
245
266
 
267
+ @if (emailUnavailable()) {
268
+ <!-- The app cannot send the verification email, so an email + password
269
+ sign-up could never complete: say so instead of offering the form. -->
270
+ <p [class]="cls('formFieldError', 'atlas-error')" role="alert" data-atlas-email-unavailable="">
271
+ {{ t('signUp.emailUnavailable') }}
272
+ </p>
273
+ } @else {
246
274
  @for (error of formErrors(); track error.code) {
247
- <p [class]="cls('formFieldError', 'atlas-error')" role="alert">{{ error.message }}</p>
275
+ <p [class]="cls('formFieldError', 'atlas-error')" role="alert">{{ errorText(error) }}</p>
248
276
  }
249
277
 
250
278
  <form (submit)="onSubmit($event)">
@@ -267,7 +295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
267
295
  }
268
296
  </span>
269
297
  @for (error of fieldErrorsFor(f.key); track error.code) {
270
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
298
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
271
299
  }
272
300
  </div>
273
301
  } @else {
@@ -315,7 +343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
315
343
  />
316
344
  }
317
345
  @for (error of fieldErrorsFor(f.key); track error.code) {
318
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
346
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
319
347
  }
320
348
  </label>
321
349
  }
@@ -333,7 +361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
333
361
  (input)="setValue('email', $any($event.target).value)"
334
362
  />
335
363
  @for (error of fieldErrorsFor('email'); track error.code) {
336
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
364
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
337
365
  }
338
366
  </label>
339
367
 
@@ -349,7 +377,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
349
377
  (input)="setValue('password', $any($event.target).value)"
350
378
  />
351
379
  @for (error of fieldErrorsFor('password'); track error.code) {
352
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
380
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
353
381
  }
354
382
  </label>
355
383
 
@@ -376,7 +404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
376
404
  }.
377
405
  </span>
378
406
  @for (error of fieldErrorsFor('consent'); track error.code) {
379
- <span [class]="cls('formFieldError', 'atlas-error')">{{ error.message }}</span>
407
+ <span [class]="cls('formFieldError', 'atlas-error')">{{ errorText(error) }}</span>
380
408
  }
381
409
  </label>
382
410
  }
@@ -393,6 +421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
393
421
  {{ t('signUp.submit') }}
394
422
  </button>
395
423
  </form>
424
+ }
396
425
  </div>
397
426
  `,
398
427
  }]
@@ -407,4 +436,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
407
436
  }], submitSignUp: [{
408
437
  type: Output
409
438
  }] } });
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zaWduLXVwLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFRakY7Ozs7O0dBS0c7QUFtS0gsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLEtBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFckMsUUFBUSxHQUE0QixJQUFJLENBQUM7SUFDekMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNiLE1BQU0sR0FBaUIsRUFBRSxDQUFDO0lBQzFCLE9BQU8sR0FBNkIsSUFBSSxDQUFDO0lBRWxELDhFQUE4RTtJQUNwRSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUFFcEQsTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDcEMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVmLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBNkI7UUFDcEQsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFUyxHQUFHLENBQUMsR0FBZSxFQUFFLElBQVk7UUFDekMsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxL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O2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBDYXB0Y2hhQ29udHJvbGxlcixcbiAgRmllbGRFcnJvcixcbiAgSW5zdGFuY2VTZXR0aW5ncyxcbiAgUHVibGljU2lnblVwRmllbGQsXG59IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuaW1wb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXRsYXMuc2VydmljZSc7XG5pbXBvcnQgeyBjbGFzc0ZvciwgdHlwZSBFbGVtZW50S2V5IH0gZnJvbSAnLi4vYXBwZWFyYW5jZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEF0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NhcHRjaGEtc2xvdC5kaXJlY3RpdmUnO1xuXG4vKiogV2hhdCB0aGUgY3JlYXRlLWFjY291bnQgZm9ybSBlbWl0czogdGhlIHZhbHVlcyB0eXBlZCBwbHVzIHRoZSBjb25zZW50IHRpY2suICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25VcEZvcm1TdWJtaXQge1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNvbnNlbnQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGNyZWF0ZS1hY2NvdW50IHN0ZXAgb2YgYDxhdGxhcy1zaWduLXVwPmA6IHRoZSBpbnN0YW5jZSdzIGNvbmZpZ3VyZWQgZXh0cmFcbiAqIGZpZWxkcywgZW1haWwgKyBwYXNzd29yZCwgdGhlIGxlZ2FsLWNvbnNlbnQgcm93IGFuZCDigJQgd2hlbiB0aGUgaW5zdGFuY2VcbiAqIHJlcXVpcmVzIG9uZSBvbiBzaWduLXVwIOKAlCB0aGUgY2FwdGNoYSB3aWRnZXQuIFZhbHVlcyBsaXZlIG9uIHRoZSBjb21wb25lbnQgc29cbiAqIGEgcmVmdXNlZCBzdWJtaXQgbmV2ZXIgY2xlYXJzIHRoZW0uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F0bGFzLXNpZ24tdXAtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRsYXNDYXB0Y2hhU2xvdERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY2xzKCdjYXJkJywgJ2F0bGFzLWNhcmQnKVwiPlxuICAgICAgPGgxIFtjbGFzc109XCJjbHMoJ2hlYWRlclRpdGxlJywgJ2F0bGFzLXRpdGxlJylcIj57eyB0KCdzaWduVXAudGl0bGUnKSB9fTwvaDE+XG5cbiAgICAgIEBmb3IgKGVycm9yIG9mIGZvcm1FcnJvcnMoKTsgdHJhY2sgZXJyb3IuY29kZSkge1xuICAgICAgICA8cCBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3IubWVzc2FnZSB9fTwvcD5cbiAgICAgIH1cblxuICAgICAgPGZvcm0gKHN1Ym1pdCk9XCJvblN1Ym1pdCgkZXZlbnQpXCI+XG4gICAgICAgIEBmb3IgKGYgb2YgZmllbGRzKCk7IHRyYWNrIGYua2V5KSB7XG4gICAgICAgICAgQGlmIChmLnR5cGUgPT09ICdyYWRpbycgfHwgZi50eXBlID09PSAnbXVsdGlzZWxlY3QnKSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZCcsICdhdGxhcy1maWVsZCcpXCI+XG4gICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZExhYmVsJywgJ2F0bGFzLWZpZWxkLWxhYmVsJylcIj57eyBsYWJlbChmKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdGxhcy1jaG9pY2VzXCI+XG4gICAgICAgICAgICAgICAgQGZvciAobyBvZiBmLm9wdGlvbnM7IHRyYWNrIG8pIHtcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImF0bGFzLWNob2ljZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJmLnR5cGUgPT09ICdyYWRpbycgPyAncmFkaW8nIDogJ2NoZWNrYm94J1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJmLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9cIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInBpY2tlZChmLmtleSkuaW5jbHVkZXMobylcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlKGYsIG8sICRhbnkoJGV2ZW50LnRhcmdldCkuY2hlY2tlZClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB7eyBvIH19XG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICBAZm9yIChlcnJvciBvZiBmaWVsZEVycm9yc0ZvcihmLmtleSk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3IubWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkJywgJ2F0bGFzLWZpZWxkJylcIj5cbiAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkTGFiZWwnLCAnYXRsYXMtZmllbGQtbGFiZWwnKVwiPnt7IGxhYmVsKGYpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKGYudHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiZi5rZXlcIlxuICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwidmFsdWVzW2Yua2V5XSA9PT0gJ3RydWUnXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0VmFsdWUoZi5rZXksICRhbnkoJGV2ZW50LnRhcmdldCkuY2hlY2tlZCA/ICd0cnVlJyA6ICcnKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZi50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZElucHV0JywgJ2F0bGFzLWlucHV0JylcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJmLmtleVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVzW2Yua2V5XSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZi5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldFZhbHVlKGYua2V5LCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7IGYucGxhY2Vob2xkZXIgPz8gdCgnc2lnblVwLnNlbGVjdFBsYWNlaG9sZGVyJykgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKG8gb2YgZi5vcHRpb25zOyB0cmFjayBvKSB7XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9cIj57eyBvIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGYudHlwZSA9PT0gJ3RleHRhcmVhJykge1xuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYua2V5XCJcbiAgICAgICAgICAgICAgICAgIHJvd3M9XCIzXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNbZi5rZXldID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImYucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNldFZhbHVlKGYua2V5LCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgICBbdHlwZV09XCJpbnB1dFR5cGUoZilcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJmLmtleVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVzW2Yua2V5XSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZi5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJmLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJzZXRWYWx1ZShmLmtleSwgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGZvciAoZXJyb3Igb2YgZmllbGRFcnJvcnNGb3IoZi5rZXkpOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiPnt7IGVycm9yLm1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPGxhYmVsIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZCcsICdhdGxhcy1maWVsZCcpXCI+XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkTGFiZWwnLCAnYXRsYXMtZmllbGQtbGFiZWwnKVwiPnt7IHQoJ3NpZ25VcC5lbWFpbExhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRJbnB1dCcsICdhdGxhcy1pbnB1dCcpXCJcbiAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXG4gICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwiZW1haWxcIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNbJ2VtYWlsJ10gPz8gJydcIlxuICAgICAgICAgICAgKGlucHV0KT1cInNldFZhbHVlKCdlbWFpbCcsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKCdlbWFpbCcpOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3IubWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPGxhYmVsIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZCcsICdhdGxhcy1maWVsZCcpXCI+XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkTGFiZWwnLCAnYXRsYXMtZmllbGQtbGFiZWwnKVwiPnt7IHQoJ3NpZ25VcC5wYXNzd29yZExhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRJbnB1dCcsICdhdGxhcy1pbnB1dCcpXCJcbiAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVzWydwYXNzd29yZCddID8/ICcnXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJzZXRWYWx1ZSgncGFzc3dvcmQnLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAZm9yIChlcnJvciBvZiBmaWVsZEVycm9yc0ZvcigncGFzc3dvcmQnKTsgdHJhY2sgZXJyb3IuY29kZSkge1xuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiPnt7IGVycm9yLm1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgIEBpZiAoc2hvd0xlZ2FsKCkpIHtcbiAgICAgICAgICA8bGFiZWwgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkJywgJ2F0bGFzLWNvbnNlbnQnKVwiPlxuICAgICAgICAgICAgQGlmIChzZXR0aW5ncz8ubGVnYWw/LnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNvbnNlbnRcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImFncmVlZFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhZ3JlZWQgPSAkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdGxhcy10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHQoc2V0dGluZ3M/LmxlZ2FsPy5yZXF1aXJlZCA/ICdzaWduVXAuY29uc2VudEFncmVlJyA6ICdzaWduVXAuY29uc2VudE5vdGljZScpIH19XG4gICAgICAgICAgICAgIEBpZiAoc2V0dGluZ3M/LmxlZ2FsPy50ZXJtc1VybDsgYXMgdGVybXMpIHtcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImF0bGFzLWxpbmtcIiBbaHJlZl09XCJ0ZXJtc1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj57eyB0KCdzaWduVXAudGVybXMnKSB9fTwvYT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNldHRpbmdzPy5sZWdhbD8udGVybXNVcmwgJiYgc2V0dGluZ3M/LmxlZ2FsPy5wcml2YWN5VXJsKSB7XG4gICAgICAgICAgICAgICAge3sgdCgnc2lnblVwLmFuZCcpIH19XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzZXR0aW5ncz8ubGVnYWw/LnByaXZhY3lVcmw7IGFzIHByaXZhY3kpIHtcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImF0bGFzLWxpbmtcIiBbaHJlZl09XCJwcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPnt7IHQoJ3NpZ25VcC5wcml2YWN5JykgfX08L2E+XG4gICAgICAgICAgICAgIH0uXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICBAZm9yIChlcnJvciBvZiBmaWVsZEVycm9yc0ZvcignY29uc2VudCcpOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZEVycm9yJywgJ2F0bGFzLWVycm9yJylcIj57eyBlcnJvci5tZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGNhcHRjaGEpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXRsYXMtY2FwdGNoYVwiIGRhdGEtYXRsYXMtY2FwdGNoYT1cIlwiIFthdGxhc0NhcHRjaGFTbG90XT1cImNhcHRjaGFcIj48L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtQnV0dG9uUHJpbWFyeScsICdhdGxhcy1idXR0b24nKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImJ1c3kgfHwgIWNvbnNlbnRPaygpXCJcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHQoJ3NpZ25VcC5zdWJtaXQnKSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnblVwRm9ybUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXRsYXMgPSBpbmplY3QoQXRsYXNTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBzZXR0aW5nczogSW5zdGFuY2VTZXR0aW5ncyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yczogRmllbGRFcnJvcltdID0gW107XG4gIEBJbnB1dCgpIGNhcHRjaGE6IENhcHRjaGFDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEVtaXRzIHRoZSB0eXBlZCB2YWx1ZXMgYW5kIHRoZSBjb25zZW50IHRpY2sgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuICovXG4gIEBPdXRwdXQoKSBzdWJtaXRTaWduVXAgPSBuZXcgRXZlbnRFbWl0dGVyPFNpZ25VcEZvcm1TdWJtaXQ+KCk7XG5cbiAgcHJvdGVjdGVkIHZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBwcm90ZWN0ZWQgYWdyZWVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcsIHZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlKHRoaXMuYXRsYXMubG9jYWxpemF0aW9uLCBrZXksIHZhcnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNscyhrZXk6IEVsZW1lbnRLZXksIGJhc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNsYXNzRm9yKGtleSwgdGhpcy5hdGxhcy5hcHBlYXJhbmNlLCBiYXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlcyA9IHsgLi4udGhpcy52YWx1ZXMsIFtuYW1lXTogdmFsdWUgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWVsZHMoKTogUHVibGljU2lnblVwRmllbGRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3M/LnNpZ25VcEZpZWxkcyA/PyBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsYWJlbChmOiBQdWJsaWNTaWduVXBGaWVsZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGYucmVxdWlyZWQgPyBmLmxhYmVsIDogdGhpcy50KCdzaWduVXAub3B0aW9uYWxGaWVsZCcsIHsgbGFiZWw6IGYubGFiZWwgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5wdXRUeXBlKGY6IFB1YmxpY1NpZ25VcEZpZWxkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gWydlbWFpbCcsICd0ZWwnLCAndXJsJywgJ251bWJlcicsICdkYXRlJ10uaW5jbHVkZXMoZi50eXBlKSA/IGYudHlwZSA6ICd0ZXh0JztcbiAgfVxuXG4gIC8qKiBTYW1lIGVuY29kaW5nIGFzIFJlYWN0LCB0aGUgZW1iZWQgd2lkZ2V0IGFuZCB0aGUgaG9zdGVkIHBhZ2U6IG9uZSB2YWx1ZSxcbiAgICogIG9yIGEgY29tbWEtam9pbmVkIGxpc3QgZm9yIG11bHRpc2VsZWN0LiAqL1xuICBwcm90ZWN0ZWQgcGlja2VkKGtleTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZXNba2V5XTtcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS5zcGxpdCgnLCAnKSA6IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZShmOiBQdWJsaWNTaWduVXBGaWVsZCwgb3B0aW9uOiBzdHJpbmcsIG9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGYudHlwZSA9PT0gJ3JhZGlvJykge1xuICAgICAgdGhpcy5zZXRWYWx1ZShmLmtleSwgb3B0aW9uKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMucGlja2VkKGYua2V5KTtcbiAgICB0aGlzLnNldFZhbHVlKGYua2V5LCAob24gPyBbLi4uY3VycmVudCwgb3B0aW9uXSA6IGN1cnJlbnQuZmlsdGVyKChwKSA9PiBwICE9PSBvcHRpb24pKS5qb2luKCcsICcpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaG93TGVnYWwoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGVnYWwgPSB0aGlzLnNldHRpbmdzPy5sZWdhbDtcbiAgICByZXR1cm4gISFsZWdhbCAmJiAoISFsZWdhbC50ZXJtc1VybCB8fCAhIWxlZ2FsLnByaXZhY3lVcmwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnNlbnRPaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2V0dGluZ3M/LmxlZ2FsPy5yZXF1aXJlZCB8fCB0aGlzLmFncmVlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb3JtRXJyb3JzKCk6IEZpZWxkRXJyb3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+ICFlcnJvci5wYXJhbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmllbGRFcnJvcnNGb3IobmFtZTogc3RyaW5nKTogRmllbGRFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMuZmlsdGVyKChlcnJvcikgPT4gZXJyb3IucGFyYW0gPT09IG5hbWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3VibWl0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLmNvbnNlbnRPaygpKSByZXR1cm47XG4gICAgdGhpcy5zdWJtaXRTaWduVXAuZW1pdCh7XG4gICAgICB2YWx1ZXM6IHsgLi4udGhpcy52YWx1ZXMgfSxcbiAgICAgIGNvbnNlbnQ6IHRoaXMuc2V0dGluZ3M/LmxlZ2FsPy5yZXF1aXJlZCA/IHRoaXMuYWdyZWVkIDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
439
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zaWduLXVwLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEdBS3RCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVFqRjs7Ozs7OztHQU9HO0FBMktILE1BQU0sT0FBTyxtQkFBbUI7SUFDYixLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJDLFFBQVEsR0FBNEIsSUFBSSxDQUFDO0lBQ3pDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDYixNQUFNLEdBQWlCLEVBQUUsQ0FBQztJQUMxQixPQUFPLEdBQTZCLElBQUksQ0FBQztJQUVsRCw4RUFBOEU7SUFDcEUsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRXBELE1BQU0sR0FBMkIsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixDQUFDLENBQUMsR0FBVyxFQUFFLElBQTZCO1FBQ3BELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsMEZBQTBGO0lBQ2hGLFNBQVMsQ0FB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Ozs0RkFzS3hCLG1CQUFtQjtrQkExSy9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUtUO2lCQUNGOzhCQUlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGxvY2FsaXplZEVycm9yTWVzc2FnZSxcbiAgdHlwZSBDYXB0Y2hhQ29udHJvbGxlcixcbiAgdHlwZSBGaWVsZEVycm9yLFxuICB0eXBlIEluc3RhbmNlU2V0dGluZ3MsXG4gIHR5cGUgUHVibGljU2lnblVwRmllbGQsXG59IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuaW1wb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXRsYXMuc2VydmljZSc7XG5pbXBvcnQgeyBjbGFzc0ZvciwgdHlwZSBFbGVtZW50S2V5IH0gZnJvbSAnLi4vYXBwZWFyYW5jZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEF0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2NhcHRjaGEtc2xvdC5kaXJlY3RpdmUnO1xuXG4vKiogV2hhdCB0aGUgY3JlYXRlLWFjY291bnQgZm9ybSBlbWl0czogdGhlIHZhbHVlcyB0eXBlZCBwbHVzIHRoZSBjb25zZW50IHRpY2suICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25VcEZvcm1TdWJtaXQge1xuICB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNvbnNlbnQ6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIGNyZWF0ZS1hY2NvdW50IHN0ZXAgb2YgYDxhdGxhcy1zaWduLXVwPmA6IHRoZSBpbnN0YW5jZSdzIGNvbmZpZ3VyZWQgZXh0cmFcbiAqIGZpZWxkcywgZW1haWwgKyBwYXNzd29yZCwgdGhlIGxlZ2FsLWNvbnNlbnQgcm93IGFuZCDigJQgd2hlbiB0aGUgaW5zdGFuY2VcbiAqIHJlcXVpcmVzIG9uZSBvbiBzaWduLXVwIOKAlCB0aGUgY2FwdGNoYSB3aWRnZXQuIFZhbHVlcyBsaXZlIG9uIHRoZSBjb21wb25lbnQgc29cbiAqIGEgcmVmdXNlZCBzdWJtaXQgbmV2ZXIgY2xlYXJzIHRoZW0uIFdoZW4gdGhlIGFwcCBjYW5ub3Qgc2VuZCB0aGUgdmVyaWZpY2F0aW9uXG4gKiBlbWFpbCAoYHNldHRpbmdzLmVtYWlsRGVsaXZlcnkucGFzc3dvcmRTaWduVXAgPT09IGZhbHNlYCkgaXQgc2hvd3MgdGhlXG4gKiBgc2lnblVwLmVtYWlsVW5hdmFpbGFibGVgIG5vdGljZSBpbnN0ZWFkIG9mIHRoZSBmb3JtLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdGxhcy1zaWduLXVwLWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNscygnY2FyZCcsICdhdGxhcy1jYXJkJylcIj5cbiAgICAgIDxoMSBbY2xhc3NdPVwiY2xzKCdoZWFkZXJUaXRsZScsICdhdGxhcy10aXRsZScpXCI+e3sgdCgnc2lnblVwLnRpdGxlJykgfX08L2gxPlxuXG4gICAgICBAaWYgKGVtYWlsVW5hdmFpbGFibGUoKSkge1xuICAgICAgICA8IS0tIFRoZSBhcHAgY2Fubm90IHNlbmQgdGhlIHZlcmlmaWNhdGlvbiBlbWFpbCwgc28gYW4gZW1haWwgKyBwYXNzd29yZFxuICAgICAgICAgICAgIHNpZ24tdXAgY291bGQgbmV2ZXIgY29tcGxldGU6IHNheSBzbyBpbnN0ZWFkIG9mIG9mZmVyaW5nIHRoZSBmb3JtLiAtLT5cbiAgICAgICAgPHAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiIHJvbGU9XCJhbGVydFwiIGRhdGEtYXRsYXMtZW1haWwtdW5hdmFpbGFibGU9XCJcIj5cbiAgICAgICAgICB7eyB0KCdzaWduVXAuZW1haWxVbmF2YWlsYWJsZScpIH19XG4gICAgICAgIDwvcD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgQGZvciAoZXJyb3Igb2YgZm9ybUVycm9ycygpOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgIDxwIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZEVycm9yJywgJ2F0bGFzLWVycm9yJylcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvclRleHQoZXJyb3IpIH19PC9wPlxuICAgICAgfVxuXG4gICAgICA8Zm9ybSAoc3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoZiBvZiBmaWVsZHMoKTsgdHJhY2sgZi5rZXkpIHtcbiAgICAgICAgICBAaWYgKGYudHlwZSA9PT0gJ3JhZGlvJyB8fCBmLnR5cGUgPT09ICdtdWx0aXNlbGVjdCcpIHtcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkJywgJ2F0bGFzLWZpZWxkJylcIj5cbiAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkTGFiZWwnLCAnYXRsYXMtZmllbGQtbGFiZWwnKVwiPnt7IGxhYmVsKGYpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF0bGFzLWNob2ljZXNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChvIG9mIGYub3B0aW9uczsgdHJhY2sgbykge1xuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYXRsYXMtY2hvaWNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImYudHlwZSA9PT0gJ3JhZGlvJyA/ICdyYWRpbycgOiAnY2hlY2tib3gnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwicGlja2VkKGYua2V5KS5pbmNsdWRlcyhvKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGUoZiwgbywgJGFueSgkZXZlbnQudGFyZ2V0KS5jaGVja2VkKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHt7IG8gfX1cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKGYua2V5KTsgdHJhY2sgZXJyb3IuY29kZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZEVycm9yJywgJ2F0bGFzLWVycm9yJylcIj57eyBlcnJvclRleHQoZXJyb3IpIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGQnLCAnYXRsYXMtZmllbGQnKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRMYWJlbCcsICdhdGxhcy1maWVsZC1sYWJlbCcpXCI+e3sgbGFiZWwoZikgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoZi50eXBlID09PSAnY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJmLmtleVwiXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ2YWx1ZXNbZi5rZXldID09PSAndHJ1ZSdcIlxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXRWYWx1ZShmLmtleSwgJGFueSgkZXZlbnQudGFyZ2V0KS5jaGVja2VkID8gJ3RydWUnIDogJycpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmLnR5cGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkSW5wdXQnLCAnYXRsYXMtaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYua2V5XCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNbZi5rZXldID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0VmFsdWUoZi5rZXksICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3sgZi5wbGFjZWhvbGRlciA/PyB0KCdzaWduVXAuc2VsZWN0UGxhY2Vob2xkZXInKSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgQGZvciAobyBvZiBmLm9wdGlvbnM7IHRyYWNrIG8pIHtcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib1wiPnt7IG8gfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZi50eXBlID09PSAndGV4dGFyZWEnKSB7XG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRJbnB1dCcsICdhdGxhcy1pbnB1dCcpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiZi5rZXlcIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjNcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlc1tmLmtleV0gPz8gJydcIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImYucmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiZi5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAoaW5wdXQpPVwic2V0VmFsdWUoZi5rZXksICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRJbnB1dCcsICdhdGxhcy1pbnB1dCcpXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImlucHV0VHlwZShmKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImYua2V5XCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNbZi5rZXldID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImYucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNldFZhbHVlKGYua2V5LCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAZm9yIChlcnJvciBvZiBmaWVsZEVycm9yc0ZvcihmLmtleSk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3JUZXh0KGVycm9yKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA8bGFiZWwgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkJywgJ2F0bGFzLWZpZWxkJylcIj5cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRMYWJlbCcsICdhdGxhcy1maWVsZC1sYWJlbCcpXCI+e3sgdCgnc2lnblVwLmVtYWlsTGFiZWwnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZElucHV0JywgJ2F0bGFzLWlucHV0JylcIlxuICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJlbWFpbFwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlc1snZW1haWwnXSA/PyAnJ1wiXG4gICAgICAgICAgICAoaW5wdXQpPVwic2V0VmFsdWUoJ2VtYWlsJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgQGZvciAoZXJyb3Igb2YgZmllbGRFcnJvcnNGb3IoJ2VtYWlsJyk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZEVycm9yJywgJ2F0bGFzLWVycm9yJylcIj57eyBlcnJvclRleHQoZXJyb3IpIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICA8bGFiZWwgW2NsYXNzXT1cImNscygnZm9ybUZpZWxkJywgJ2F0bGFzLWZpZWxkJylcIj5cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRMYWJlbCcsICdhdGxhcy1maWVsZC1sYWJlbCcpXCI+e3sgdCgnc2lnblVwLnBhc3N3b3JkTGFiZWwnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1GaWVsZElucHV0JywgJ2F0bGFzLWlucHV0JylcIlxuICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZXNbJ3Bhc3N3b3JkJ10gPz8gJydcIlxuICAgICAgICAgICAgKGlucHV0KT1cInNldFZhbHVlKCdwYXNzd29yZCcsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKCdwYXNzd29yZCcpOyB0cmFjayBlcnJvci5jb2RlKSB7XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGRFcnJvcicsICdhdGxhcy1lcnJvcicpXCI+e3sgZXJyb3JUZXh0KGVycm9yKSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgQGlmIChzaG93TGVnYWwoKSkge1xuICAgICAgICAgIDxsYWJlbCBbY2xhc3NdPVwiY2xzKCdmb3JtRmllbGQnLCAnYXRsYXMtY29uc2VudCcpXCI+XG4gICAgICAgICAgICBAaWYgKHNldHRpbmdzPy5sZWdhbD8ucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY29uc2VudFwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiYWdyZWVkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImFncmVlZCA9ICRhbnkoJGV2ZW50LnRhcmdldCkuY2hlY2tlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF0bGFzLXRleHRcIj5cbiAgICAgICAgICAgICAge3sgdChzZXR0aW5ncz8ubGVnYWw/LnJlcXVpcmVkID8gJ3NpZ25VcC5jb25zZW50QWdyZWUnIDogJ3NpZ25VcC5jb25zZW50Tm90aWNlJykgfX1cbiAgICAgICAgICAgICAgQGlmIChzZXR0aW5ncz8ubGVnYWw/LnRlcm1zVXJsOyBhcyB0ZXJtcykge1xuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYXRsYXMtbGlua1wiIFtocmVmXT1cInRlcm1zXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPnt7IHQoJ3NpZ25VcC50ZXJtcycpIH19PC9hPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2V0dGluZ3M/LmxlZ2FsPy50ZXJtc1VybCAmJiBzZXR0aW5ncz8ubGVnYWw/LnByaXZhY3lVcmwpIHtcbiAgICAgICAgICAgICAgICB7eyB0KCdzaWduVXAuYW5kJykgfX1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNldHRpbmdzPy5sZWdhbD8ucHJpdmFjeVVybDsgYXMgcHJpdmFjeSkge1xuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiYXRsYXMtbGlua1wiIFtocmVmXT1cInByaXZhY3lcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+e3sgdCgnc2lnblVwLnByaXZhY3knKSB9fTwvYT5cbiAgICAgICAgICAgICAgfS5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIEBmb3IgKGVycm9yIG9mIGZpZWxkRXJyb3JzRm9yKCdjb25zZW50Jyk7IHRyYWNrIGVycm9yLmNvZGUpIHtcbiAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNscygnZm9ybUZpZWxkRXJyb3InLCAnYXRsYXMtZXJyb3InKVwiPnt7IGVycm9yVGV4dChlcnJvcikgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoY2FwdGNoYSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdGxhcy1jYXB0Y2hhXCIgZGF0YS1hdGxhcy1jYXB0Y2hhPVwiXCIgW2F0bGFzQ2FwdGNoYVNsb3RdPVwiY2FwdGNoYVwiPjwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtjbGFzc109XCJjbHMoJ2Zvcm1CdXR0b25QcmltYXJ5JywgJ2F0bGFzLWJ1dHRvbicpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeSB8fCAhY29uc2VudE9rKClcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgdCgnc2lnblVwLnN1Ym1pdCcpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9mb3JtPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduVXBGb3JtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdGxhcyA9IGluamVjdChBdGxhc1NlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBJbnN0YW5jZVNldHRpbmdzIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3JzOiBGaWVsZEVycm9yW10gPSBbXTtcbiAgQElucHV0KCkgY2FwdGNoYTogQ2FwdGNoYUNvbnRyb2xsZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogRW1pdHMgdGhlIHR5cGVkIHZhbHVlcyBhbmQgdGhlIGNvbnNlbnQgdGljayB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gKi9cbiAgQE91dHB1dCgpIHN1Ym1pdFNpZ25VcCA9IG5ldyBFdmVudEVtaXR0ZXI8U2lnblVwRm9ybVN1Ym1pdD4oKTtcblxuICBwcm90ZWN0ZWQgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIHByb3RlY3RlZCBhZ3JlZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZywgdmFycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0cmFuc2xhdGUodGhpcy5hdGxhcy5sb2NhbGl6YXRpb24sIGtleSwgdmFycyk7XG4gIH1cblxuICAvKiogQSBzZXJ2ZXIgZXJyb3IgaW4gdGhlIGFwcCdzIGxhbmd1YWdlIChgZXJyb3IuPHJlYXNvbj5gLCBlbHNlIHRoZSBzZXJ2ZXIncyBtZXNzYWdlKS4gKi9cbiAgcHJvdGVjdGVkIGVycm9yVGV4dChlcnJvcjogRmllbGRFcnJvcik6IHN0cmluZyB7XG4gICAgLy8gYGVycm9yTG9jYWxpemF0aW9uYCBpcyByZWFkIGRlZmVuc2l2ZWx5OiBhIHN0YW5kLWluIHNlcnZpY2UgbWF5IGxhY2sgaXQuXG4gICAgY29uc3QgbGF5ZXIgPSAodGhpcy5hdGxhcyBhcyB7IGVycm9yTG9jYWxpemF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9KS5lcnJvckxvY2FsaXphdGlvbjtcbiAgICByZXR1cm4gbG9jYWxpemVkRXJyb3JNZXNzYWdlKGVycm9yLCBsYXllciA/PyB0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwgdGhpcy5hdGxhcy5sb2NhbGl6YXRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNscyhrZXk6IEVsZW1lbnRLZXksIGJhc2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNsYXNzRm9yKGtleSwgdGhpcy5hdGxhcy5hcHBlYXJhbmNlLCBiYXNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRWYWx1ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlcyA9IHsgLi4udGhpcy52YWx1ZXMsIFtuYW1lXTogdmFsdWUgfTtcbiAgfVxuXG4gIC8qKiBFbWFpbCArIHBhc3N3b3JkIHNpZ24tdXAgY2Fubm90IGNvbXBsZXRlOiB0aGUgYXBwIGNhbm5vdCBzZW5kIHRoZSB2ZXJpZmljYXRpb24gZW1haWwuICovXG4gIHByb3RlY3RlZCBlbWFpbFVuYXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5lbWFpbERlbGl2ZXJ5Py5wYXNzd29yZFNpZ25VcCA9PT0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmllbGRzKCk6IFB1YmxpY1NpZ25VcEZpZWxkW10ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5zaWduVXBGaWVsZHMgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgbGFiZWwoZjogUHVibGljU2lnblVwRmllbGQpOiBzdHJpbmcge1xuICAgIHJldHVybiBmLnJlcXVpcmVkID8gZi5sYWJlbCA6IHRoaXMudCgnc2lnblVwLm9wdGlvbmFsRmllbGQnLCB7IGxhYmVsOiBmLmxhYmVsIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlucHV0VHlwZShmOiBQdWJsaWNTaWduVXBGaWVsZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFsnZW1haWwnLCAndGVsJywgJ3VybCcsICdudW1iZXInLCAnZGF0ZSddLmluY2x1ZGVzKGYudHlwZSkgPyBmLnR5cGUgOiAndGV4dCc7XG4gIH1cblxuICAvKiogU2FtZSBlbmNvZGluZyBhcyBSZWFjdCwgdGhlIGVtYmVkIHdpZGdldCBhbmQgdGhlIGhvc3RlZCBwYWdlOiBvbmUgdmFsdWUsXG4gICAqICBvciBhIGNvbW1hLWpvaW5lZCBsaXN0IGZvciBtdWx0aXNlbGVjdC4gKi9cbiAgcHJvdGVjdGVkIHBpY2tlZChrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWVzW2tleV07XG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUuc3BsaXQoJywgJykgOiBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoZjogUHVibGljU2lnblVwRmllbGQsIG9wdGlvbjogc3RyaW5nLCBvbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChmLnR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoZi5rZXksIG9wdGlvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnBpY2tlZChmLmtleSk7XG4gICAgdGhpcy5zZXRWYWx1ZShmLmtleSwgKG9uID8gWy4uLmN1cnJlbnQsIG9wdGlvbl0gOiBjdXJyZW50LmZpbHRlcigocCkgPT4gcCAhPT0gb3B0aW9uKSkuam9pbignLCAnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvd0xlZ2FsKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxlZ2FsID0gdGhpcy5zZXR0aW5ncz8ubGVnYWw7XG4gICAgcmV0dXJuICEhbGVnYWwgJiYgKCEhbGVnYWwudGVybXNVcmwgfHwgISFsZWdhbC5wcml2YWN5VXJsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25zZW50T2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnNldHRpbmdzPy5sZWdhbD8ucmVxdWlyZWQgfHwgdGhpcy5hZ3JlZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybUVycm9ycygpOiBGaWVsZEVycm9yW10ge1xuICAgIHJldHVybiB0aGlzLmVycm9ycy5maWx0ZXIoKGVycm9yKSA9PiAhZXJyb3IucGFyYW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpZWxkRXJyb3JzRm9yKG5hbWU6IHN0cmluZyk6IEZpZWxkRXJyb3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmZpbHRlcigoZXJyb3IpID0+IGVycm9yLnBhcmFtID09PSBuYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN1Ym1pdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmVtYWlsVW5hdmFpbGFibGUoKSB8fCAhdGhpcy5jb25zZW50T2soKSkgcmV0dXJuO1xuICAgIHRoaXMuc3VibWl0U2lnblVwLmVtaXQoe1xuICAgICAgdmFsdWVzOiB7IC4uLnRoaXMudmFsdWVzIH0sXG4gICAgICBjb25zZW50OiB0aGlzLnNldHRpbmdzPy5sZWdhbD8ucmVxdWlyZWQgPyB0aGlzLmFncmVlZCA6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -49,7 +49,7 @@ export class SignUpComponent {
49
49
  (submitSignUp)="flow.create($event.values, $event.consent)"
50
50
  ></atlas-sign-up-form>
51
51
  }
52
- `, isInline: true, dependencies: [{ kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "titleKey", "captcha"], outputs: ["submitFlow"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha"], outputs: ["submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ `, isInline: true, dependencies: [{ kind: "component", type: AttemptFlowComponent, selector: "atlas-attempt-flow", inputs: ["attempt", "busy", "errors", "titleKey", "captcha", "firstFactors", "preparedFactor"], outputs: ["submitFlow", "chooseFactor"] }, { kind: "component", type: SignUpFormComponent, selector: "atlas-sign-up-form", inputs: ["settings", "busy", "errors", "captcha"], outputs: ["submitSignUp"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SignUpComponent, decorators: [{
55
55
  type: Component,
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
81
81
  }], propDecorators: { afterUrl: [{
82
82
  type: Input
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi11cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEQ7Ozs7Ozs7Ozs7O0dBV0c7QUEwQkgsTUFBTSxPQUFPLGVBQWU7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlDLGlGQUFpRjtJQUN4RSxRQUFRLENBQVU7SUFFUixJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUM3QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFDekIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FDakQsQ0FBQztJQUVGLFFBQVE7UUFDTix5RUFBeUU7UUFDekUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDO3dHQXBCVSxlQUFlOzRGQUFmLGVBQWUsMkdBcEJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULDREQW5CUyxvQkFBb0Isc0pBQUUsbUJBQW1COzs0RkFxQnhDLGVBQWU7a0JBekIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO29CQUNwRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtpQkFDRjs4QkFLVSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXRsYXMuc2VydmljZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEF0dGVtcHRGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9hdHRlbXB0LWZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ25VcEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3NpZ24tdXAtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRsYXNGbG93Q29udHJvbGxlciB9IGZyb20gJy4vZmxvdy1jb250cm9sbGVyJztcblxuLyoqXG4gKiBgPGF0bGFzLXNpZ24tdXA+YCDigJQgY3JlYXRlcyBhbiBhY2NvdW50LiBUaGUgQW5ndWxhciBwZWVyIG9mIFJlYWN0J3NcbiAqIGA8U2lnblVwLz5gLiBUaGUgZmlyc3Qgc3RlcCBpcyB0aGUgY3JlYXRlLWFjY291bnQgZm9ybSAodGhlIGluc3RhbmNlJ3NcbiAqIGNvbmZpZ3VyZWQgZmllbGRzLCBlbWFpbCwgcGFzc3dvcmQsIGxlZ2FsIGNvbnNlbnQgYW5kIOKAlCB3aGVuIHJlcXVpcmVkIOKAlCB0aGVcbiAqIGNhcHRjaGEpLCB3aGljaCBQT1NUcyBgL3YxL2NsaWVudC9zaWduX3Vwc2A7IGZyb20gdGhlcmUgaXQgc2hhcmVzIHRoZSBmbG93XG4gKiBlbmdpbmUgd2l0aCBgPGF0bGFzLXNpZ24taW4+YCAodGhlIGVtYWlsZWQtY29kZSBzdGVwLCB0aGVuIHRoZSB0aWNrZXRcbiAqIGV4Y2hhbmdlKSwgYmVjYXVzZSB0aGUgc2VxdWVuY2Ugb2Ygc3RlcHMgaXMgZGVjaWRlZCBieSB0aGUgc2VydmVyLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhdGxhcy1zaWduLXVwICphdGxhc1NpZ25lZE91dD48L2F0bGFzLXNpZ24tdXA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRsYXMtc2lnbi11cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXR0ZW1wdEZsb3dDb21wb25lbnQsIFNpZ25VcEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoZmxvdy5zdGF0ZSgpLmF0dGVtcHQpIHtcbiAgICAgIDxhdGxhcy1hdHRlbXB0LWZsb3dcbiAgICAgICAgW2F0dGVtcHRdPVwiZmxvdy5zdGF0ZSgpLmF0dGVtcHRcIlxuICAgICAgICBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiXG4gICAgICAgIFtlcnJvcnNdPVwiZmxvdy5zdGF0ZSgpLmVycm9yc1wiXG4gICAgICAgIHRpdGxlS2V5PVwic2lnblVwLnRpdGxlXCJcbiAgICAgICAgKHN1Ym1pdEZsb3cpPVwiZmxvdy5zdWJtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9hdGxhcy1hdHRlbXB0LWZsb3c+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YXRsYXMtc2lnbi11cC1mb3JtXG4gICAgICAgIFtzZXR0aW5nc109XCJmbG93LnNldHRpbmdzKClcIlxuICAgICAgICBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiXG4gICAgICAgIFtlcnJvcnNdPVwiZmxvdy5zdGF0ZSgpLmVycm9yc1wiXG4gICAgICAgIFtjYXB0Y2hhXT1cImZsb3cuc2lnblVwQ2FwdGNoYURyYXduKCkgPyBmbG93LnNpZ25VcENhcHRjaGEgOiBudWxsXCJcbiAgICAgICAgKHN1Ym1pdFNpZ25VcCk9XCJmbG93LmNyZWF0ZSgkZXZlbnQudmFsdWVzLCAkZXZlbnQuY29uc2VudClcIlxuICAgICAgPjwvYXRsYXMtc2lnbi11cC1mb3JtPlxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnblVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGF0bGFzID0gaW5qZWN0KEF0bGFzU2VydmljZSk7XG5cbiAgLyoqIFdoZXJlIHRvIHNlbmQgdGhlIHVzZXIgb25jZSB0aGUgZmxvdyBjb21wbGV0ZXMuIFJlc2VydmVkIGZvciBob3N0IHJvdXRpbmcuICovXG4gIEBJbnB1dCgpIGFmdGVyVXJsPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmbG93ID0gbmV3IEF0bGFzRmxvd0NvbnRyb2xsZXIoXG4gICAgdGhpcy5hdGxhcy5jcmVhdGVGYXBpQ2xpZW50KCksXG4gICAgKCkgPT4gdGhpcy5hdGxhcy5yZWxvYWQoKSxcbiAgICB0aGlzLmF0bGFzLnBlbmRpbmdBdHRlbXB0LFxuICAgIChrZXkpID0+IHRyYW5zbGF0ZSh0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwga2V5KSxcbiAgKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyDCpzUgdGhlIGluc3RhbmNlJ3Mgc2lnbi11cCBmaWVsZHMsIGNvbnNlbnQgcG9saWN5IGFuZCBjYXB0Y2hhIHNldHRpbmdzLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgdm9pZCB0aGlzLmZsb3cubG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3cuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi11cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2lnbi11cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEQ7Ozs7Ozs7Ozs7O0dBV0c7QUEwQkgsTUFBTSxPQUFPLGVBQWU7SUFDVCxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTlDLGlGQUFpRjtJQUN4RSxRQUFRLENBQVU7SUFFUixJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUM3QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFDekIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FDakQsQ0FBQztJQUVGLFFBQVE7UUFDTix5RUFBeUU7UUFDekUsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDO3dHQXBCVSxlQUFlOzRGQUFmLGVBQWUsMkdBcEJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULDREQW5CUyxvQkFBb0Isd01BQUUsbUJBQW1COzs0RkFxQnhDLGVBQWU7a0JBekIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLG1CQUFtQixDQUFDO29CQUNwRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtpQkFDRjs4QkFLVSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi4vYXRsYXMuc2VydmljZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IEF0dGVtcHRGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9hdHRlbXB0LWZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ25VcEZvcm1Db21wb25lbnQgfSBmcm9tICcuL3NpZ24tdXAtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRsYXNGbG93Q29udHJvbGxlciB9IGZyb20gJy4vZmxvdy1jb250cm9sbGVyJztcblxuLyoqXG4gKiBgPGF0bGFzLXNpZ24tdXA+YCDigJQgY3JlYXRlcyBhbiBhY2NvdW50LiBUaGUgQW5ndWxhciBwZWVyIG9mIFJlYWN0J3NcbiAqIGA8U2lnblVwLz5gLiBUaGUgZmlyc3Qgc3RlcCBpcyB0aGUgY3JlYXRlLWFjY291bnQgZm9ybSAodGhlIGluc3RhbmNlJ3NcbiAqIGNvbmZpZ3VyZWQgZmllbGRzLCBlbWFpbCwgcGFzc3dvcmQsIGxlZ2FsIGNvbnNlbnQgYW5kIOKAlCB3aGVuIHJlcXVpcmVkIOKAlCB0aGVcbiAqIGNhcHRjaGEpLCB3aGljaCBQT1NUcyBgL3YxL2NsaWVudC9zaWduX3Vwc2A7IGZyb20gdGhlcmUgaXQgc2hhcmVzIHRoZSBmbG93XG4gKiBlbmdpbmUgd2l0aCBgPGF0bGFzLXNpZ24taW4+YCAodGhlIGVtYWlsZWQtY29kZSBzdGVwLCB0aGVuIHRoZSB0aWNrZXRcbiAqIGV4Y2hhbmdlKSwgYmVjYXVzZSB0aGUgc2VxdWVuY2Ugb2Ygc3RlcHMgaXMgZGVjaWRlZCBieSB0aGUgc2VydmVyLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhdGxhcy1zaWduLXVwICphdGxhc1NpZ25lZE91dD48L2F0bGFzLXNpZ24tdXA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXRsYXMtc2lnbi11cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXR0ZW1wdEZsb3dDb21wb25lbnQsIFNpZ25VcEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoZmxvdy5zdGF0ZSgpLmF0dGVtcHQpIHtcbiAgICAgIDxhdGxhcy1hdHRlbXB0LWZsb3dcbiAgICAgICAgW2F0dGVtcHRdPVwiZmxvdy5zdGF0ZSgpLmF0dGVtcHRcIlxuICAgICAgICBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiXG4gICAgICAgIFtlcnJvcnNdPVwiZmxvdy5zdGF0ZSgpLmVycm9yc1wiXG4gICAgICAgIHRpdGxlS2V5PVwic2lnblVwLnRpdGxlXCJcbiAgICAgICAgKHN1Ym1pdEZsb3cpPVwiZmxvdy5zdWJtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9hdGxhcy1hdHRlbXB0LWZsb3c+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8YXRsYXMtc2lnbi11cC1mb3JtXG4gICAgICAgIFtzZXR0aW5nc109XCJmbG93LnNldHRpbmdzKClcIlxuICAgICAgICBbYnVzeV09XCJmbG93LnN0YXRlKCkuYnVzeVwiXG4gICAgICAgIFtlcnJvcnNdPVwiZmxvdy5zdGF0ZSgpLmVycm9yc1wiXG4gICAgICAgIFtjYXB0Y2hhXT1cImZsb3cuc2lnblVwQ2FwdGNoYURyYXduKCkgPyBmbG93LnNpZ25VcENhcHRjaGEgOiBudWxsXCJcbiAgICAgICAgKHN1Ym1pdFNpZ25VcCk9XCJmbG93LmNyZWF0ZSgkZXZlbnQudmFsdWVzLCAkZXZlbnQuY29uc2VudClcIlxuICAgICAgPjwvYXRsYXMtc2lnbi11cC1mb3JtPlxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2lnblVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGF0bGFzID0gaW5qZWN0KEF0bGFzU2VydmljZSk7XG5cbiAgLyoqIFdoZXJlIHRvIHNlbmQgdGhlIHVzZXIgb25jZSB0aGUgZmxvdyBjb21wbGV0ZXMuIFJlc2VydmVkIGZvciBob3N0IHJvdXRpbmcuICovXG4gIEBJbnB1dCgpIGFmdGVyVXJsPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmbG93ID0gbmV3IEF0bGFzRmxvd0NvbnRyb2xsZXIoXG4gICAgdGhpcy5hdGxhcy5jcmVhdGVGYXBpQ2xpZW50KCksXG4gICAgKCkgPT4gdGhpcy5hdGxhcy5yZWxvYWQoKSxcbiAgICB0aGlzLmF0bGFzLnBlbmRpbmdBdHRlbXB0LFxuICAgIChrZXkpID0+IHRyYW5zbGF0ZSh0aGlzLmF0bGFzLmxvY2FsaXphdGlvbiwga2V5KSxcbiAgKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyDCpzUgdGhlIGluc3RhbmNlJ3Mgc2lnbi11cCBmaWVsZHMsIGNvbnNlbnQgcG9saWN5IGFuZCBjYXB0Y2hhIHNldHRpbmdzLlxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgdm9pZCB0aGlzLmZsb3cubG9hZFNldHRpbmdzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZsb3cuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
@@ -21,6 +21,7 @@ export const EN_US = {
21
21
  'signIn.orDivider': 'or',
22
22
  'signIn.socialButton': 'Continue with {provider}',
23
23
  'signIn.emailCodeLabel': 'Verification code',
24
+ 'signIn.useEmailCode': 'Email me a code',
24
25
  'signIn.magicLinkSent': 'Check your email for a sign-in link.',
25
26
  'signIn.checkOtherTab': 'You can close this tab — you are signed in where you started.',
26
27
  'signUp.title': 'Create your account',
@@ -36,6 +37,8 @@ export const EN_US = {
36
37
  'signUp.terms': 'Terms of Service',
37
38
  'signUp.privacy': 'Privacy Policy',
38
39
  'signUp.and': 'and',
40
+ // = EMAIL_UNAVAILABLE_MESSAGE from @atlasauth/js.
41
+ 'signUp.emailUnavailable': "This app can't send email right now. Try another sign-in method or contact the app owner.",
39
42
  'captcha.prompt': 'Complete the security check to continue.',
40
43
  'captcha.required': 'Please complete the security check, then try again.',
41
44
  'captcha.failed': "The security check didn't pass. Please try again.",
@@ -71,6 +74,46 @@ export const EN_US = {
71
74
  'organization.roleLabel': 'Role',
72
75
  'error.generic': 'Something went wrong. Please try again.',
73
76
  'error.network': 'We could not reach the server. Check your connection.',
77
+ // Server errors, by the stable `reason` the Frontend API sends. Shown instead
78
+ // of the server's `message` (see `localizedErrorMessage` in @atlasauth/js).
79
+ 'error.form_password_incorrect': 'Those credentials are incorrect.',
80
+ 'error.form_code_incorrect': 'That code is incorrect.',
81
+ 'error.form_code_already_used': 'That code has already been used. Wait for a new one.',
82
+ 'error.form_code_expired': 'That code has expired. Request a new one.',
83
+ 'error.form_code_max_attempts': 'Too many incorrect codes. Request a new code.',
84
+ 'error.form_link_invalid': 'That sign-in link is invalid or has already been used.',
85
+ 'error.form_identifier_not_found': "We couldn't find an account with those details.",
86
+ 'error.form_identifier_exists': "There's already an account for this email. Sign in with {methods}.",
87
+ 'error.form_password_pwned': 'This password has appeared in a known data breach. Please choose a different one.',
88
+ 'error.form_password_too_short': 'Password must be at least {min_length} characters.',
89
+ 'error.form_password_too_long': 'Password must be at most {max_length} characters.',
90
+ 'error.form_password_requires_uppercase': 'Password must contain an uppercase letter.',
91
+ 'error.form_password_requires_lowercase': 'Password must contain a lowercase letter.',
92
+ 'error.form_password_requires_number': 'Password must contain a number.',
93
+ 'error.form_password_requires_symbol': 'Password must contain a symbol.',
94
+ 'error.form_password_not_allowed': 'That password is not allowed. Choose a different one.',
95
+ 'error.form_password_contains_identifier': 'Password must not contain your email or username.',
96
+ 'error.form_password_same_as_current': 'Your new password must be different from your current one.',
97
+ 'error.form_password_reused': 'Your new password must not match any of your last {history_count} passwords.',
98
+ 'error.password_expired': 'Your password has expired. Reset it to continue.',
99
+ 'error.email_not_verified': 'Your email address is not verified yet. Verify it before signing in with your password.',
100
+ 'error.sign_in_token_invalid': 'That sign-in token is invalid or has expired.',
101
+ 'error.too_many_attempts': 'Too many failed attempts. Try again later.',
102
+ 'error.too_many_requests': 'Too many requests. Please try again later.',
103
+ 'error.captcha_required': 'Please complete the security check, then try again.',
104
+ 'error.captcha_failed': "The security check didn't pass. Please try again.",
105
+ 'error.captcha_unavailable': 'The security check is unavailable right now. Please try again later.',
106
+ 'error.email_delivery_unavailable': "This app can't send email right now. Try another sign-in method or contact the app owner.",
107
+ 'error.strategy_disabled': 'This sign-in method is not available for this app.',
108
+ 'error.sign_up_restricted': 'Sign-up on this app is by invitation only.',
109
+ 'error.waitlisted': "You're on the waitlist. We'll email you when a place opens up.",
110
+ 'error.identifier_not_allowed': 'This email or phone number is not allowed on this app.',
111
+ 'error.disposable_email_blocked': 'Sign-up with a disposable or temporary email address is not allowed.',
112
+ 'error.sso_required': 'This organization requires signing in through single sign-on.',
113
+ 'error.sign_ins_disabled': 'Sign-ins are temporarily disabled.',
114
+ 'error.sign_ups_disabled': 'Sign-ups are temporarily disabled.',
115
+ 'error.high_risk_blocked': 'This sign-in was blocked because it looked unusual.',
116
+ 'error.sms_region_blocked': 'Text messages are not available for this phone number.',
74
117
  };
75
118
  /**
76
119
  * Look up a key and interpolate `{placeholders}`.
@@ -87,4 +130,4 @@ export function translate(catalog, key, variables = {}) {
87
130
  export function withFallback(locale) {
88
131
  return { ...EN_US, ...locale };
89
132
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMsc0JBQXNCLEVBQUUsc0NBQXNDO0lBQzlELHNCQUFzQixFQUFFLCtEQUErRDtJQUV2RixjQUFjLEVBQUUscUJBQXFCO0lBQ3JDLGVBQWUsRUFBRSxVQUFVO0lBQzNCLG9CQUFvQixFQUFFLDBCQUEwQjtJQUNoRCxtQkFBbUIsRUFBRSxTQUFTO0lBQzlCLG1CQUFtQixFQUFFLGVBQWU7SUFDcEMsc0JBQXNCLEVBQUUsVUFBVTtJQUNsQyxzQkFBc0IsRUFBRSxvQkFBb0I7SUFDNUMsMEJBQTBCLEVBQUUsU0FBUztJQUNyQyxxQkFBcUIsRUFBRSxnQkFBZ0I7SUFDdkMsc0JBQXNCLEVBQUUsZ0NBQWdDO0lBQ3hELGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLFlBQVksRUFBRSxLQUFLO0lBRW5CLGdCQUFnQixFQUFFLDBDQUEwQztJQUM1RCxrQkFBa0IsRUFBRSxxREFBcUQ7SUFDekUsZ0JBQWdCLEVBQUUsbURBQW1EO0lBRXJFLFdBQVcsRUFBRSx1QkFBdUI7SUFDcEMsY0FBYyxFQUFFLDZDQUE2QztJQUM3RCxlQUFlLEVBQUUsTUFBTTtJQUN2QiwwQkFBMEIsRUFBRSxrQ0FBa0M7SUFDOUQsMkJBQTJCLEVBQUUsd0JBQXdCO0lBQ3JELGdCQUFnQixFQUFFLHVCQUF1QjtJQUN6QyxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsWUFBWSxFQUFFLFFBQVE7SUFFdEIsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQyxjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLHdCQUF3QixFQUFFLGNBQWM7SUFFeEMsMEJBQTBCLEVBQUUsZ0JBQWdCO0lBQzVDLG9CQUFvQixFQUFFLFVBQVU7SUFDaEMsdUJBQXVCLEVBQUUseUJBQXlCO0lBRWxELG1CQUFtQixFQUFFLFNBQVM7SUFDOUIsNEJBQTRCLEVBQUUsU0FBUztJQUN2QywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsNkJBQTZCLEVBQUUsVUFBVTtJQUN6Qyw0QkFBNEIsRUFBRSxnQkFBZ0I7SUFDOUMsMkJBQTJCLEVBQUUsYUFBYTtJQUMxQyxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMseUJBQXlCLEVBQUUsY0FBYztJQUN6Qyx3QkFBd0IsRUFBRSxZQUFZO0lBQ3RDLDBCQUEwQixFQUFFLFVBQVU7SUFDdEMsMkJBQTJCLEVBQUUsZ0JBQWdCO0lBRTdDLHVCQUF1QixFQUFFLHFCQUFxQjtJQUM5Qyx1QkFBdUIsRUFBRSxrQkFBa0I7SUFDM0Msc0JBQXNCLEVBQUUsU0FBUztJQUNqQyxxQkFBcUIsRUFBRSxlQUFlO0lBQ3RDLHdCQUF3QixFQUFFLE1BQU07SUFFaEMsZUFBZSxFQUFFLHlDQUF5QztJQUMxRCxlQUFlLEVBQUUsdURBQXVEO0NBQ3pFLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixPQUFnQixFQUNoQixHQUFXLEVBQ1gsWUFBb0MsRUFBRTtJQUV0QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQVksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCxrRkFBa0Y7QUFDbEYsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFlO0lBQzFDLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIMKnMTAuMzogXCJFdmVyeSBzdHJpbmcgcGFzc2VzIHRocm91Z2ggYW4gaTE4biBjYXRhbG9nOyBlbi1VUyBzaGlwcywgY2F0YWxvZ1xuICogZm9ybWF0IGRvY3VtZW50ZWQgZm9yIGNvbW11bml0eSBsb2NhbGVzLlwiXG4gKlxuICogQSBmbGF0IGtleS10by1zdHJpbmcgbWFwIHJhdGhlciB0aGFuIG5lc3RlZCBvYmplY3RzLCBiZWNhdXNlIG5lc3RpbmcgbG9va3NcbiAqIHRpZGllciBhbmQgbWFrZXMgYSBtaXNzaW5nIGtleSBhIHJ1bnRpbWUgY3Jhc2ggb24gYHVuZGVmaW5lZC5vZi5hLmNoYWluYFxuICogcmF0aGVyIHRoYW4gYSB2aXNpYmxlIGZhbGxiYWNrLlxuICpcbiAqIEEgbWlzc2luZyBrZXkgcmVuZGVycyB0aGUgS0VZLCBub3QgYW4gZW1wdHkgc3RyaW5nLiBBIGJsYW5rIGJ1dHRvbiBpcyBhIGJ1Z1xuICogbm9ib2R5IGNhbiByZXBvcnQ7IGEgYnV0dG9uIHJlYWRpbmcgYHNpZ25Jbi5zdWJtaXRgIGlzIG9uZSBhbnlvbmUgY2FuLlxuICovXG5cbmV4cG9ydCB0eXBlIENhdGFsb2cgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgY29uc3QgRU5fVVM6IENhdGFsb2cgPSB7XG4gICdzaWduSW4udGl0bGUnOiAnU2lnbiBpbicsXG4gICdzaWduSW4uc3VidGl0bGUnOiAndG8gY29udGludWUgdG8ge2FwcGxpY2F0aW9ufScsXG4gICdzaWduSW4uaWRlbnRpZmllckxhYmVsJzogJ0VtYWlsIGFkZHJlc3MnLFxuICAnc2lnbkluLnBhc3N3b3JkTGFiZWwnOiAnUGFzc3dvcmQnLFxuICAnc2lnbkluLnN1Ym1pdCc6ICdDb250aW51ZScsXG4gICdzaWduSW4uZm9yZ290UGFzc3dvcmQnOiAnRm9yZ290IHBhc3N3b3JkPycsXG4gICdzaWduSW4ubm9BY2NvdW50JzogJ05vIGFjY291bnQ/JyxcbiAgJ3NpZ25Jbi5zaWduVXBMaW5rJzogJ1NpZ24gdXAnLFxuICAnc2lnbkluLm9yRGl2aWRlcic6ICdvcicsXG4gICdzaWduSW4uc29jaWFsQnV0dG9uJzogJ0NvbnRpbnVlIHdpdGgge3Byb3ZpZGVyfScsXG4gICdzaWduSW4uZW1haWxDb2RlTGFiZWwnOiAnVmVyaWZpY2F0aW9uIGNvZGUnLFxuICAnc2lnbkluLm1hZ2ljTGlua1NlbnQnOiAnQ2hlY2sgeW91ciBlbWFpbCBmb3IgYSBzaWduLWluIGxpbmsuJyxcbiAgJ3NpZ25Jbi5jaGVja090aGVyVGFiJzogJ1lvdSBjYW4gY2xvc2UgdGhpcyB0YWIg4oCUIHlvdSBhcmUgc2lnbmVkIGluIHdoZXJlIHlvdSBzdGFydGVkLicsXG5cbiAgJ3NpZ25VcC50aXRsZSc6ICdDcmVhdGUgeW91ciBhY2NvdW50JyxcbiAgJ3NpZ25VcC5zdWJtaXQnOiAnQ29udGludWUnLFxuICAnc2lnblVwLmhhdmVBY2NvdW50JzogJ0FscmVhZHkgaGF2ZSBhbiBhY2NvdW50PycsXG4gICdzaWduVXAuc2lnbkluTGluayc6ICdTaWduIGluJyxcbiAgJ3NpZ25VcC5lbWFpbExhYmVsJzogJ0VtYWlsIGFkZHJlc3MnLFxuICAnc2lnblVwLnBhc3N3b3JkTGFiZWwnOiAnUGFzc3dvcmQnLFxuICAnc2lnblVwLm9wdGlvbmFsRmllbGQnOiAne2xhYmVsfSAob3B0aW9uYWwpJyxcbiAgJ3NpZ25VcC5zZWxlY3RQbGFjZWhvbGRlcic6ICdTZWxlY3TigKYnLFxuICAnc2lnblVwLmNvbnNlbnRBZ3JlZSc6ICdJIGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAuY29uc2VudE5vdGljZSc6ICdCeSBjb250aW51aW5nIHlvdSBhZ3JlZSB0byB0aGUnLFxuICAnc2lnblVwLnRlcm1zJzogJ1Rlcm1zIG9mIFNlcnZpY2UnLFxuICAnc2lnblVwLnByaXZhY3knOiAnUHJpdmFjeSBQb2xpY3knLFxuICAnc2lnblVwLmFuZCc6ICdhbmQnLFxuXG4gICdjYXB0Y2hhLnByb21wdCc6ICdDb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2sgdG8gY29udGludWUuJyxcbiAgJ2NhcHRjaGEucmVxdWlyZWQnOiAnUGxlYXNlIGNvbXBsZXRlIHRoZSBzZWN1cml0eSBjaGVjaywgdGhlbiB0cnkgYWdhaW4uJyxcbiAgJ2NhcHRjaGEuZmFpbGVkJzogXCJUaGUgc2VjdXJpdHkgY2hlY2sgZGlkbid0IHBhc3MuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG5cbiAgJ21mYS50aXRsZSc6ICdUd28tc3RlcCB2ZXJpZmljYXRpb24nLFxuICAnbWZhLnN1YnRpdGxlJzogJ0VudGVyIHRoZSBjb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcC4nLFxuICAnbWZhLmNvZGVMYWJlbCc6ICdDb2RlJyxcbiAgJ21mYS5lbnJvbGxGaXJzdENvZGVMYWJlbCc6ICdDb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcCcsXG4gICdtZmEuZW5yb2xsU2Vjb25kQ29kZUxhYmVsJzogJ1RoZSBuZXh0IGNvZGUgaXQgc2hvd3MnLFxuICAnbWZhLnVzZVBhc3NrZXknOiAnVXNlIGEgcGFzc2tleSBpbnN0ZWFkJyxcbiAgJ21mYS51c2VCYWNrdXBDb2RlJzogJ1VzZSBhIHJlY292ZXJ5IGNvZGUnLFxuICAnbWZhLnN1Ym1pdCc6ICdWZXJpZnknLFxuXG4gICdyZXNldC50aXRsZSc6ICdSZXNldCB5b3VyIHBhc3N3b3JkJyxcbiAgJ3Jlc2V0LnN1Ym1pdCc6ICdTZW5kIHJlc2V0IGNvZGUnLFxuICAncmVzZXQubmV3UGFzc3dvcmRMYWJlbCc6ICdOZXcgcGFzc3dvcmQnLFxuXG4gICd1c2VyQnV0dG9uLm1hbmFnZUFjY291bnQnOiAnTWFuYWdlIGFjY291bnQnLFxuICAndXNlckJ1dHRvbi5zaWduT3V0JzogJ1NpZ24gb3V0JyxcbiAgJ3VzZXJCdXR0b24uc2lnbk91dEFsbCc6ICdTaWduIG91dCBvZiBhbGwgZGV2aWNlcycsXG5cbiAgJ3VzZXJQcm9maWxlLnRpdGxlJzogJ0FjY291bnQnLFxuICAndXNlclByb2ZpbGUucHJvZmlsZVNlY3Rpb24nOiAnUHJvZmlsZScsXG4gICd1c2VyUHJvZmlsZS5lbWFpbHNTZWN0aW9uJzogJ0VtYWlsIGFkZHJlc3NlcycsXG4gICd1c2VyUHJvZmlsZS5zZWN1cml0eVNlY3Rpb24nOiAnU2VjdXJpdHknLFxuICAndXNlclByb2ZpbGUuZGV2aWNlc1NlY3Rpb24nOiAnQWN0aXZlIGRldmljZXMnLFxuICAndXNlclByb2ZpbGUuZGFuZ2VyU2VjdGlvbic6ICdEYW5nZXIgem9uZScsXG4gICd1c2VyUHJvZmlsZS5hZGRFbWFpbCc6ICdBZGQgYW4gZW1haWwgYWRkcmVzcycsXG4gICd1c2VyUHJvZmlsZS5tYWtlUHJpbWFyeSc6ICdNYWtlIHByaW1hcnknLFxuICAndXNlclByb2ZpbGUudW52ZXJpZmllZCc6ICdVbnZlcmlmaWVkJyxcbiAgJ3VzZXJQcm9maWxlLnJldm9rZURldmljZSc6ICdTaWduIG91dCcsXG4gICd1c2VyUHJvZmlsZS5kZWxldGVBY2NvdW50JzogJ0RlbGV0ZSBhY2NvdW50JyxcblxuICAnb3JnYW5pemF0aW9uLnN3aXRjaGVyJzogJ1N3aXRjaCBvcmdhbml6YXRpb24nLFxuICAnb3JnYW5pemF0aW9uLnBlcnNvbmFsJzogJ1BlcnNvbmFsIGFjY291bnQnLFxuICAnb3JnYW5pemF0aW9uLm1lbWJlcnMnOiAnTWVtYmVycycsXG4gICdvcmdhbml6YXRpb24uaW52aXRlJzogJ0ludml0ZSBtZW1iZXInLFxuICAnb3JnYW5pemF0aW9uLnJvbGVMYWJlbCc6ICdSb2xlJyxcblxuICAnZXJyb3IuZ2VuZXJpYyc6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAnZXJyb3IubmV0d29yayc6ICdXZSBjb3VsZCBub3QgcmVhY2ggdGhlIHNlcnZlci4gQ2hlY2sgeW91ciBjb25uZWN0aW9uLicsXG59O1xuXG4vKipcbiAqIExvb2sgdXAgYSBrZXkgYW5kIGludGVycG9sYXRlIGB7cGxhY2Vob2xkZXJzfWAuXG4gKlxuICogQW4gdW5rbm93biBwbGFjZWhvbGRlciBpcyBsZWZ0IHZpc2libGUgZm9yIHRoZSBzYW1lIHJlYXNvbiBhIG1pc3Npbmcga2V5IGlzOlxuICogYENvbnRpbnVlIHdpdGgge3Byb3ZpZGVyfWAgaW4gdGhlIFVJIGlzIGEgYnVnIHJlcG9ydCB3YWl0aW5nIHRvIGJlIGZpbGVkLFxuICogd2hlcmVhcyBgQ29udGludWUgd2l0aCBgIGlzIG9uZSBub2JvZHkgbm90aWNlcyB1bnRpbCBhIGN1c3RvbWVyIGRvZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGUoXG4gIGNhdGFsb2c6IENhdGFsb2csXG4gIGtleTogc3RyaW5nLFxuICB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHRlbXBsYXRlID0gY2F0YWxvZ1trZXldID8/IEVOX1VTW2tleV0gPz8ga2V5O1xuICByZXR1cm4gdGVtcGxhdGUucmVwbGFjZSgvXFx7KFxcdyspXFx9L2csIChtYXRjaCwgbmFtZTogc3RyaW5nKSA9PiB2YXJpYWJsZXNbbmFtZV0gPz8gbWF0Y2gpO1xufVxuXG4vKiogTWVyZ2UgYSBjb21tdW5pdHkgbG9jYWxlIG92ZXIgZW4tVVMgc28gYSBwYXJ0aWFsIHRyYW5zbGF0aW9uIHN0aWxsIHJlbmRlcnMuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEZhbGxiYWNrKGxvY2FsZTogQ2F0YWxvZyk6IENhdGFsb2cge1xuICByZXR1cm4geyAuLi5FTl9VUywgLi4ubG9jYWxlIH07XG59XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFZO0lBQzVCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCx3QkFBd0IsRUFBRSxlQUFlO0lBQ3pDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsZUFBZSxFQUFFLFVBQVU7SUFDM0IsdUJBQXVCLEVBQUUsa0JBQWtCO0lBQzNDLGtCQUFrQixFQUFFLGFBQWE7SUFDakMsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLHFCQUFxQixFQUFFLDBCQUEwQjtJQUNqRCx1QkFBdUIsRUFBRSxtQkFBbUI7SUFDNUMscUJBQXFCLEVBQUUsaUJBQWlCO0lBQ3hDLHNCQUFzQixFQUFFLHNDQUFzQztJQUM5RCxzQkFBc0IsRUFBRSwrREFBK0Q7SUFFdkYsY0FBYyxFQUFFLHFCQUFxQjtJQUNyQyxlQUFlLEVBQUUsVUFBVTtJQUMzQixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsbUJBQW1CLEVBQUUsU0FBUztJQUM5QixtQkFBbUIsRUFBRSxlQUFlO0lBQ3BDLHNCQUFzQixFQUFFLFVBQVU7SUFDbEMsc0JBQXNCLEVBQUUsb0JBQW9CO0lBQzVDLDBCQUEwQixFQUFFLFNBQVM7SUFDckMscUJBQXFCLEVBQUUsZ0JBQWdCO0lBQ3ZDLHNCQUFzQixFQUFFLGdDQUFnQztJQUN4RCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxZQUFZLEVBQUUsS0FBSztJQUNuQixrREFBa0Q7SUFDbEQseUJBQXlCLEVBQ3ZCLDJGQUEyRjtJQUU3RixnQkFBZ0IsRUFBRSwwQ0FBMEM7SUFDNUQsa0JBQWtCLEVBQUUscURBQXFEO0lBQ3pFLGdCQUFnQixFQUFF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Q2hCLEdBQVcsRUFDWCxZQUFvQyxFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25ELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVELGtGQUFrRjtBQUNsRixNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogwqcxMC4zOiBcIkV2ZXJ5IHN0cmluZyBwYXNzZXMgdGhyb3VnaCBhbiBpMThuIGNhdGFsb2c7IGVuLVVTIHNoaXBzLCBjYXRhbG9nXG4gKiBmb3JtYXQgZG9jdW1lbnRlZCBmb3IgY29tbXVuaXR5IGxvY2FsZXMuXCJcbiAqXG4gKiBBIGZsYXQga2V5LXRvLXN0cmluZyBtYXAgcmF0aGVyIHRoYW4gbmVzdGVkIG9iamVjdHMsIGJlY2F1c2UgbmVzdGluZyBsb29rc1xuICogdGlkaWVyIGFuZCBtYWtlcyBhIG1pc3Npbmcga2V5IGEgcnVudGltZSBjcmFzaCBvbiBgdW5kZWZpbmVkLm9mLmEuY2hhaW5gXG4gKiByYXRoZXIgdGhhbiBhIHZpc2libGUgZmFsbGJhY2suXG4gKlxuICogQSBtaXNzaW5nIGtleSByZW5kZXJzIHRoZSBLRVksIG5vdCBhbiBlbXB0eSBzdHJpbmcuIEEgYmxhbmsgYnV0dG9uIGlzIGEgYnVnXG4gKiBub2JvZHkgY2FuIHJlcG9ydDsgYSBidXR0b24gcmVhZGluZyBgc2lnbkluLnN1Ym1pdGAgaXMgb25lIGFueW9uZSBjYW4uXG4gKi9cblxuZXhwb3J0IHR5cGUgQ2F0YWxvZyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBjb25zdCBFTl9VUzogQ2F0YWxvZyA9IHtcbiAgJ3NpZ25Jbi50aXRsZSc6ICdTaWduIGluJyxcbiAgJ3NpZ25Jbi5zdWJ0aXRsZSc6ICd0byBjb250aW51ZSB0byB7YXBwbGljYXRpb259JyxcbiAgJ3NpZ25Jbi5pZGVudGlmaWVyTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduSW4ucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduSW4uc3VibWl0JzogJ0NvbnRpbnVlJyxcbiAgJ3NpZ25Jbi5mb3Jnb3RQYXNzd29yZCc6ICdGb3Jnb3QgcGFzc3dvcmQ/JyxcbiAgJ3NpZ25Jbi5ub0FjY291bnQnOiAnTm8gYWNjb3VudD8nLFxuICAnc2lnbkluLnNpZ25VcExpbmsnOiAnU2lnbiB1cCcsXG4gICdzaWduSW4ub3JEaXZpZGVyJzogJ29yJyxcbiAgJ3NpZ25Jbi5zb2NpYWxCdXR0b24nOiAnQ29udGludWUgd2l0aCB7cHJvdmlkZXJ9JyxcbiAgJ3NpZ25Jbi5lbWFpbENvZGVMYWJlbCc6ICdWZXJpZmljYXRpb24gY29kZScsXG4gICdzaWduSW4udXNlRW1haWxDb2RlJzogJ0VtYWlsIG1lIGEgY29kZScsXG4gICdzaWduSW4ubWFnaWNMaW5rU2VudCc6ICdDaGVjayB5b3VyIGVtYWlsIGZvciBhIHNpZ24taW4gbGluay4nLFxuICAnc2lnbkluLmNoZWNrT3RoZXJUYWInOiAnWW91IGNhbiBjbG9zZSB0aGlzIHRhYiDigJQgeW91IGFyZSBzaWduZWQgaW4gd2hlcmUgeW91IHN0YXJ0ZWQuJyxcblxuICAnc2lnblVwLnRpdGxlJzogJ0NyZWF0ZSB5b3VyIGFjY291bnQnLFxuICAnc2lnblVwLnN1Ym1pdCc6ICdDb250aW51ZScsXG4gICdzaWduVXAuaGF2ZUFjY291bnQnOiAnQWxyZWFkeSBoYXZlIGFuIGFjY291bnQ/JyxcbiAgJ3NpZ25VcC5zaWduSW5MaW5rJzogJ1NpZ24gaW4nLFxuICAnc2lnblVwLmVtYWlsTGFiZWwnOiAnRW1haWwgYWRkcmVzcycsXG4gICdzaWduVXAucGFzc3dvcmRMYWJlbCc6ICdQYXNzd29yZCcsXG4gICdzaWduVXAub3B0aW9uYWxGaWVsZCc6ICd7bGFiZWx9IChvcHRpb25hbCknLFxuICAnc2lnblVwLnNlbGVjdFBsYWNlaG9sZGVyJzogJ1NlbGVjdOKApicsXG4gICdzaWduVXAuY29uc2VudEFncmVlJzogJ0kgYWdyZWUgdG8gdGhlJyxcbiAgJ3NpZ25VcC5jb25zZW50Tm90aWNlJzogJ0J5IGNvbnRpbnVpbmcgeW91IGFncmVlIHRvIHRoZScsXG4gICdzaWduVXAudGVybXMnOiAnVGVybXMgb2YgU2VydmljZScsXG4gICdzaWduVXAucHJpdmFjeSc6ICdQcml2YWN5IFBvbGljeScsXG4gICdzaWduVXAuYW5kJzogJ2FuZCcsXG4gIC8vID0gRU1BSUxfVU5BVkFJTEFCTEVfTUVTU0FHRSBmcm9tIEBhdGxhc2F1dGgvanMuXG4gICdzaWduVXAuZW1haWxVbmF2YWlsYWJsZSc6XG4gICAgXCJUaGlzIGFwcCBjYW4ndCBzZW5kIGVtYWlsIHJpZ2h0IG5vdy4gVHJ5IGFub3RoZXIgc2lnbi1pbiBtZXRob2Qgb3IgY29udGFjdCB0aGUgYXBwIG93bmVyLlwiLFxuXG4gICdjYXB0Y2hhLnByb21wdCc6ICdDb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2sgdG8gY29udGludWUuJyxcbiAgJ2NhcHRjaGEucmVxdWlyZWQnOiAnUGxlYXNlIGNvbXBsZXRlIHRoZSBzZWN1cml0eSBjaGVjaywgdGhlbiB0cnkgYWdhaW4uJyxcbiAgJ2NhcHRjaGEuZmFpbGVkJzogXCJUaGUgc2VjdXJpdHkgY2hlY2sgZGlkbid0IHBhc3MuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXG5cbiAgJ21mYS50aXRsZSc6ICdUd28tc3RlcCB2ZXJpZmljYXRpb24nLFxuICAnbWZhLnN1YnRpdGxlJzogJ0VudGVyIHRoZSBjb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcC4nLFxuICAnbWZhLmNvZGVMYWJlbCc6ICdDb2RlJyxcbiAgJ21mYS5lbnJvbGxGaXJzdENvZGVMYWJlbCc6ICdDb2RlIGZyb20geW91ciBhdXRoZW50aWNhdG9yIGFwcCcsXG4gICdtZmEuZW5yb2xsU2Vjb25kQ29kZUxhYmVsJzogJ1RoZSBuZXh0IGNvZGUgaXQgc2hvd3MnLFxuICAnbWZhLnVzZVBhc3NrZXknOiAnVXNlIGEgcGFzc2tleSBpbnN0ZWFkJyxcbiAgJ21mYS51c2VCYWNrdXBDb2RlJzogJ1VzZSBhIHJlY292ZXJ5IGNvZGUnLFxuICAnbWZhLnN1Ym1pdCc6ICdWZXJpZnknLFxuXG4gICdyZXNldC50aXRsZSc6ICdSZXNldCB5b3VyIHBhc3N3b3JkJyxcbiAgJ3Jlc2V0LnN1Ym1pdCc6ICdTZW5kIHJlc2V0IGNvZGUnLFxuICAncmVzZXQubmV3UGFzc3dvcmRMYWJlbCc6ICdOZXcgcGFzc3dvcmQnLFxuXG4gICd1c2VyQnV0dG9uLm1hbmFnZUFjY291bnQnOiAnTWFuYWdlIGFjY291bnQnLFxuICAndXNlckJ1dHRvbi5zaWduT3V0JzogJ1NpZ24gb3V0JyxcbiAgJ3VzZXJCdXR0b24uc2lnbk91dEFsbCc6ICdTaWduIG91dCBvZiBhbGwgZGV2aWNlcycsXG5cbiAgJ3VzZXJQcm9maWxlLnRpdGxlJzogJ0FjY291bnQnLFxuICAndXNlclByb2ZpbGUucHJvZmlsZVNlY3Rpb24nOiAnUHJvZmlsZScsXG4gICd1c2VyUHJvZmlsZS5lbWFpbHNTZWN0aW9uJzogJ0VtYWlsIGFkZHJlc3NlcycsXG4gICd1c2VyUHJvZmlsZS5zZWN1cml0eVNlY3Rpb24nOiAnU2VjdXJpdHknLFxuICAndXNlclByb2ZpbGUuZGV2aWNlc1NlY3Rpb24nOiAnQWN0aXZlIGRldmljZXMnLFxuICAndXNlclByb2ZpbGUuZGFuZ2VyU2VjdGlvbic6ICdEYW5nZXIgem9uZScsXG4gICd1c2VyUHJvZmlsZS5hZGRFbWFpbCc6ICdBZGQgYW4gZW1haWwgYWRkcmVzcycsXG4gICd1c2VyUHJvZmlsZS5tYWtlUHJpbWFyeSc6ICdNYWtlIHByaW1hcnknLFxuICAndXNlclByb2ZpbGUudW52ZXJpZmllZCc6ICdVbnZlcmlmaWVkJyxcbiAgJ3VzZXJQcm9maWxlLnJldm9rZURldmljZSc6ICdTaWduIG91dCcsXG4gICd1c2VyUHJvZmlsZS5kZWxldGVBY2NvdW50JzogJ0RlbGV0ZSBhY2NvdW50JyxcblxuICAnb3JnYW5pemF0aW9uLnN3aXRjaGVyJzogJ1N3aXRjaCBvcmdhbml6YXRpb24nLFxuICAnb3JnYW5pemF0aW9uLnBlcnNvbmFsJzogJ1BlcnNvbmFsIGFjY291bnQnLFxuICAnb3JnYW5pemF0aW9uLm1lbWJlcnMnOiAnTWVtYmVycycsXG4gICdvcmdhbml6YXRpb24uaW52aXRlJzogJ0ludml0ZSBtZW1iZXInLFxuICAnb3JnYW5pemF0aW9uLnJvbGVMYWJlbCc6ICdSb2xlJyxcblxuICAnZXJyb3IuZ2VuZXJpYyc6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAnZXJyb3IubmV0d29yayc6ICdXZSBjb3VsZCBub3QgcmVhY2ggdGhlIHNlcnZlci4gQ2hlY2sgeW91ciBjb25uZWN0aW9uLicsXG5cbiAgLy8gU2VydmVyIGVycm9ycywgYnkgdGhlIHN0YWJsZSBgcmVhc29uYCB0aGUgRnJvbnRlbmQgQVBJIHNlbmRzLiBTaG93biBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBzZXJ2ZXIncyBgbWVzc2FnZWAgKHNlZSBgbG9jYWxpemVkRXJyb3JNZXNzYWdlYCBpbiBAYXRsYXNhdXRoL2pzKS5cbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfaW5jb3JyZWN0JzogJ1Rob3NlIGNyZWRlbnRpYWxzIGFyZSBpbmNvcnJlY3QuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9pbmNvcnJlY3QnOiAnVGhhdCBjb2RlIGlzIGluY29ycmVjdC4nLFxuICAnZXJyb3IuZm9ybV9jb2RlX2FscmVhZHlfdXNlZCc6ICdUaGF0IGNvZGUgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiBXYWl0IGZvciBhIG5ldyBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9leHBpcmVkJzogJ1RoYXQgY29kZSBoYXMgZXhwaXJlZC4gUmVxdWVzdCBhIG5ldyBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fY29kZV9tYXhfYXR0ZW1wdHMnOiAnVG9vIG1hbnkgaW5jb3JyZWN0IGNvZGVzLiBSZXF1ZXN0IGEgbmV3IGNvZGUuJyxcbiAgJ2Vycm9yLmZvcm1fbGlua19pbnZhbGlkJzogJ1RoYXQgc2lnbi1pbiBsaW5rIGlzIGludmFsaWQgb3IgaGFzIGFscmVhZHkgYmVlbiB1c2VkLicsXG4gICdlcnJvci5mb3JtX2lkZW50aWZpZXJfbm90X2ZvdW5kJzogXCJXZSBjb3VsZG4ndCBmaW5kIGFuIGFjY291bnQgd2l0aCB0aG9zZSBkZXRhaWxzLlwiLFxuICAnZXJyb3IuZm9ybV9pZGVudGlmaWVyX2V4aXN0cyc6IFwiVGhlcmUncyBhbHJlYWR5IGFuIGFjY291bnQgZm9yIHRoaXMgZW1haWwuIFNpZ24gaW4gd2l0aCB7bWV0aG9kc30uXCIsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3B3bmVkJzogJ1RoaXMgcGFzc3dvcmQgaGFzIGFwcGVhcmVkIGluIGEga25vd24gZGF0YSBicmVhY2guIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgb25lLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3Rvb19zaG9ydCc6ICdQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IHttaW5fbGVuZ3RofSBjaGFyYWN0ZXJzLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX3Rvb19sb25nJzogJ1Bhc3N3b3JkIG11c3QgYmUgYXQgbW9zdCB7bWF4X2xlbmd0aH0gY2hhcmFjdGVycy4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc191cHBlcmNhc2UnOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGFuIHVwcGVyY2FzZSBsZXR0ZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfbG93ZXJjYXNlJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIGxvd2VyY2FzZSBsZXR0ZXIuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfcmVxdWlyZXNfbnVtYmVyJzogJ1Bhc3N3b3JkIG11c3QgY29udGFpbiBhIG51bWJlci4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXF1aXJlc19zeW1ib2wnOiAnUGFzc3dvcmQgbXVzdCBjb250YWluIGEgc3ltYm9sLicsXG4gICdlcnJvci5mb3JtX3Bhc3N3b3JkX25vdF9hbGxvd2VkJzogJ1RoYXQgcGFzc3dvcmQgaXMgbm90IGFsbG93ZWQuIENob29zZSBhIGRpZmZlcmVudCBvbmUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfY29udGFpbnNfaWRlbnRpZmllcic6ICdQYXNzd29yZCBtdXN0IG5vdCBjb250YWluIHlvdXIgZW1haWwgb3IgdXNlcm5hbWUuJyxcbiAgJ2Vycm9yLmZvcm1fcGFzc3dvcmRfc2FtZV9hc19jdXJyZW50JzogJ1lvdXIgbmV3IHBhc3N3b3JkIG11c3QgYmUgZGlmZmVyZW50IGZyb20geW91ciBjdXJyZW50IG9uZS4nLFxuICAnZXJyb3IuZm9ybV9wYXNzd29yZF9yZXVzZWQnOiAnWW91ciBuZXcgcGFzc3dvcmQgbXVzdCBub3QgbWF0Y2ggYW55IG9mIHlvdXIgbGFzdCB7aGlzdG9yeV9jb3VudH0gcGFzc3dvcmRzLicsXG4gICdlcnJvci5wYXNzd29yZF9leHBpcmVkJzogJ1lvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuIFJlc2V0IGl0IHRvIGNvbnRpbnVlLicsXG4gICdlcnJvci5lbWFpbF9ub3RfdmVyaWZpZWQnOiAnWW91ciBlbWFpbCBhZGRyZXNzIGlzIG5vdCB2ZXJpZmllZCB5ZXQuIFZlcmlmeSBpdCBiZWZvcmUgc2lnbmluZyBpbiB3aXRoIHlvdXIgcGFzc3dvcmQuJyxcbiAgJ2Vycm9yLnNpZ25faW5fdG9rZW5faW52YWxpZCc6ICdUaGF0IHNpZ24taW4gdG9rZW4gaXMgaW52YWxpZCBvciBoYXMgZXhwaXJlZC4nLFxuICAnZXJyb3IudG9vX21hbnlfYXR0ZW1wdHMnOiAnVG9vIG1hbnkgZmFpbGVkIGF0dGVtcHRzLiBUcnkgYWdhaW4gbGF0ZXIuJyxcbiAgJ2Vycm9yLnRvb19tYW55X3JlcXVlc3RzJzogJ1RvbyBtYW55IHJlcXVlc3RzLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci5jYXB0Y2hhX3JlcXVpcmVkJzogJ1BsZWFzZSBjb21wbGV0ZSB0aGUgc2VjdXJpdHkgY2hlY2ssIHRoZW4gdHJ5IGFnYWluLicsXG4gICdlcnJvci5jYXB0Y2hhX2ZhaWxlZCc6IFwiVGhlIHNlY3VyaXR5IGNoZWNrIGRpZG4ndCBwYXNzLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxuICAnZXJyb3IuY2FwdGNoYV91bmF2YWlsYWJsZSc6ICdUaGUgc2VjdXJpdHkgY2hlY2sgaXMgdW5hdmFpbGFibGUgcmlnaHQgbm93LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICdlcnJvci5lbWFpbF9kZWxpdmVyeV91bmF2YWlsYWJsZSc6IFwiVGhpcyBhcHAgY2FuJ3Qgc2VuZCBlbWFpbCByaWdodCBub3cuIFRyeSBhbm90aGVyIHNpZ24taW4gbWV0aG9kIG9yIGNvbnRhY3QgdGhlIGFwcCBvd25lci5cIixcbiAgJ2Vycm9yLnN0cmF0ZWd5X2Rpc2FibGVkJzogJ1RoaXMgc2lnbi1pbiBtZXRob2QgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBhcHAuJyxcbiAgJ2Vycm9yLnNpZ25fdXBfcmVzdHJpY3RlZCc6ICdTaWduLXVwIG9uIHRoaXMgYXBwIGlzIGJ5IGludml0YXRpb24gb25seS4nLFxuICAnZXJyb3Iud2FpdGxpc3RlZCc6IFwiWW91J3JlIG9uIHRoZSB3YWl0bGlzdC4gV2UnbGwgZW1haWwgeW91IHdoZW4gYSBwbGFjZSBvcGVucyB1cC5cIixcbiAgJ2Vycm9yLmlkZW50aWZpZXJfbm90X2FsbG93ZWQnOiAnVGhpcyBlbWFpbCBvciBwaG9uZSBudW1iZXIgaXMgbm90IGFsbG93ZWQgb24gdGhpcyBhcHAuJyxcbiAgJ2Vycm9yLmRpc3Bvc2FibGVfZW1haWxfYmxvY2tlZCc6ICdTaWduLXVwIHdpdGggYSBkaXNwb3NhYmxlIG9yIHRlbXBvcmFyeSBlbWFpbCBhZGRyZXNzIGlzIG5vdCBhbGxvd2VkLicsXG4gICdlcnJvci5zc29fcmVxdWlyZWQnOiAnVGhpcyBvcmdhbml6YXRpb24gcmVxdWlyZXMgc2lnbmluZyBpbiB0aHJvdWdoIHNpbmdsZSBzaWduLW9uLicsXG4gICdlcnJvci5zaWduX2luc19kaXNhYmxlZCc6ICdTaWduLWlucyBhcmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQuJyxcbiAgJ2Vycm9yLnNpZ25fdXBzX2Rpc2FibGVkJzogJ1NpZ24tdXBzIGFyZSB0ZW1wb3JhcmlseSBkaXNhYmxlZC4nLFxuICAnZXJyb3IuaGlnaF9yaXNrX2Jsb2NrZWQnOiAnVGhpcyBzaWduLWluIHdhcyBibG9ja2VkIGJlY2F1c2UgaXQgbG9va2VkIHVudXN1YWwuJyxcbiAgJ2Vycm9yLnNtc19yZWdpb25fYmxvY2tlZCc6ICdUZXh0IG1lc3NhZ2VzIGFyZSBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHBob25lIG51bWJlci4nLFxufTtcblxuLyoqXG4gKiBMb29rIHVwIGEga2V5IGFuZCBpbnRlcnBvbGF0ZSBge3BsYWNlaG9sZGVyc31gLlxuICpcbiAqIEFuIHVua25vd24gcGxhY2Vob2xkZXIgaXMgbGVmdCB2aXNpYmxlIGZvciB0aGUgc2FtZSByZWFzb24gYSBtaXNzaW5nIGtleSBpczpcbiAqIGBDb250aW51ZSB3aXRoIHtwcm92aWRlcn1gIGluIHRoZSBVSSBpcyBhIGJ1ZyByZXBvcnQgd2FpdGluZyB0byBiZSBmaWxlZCxcbiAqIHdoZXJlYXMgYENvbnRpbnVlIHdpdGggYCBpcyBvbmUgbm9ib2R5IG5vdGljZXMgdW50aWwgYSBjdXN0b21lciBkb2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlKFxuICBjYXRhbG9nOiBDYXRhbG9nLFxuICBrZXk6IHN0cmluZyxcbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4pOiBzdHJpbmcge1xuICBjb25zdCB0ZW1wbGF0ZSA9IGNhdGFsb2dba2V5XSA/PyBFTl9VU1trZXldID8/IGtleTtcbiAgcmV0dXJuIHRlbXBsYXRlLnJlcGxhY2UoL1xceyhcXHcrKVxcfS9nLCAobWF0Y2gsIG5hbWU6IHN0cmluZykgPT4gdmFyaWFibGVzW25hbWVdID8/IG1hdGNoKTtcbn1cblxuLyoqIE1lcmdlIGEgY29tbXVuaXR5IGxvY2FsZSBvdmVyIGVuLVVTIHNvIGEgcGFydGlhbCB0cmFuc2xhdGlvbiBzdGlsbCByZW5kZXJzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhGYWxsYmFjayhsb2NhbGU6IENhdGFsb2cpOiBDYXRhbG9nIHtcbiAgcmV0dXJuIHsgLi4uRU5fVVMsIC4uLmxvY2FsZSB9O1xufVxuIl19
@@ -34,4 +34,7 @@ export * from './lib/i18n';
34
34
  export * from './lib/protect';
35
35
  export * from './lib/types';
36
36
  export * from './lib/fapi';
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILHFCQUFxQjtBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxxREFBcUQ7QUFDckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUNMLG1CQUFtQixHQUVwQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxlQUFlO0FBQ2YsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsNkRBQTZEO0FBQzdELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBAYXRsYXNhdXRoL2FuZ3VsYXJgIOKAlCB0aGUgb2ZmaWNpYWwgQW5ndWxhciBTREsgZm9yIEF0bGFzLCB0aGUgQW5ndWxhciBwZWVyIG9mXG4gKiBgQGF0bGFzYXV0aC9yZWFjdGAuIFB1YmxpYyBzdXJmYWNlLlxuICovXG5cbi8vIENvbmZpZ3VyYXRpb24gKyBESVxuZXhwb3J0IHsgQVRMQVNfT1BUSU9OUywgdHlwZSBBdGxhc09wdGlvbnMgfSBmcm9tICcuL2xpYi9hdGxhcy5jb25maWcnO1xuZXhwb3J0IHsgcHJvdmlkZUF0bGFzLCBBdGxhc01vZHVsZSB9IGZyb20gJy4vbGliL3Byb3ZpZGUtYXRsYXMnO1xuXG4vLyBDb3JlIHNlcnZpY2UgKHRoZSBBdGxhc1Byb3ZpZGVyICsgaG9va3MgZXF1aXZhbGVudClcbmV4cG9ydCB7IEF0bGFzU2VydmljZSB9IGZyb20gJy4vbGliL2F0bGFzLnNlcnZpY2UnO1xuXG4vLyBTdHJ1Y3R1cmFsIGRpcmVjdGl2ZXMgKyB0aGUgdGhlbWluZyBob3N0IGRpcmVjdGl2ZVxuZXhwb3J0IHsgQXRsYXNTaWduZWRJbkRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc2lnbmVkLWluLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBBdGxhc1NpZ25lZE91dERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvc2lnbmVkLW91dC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQXRsYXNMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9sb2FkaW5nLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBBdGxhc0xvYWRlZERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvbG9hZGVkLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBBdGxhc1Byb3RlY3REaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Byb3RlY3QuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEF0bGFzUm9vdERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXRsYXMtcm9vdC5kaXJlY3RpdmUnO1xuXG4vLyBDb21wb25lbnRzXG5leHBvcnQgeyBTaWduSW5Db21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpZ24taW4uY29tcG9uZW50JztcbmV4cG9ydCB7IFNpZ25VcENvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi11cC5jb21wb25lbnQnO1xuZXhwb3J0IHsgVXNlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlci1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB7IE9yZ2FuaXphdGlvblN3aXRjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbml6YXRpb24tc3dpdGNoZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFVzZXJQcm9maWxlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyLXByb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCB7IE9yZ2FuaXphdGlvblByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXphdGlvbi1wcm9maWxlLmNvbXBvbmVudCc7XG5leHBvcnQgeyBBdHRlbXB0Rmxvd0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXR0ZW1wdC1mbG93LmNvbXBvbmVudCc7XG5leHBvcnQge1xuICBTaWduVXBGb3JtQ29tcG9uZW50LFxuICB0eXBlIFNpZ25VcEZvcm1TdWJtaXQsXG59IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi11cC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgeyBBdGxhc0NhcHRjaGFTbG90RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jYXB0Y2hhLXNsb3QuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEF0bGFzRmxvd0NvbnRyb2xsZXIgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zsb3ctY29udHJvbGxlcic7XG5leHBvcnQgeyBBVExBU19VSSB9IGZyb20gJy4vbGliL2F0bGFzLnVpJztcblxuLy8gUm91dGUgZ3VhcmRzXG5leHBvcnQge1xuICBhdGxhc0d1YXJkLFxuICBhdGxhc0NoaWxkR3VhcmQsXG4gIHR5cGUgQXRsYXNHdWFyZE9wdGlvbnMsXG59IGZyb20gJy4vbGliL2d1YXJkcy9hdGxhcy5ndWFyZCc7XG5cbi8vIFRoZW1pbmcsIGkxOG4sIGF1dGhvcml6YXRpb24sIGRhdGEgc2hhcGVzLCBGQVBJIHJlLWV4cG9ydHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwcGVhcmFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm90ZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhcGknO1xuXG4vLyBUaGUgaW5zdGFuY2UncyBwdWJsaWMgc2lnbi1pbiAvIHNpZ24tdXAgc2V0dGluZ3MgdGhlIHByZWJ1aWx0IGZvcm1zIHJlYWRcbi8vIChgQXRsYXNGbG93Q29udHJvbGxlci5zZXR0aW5nc2ApLCBhbmQgdGhlIGNhcHRjaGEgdHlwZXMgdGhleSByZW5kZXIuXG5leHBvcnQgdHlwZSB7XG4gIEluc3RhbmNlU2V0dGluZ3MsXG4gIFB1YmxpY1NpZ25VcEZpZWxkLFxuICBDYXB0Y2hhQ29udHJvbGxlcixcbiAgQ2FwdGNoYUZsb3dLZXksXG4gIENhcHRjaGFXaWRnZXRNb2RlLFxuICBGbG93Q2FwdGNoYSxcbn0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG4iXX0=
37
+ // `AtlasService.signOut()` resolves a `SignOutResult`; `{ strict: true }`
38
+ // rejects with a `SignOutError` when the revoke was never confirmed.
39
+ export { SignOutError } from '@atlasauth/js';
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILHFCQUFxQjtBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxxREFBcUQ7QUFDckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFM0UsYUFBYTtBQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDL0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUNMLG1CQUFtQixHQUVwQixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxlQUFlO0FBQ2YsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEdBRWhCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsNkRBQTZEO0FBQzdELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFnQjNCLDBFQUEwRTtBQUMxRSxxRUFBcUU7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYEBhdGxhc2F1dGgvYW5ndWxhcmAg4oCUIHRoZSBvZmZpY2lhbCBBbmd1bGFyIFNESyBmb3IgQXRsYXMsIHRoZSBBbmd1bGFyIHBlZXIgb2ZcbiAqIGBAYXRsYXNhdXRoL3JlYWN0YC4gUHVibGljIHN1cmZhY2UuXG4gKi9cblxuLy8gQ29uZmlndXJhdGlvbiArIERJXG5leHBvcnQgeyBBVExBU19PUFRJT05TLCB0eXBlIEF0bGFzT3B0aW9ucyB9IGZyb20gJy4vbGliL2F0bGFzLmNvbmZpZyc7XG5leHBvcnQgeyBwcm92aWRlQXRsYXMsIEF0bGFzTW9kdWxlIH0gZnJvbSAnLi9saWIvcHJvdmlkZS1hdGxhcyc7XG5cbi8vIENvcmUgc2VydmljZSAodGhlIEF0bGFzUHJvdmlkZXIgKyBob29rcyBlcXVpdmFsZW50KVxuZXhwb3J0IHsgQXRsYXNTZXJ2aWNlIH0gZnJvbSAnLi9saWIvYXRsYXMuc2VydmljZSc7XG5cbi8vIFN0cnVjdHVyYWwgZGlyZWN0aXZlcyArIHRoZSB0aGVtaW5nIGhvc3QgZGlyZWN0aXZlXG5leHBvcnQgeyBBdGxhc1NpZ25lZEluRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zaWduZWQtaW4uZGlyZWN0aXZlJztcbmV4cG9ydCB7IEF0bGFzU2lnbmVkT3V0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zaWduZWQtb3V0LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBBdGxhc0xvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2xvYWRpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEF0bGFzTG9hZGVkRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9sb2FkZWQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEF0bGFzUHJvdGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvcHJvdGVjdC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQXRsYXNSb290RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hdGxhcy1yb290LmRpcmVjdGl2ZSc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCB7IFNpZ25JbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lnbi1pbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2lnblVwQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaWduLXVwLmNvbXBvbmVudCc7XG5leHBvcnQgeyBVc2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgT3JnYW5pemF0aW9uU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXphdGlvbi1zd2l0Y2hlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgVXNlclByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgT3JnYW5pemF0aW9uUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pemF0aW9uLXByb2ZpbGUuY29tcG9uZW50JztcbmV4cG9ydCB7IEF0dGVtcHRGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdHRlbXB0LWZsb3cuY29tcG9uZW50JztcbmV4cG9ydCB7XG4gIFNpZ25VcEZvcm1Db21wb25lbnQsXG4gIHR5cGUgU2lnblVwRm9ybVN1Ym1pdCxcbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zaWduLXVwLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCB7IEF0bGFzQ2FwdGNoYVNsb3REaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2NhcHRjaGEtc2xvdC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQXRsYXNGbG93Q29udHJvbGxlciB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmxvdy1jb250cm9sbGVyJztcbmV4cG9ydCB7IEFUTEFTX1VJIH0gZnJvbSAnLi9saWIvYXRsYXMudWknO1xuXG4vLyBSb3V0ZSBndWFyZHNcbmV4cG9ydCB7XG4gIGF0bGFzR3VhcmQsXG4gIGF0bGFzQ2hpbGRHdWFyZCxcbiAgdHlwZSBBdGxhc0d1YXJkT3B0aW9ucyxcbn0gZnJvbSAnLi9saWIvZ3VhcmRzL2F0bGFzLmd1YXJkJztcblxuLy8gVGhlbWluZywgaTE4biwgYXV0aG9yaXphdGlvbiwgZGF0YSBzaGFwZXMsIEZBUEkgcmUtZXhwb3J0c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwZWFyYW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pMThuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3RlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFwaSc7XG5cbi8vIFRoZSBpbnN0YW5jZSdzIHB1YmxpYyBzaWduLWluIC8gc2lnbi11cCBzZXR0aW5ncyB0aGUgcHJlYnVpbHQgZm9ybXMgcmVhZFxuLy8gKGBBdGxhc0Zsb3dDb250cm9sbGVyLnNldHRpbmdzYCksIGFuZCB0aGUgY2FwdGNoYSB0eXBlcyB0aGV5IHJlbmRlci5cbmV4cG9ydCB0eXBlIHtcbiAgSW5zdGFuY2VTZXR0aW5ncyxcbiAgUHVibGljU2lnblVwRmllbGQsXG4gIENhcHRjaGFDb250cm9sbGVyLFxuICBDYXB0Y2hhRmxvd0tleSxcbiAgQ2FwdGNoYVdpZGdldE1vZGUsXG4gIEZsb3dDYXB0Y2hhLFxuICBFbWFpbERlbGl2ZXJ5LFxuICBTaWduT3V0T3B0aW9ucyxcbiAgU2lnbk91dFJlc3VsdCxcbn0gZnJvbSAnQGF0bGFzYXV0aC9qcyc7XG5cbi8vIGBBdGxhc1NlcnZpY2Uuc2lnbk91dCgpYCByZXNvbHZlcyBhIGBTaWduT3V0UmVzdWx0YDsgYHsgc3RyaWN0OiB0cnVlIH1gXG4vLyByZWplY3RzIHdpdGggYSBgU2lnbk91dEVycm9yYCB3aGVuIHRoZSByZXZva2Ugd2FzIG5ldmVyIGNvbmZpcm1lZC5cbmV4cG9ydCB7IFNpZ25PdXRFcnJvciB9IGZyb20gJ0BhdGxhc2F1dGgvanMnO1xuIl19