@alore/auth-react-ui 1.0.3-alpha → 1.0.5-alpha

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 (83) hide show
  1. package/dist/cjs/auth/Login.d.ts +2 -1
  2. package/dist/cjs/auth/Login.js +76 -54
  3. package/dist/cjs/auth/Login.js.map +1 -1
  4. package/dist/cjs/auth/Register.d.ts +2 -1
  5. package/dist/cjs/auth/Register.js +88 -85
  6. package/dist/cjs/auth/Register.js.map +1 -1
  7. package/dist/cjs/components/Auth.d.ts +6 -3
  8. package/dist/cjs/components/Auth.js +38 -17
  9. package/dist/cjs/components/Auth.js.map +1 -1
  10. package/dist/cjs/components/AuthProvider.d.ts +13 -3
  11. package/dist/cjs/components/AuthProvider.js.map +1 -1
  12. package/dist/cjs/components/BackButton.js +1 -1
  13. package/dist/cjs/components/BackButton.js.map +1 -1
  14. package/dist/cjs/components/CheckboxForm.js +1 -1
  15. package/dist/cjs/components/CheckboxForm.js.map +1 -1
  16. package/dist/cjs/components/InputForm.js +2 -47
  17. package/dist/cjs/components/InputForm.js.map +1 -1
  18. package/dist/cjs/components/InputOTP.js +1 -1
  19. package/dist/cjs/components/InputOTP.js.map +1 -1
  20. package/dist/cjs/components/TermsModal.js +3 -3
  21. package/dist/cjs/components/TermsModal.js.map +1 -1
  22. package/dist/cjs/dictionaries/en.json +9 -1
  23. package/dist/cjs/dictionaries/pt.json +13 -5
  24. package/dist/cjs/get-dictionary.d.ts +24 -0
  25. package/dist/cjs/helpers/index.d.ts +2 -0
  26. package/dist/cjs/helpers/index.js +31 -1
  27. package/dist/cjs/helpers/index.js.map +1 -1
  28. package/dist/cjs/hooks/useAuthService.d.ts +36 -6
  29. package/dist/cjs/hooks/useAuthServiceInstance.d.ts +12 -2
  30. package/dist/cjs/hooks/useDictionary.d.ts +8 -0
  31. package/dist/cjs/index.d.ts +1 -1
  32. package/dist/cjs/index.js.map +1 -1
  33. package/dist/cjs/machine/index.d.ts +24 -4
  34. package/dist/cjs/machine/index.js +32 -12
  35. package/dist/cjs/machine/index.js.map +1 -1
  36. package/dist/cjs/machine/index.typegen.d.ts +2 -2
  37. package/dist/cjs/machine/types.d.ts +11 -1
  38. package/dist/cjs/styles/themes.d.ts +4 -0
  39. package/dist/cjs/styles/themes.js +53 -0
  40. package/dist/cjs/styles/themes.js.map +1 -0
  41. package/dist/cjs/types.d.ts +1 -33
  42. package/dist/mjs/auth/Login.d.ts +2 -1
  43. package/dist/mjs/auth/Login.js +79 -55
  44. package/dist/mjs/auth/Login.js.map +1 -1
  45. package/dist/mjs/auth/Register.d.ts +2 -1
  46. package/dist/mjs/auth/Register.js +91 -86
  47. package/dist/mjs/auth/Register.js.map +1 -1
  48. package/dist/mjs/components/Auth.d.ts +6 -3
  49. package/dist/mjs/components/Auth.js +40 -19
  50. package/dist/mjs/components/Auth.js.map +1 -1
  51. package/dist/mjs/components/AuthProvider.d.ts +13 -3
  52. package/dist/mjs/components/AuthProvider.js.map +1 -1
  53. package/dist/mjs/components/BackButton.js +1 -1
  54. package/dist/mjs/components/BackButton.js.map +1 -1
  55. package/dist/mjs/components/CheckboxForm.js +1 -1
  56. package/dist/mjs/components/CheckboxForm.js.map +1 -1
  57. package/dist/mjs/components/InputForm.js +3 -48
  58. package/dist/mjs/components/InputForm.js.map +1 -1
  59. package/dist/mjs/components/InputOTP.js +1 -1
  60. package/dist/mjs/components/InputOTP.js.map +1 -1
  61. package/dist/mjs/components/TermsModal.js +4 -4
  62. package/dist/mjs/components/TermsModal.js.map +1 -1
  63. package/dist/mjs/dictionaries/en.json +9 -1
  64. package/dist/mjs/dictionaries/pt.json +13 -5
  65. package/dist/mjs/get-dictionary.d.ts +24 -0
  66. package/dist/mjs/helpers/index.d.ts +2 -0
  67. package/dist/mjs/helpers/index.js +28 -0
  68. package/dist/mjs/helpers/index.js.map +1 -1
  69. package/dist/mjs/hooks/useAuthService.d.ts +36 -6
  70. package/dist/mjs/hooks/useAuthServiceInstance.d.ts +12 -2
  71. package/dist/mjs/hooks/useDictionary.d.ts +8 -0
  72. package/dist/mjs/index.d.ts +1 -1
  73. package/dist/mjs/index.js.map +1 -1
  74. package/dist/mjs/machine/index.d.ts +24 -4
  75. package/dist/mjs/machine/index.js +32 -12
  76. package/dist/mjs/machine/index.js.map +1 -1
  77. package/dist/mjs/machine/index.typegen.d.ts +2 -2
  78. package/dist/mjs/machine/types.d.ts +11 -1
  79. package/dist/mjs/styles/themes.d.ts +4 -0
  80. package/dist/mjs/styles/themes.js +62 -0
  81. package/dist/mjs/styles/themes.js.map +1 -0
  82. package/dist/mjs/types.d.ts +1 -33
  83. package/package.json +5 -4
@@ -23,7 +23,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
23
23
  };
24
24
  } | {
25
25
  type: "GOOGLE_LOGIN";
26
- googleToken: string;
26
+ payload: {
27
+ accessToken: string;
28
+ providerName: string;
29
+ };
27
30
  } | {
28
31
  type: "START_PASSKEY_LOGIN";
29
32
  payload: {
@@ -233,6 +236,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
233
236
  };
234
237
  } | {
235
238
  type: "SIGN_IN_WITH_PASSKEY";
239
+ } | {
240
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
236
241
  } | {
237
242
  type: "SET_CONDITIONAL_UI_PASSKEY";
238
243
  }, any, {
@@ -263,7 +268,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
263
268
  };
264
269
  } | {
265
270
  type: "GOOGLE_LOGIN";
266
- googleToken: string;
271
+ payload: {
272
+ accessToken: string;
273
+ providerName: string;
274
+ };
267
275
  } | {
268
276
  type: "START_PASSKEY_LOGIN";
269
277
  payload: {
@@ -473,6 +481,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
473
481
  };
474
482
  } | {
475
483
  type: "SIGN_IN_WITH_PASSKEY";
484
+ } | {
485
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
476
486
  } | {
477
487
  type: "SET_CONDITIONAL_UI_PASSKEY";
478
488
  }, import("xstate").BaseActionObject, import("../machine/types").AuthMachineServices>>>, (event: import("xstate").SingleOrArray<import("xstate").Event<{
@@ -500,7 +510,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
500
510
  };
501
511
  } | {
502
512
  type: "GOOGLE_LOGIN";
503
- googleToken: string;
513
+ payload: {
514
+ accessToken: string;
515
+ providerName: string;
516
+ };
504
517
  } | {
505
518
  type: "START_PASSKEY_LOGIN";
506
519
  payload: {
@@ -710,6 +723,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
710
723
  };
711
724
  } | {
712
725
  type: "SIGN_IN_WITH_PASSKEY";
726
+ } | {
727
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
713
728
  } | {
714
729
  type: "SET_CONDITIONAL_UI_PASSKEY";
715
730
  }>> | import("xstate").SCXML.Event<{
@@ -737,7 +752,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
737
752
  };
738
753
  } | {
739
754
  type: "GOOGLE_LOGIN";
740
- googleToken: string;
755
+ payload: {
756
+ accessToken: string;
757
+ providerName: string;
758
+ };
741
759
  } | {
742
760
  type: "START_PASSKEY_LOGIN";
743
761
  payload: {
@@ -947,6 +965,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
947
965
  };
948
966
  } | {
949
967
  type: "SIGN_IN_WITH_PASSKEY";
968
+ } | {
969
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
950
970
  } | {
951
971
  type: "SET_CONDITIONAL_UI_PASSKEY";
952
972
  }>, payload?: import("xstate").EventData | undefined) => import("xstate").State<import("../machine/types").AuthMachineContext, {
@@ -974,7 +994,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
974
994
  };
975
995
  } | {
976
996
  type: "GOOGLE_LOGIN";
977
- googleToken: string;
997
+ payload: {
998
+ accessToken: string;
999
+ providerName: string;
1000
+ };
978
1001
  } | {
979
1002
  type: "START_PASSKEY_LOGIN";
980
1003
  payload: {
@@ -1184,6 +1207,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
1184
1207
  };
1185
1208
  } | {
1186
1209
  type: "SIGN_IN_WITH_PASSKEY";
1210
+ } | {
1211
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
1187
1212
  } | {
1188
1213
  type: "SET_CONDITIONAL_UI_PASSKEY";
1189
1214
  }, any, {
@@ -1214,7 +1239,10 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
1214
1239
  };
1215
1240
  } | {
1216
1241
  type: "GOOGLE_LOGIN";
1217
- googleToken: string;
1242
+ payload: {
1243
+ accessToken: string;
1244
+ providerName: string;
1245
+ };
1218
1246
  } | {
1219
1247
  type: "START_PASSKEY_LOGIN";
1220
1248
  payload: {
@@ -1424,6 +1452,8 @@ declare const useAuthService: () => readonly [import("xstate").State<import("../
1424
1452
  };
1425
1453
  } | {
1426
1454
  type: "SIGN_IN_WITH_PASSKEY";
1455
+ } | {
1456
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
1427
1457
  } | {
1428
1458
  type: "SET_CONDITIONAL_UI_PASSKEY";
1429
1459
  }, import("xstate").BaseActionObject, import("../machine/types").AuthMachineServices>>>];
@@ -23,7 +23,10 @@ declare const useAuthServiceInstance: () => import("xstate").Interpreter<import(
23
23
  };
24
24
  } | {
25
25
  type: "GOOGLE_LOGIN";
26
- googleToken: string;
26
+ payload: {
27
+ accessToken: string;
28
+ providerName: string;
29
+ };
27
30
  } | {
28
31
  type: "START_PASSKEY_LOGIN";
29
32
  payload: {
@@ -233,6 +236,8 @@ declare const useAuthServiceInstance: () => import("xstate").Interpreter<import(
233
236
  };
234
237
  } | {
235
238
  type: "SIGN_IN_WITH_PASSKEY";
239
+ } | {
240
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
236
241
  } | {
237
242
  type: "SET_CONDITIONAL_UI_PASSKEY";
238
243
  }, {
@@ -263,7 +268,10 @@ declare const useAuthServiceInstance: () => import("xstate").Interpreter<import(
263
268
  };
264
269
  } | {
265
270
  type: "GOOGLE_LOGIN";
266
- googleToken: string;
271
+ payload: {
272
+ accessToken: string;
273
+ providerName: string;
274
+ };
267
275
  } | {
268
276
  type: "START_PASSKEY_LOGIN";
269
277
  payload: {
@@ -473,6 +481,8 @@ declare const useAuthServiceInstance: () => import("xstate").Interpreter<import(
473
481
  };
474
482
  } | {
475
483
  type: "SIGN_IN_WITH_PASSKEY";
484
+ } | {
485
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
476
486
  } | {
477
487
  type: "SET_CONDITIONAL_UI_PASSKEY";
478
488
  }, import("xstate").BaseActionObject, import("../machine/types").AuthMachineServices>>>;
@@ -43,6 +43,7 @@ declare const useDictionary: (locale: Locale) => {
43
43
  };
44
44
  login: {
45
45
  login: string;
46
+ passkeyLogin: string;
46
47
  password: string;
47
48
  continue: string;
48
49
  passkey: string;
@@ -60,6 +61,7 @@ declare const useDictionary: (locale: Locale) => {
60
61
  verifyEmail: string;
61
62
  verifyEmailDescription: string;
62
63
  wrongCode: string;
64
+ codeExpired: string;
63
65
  confirmCode: string;
64
66
  resendCode: string;
65
67
  inform2FACode: string;
@@ -78,6 +80,8 @@ declare const useDictionary: (locale: Locale) => {
78
80
  selectMethodPasskey: string;
79
81
  passkeyNotSupported: string;
80
82
  passkeyNotSupportedDescription: string;
83
+ noPasskey: string;
84
+ noPasskeyDescription: string;
81
85
  };
82
86
  register: {
83
87
  password: string;
@@ -85,6 +89,9 @@ declare const useDictionary: (locale: Locale) => {
85
89
  passkeyNotSupported: string;
86
90
  continue: string;
87
91
  title: string;
92
+ passkeyCreatedButNotAuthenticated: string;
93
+ passkeyCreatedButNotAuthenticatedDescription: string;
94
+ backToLogin: string;
88
95
  forgeTitle: string;
89
96
  emailLabel: string;
90
97
  emailPlaceholder: string;
@@ -101,6 +108,7 @@ declare const useDictionary: (locale: Locale) => {
101
108
  verifyEmail: string;
102
109
  informCode: string;
103
110
  wrongCode: string;
111
+ codeExpired: string;
104
112
  confirmCode: string;
105
113
  resendCode: string;
106
114
  createPassword: string;
@@ -1,8 +1,8 @@
1
+ import { AuthProviderConfig } from '@alore/auth-react-sdk/dist/types';
1
2
  import Auth, { AuthProps } from './components/Auth';
2
3
  import { AuthProvider } from './components/AuthProvider';
3
4
  import useAuthService from './hooks/useAuthService';
4
5
  import { SessionUser } from './machine/types';
5
- import { AuthProviderConfig } from './types';
6
6
  export type { AuthProps, SessionUser, AuthProviderConfig };
7
7
  export { useAuthService, AuthProvider };
8
8
  export default Auth;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAmB,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AAKpD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AACxC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,IAAmB,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,cAAc,MAAM,wBAAwB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AACxC,eAAe,IAAI,CAAC"}
@@ -24,7 +24,10 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
24
24
  };
25
25
  } | {
26
26
  type: "GOOGLE_LOGIN";
27
- googleToken: string;
27
+ payload: {
28
+ accessToken: string;
29
+ providerName: string;
30
+ };
28
31
  } | {
29
32
  type: "START_PASSKEY_LOGIN";
30
33
  payload: {
@@ -234,6 +237,8 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
234
237
  };
235
238
  } | {
236
239
  type: "SIGN_IN_WITH_PASSKEY";
240
+ } | {
241
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
237
242
  } | {
238
243
  type: "SET_CONDITIONAL_UI_PASSKEY";
239
244
  }, {
@@ -264,7 +269,10 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
264
269
  };
265
270
  } | {
266
271
  type: "GOOGLE_LOGIN";
267
- googleToken: string;
272
+ payload: {
273
+ accessToken: string;
274
+ providerName: string;
275
+ };
268
276
  } | {
269
277
  type: "START_PASSKEY_LOGIN";
270
278
  payload: {
@@ -474,6 +482,8 @@ export declare const authMachine: import("xstate").StateMachine<AuthMachineConte
474
482
  };
475
483
  } | {
476
484
  type: "SIGN_IN_WITH_PASSKEY";
485
+ } | {
486
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
477
487
  } | {
478
488
  type: "SET_CONDITIONAL_UI_PASSKEY";
479
489
  }, import("xstate").BaseActionObject, AuthMachineServices>>;
@@ -502,7 +512,10 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
502
512
  };
503
513
  } | {
504
514
  type: "GOOGLE_LOGIN";
505
- googleToken: string;
515
+ payload: {
516
+ accessToken: string;
517
+ providerName: string;
518
+ };
506
519
  } | {
507
520
  type: "START_PASSKEY_LOGIN";
508
521
  payload: {
@@ -712,6 +725,8 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
712
725
  };
713
726
  } | {
714
727
  type: "SIGN_IN_WITH_PASSKEY";
728
+ } | {
729
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
715
730
  } | {
716
731
  type: "SET_CONDITIONAL_UI_PASSKEY";
717
732
  }, {
@@ -742,7 +757,10 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
742
757
  };
743
758
  } | {
744
759
  type: "GOOGLE_LOGIN";
745
- googleToken: string;
760
+ payload: {
761
+ accessToken: string;
762
+ providerName: string;
763
+ };
746
764
  } | {
747
765
  type: "START_PASSKEY_LOGIN";
748
766
  payload: {
@@ -952,6 +970,8 @@ export declare const authService: (services: {}, context: AuthMachineContext) =>
952
970
  };
953
971
  } | {
954
972
  type: "SIGN_IN_WITH_PASSKEY";
973
+ } | {
974
+ type: "USER_CREATE_ACCOUNT_BUT_NOT_LOGIN";
955
975
  } | {
956
976
  type: "SET_CONDITIONAL_UI_PASSKEY";
957
977
  }, import("xstate").BaseActionObject, AuthMachineServices>>>;
@@ -7,6 +7,7 @@ const initialContext = {
7
7
  active2fa: undefined,
8
8
  sessionId: undefined,
9
9
  registerUser: undefined,
10
+ socialProviderRegisterUser: undefined,
10
11
  googleOtpCode: undefined,
11
12
  googleUser: undefined,
12
13
  sessionUser: undefined,
@@ -15,7 +16,7 @@ const initialContext = {
15
16
  RCRPublicKey: undefined,
16
17
  };
17
18
  export const authMachine = createMachine({
18
- /** #no-spell-check @xstate-layout N4IgpgJg5mDOIC5QEMCuAXAFgWWQY0wEsA7MAYgCUBRAZSoBUB9AYQHkA5eqgDXoG0ADAF1EoAA4B7WIXSEJxUSAAeiALQBmAIwCAdAHYATHoCcANnUAOUwBYLevQBoQATzUGDmzTuMWB603oWBuohpgC+YU5oWLgEJGA6JPiyAG7kAJLs6fTpAIIAMukAWlSCIkggktKy8ooqCBrW1jrq1vaaBkECVqaaAKxOrg2adhY6pgJtHkZWbeoRURg4+ESkicTJhGlkmdl5hSV8muXiUjJyChX1qpp6pjqavbfGBn161sYvji5qI5M6QXsfQMAhefjsCxA0WWcTWm221Do-GEiiq51qV0Q2jGI0+QWmrT6AlMgzcAk8LWsrWM5NMPjakOhsVWCXh5Bo6QA4uxGABVAAKZVRZxql1A9QMVOM+iammswVMNgC3yGqncHW8NJpfWMJnUr0ZS2Z8R0bLIHO5fMFx2F1QudUQkvU0ve1jlCqV9lJDWmfQegVaHwsWluhpiKxNZvyrE5mSFFTRoodCHcFj9-RMwPspgM5gs3rV2l01gE3V1bxeboMYZhLNNeFS5AAYqwKJzWEx+bkaDQAOqtgAi8dOdox4sdAj6YzsRJMk0+NmsBc0xj692MthCmnUdwstj6NeNcIbWwSAHcwAAjdTMeSkBsSABOOjwd7AJ+IUDIbHYTfSFGwRheyoAAhdRGGjWN2GHSoRXtTEEEeOwHgMHwvlzHd5W9dw1x0PprGBKwp1GatIihI0I2PRsdAva9b2Ie90CfHQwAAW2QQgABt0mIMQMDIAA1KgKHSJsAE1GCobBcnSfJJMKWMQNk7IxJgxN4PHRDTCCFC0KMDD3gMbCQTGfDCNMYjAlIxZw1hVkTzSGirxvN8H2fNJH0IAAzZwSCgKh2K4qhOMIKBCEvLiZGcMgIHkBISBSCQAGtWQouz62o2iXIY98mPcsBPJ8vyAo4zjgtC8LIvQZwEASiQ8GQUUyjUuCx2ULETGldRyTuewDKwn4U38PQdEmczLKCQ9KPszLnPoxjmI87zfM-EqgpCsKIpC6qyAKx9mLETjGq8p9WNNNK6zZJy6NcvKdCWorVsCsqNsq7aarqhqmuEFrRzFdrEM6loeuVfqjMGyVczwgjOgsiwSKm9Krqy+bcuYtjSoMLzkFvCByCEkTxJYfIZMA38mCkmS5IMJtcl+9F-vqW5-kVTx5UMcxDOw2x7jG2GJus8jbMuhzzzm27FoK5a-OYI7CFY9gvPQNbOKx5AYri9ZEpS87hcjUXruyhb8sKlaoFljiFaVlW1dq4hEq+i5mpRBNWsZrELEecYCL6W4Ocw8GhleWxofG+GrMRkXZpunK3PuqXHvNuWreV561d2x99ufQ7jtO3Xa316OjbRk3pc-C35cV1PMexu2Hcap2fpdkcGeTEYvZsPpfb6zmBqDiYxj5ojw8msimWmjLT0N1G48ICBOPZKh8ioZgmB-dgV-oVt6aTBC5Q1N0LBedRfd8SxsO6rxUKnARc3lGx5jHi7C6nziJDC4hzQYAVGGoWMaC4BQPkdAKA7w0gDEsbQ8Kggss8E+HQSSDXlH6EE7g8SeEnBZA8T89ZUVfu-Eg5p6C5AoJ2bsNAADSVAJKQTjM3WCf1kzOlePoNc+ozABjsEuQatwLL6D0F3N0jxnQjEji-Ryb8P6JHnuQWhPJezZAABJAVAjeDgG9V7b3oepNqTMqReHeDqTwPh3gjHzDwncuhVyLiPsgkI1gxF4IkQQ4g0iF5kHbDGZeEEYx0JOAw1uCF2bpjdNYXoa53CBG9LqAwOhgjGE8H0fUeh-CtEcTNfBUi57uNyAOASuR2DMCoIwLejAuw9n7BQIc2i3bJiaCwgI7dgy6kCOYoY2l1AtBCJ8Vc8oCKhhwQXJxCRJEkDceyLkPJMhASUWU8hVDVI1MYQhIwegvC2BLAI4EjxtLehGHw7S3QiQ0hBBs9Jk9nFZJkV-Zeq85kVMHIwbADBFGsGqf4nR7sUyGBdPhSUt9SzkgIns4IzQBGPHlPqI+wJwiDKPBky5YzsmL1uWQh5VSnkvLeUcD5tSEJaElOMCYJgOi2BBOoPZoS8IpPsLqJU25zlXVGa45FNzN73L7I8559BXlDgMLi5Zml9TyjwrqUsntDJym4UMfozoARWBCJYX2U5BbjyRgbZl4ydBvwapxfkyBYCwBSs4GgoVP5-iyDQZR5TKHUJ8VBMBujECWH8N7cwpZupWD3NhN4sTOj4mOQINZehGUapcVqnVyA9UGqNWAE1ZqyAgVyMwChjqvmtCMOMfwBELLmG0MYClEMqTNCCF3E+ayj5H1DdRTVyLtX1Sjfqw1xrTVQE-jahZjB2AdkYDQAU-JWxcHebaQJQq3S6CPo8HppYEkCOwoEXQcNTHaSaJA6tmSkUyJ0NINtvYZCYCbbG6KFr0hWo5Z2uRaamFJPuJDT25JnRvCaNhbozR-A5h1JYEs2CbJDIRSM8Ndad3ED3VgQ9xrE3JtTUs0dANOgirlL4FJVJDDnwhq+h4NhdQdDpWkuFE8mWAa3cB0DB6Y0QY7Xa7tTA+38gHaQqgw7XaCrg8CTpCSXhvGIq8AYENJRXz0KCPcZjiSTnXYillW7oQ0DwI+MAYBP5IhYBwAcewOAFD5Okc91Cr34tBM0DoqFupUlvp0FUjosMtDWfUzouI0ziYA1che+cZNyYU2QE9Z7KM0N8dBGDu8hVjQBB8CY2h3iGUQUHN0I1i1-DsB4I+qrn7DPrU51KWBXPyfbfMqjPbaP0aHbpzS197grjuLiAiupgzzt8OMKcAQzDWKDQ51Lm7nN7SfB53YXmcs+Ydf58B9QtyxMwdpWl8NyTYW0H6SwG5u7+G6HKFrtat0dcfGQbzXa8v9sHYxorrHgjeBXK8AR8MeMXypC0P5NIT50iCI-X98KLmObGcy7AYAsASAgDQMAC8TzyDZXcm1lSmMtwCxAgRI3PYEXnDOyLWJFSxK7mzbS8NFTOmW+Gt7H3MBfZ+390UkGU37fqG0KBeYUnqjTC8PZZb+FygzVZDcIb8PqpreGuT6BPJgBSH5GgUb0AazWHVHWaqo4btcZz7nvPPz884ugOuDbvpCBJ4gNoXcATAlCZ7VCxg9mTi8Fh+pQQC3B0x1IqXhAed84FxnLOOgc7oBOo+M6YvxEvclx96XNv5eK8dvIZ2ArYOk-6OmQItx7GKlLLxoYhgDM6h8P0RL2lzdIt4hgQ9Z4nwQCJ9BoP4PScn2aK8EeYSTfejTJ01mtw1wnOQanll6f0CZ+z7nnFI6C9q5C9S-o2gOmWHMwgZnXTL4hGJIY2Fj2CNhqyU3lvj4c9sGwPyZeXBGCeM5N4i0Uy-P58G2rxUzQcylg6bKkYezCR4TpB0W4R8xUPaFn+57rXG98WbzGrPC-BLCVEn1vxHf98EAPhDBvYmhgRcwONC0hg7BeYqR4YkktAuhNAG945TY-J8gXEhd4p7Zkp0sn9CMpEHozYMCP4-cG4A8m498nUEA1w-BRpUxnRAh8IQgY9EBfBmhb45RtQIDPYH83cUtNUiD0DMDYphccDRdkt-0X9UCy4oASCSAyDld29mNg9EAu4fBvBugx8-Bgg2k2CNCUkC0Ulb5DEqQUChDPx5DP5RDsDtY8CnsCCxkLC5CXFFDG4Vd+UADqD1CxgaRgxuodC0MZUPUARyQ7BuojACIzDWdxcJMZDE4rCsCtZcD84HCZ8nCE5iDXDPpyDiBmp1AqCvk1wKQ8wklyVeg+4sRmZ9BRN3BupDBeDzDMjhCP47cDojonc85+CpDBDmjLDsicD-c8jKCvCvkc1mg8QSxJgRgpwoC1DtJNQjBSw1lb5-BjAUDYBUA8A8A4BYAvJUBOJEjqAmxERlFk0ikewSlWAqFd9Ri25b4Sx5UT5fBiQkl8JvQUkxgAgPhkEeYQsNiJAlYzxkA5N04fw-wAJe1exlMBxSgBtqDfBeg8JtxDCzNb8PjPYdAmhBMn0dw6QLIASgSQSwB05eQ6BGBFESEBxewSFikaY6Z4Svk7gNwAQYk1lFx6tvQuM4lESSxtxb8OhCT0BgTQTsY29GTkwbB+gWgcw9xgw4Z9QPiwkHhy00xehuhPZJ9H80j2dCC+ioA1ZcZyAbDkiJDcEejw1nDDSvswA3CKCVcJSEI7AQD3QNlekIUlT1kM1LAPBtxoip82cJd4izZrS8YkiRd7Dp9dSMi0DPxQzbScilCbQVDO8h9yRdBOpphv1KiEATARoBF-BZVYZJg+DJDn9ejYyDTsYjS2js4OjndXcyzHDXErTqybS7ThiHTCjkxETSt25txtIXgPAK8dQsStdmYSyQQf1tSoygzMAQSIARSSSxSyTikaBWAmx6AaTqBGB6TVdcz8TRokk-i1xZxvRBzNQC0SxVxu4LAUD5yF8lz04CZf8KToTcheQeV9zeTRodlyi0wj5vQdw-QJgy0PhQRQQQQtTujyzw0HzFziT04k1idHTNIu5zBRUjAJhj4pxpVnV4ZoF-B8IC0XUCSYj3dpDSAzwBxrcdjvwOAITAJYSBJ0gikYS4TuyEINwvZQQNwAjNS5ih9Lt2Z9RLBtxgK7zyKBDw0qKaLec6LEQqB2ABx2LvyzBOlgLBNghsQ9DEJILRp4YdwtAPgNxmspKLS9TKyayTSIzUjZy4jnCjSOzA87iuLPgvATdVxnRoccyhy4lQQUkpwu5PYpwmirKbTayHd6yuimz0iWz9SnLEz3D9zmdOlw87h2E6RUJ9d9QHg8QNxYFTCUC5NYAFMIAZZ5AvJCAXdciVZwzxDIzAy4iSqyqKriAqqarRQVZnKRiUzAD4ZlSqQtBiINxUw9kpUAQVxegM1gwxNzLYKpEMYuJ05FLlLVLUKAZTtpRo9Jxa9nj4dEIpR5VQR95kk3QUClrVYxSXyiZKZZJdzaZ9ymC-Qg1b5gQEk2grAQVPh9A79JQF1yR+gLq04xTkK89XLNJzAzAsTiRbAIVRrWDEJuoupQs1kRgQwWcAzYiPdgzioQb1YbKGq7KmqcbnCbZa4kr7Tvy6QRpPhAVMJjlB9twGkb86QIK9wAgwrZDyb1Y1sorc4XdibsbpCyb8aequyIbNq0wRoj57AtBLAuE8LEJqjBMJg6ig1bNSzzSFqxkWriByqnpSprLNZbKYLmydA9aDb-JnpErBjciXK+rqDsxdBHg-YfA74aceFD46sqQ7tByV0ubE5FEzxcglh6q7ChaKKKzZDg7Q6sBxaUqVwQLcxggklQ93AgLoapS9x6ttJVlA6zZY6w7CaI6za4rcbPwi747KbOzlCwdAC6Uxgdw7gQRljV1M77hs6CIehARMaZySaRb9Sq7MBIrHcGzI7pLLKY6Q6lgE6Nr6h2CUFNwn0JgSxBKPgvBgR0yiLmbPYUCvIPtYQoAmwnwYABxGoCaTaiay7ozXED70Aj6T7Hwz6L657OKhUAxfrPhLFD9YYPiQgYbwLv1Aq3h97D7Vhj7T6wBz70BebM52iBbGztbzb77H6oGYHkA37Jahs+KARegBFpjcw51BopTQicTug2bSxkD5rzbnDOQJB34F5EiS6Uib6gy6GGGoAmGBj64lD575iVwHgOgBEhy1x3hKU1lvY5QjFPAdxcwC6-J6HGGwBEi+ax6YrkHy6OHlGrCsHHaxi3hB417Ft6QvqvaiR9BbgeMFwj4tb8Dy6oBOHuHWiWGzT7Hb6dBHGdGeGldkr+GaC-TxhgxSV309QL9LsiGEkT4n1fUUCvGuGVGRCr7S7YqPH4nnGFCa7mpkz67vDFUukdQGjQQgisRJRpRT5PAUTd7qGsao7w10nEnWi1HorBa2G4iGndGsnercmxj7s4lfZX15tHgQViR9AxL3AbAgQkliqvcrcZdzY5M8ZiBZAo0KBmAKBw7WHUmgzLdrdy5FmFMVnOI1mKA9Gem6knhRpj9Vag0yU9k9wrEZjDA2ZEMZmuc5mZYDnlnCBVn1nR6WmkH3GdnZm9mFnIBDmfnjn1mzmAlUywkKRKc06RGcM9lBNOkg1kdPh9IsKNizVPnwXvnfmNnPNrVet7V-99G6kObRoFtnRzAcx+gX0KROhSx+klVSVcW218WlmjmTnxT36AZ3rmgmhMFUJsQEl7mcwVTCmSxocQg+62mcbgNuWIWiW28cnYXACb0PL4NJx-Aj5b49kzAwVOhonHg5agaaHy7lX9mCXeW-nNtqNe0dsGNQdNXvDJgwU6RV1PXtxEbbhtwaXyR8quNpzFXB7KyKAwAwpYB0ACp+RUBLwQo8AKE41mAvmjnNm3GdT2H9So2Y243HwE2k3CAU202M3IWYXPkqWkS+ps13g6QtBjINQiQByRGKxHgFHPx83CBY343E3k3U3nB027XIWs3Grhbo7E4e2+2i2B3S2h2R2eXK2umVcNXq2gkElYkcNIVpblVjIdI9RS12XXg7Gc2HK83o3e3C3i3B3y3R2o1x2J6LKYzZCZ2b352y3h2K2o0E7PDKXN2FjYbnhnmdxdLU77gvVXQg0C0u2oB33+2S2v2l3VXOIn3w2p2zYEO52kPF2f3OIE6CjsG1CYOs03QnhdQwlBLIYvBljWZiRDKktNGPHnDsPb2F373l3H3mnEHn2db4rI2r3Z32PkP8Oq28VNJQl7h+ltIiQkk9WX1uh+m-T+Ttw-Az37LSbL2C3EO73v2H20OePOjWntmL3BOdOcO9OUPCWCPV2673X00vVNdFQGsabPaZV-CsTmS4CTqOgNOB65MLPxlzRXloTAFsAaAnk3kCh9yiRDselkcdxpHB81Q3r+nFQVUrBiQU8rXqJAvr2Cpgu6A1q-5T16AKBcgcgOBJJpJZJ9yyVfCKiixBEwDlxiK4lWhBzJhPiWt8vZ3gvcl8lClilSlgdBxYv3AMzmYrBUJw9Eabhup2MTAPAYVEt8JeuhPC3gu5EZkeUVEwJ15N4tEBWmZfAxhnnghAUaQQtadcIYF1PJwpQu4NugvWUkQf5SuAFhJgFhJ6vmkHhx09Q2aa9lwC1Dd7BHveErBLXamUs+utvWUN9vFL1-HT40rAhDBdx5P5uVw6CNkBEsFg53gXuCvnxC3WJYBsAvtH3mBoxyTwvIvsBov8h6vPgRp8Jgw2hZVg3Qe+FTGCIIighObcup54fCvSr9a8bSp0PTOEgxfnwJerbuq7PUfwssSRFc0c1GXBobgpjRp5QpynQcISf+vFepeuJ-nePw35ft1WrDauJxOWNSc06UJkMaVcQce1lpQ79LFotMfJLYepCbfLqBIo055cjv9CYJI7qWf-HV631TF6QA3dKbgXP-RgwU6dQQsA-+7hbg-npQ+QoIAI+waJuXgYbrFgxfUAg2uMK0wQRPAcIC0IQRfHJ8-SpC-w-CdVqVK2BYTYu7BF14Zbh1dcwVxlwUlpO0wgrAh1KTetvRbpfXGJ2KKbfF+HeVeTvEBc0xhZvcLJ-Zhlwq+ZQfBARfUPB5-Cv1+0Pl++Oro1-9Tle7akyt+EBD8-R9Eu41w3QFbQeg0WgEuvsBJLMBz7W9NuV-R-s9Bl7MdRe4A0uInCf68Nkq-7c5ghACBIkrAayLuN1zCQHUbg9ITDNxWvg5oTAl-eAWbDqpGdx6YAoLtf0d6qE3+wcS8rqG8pzY8BveWjoJm0A-Eb4oDVvnLzgEvg5MjUMAPPkXysBl8q+YpJ93K6Vd0gHAJ6rZk1yPATIxFN0MuDT7kc3ggVU-gyn4EW1BBsmMACILEG54rijAdIAOGXhPVQQ6YMsIZk8CGUCwK3WJN3Xwg14FaZAoQcYLjamDS+cfVCLoEwgmA6QPgMRhPz3BxIdku1RVKhi8GvhWIh0D7H5HfaPgI+t-GgaTxfASBEhC8WQN2025pDRQ9A1Mpwm8CdwkMoQj4BoJsBHZc0nwN4KfniE5Ckh+Q+DoUIj5UCNGQLNvoYJaF5CUhHQ4oZv2I65kpwI0XoAWi+AJI-SR-EOBARXALgMqDifQTb1QClVHwI7EQTnmOKnFGA5xWgJFy3g3FvyIwCYXSji5ZV-AR-FtiYGEyw1TsXgy2oMILZFCLgdVDIbLwMFBdnhBQ14bVWeglCtWa4MYG6FXA7IggtwDQbqH9AssHi5gdwCsMD7P4beHTJJmIRSYwDehQXNEaQRGEAdIat8XfrwSMDdQoaKXMxOxjk5JISUpmJjj0IEE4inGjTQhJ8KxGMishuIzJs-2SrrsJOAMCYN1CPJc9WgM4MwKDzuAGV-qq4Pft0C8FcjP4XQkzuyO+GcjmRnTHkVTVR5mYABk-GGIiUDi-A0wzQHUNslMT9ApyTwkFvM2YB-M2RDI1Uf112Y2joW+I1AZDS8p4RWgr1KPMEwLDH5NCPGe+JOHsBWj3moLW0RsyVGAtz2HIp0daJliujNRtdOPtDm8C+0NwYIVcHrh15s84kPGSnC8AaHrFVhggyNJxEjGtpzU3WUlj2E7QyDfu-jZGp0jO6dQ2ecBFLq0BbGYRGss4PpP5zz5liG0FY9ZlWI2xksnW+WXbG6w3bFYsWXol4OYC7FWMCwHwdjCCBpDkhIYwvZEffyHG6pKxCafwa-2bGhE7APSSjgPmcE6QHiC4VcLcydBeDyxJzMcSS20wSQPyX5Jsd+hpZFjYabQLBM4IIhRCymg-DhH0ifHDiXxR4qDOYMsHWCmxxTM8W2MvF2A2uTdC8XSD7GPjSxQXZ8aOITSOttsdGacfuVPGtiLx7wK8bmPuDjCQs94wyP6Vz6r9BBwJc4J+Cfp8sAEJCNFLaj-y3ECRAMZGgJllIQE3gzobCOUwSxA8c6NgekbGMdFbczen4ETtZ0zb2iFJNvZSVAFUlic3RDnZMKdhGhfpjy4+MJjrzRxedv04SGmsCC8HaTdJBnS3sZxjGadFJ4vO3jpM-ZqSV2yYh2u6IFGfAOCIQHXJ9X9QFhTseEGbqhmQyjxdxBsG3vL3eyfZvsv2XKBcEBy8SQc+5WTiNjCQPpJggIDQQIm8BgUsEsCKtLhKyFJScceONKf9kUzEJSE743+FQH-iAIcp5gD-n4HcqZjTsy4KFJSA1JTCXgZ8K0RZ2Sm45UpBODKceNGGCikcII7yitzpADSoYgmYkI8CEzaCwx3ubtnaOSZbMVRiUhMftNOb6TZxUtWoT4D1bUgTIEUy7GKO1BThTK8ktySdPDHzM+W0Yu-glMEHOiUhSYpAVqNf53ByQlIXgZKDzqCVVAR1YMO8F7EPimJmQ03p5LjoHpvJ+HaAQ6K0loylgjkrjrZz8ndMDJTpGYg8GRzBgHmXvHHmsTwiEQeptgh+PZLxlgZMZTkn6SjKUmsyMZSHHyb+wun8iF65MwEKhFQibIqQy4TaVEN7yBAAg3QSUC1mdyON38hqT-BACK5KVe+byDiqMOsyaEOgA1AINCk0DOC-OQjFcPAm0CkoFWXw5WRIFVmwB1ZwXRSllPG6o9HiBEO4AM1don4JRugerOpzRweAkRzElLPbMdnOztJxtDEUdIdERyxBtvSXuXHbKCynepTF0vlNXB2Ak6KfAkP5X4zHYaU0FO2afQdmJzo5EVTmaXOfrlyP82eJOVbVtrAyUxr-EKliVRzGyT4RhJWql1HIRF9w1Ob4iXJVEJz65C+HQFRVMHgl-wgEMblUieqBAeSQaE+HfDvgp8Zim9HUHdhA5nclZZcyOQ3NgDIB5mpgjSW5LHlqyj5J8vyGIKBHUE1OXUaJlshEQEoj+U4fptvPwhzgNwoc8NpfKdnXzT548nPNXNHkHyK5N8lSSAvvlMlgw3gMVgazk6gUJ+5fMkVOXqwJIw2XwzVDazBaEy+WREmjC60Kx8j05ATHijAnxAmRS0eyUCkSmDZ5hCpG4SCQeIIltpxxdY3LMQpImut7Ol0iUAuBqI6hCp4qL0Dr2-4AhRK98RoaFgiBkRiANpeABUG6KjCNAaCtoGsk6AmRWY83KGVfCS6m4eo51eakkFFhqKxWYzA3LN0mE18de5KF6lYDMCJJyUuoBzKMNXRjlvZ1s9UsSGcFGUjs7MNWqBVtkqiUYEsR8KMIHLCtcQqdP4CUxTC2DNQG9afjNwZD6DwlscO6K+CyV+QolAvIRvfB7gBxuYpYUOPzBHhvSB6mS42CxGeg8Q38+SpJIUqIb+wuYEMN4vrzDgIwMl4sLJZLErIqxyom0KqEMACl6JmlbMVpWDGwiKhym+ouGD0vilFwZ4d0S6vGSaWdIploMXuIaJTBphaOCygWC1hqUlwK6ScS2FXB5qbKWlOykpRDDCHlLh4SysOVIVOVxxLq9EDqqxEgA3LtlxS9pUMC0ABAulFSl5eG3eV3RkUTS6UGzxwF6gNaU2eBVoADDiSTMVgBvKMMhi01jsXGM7F3Cmyb0k6rxcAmEkMAoFoVgkiUOriOycZTspaf1ikk3q2Ag5u1QRBSq3TljwMcaKsaMMJAeVtI-QMwJzx1CzKPgNLIwJxjlBBoamry-jlqhIz7puVYy0mcVj6gPATq4IQUVmCNbl9W6RYZbg3w5XOZpMRghTFivxA1FEMtgQwL7AOoe0aWxmOSSYkmDGqEga2C1UKN9QvSHmPQJWhMyrxJJFxBacENgpVGapscKU-HOlLagCK1cOEMco0n0SDkmaMMcoVZGPJmQ5R+gzVADNlwC4PFDQ0aCSvwiycC0+uTNLNmy7Og2g2oClXPhAUeK0aoqMJJ0G3khUK8koz1qZkH5bjQlDozDi0RICjCYUfoewIiVnBUzXgFeR4iYD5LjEfANgDYlsR2KGp9ihxFxFEtWLlMK0RhcwN+hHL5kSyanTcELyFJPlsYowroPcEEzIIJmfgEwLTkExeds5EPUsK8FlUYdLS+pDZVSrYLgUeSe4AfD8U9gfEPAY5JVOoQZwjyB1cFBcheuQB6yfkv1WflKmaSI1gK4wR7hnzCJEhQBOCmSmAGoq0UwAV6+Ag8Gh5LjKRulA1aKjHx94-A2gAcXUynqJwjSow7DNKAF7wIheKSQShxjHIsDCQaOMyssuBaVz2q1VdiF1WegcaNadWb-g1jonjUNcVIYOIWVBSghgaNcRDX+oPKTgaWmPcLLQRzEypgVia32uARzBuKc136wZfjSvUQEjybGLPjML2VqdF0hmIvO4N4QzNtJKsdjXpsMhpUc6tgaWqyyfUmtdqW0nwvhvDV2bp66Mq9WEmLxnYxUGPYEEBUkbZ0uMxIHcCWLE1xFUGEDJ+i-VgZ8rgmUjfpH61lZcl4uXwfLSYlsBwclGCTKwh4qF48khVta0IcQxlQ-8sNieH0rNwIhxN1Rm6vTWnXTA5gvex+BJBZHGqPFFhJYJviyr-kEaLcp0-BahxOYeKM0dWDWt0i3GCUa8QQlpL6VPJy1OWxAFVjZ122TbaQ+vZ0tiBBGmaPYtbGJOOmEQM44ObHT9nhwM4eLceHclgb4H+SeApsFjZmM9K-RmAyBWK5bnVmzBpgdCPgZwbDFFR+t4CD65jXD0EGUrxlJHN4PwkSxzrJ+qC6cKvM9g0g86n6r4Tb3J6U9qenEEddMX16Thpi4KZ9PYvEpEovKt8POpVMK1xjuZyc62qVA8WdL+gUwF4GFneI68k8Y6zrnJMVT6svBIfMPsX3BxxqaCMBRNQqDuFk4cekzfhA22jy5gwiXg6-vNM+reBZ+cXWRabIV1aVJqkw2xFoCDRxacZhg4Qb4MbVBbbm0CFeZOFnRvAah0nR4GuEOSijggzQ3IckL+HXs3hsaoWYgAEQpJ1e5YBAp1GN2KgsSke-dVuCrBeD1hBULYXGwgCObb4l5aJu4GyoK7FQoIqYvqCJBQpb4Vo7SakIBES7JtZTfhGtt9QKyJ+tQ8WfUgRGdAbNwu9yc+AVEjrmCBlIDXDGsl-9fCcnIMXhoK1yq9xPwrbZGPmmwJRowq+kHUXPw68cwWykRhzW0i9Aqlg4vCcOMPFtoLVjxCyMjtb2oQU+XYqRQjKwlIzcdQffcUS15V6bdWSOrHqjrzmghKQJKMLbLR5heC2JbQzies2f2LptBsnCAw9M1z+FtFhgDWl7s0mCCHJ7MwmXrKhnBZb1pKtngWHhjncycA+GbfFnGmk9JpdUmaSnvIWH5QRkoH1StwpFf98x9iYflCkn1b6-pO+z6YDIoB6z2EWaGblVjpbzdV6WJQELwUsD6Z1tx0ogzzIJmocr1Qq8YCoK3DDVJZCuy7umKiJdxTsF-fQQAvVmFrXBjQn2b4rwHqgRsp7ZuoiS0D7za5h8ieQTtVWCsl5JZIKiywYJmzDslTEig1gfQ+GVZFczyYFsJ16USpJZT3Z3Hdq9ysyNRfjLP2saaH45ECkBdkLxg-ZlmUS2cHVjWJUdgKk4CI2CgeJQV5wcwOI3XKvkTyp5-u5I70C+Ialkc1mc-e-NiS+AxUveGVS8FaN+GNZx84Be0cr16bpsxeIVQWh1C5ggNQx0IqMYGZe9b9FFOww3LEAgL+caQeY8kdDwy1m6JKXoB+hhkzFfkWfUScXvkVAA */
19
+ /** #no-spell-check @xstate-layout N4IgpgJg5mDOIC5QEMCuAXAFgWWQY0wEsA7MAYgCUBRAZSoBUB9AYQHkA5eqgDXoG0ADAF1EoAA4B7WIXSEJxUSAAeiALQBmAIwCAdAHYATHoCcANnUAOUwBYLevQBoQATzUGDmzTuMWB603oWBuohpgC+YU5oWLgEJGA6JPiyAG7kAJLs6fTpAIIAMukAWlSCIkggktKy8ooqCBrW1jrq1vaaBkECVqaaAKxOrg2adhY6pgJtHkZWbeoRURg4+ESkicTJhGlkmdl5hSV8muXiUjJyChX1qpp6pjqavbfGBn161sYvji5qI5M6QXsfQMAhefjsCxA0WWcTWm221Do-GEiiq51qV0Q2jGI0+QWmrT6AlMgzcAk8LWsrWM5NMPjakOhsVWCXh5Bo6QA4uxGABVAAKZVRZxql1A9QMVOM+iammswVMNgC3yGqncHW8NJpfWMJnUr0ZS2Z8R0bLIHO5fMFx2F1QudUQkvU0ve1jlCqV9lJDWmfQegVaHwsWluhpiKxNZvyrE5mSFFTRoodCHcFj9-RMwPspgM5gs3rV2l01gE3V1bxeboMYZhLNNeFS5AAYqwKJzWEx+bkaDQAOqtgAi8dOdox4sdAj6YzsRJMk0+NmsBc0xj692MthCmnUdwstj6NeNcIbWwSAHcwAAjdTMeSkBsSABOOjwd7AJ+IUDIbHYTfSFGwRheyoAAhdRGGjWN2GHSoRXtTEEEeOwHgMHwvlzHd5W9dw1x0PprGBKwp1GatIihI0I2PRsdAva9b2Ie90CfHQwAAW2QQgABt0mIMQMDIAA1KgKHSJsAE1GCobBcnSfJJMKWMQNk7IxJgxN4PHRDTCCFC0KMDD3gMbCQTGfDCNMYjAlIxZw1hVkTzSGirxvN8H2fNJH0IAAzZwSCgKh2K4qhOMIKBCEvLiZGcMgIHkBISBSCQAGtWQouz62o2iXIY98mPcsBPJ8vyAo4zjgtC8LIvQZwEASiQ8GQUUyjUuCx2ULETGldRyTuewDKwn4U38PQdEmczLKCQ9KPszLnPoxjmI87zfM-EqgpCsKIpC6qyAKx9mLETjGq8p9WNNNK6zZJy6NcvKdCWorVsCsqNsq7aarqhqmuEFrRzFdrEM6loeuVfqjMGyVczwgjOgsiwSKm9Krqy+bcuYtjSoMLzkFvCByCEkTxJYfIZMA38mCkmS5IMJtcl+9F-vqW5-kVTx5UMcxDOw2x7jG2GJus8jbMuhzzzm27FoK5a-OYI7CFY9gvPQNbOKx5AYri9ZEpS87hcjUXruyhb8sKlaoFljiFaVlW1dq4hEq+i5mpRBNWsZrELEecYCL6W4Ocw8GhleWxofG+GrMRkXZpunK3PuqXHvNuWreV561d2x99ufQ7jtO3Xa316OjbRk3pc-C35cV1PMexu2Hcap2fpdkcGeTEYvZsPpfb6zmBqDiYxj5ojw8msimWmjLT0N1G48ICBOPZKh8ioZgmB-dgV-oVt6aTBC5Q1N0LBedRfd8SxsO6rxUKnARc3lGx5jHi7C6nziJDC4hzQYAVGGoWMaC4BQPkdAKA7w0gDEsbQ8Kggss8E+HQSSDXlH6EE7g8SeEnBZA8T89ZUVfu-Eg5p6C5AoJ2bsNAADSVAJKQTjM3WCf1kzOlePoNc+ozABjsEuQatwLL6D0F3N0jxnQjEji-Ryb8P6JHnuQWhPJezZAABJAVAjeDgG9V7b3oepNqTMqReHeDqTwPh3gjHzDwncuhVyLiPsgkI1gxF4IkQQ4g0iF5kHbDGZeEEYx0JOAw1uCF2bpjdNYXoa53CBG9LqAwOhgjGE8H0fUeh-CtEcTNfBUi57uNyAOASuR2DMCoIwLejAuw9n7BQIc2i3bJiaCwgI7dgy6kCOYoY2l1AtBCJ8Vc8oCKhhwQXJxCRJEkDceyLkPJMhASUWU8hVDVI1MYQhIwegvC2BLAI4EjxtLehGHw7S3QiQ0hBBs9Jk9nFZJkV-Zeq85kVMHIwbADBFGsGqf4nR7sUyGBdPhSUt9SzkgIns4IzQBGPHlPqI+wJwiDKPBky5YzsmL1uWQh5VSnkvLeUcD5tSEJaElOMCYJgOi2BBOoPZoS8IpPsLqJU25zlXVGa45FNzN73L7I8559BXlDgMLi5Zml9TyjwrqUsntDJym4UMfozoARWBCJYX2U5BbjyRgbZl4ydDSCgMQXsMhMD8mQLAWAKVop-iyDQZR5TKHUJ8VBMBujEAn38HE+UntyTOjeE0bC3Rmj+BzDqSwJZsE2SGQikZLitU6r1Qao1JqzVkBArkZgFDHVfM6CKuUvgUlUkMOfCGfqHg2F1B0OlaS4UTyZVG5F2rQqxqwPG01YBoo2oWYwdgHZGA0AFPyVsXB3m2kCZpV4wRvArleAI+GrwBgQ0lFfPQoI9xmOJJORlGqa0yPzjQPAj4wBgE-ha9IVqOXtrkemphY0AQfAmNod4hlEFBzdCNKkh9uiGFxKq5+wydCatrdCHde6D1kDbXaztTAe38j7aQqgg7XaCoBtfe4K47i4gIrqYM2FAi6DhgEMw1iBB6HXdRP9W69pPjIEek9oGaG+Ogks4dAMtyxMwdpWl8NyTYW0H6SwG5u7+G6HKYjmSkVkczhRmjHau2QegwOi9KzgSdISS8N4xEZ0XypC0P5NIT50iCI-MN8KLmRqkcy7AYAsASAgDQMAC8TzyDZXcm1lS4Mt13ppNowJRqewIvOUsZg9mKliV3Nm2l4aKmdMJxFrizMWcwFZmzdnRRJpTWmhj7mIH3vGJYFJ6o0wvD2V3Tp7RX0zFQgySt6qSNRr3egTyYAUh+RoMgTi6ANZrDqjrNVUcROuNq-Vxrn5mutbrvVBu8hnYCsY-UTzfo0zztsGW4wezJxeBLfUoIxh9T4SiyZsZ-XCANaay1tr5Hs5HXQCdR8Z1uviL231izA3jsjc+uN4gk2h0ZZm-0dMgRbj2MVKWWdQxDDNH6OgqcLxtK7d-TW3iGAm1nifBAFLqb5MeZPs0V4I8wmbe9GmTprNbhrhOcgmHf74foER8j1HaabTwem4gJoZhqX9G0B0nL0SoGKs9d1AIBFYWGarRurJlPqePhR2wbA-Jl5cEYJ4zk3iLRTPo1Nr7TPFTNBzKWDpsqRh7MJHhOkHRbhHzFQZoW4bjOw9F3xKnxrYBI4l4JYSolaMOvS+AmbMTvZNGBLmZTFLBp2F5lSeGSStBdE0OTqND0zb5Bce1+K9tkqpVwRGm3Yy49+QTx-UbjsJtNzV17xAa4-CjVTM6QI+EQjA8QL4Zot85TagD57C3t2f2auz5+XPhDYodZT1179Geu8J3jy4-Pb3mr07cyXhAXcfDeG6CEUs+oC1DCPmMFJW2Um30MVSGPUju9QF75-fvyftZp6t9Wo-Y+c8T9e99IQfB+WfbnwvsYNJgzdT8MENpWJV8ARyQ7BuojACID9Ksetot45TZ78P4k8tZU984jMb8s878e8H8U8C93sfp1Bi8nV58nhssCdyVeg+4sRmZ9BV13BupDA29D80DYCMD4CzsdAc5Ls84O8R9Y90CT9MD64n90cIE1xmg8QSxJgRgpwg8hg1xP8vhSw1lb5-BjAGDXFYBUA8A8A4BYAvJUBOJT9KAqAmxERlEU0ikewSlWAqFVc38CDtB-l5UT5fBiQkl8JvQUkxh+cNxg5ZgzBVDtUJAlYzxkA9104fw-wAJu1ewWA3lShPcCDfBeg8Jtxt9Og1kolBo-sdAmhF1vUdw6QLJ-DYBAj0BgjQjsYyBeQ6BGBFESEBxewSFikaY6Z4ivk7gNwAQYk1lFwpxH1S8BE4lEiSxtxTcOgiiSiyiwB05k00dWjkwbB+gWgcw9xgw4Z9R3CwkHgT5q9ehuhPZBdLcUCRdGCy4oA1ZcZyBz9ECh909rdR8mCzjsYLjJ9BC5iEI7BDAHg+k9xekIUNj1lWg-8PBtwIChcqtesYDTjzirNLjNZOsr8jjqtb8HjoS8YXjG5n8Z8Al1cEAaRtB9BPhpgQ1yCEATARoBF-BZVYZJh29h87ieCUSniYSM4s42CLsrsbs6TUDXFj9USwB0TC9n83jNJEjkN25txtIXgPB8cdRsjgRn1SwqQQRQ1DjhckSxlMAQiIBJj04qjikaBWAmx6AGjqBGBmihD6h2jeYkkeYBdZxvRJTNQtsSxVxu4LB-DNSJcdSKiCY3cajojcheQeULT69iRG8dlSC0wj5vQdw-QJgisPhQRQQQQDiuD6SpFPTtSQipiKiZi0t8Cvku5zBRUjAJhj4pxpVnV4ZoF-B8IttLBaz-DSAzwBwjstDvwOAIjAIBwqABJ0gikYieyQzcS3ReZPgqRxVhEudOl2Y1829Yz3TIC7tM9XFmzWzGt2zEQqB2ABxBy4iCzkwj5izYzF1ghsR-9EJkzvNgwUlm8NxCN-Dj8LiED4TkC1SISnyYSBScChSDyEIekvBNtVxnQfMSSpS4lQQUkpwu5PYpxHzeDnzWD2COS3zwToDPy0TH8MThyNwUl9AJVzBUI6RUIVt9QHg8QNxYF99-C91YAD0IAZZ5AvJCBrs3sVYXzB8ET3zoDaL6LGLiBmLWLRQVZvyPsGccT4ZNiqQtBiJvDOg9kpUAQVxehATgw10lzO8o0MYuJ04tydy9zhyp1pQgdJwScnC+jEIpR5VQR95kk3R-DtLVYfTXciZKZZIzTaZDK0w-RCNb5gQEk2grAQVPh8LCTArSxEkHK05czUthzzAWcSwbB9iPhkEDdQQliepPBgxPAiMNLuDkTTibYKirjXy0zuTITE4irkBRKi9bCvkrBdRNRAVMJjkVQsRttxgTc6Qky9wAh4KHiqqWSDp2TOCuTjieTeCqqarfy6rkxq8Roj57AtBLAuFKzEJKDF0JgaDCNOgGU8r0z9s4A+KnpSpnySrOLUKoD7sdBeLiAGKTquJnisLBTDK7hdBHg-YfA74CseFD5xga89NJTtIHF9ryrj9FEzxcglgOLL9Lrlz7jTiIaoasBpqcKVw4zcxggkkft3AYyWcFi9xejtJVl+rEbIbobzrYayrxqKqzYkalhUasTPlkw6Uxgdw7gQQFCmg1rnR7gCaCIehARcqwSrqVzaa-J6asAhrztc5rs4bNKCrE5JbMBUbhSAYG8UFNxvUJgSxpCmcEk8IQRtBaztxdr-CvILNYQoAmwnwYABxGp1ZKakDqb1TXELb0ArabbHw7aHbVa-yhUAxQqd9iQbBYZ3CQhsi-MQ0oK3hzbLbVhrbbawB7b0B1YkKRq5aXaIT3bPak6U7qrnqfzhznRNMrBicJDcwBEHS3QgDcjuhuqIrSbE5OQJB34F4DCnabjr8abj8W626wBT8-bZqEI1wVwHgOgBEpS1x3hKU1lvY5QjFPAdxcwm6zY+6oB27E907ZbOTbiwbeD17N689C6xLZ8CCCJAhRpdbBN6QgrfqiR9BbgZ0Fwj5aS96aaoBW6N6B7E9O6uK0LrrP7+7B6T7arxL39Ek4kUNrFcwQ6DckkWhVxm8ZK8MVDQaP6v6j6+84SLqs7oCgHv6QGsCp8foma8VNJ8JyRvA3g9w9ikkjkQUj4HggVDBvVDAjB-CCGsHP5t6ODM6xrXadAuGf7j7iHXj-aIF9M4lfY-V+NHgQViR9BLAOg74gQkkaLHtDtBtzY908ZiBZAWsKBmAKAYbnaBGISDsjty5dGD0DHOIjGKAh7wHz6iDiQQRNrCMyU9laHx00wP195bANG6stGZYbH9HCBDHjHpa2Sd75b8rDrgmrGdHIBbGIn7HjGnGz6vkwkKRctsbJ6y09lF1OlCMQtCT2G7gij61QmUnwnImTGqNrV5k7Vz01aZterRoBNeb-APA68UxyQr5nD+klVSUqndUam9G7GHHadhz-LmgmhMFUJsQElvGcwtidR3hBNpLhbVSAGxaY0JnUn6mZmyGEN6gkkkighaGLmj5b49kzAwVOgT5fZlQZKxniBDm6n0mTHJNwNu1e1+1YNZnJgwU6RuaQXtw+nbhtxOnyQKLVMVS8HrqDnrHampmonfnpMAWYMhxTnGd59PBeYYF8QTIggoX4yiU4W8xJhbFV6-IKAwAwpYB0ACp+RUBLwQo8AKEW1mAwm7HTGu7ESPzeCGWmWWXHw2WOXCAuWeW+W0nMnsS58eYDF80bB3g6QtBjINQiQJTJ6KxHg6XPxRXCBmXWX2XOXuXnBeW0W0mBX-7RaEbE5jXTWJXzXpXLXrXJn5XQHMSJHvcNQy1IU-HlVjIdI9QyWRnXg37u7BHj9nXxXJWLXZWbWWs7W4mDqJqHj42zWpWZWrW5WWtUbX9nHsmzBB4FiySPAdwLysb7grBVrCMttDWoBs3XXc2PWC3OI02kWxa43GWTWE23W83PWjnOJUa8Dh6KHG3stRzjF1W9aUx5QvAFDWZiR4Z9Rm3W3E33Xk2vXU3eGUKe3HWzYt2h2O2U2x2fXhzQl7h+ltIiR6GklfVuhpGQSRjtw-Bo2hX0KRX+2XXt3h3O3onkLRr37Y3f2xWc2k382L3Ga-WqztIAQ1xFQTA6QTBA4PYI62gwXLAbKOgv3uKEg91IPnxWUrVWBojAFsAaAnk3kChgWx0ekQsdwF62qfQ-LpHFQVUrAQ7FyRblziOB2Cpxkv59K-5j16AKBcgcgOBJJpJZJr2rnvAyCixBE-dlw6y4lWhJTJgPCYdBOXWRPcl8lClilSlnNBxZn3BdB0j67UI-s+mbhuolN0P+hcwj5g59O-3xWRO5EZkeUVEwJ15N4tF4PEJfAt8CRAUaQb1CtcIYFP3JwpQu4vOSOROkQf5xOAFhJgFhJr3AhpRekfBTKZgLKbhbFvBQggxZwPho90HqIDOfPWUFdvFWmwvT5itAhDBdxH3lwdNsi9wBEsFg53hUuhPnxxXWJYBsArNU3mBoxqiqOaPsA6P8hr3PgRp8Jgw2hZU4W+u+Fb6CJQCgg+r6up5GvhO6K7ripnpu3zHHILvnwrv7r-JnoFXmaR6sspRHgRDR7HO5RSwr7rP5T9QDQzuHvvPLvjrXvSpgOM7d6Y3zvIenvoeRKr22mmdsaUJc0aVcR-u1lpQzdLFn1uu+PdnRbHuWJnoBIWs543sXdCYJI3K1uMeEAdb-VTF6RoWLybhFRkMAxMadQb0yee3KfHKaeQoIB6e8yrOXhI7rFgw3hK6NPiz5sBmcItsIRweiPkeqfSoJe6fks9Ldy2AhzWepxF1xh4ZbhPNcwVxlwUlb3vK-GjyCO9nKfj92K-702roPfJq3v0ewuLJEP7OKzHfZhlxFeZQfBAQlePAxvDPPfbvvfRfdek-So4PJ2AZNc-R9Eu4RDtx4Y+vCNEHPgyn9lAntebq0--fYeU-7ude0v0+uIi2g-UMARGku5dOwkyuVw9xi0Nwy0zI8ME+fPm+u2D3QPEeIem-a+W-A+s-6hA1RCelt9bE1wNOKRfLtAUqb5Y6q-Kfd0wBGowBxdJdWBpdZdiksvJPpP0gOBDLdqkPHgTI6y3Rlw+fsifulqdRre3eKfdeR-E-mf1pyWFGA6QAcMvEMr2Fa6KqOdnxgLAeBFQo0UsKgkWp+VR+wnIASyxAEy9Wei6T4n4CfqEZGkdzQaGqBIHeBJQX1LcEeRBr8cf0h-CQKxEOgWZ6W3nR8PT3r5gckeaXV8CwIXiyAjWHAt7O93IYAxOEynAWiQPHLLZyBOyUQj9zpCrhdwWgTAc+H4GsChBLbEQclkn78MeBM-cbi+GYFaD2BYrTgaKDEFnNEAU6EaL0C2xfAEkIJSPiHADwrgFwdwCtAwIzyU9UAdFR8NaxP4o5qAxhWgKYWYDmEaOW8awsOU9jIQ0OFkW+MRX8CR9tWJgZdGGSnTqDq+z3cwQO0sEXAveODKmg32r5pdbqL3eNoUPkBo8xG2Fc3rIS-5INFQQQW4B-0apP1nCkoQipKByHCMO6JQsxoYMb7GCBh-BMbOI0X6IAtqYwXaskj5xV5I+wYahqZR3AJJb47gfoZgxEbYMB8pQkYeULGE7CiGAhbCnixxITBuoo0fCGslaAzgAs8gulN5klCZhQ+3QbYcAy3riYZafDBHt+1GGGdxhojM4S9XN5pFEGjvGGIkQw7DA0wzQHUNslMRud1KPg63JT0sbaNIhJjbgdP0BE+dMRMsDJgvxLbzFgKeEVoL5UBzZUCw2uJfDOnviTh7AOQwkeXCib6D-hhHI4YZ1ZHmxiR9QsEUHx8zeAqQYLMEKuDkGqgNucSGdLlheBl80GaI33rrzfgNROI2ImgPWkoy7BqMzTCSDfzy6s9uoW2IAnYB6S6gw8bHRoJ0hvI3pVwnjJ0DkNVEtYNRWozFhBmxZyZWeqEOXkkihz2ItAhgAsB8CUwggaQ5ISGKdyVEGxKezo9UcY01G6oQMeoqTB6KgyAtcWYXH0fcFyIxdnCHxAsCIQBBr574bwQHHV2jENcVRY2eMRQETGfw8BYXY0TaPfTmj3gnOcgZ0BYzUD8MNXR0Qf2rFqiHG9Y7UZaiaY9h20gZYMkaJDSdN5RYZbDl3EQEEQoG1AuwDAkMj0DyeAnQcfUxHF5kwBEAqAUaNBAtizRq-S0RpzZrmi6QfY0EtuMYG69gi5wT8F7WmYAISEaKW1O7j8TTCEAxohdMsQDxvBnQ2EaUNsjNH+BCaodHIXkM-AAcR2XzO7ocMp5wSoACEzttYPxZ2CWghNSkcqC2wFhws2RTZn9zQ7AhYJ0PDCRezh6xNU+aXNCdRL3aXsBRRdVnsoMbwhBPYrwq5jzynR4QrA+kHcPcK-QoTdej3czJZmsy2ZcoFwRzF+JcxxV5sV9W9N1DJRWjHgAxV0tpyLKnxFRD43weJOR6ST4s0kpLHJI-GkJT0dqA0aAnYnmBc+fgT4CuA+BTplwUKSkHsUcEvAz4LI4yXFgSwyT7MDY2KuxN-x4RZCIFXpnSHclQxF0xIR4EujeA7N6Jxg3kdM1xEAjuRBIzRkkwcZYScSgQGwN4F8AR4PgJkAsO2IBCT1tQkOEsKJLxHZThO6U9kT8JiZ-CfeMYoyYk20b5SSRWTOarekpB78eh+mYMXKltG9iHR941KYZzQnI1DUQ7RCfy0ylcjUJ0PBaUxNHYFS588Q9MCFmDC0MCe-3ZQhFM6BOTQQIhf-juIYkbSlgW0pCRyM6lVjbp13T8JtKWmYT+pirBIpIQBD6R5RmyKkMuASlQM2cRUxdEEC3E9srsn9e3CaidwQB0u25E3rEWgGiEIxklAINCk0CID8O49FcPAm0CkoUpZQ2GRIHhmO5kcInLcgpMs7m8SwcpO4DIw+o64+ulvXop+3CweBoZZM22hTLP7apoeZ1IYYKy5HkzKZiMoWW9PNhflvpH3TSBPViRygyyFvdGjzwJAQV50E6GlKmT5ne0BZDuKWWhMQptSQOBgxqRLMFkmy5ZrE0+j9PqqLFccVgAMEGhnqdjJwXUW+PuHyz849Zhwq2UbOpnNkQB4Rf8IBAs5VJXqcwnNCfDvh3weekhLwAvj0zPBsMIvfWXDOtnIBtGIA1aXs0DkIzqZsAHOX5DP47S7CxorpF3C2QiICUkfKcNIx1AWQ2gWoJoDDkLlUyJc2qUufBKDnO4npMM-mZLOLm9z0J-ciABXLaIrD5RuIScJgknAO85efOZUr0QSSIsyhpGBeLDjVFNozUI4xptZJ-E2FSR+KfiahBCCoR4h9gSYNzGQHggPA3hEOqTMOFbzI0u8h3PvK1GNi-xgJewf4DtLmBtAhEiGK+n+lFY3guII+P4VrRxi95LaEce6P+bpicWxdN0LoCPiPAek-mYnFhl8D-UuESEcFrzNfmbpt5AGI-sBiRAxEdyewDgAUD5DpAj5xdUEGDjQRqTQCaRbCCWhaBrJ6ku1TfBvLElpc4xw4rUXqSATGMqA0nYpGYVYC8hOAjAECEGVTH2pfxp8oVG3n9AYZhi86cwERN9j-SA0+iHmNAoHFpcxAn85NsEJAgYB2AFMhaaky+iQBQBpSI8fuT-G2BFGhfathPXWEFgOESjX2FjQ+qmIIgZEYgDCXgAVAuCf4jQMvLaBrIux9dcJMuPeD8JwxboccuVnORJBRYcSpZko1Wz2cHBAQRAX4B8oNUngwIJyS-LxGeKmgTM2BLSCLBlc-8L6FOa8BiQ2AYcKMCWI+D-ESl5mn6eBGfBraXTNQHwZKWYG6gUSq+fS2OHdFfCLK-Igyo7uPXvg9wA43MQHmZH5gjwGpWUhZcbD15cQeIduNZQgzZiV1-YXMCGK4SvphwEY8y8WIsslgDVno5UTaFVCGADS946y65aDF7iwjcwdIUOPsueWVip4xykuKcqco4wYSlyzpICq2V3Kg4aYZdtCLhiQqDJ1uGFXHCfLJwq4VVJFRspuVgwwJaYcFcPBxU9t8Vd0RyvREEqsRIApKlFbcpJJaAAgjyiFRHBeUxwTlyKS5YVzFRtBW5tBEFSME6SBjFeuabqFYFUJ-jIYI0ZTJOjUxLiIYFIX2EgwpIbgNwWvKFdASFUaLEMnmcdCpinRksoWt5aGGfFw758dsVfN+XWl1T6pG0Vi35Q7OTCrJlZNlcEFcKzD3M5enNIsOhyNowKt0FCoDP9AVmIZ8QVBbNLYFYbyMIYPCxLmEnlAmJJgEa7eWdiVVqVqU2OekCkrWruBiyFkZhBq3BBCLGpmqWLFJMSyyS2osambDhDlKNJ9EkpNjgvViQcII24BIkBnNIVSJeRw2dAJ4rL4oCsE+Ee9iAplR75cJNICLLhW1AwKxcE8zxWsmTmUVOgzc2CvjjuBX16paRCKhwydUMlTip+P8TCj9D2BEis4Q6a8HxyMyTAwxAXEGB6XnqpE6hTQtoV0L6EXEgy2+IvgJSm172rQBdvSHwp3AqQRIZJMSHGJBFsyasP8V0BzGTBR0sDfxTwjeDFhMwHxQFK8ArG4r96jJBFXjFQ2JlBie4HLClU9juEPAcpJVAvjlD+APSWpb0sgD-F9QXQowAKpuFXAxkBi8ZTcEbTTAfCv1YyNcm2TACobw8DwMuuYEjyHSVsJfINJfFXRaA-AzbC4n+NLTSgjuoyyuiEGiRj10MKSQkOFgfKSaHsNsgSixXYjCVnoemnav9REJ4YLea1RJLn22yij8OLpKKjXC40mrLSFLPwN13vRl5JR7VL2O+trJlr7OzbElSFvrwB4bhimIXs4NhEfscMKjTHPhByr+za1NWI6jLJVi6aUtpJSFPhXALh54pXm71PoFXmJSP8Q64rYrTprk0sAlG4qZ0E2wECZwsIljvPWDbEh1hcdD2gnS9o+1U6v87KvPX6SQsSwF5RTJqCMDrCTElfQ1ddV7onDANlWslPcF2pC9UOG3KFm6EJxLpC+aCQxJwz20fxr1MlYtEYGUphifuClRmR4OPVC8G8QTJ7Ki2YkONPFgJf6jtW6QRiF25dSEf4zXDJTrpCtMZCi2SaA7jG162kFfQ+LYhZC0W8LkkUrboLhErGzdsjwA7ntmJnilcMWDQ64d-kngLjA-WZi1Tg0fhcxeNyVXod-q2YcTewg1k-4tiqEMMfaJ8BFasplPY1X8qnZvB+EHnV9Y7yXnTg45nsJdW0JyGTdpus3TiGjprqTB55z6X2D6k7HbhCct40AsTTMXbampKPMrc5oO0PL+gUwF4HejcLyDoKSjHvpCkVTQ5WdhncXrTyl4ZYW1peEPO2oVAZCxV-3NVvwnVZA5YGoib3WPzn6a7KtarT-AVyJCTpWYDvW+EpQcG2ItNgQHIdgNP4brKtBAhEQoVmUJIBEGkz-qOWQ5nwyU8OwyXwNMGCD8hzLGoTGvEGWkQJ2RKvEVg20R7kBde8wNJX3iHK1puvfwQVCCEssIAqG1BE6WebuASK8g1odkXELbZf8vgCfe7yMloTqhbFG3RLoBjykXQ7wDWoYG6CwibgMGuJBuHqS9DFqnwwhvtpP3nMa815UURWUwTF9P8D7BkYOv0mzScpPUokRQD-Fcdl2ZbekDQX1zkCcwyKyer1W0i9Bd9AAkRTWNdG6p81jMiyFzrg1XyCwEG4se8Cmmbim96I3cd83rG4GcMyU+9r-h8DlKuorc7NPDAtEKr49wnZ8doLfGo7KtmaegwQaYN8TmgUZS+YCHcadBKJMsh6XY2409Dr0i6GGD2KtHwwt8YqnLDmC67oGbpaU-yQ2qCkB7u9MwpKtkUlCQ42hbwDTl3BlH2I-+nQXUH5LANGsBD7+2wewmII5gMMvNRzjrQG4zAjdvgB-bIZe4fTc2y0tJqhvBydVEDy1e3QuxuDBArEfuH2FOnj5V9O5iMidbEgvrNLWZxIRAdMArwzrrOW6sHhbuyPUzxdXqz7oPFg3zYd9TzPGWOk8CEzhoeJSg1dGqPdybZFGyrU7qvq0FZgv-SUK0bBTezTcKmIXh3OHmCzXweMGzPo0GWzh-qyhMJCEAESLzDdhKU8vKFXQpUUkcxg2SPO7khyS9HhtniMHGB0Nu4Ks4IA3NiQhHF0bOQjBOhONZyJ5Pc3OZcbqOKykuUDHUFth1DudgZ8g5SS8fJAyMCeehn9L0aRmWKi5EuZrGkHn2DGa5pB2lB9UDRJHJCvyIXkBKrA5r35LWeBc4FoOVbCQgFbSODg6ToZuFHwTpkYBUwA81kOQpE82hg42K7FDipYE4uCFZ8mIYgNQGW1GiO9aURtbGU4AXhKwmcE5R+vpDQ4TonAl4CmUxFYiimQQ4p4aOh1pAZFPIUATAOOoQA+wbOSs5Uz9TPBzxutiEEEE4EwBgBQoxppnOYhmwKmklHMfTTfrFOEZdTYITSYuQiBAA */
19
20
  id: 'authMachine',
20
21
  predictableActionArguments: true,
21
22
  tsTypes: {},
@@ -61,6 +62,7 @@ export const authMachine = createMachine({
61
62
  googleOtpCode: () => undefined,
62
63
  googleUser: () => undefined,
63
64
  registerUser: () => undefined,
65
+ socialProviderRegisterUser: () => undefined,
64
66
  salt: () => undefined,
65
67
  sessionId: () => undefined,
66
68
  }),
@@ -118,7 +120,7 @@ export const authMachine = createMachine({
118
120
  states: {
119
121
  idle: {
120
122
  states: {
121
- localPasskeySign: {
123
+ signWithPasskey: {
122
124
  on: {
123
125
  FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
124
126
  BACK: '#authMachine.active.login.idle.error',
@@ -130,23 +132,22 @@ export const authMachine = createMachine({
130
132
  },
131
133
  },
132
134
  },
133
- signWithPasskey: {
135
+ authScreen: {
134
136
  on: {
135
137
  FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
136
- BACK: '#authMachine.active.login.idle.error',
137
138
  PASSKEY_NOT_SUPPORTED: {
138
139
  target: '#authMachine.active.login.idle.authScreen',
139
140
  actions: assign({
140
141
  error: (_, event) => event.payload.error,
141
142
  }),
142
143
  },
143
- },
144
- },
145
- authScreen: {
146
- on: {
147
144
  SET_CONDITIONAL_UI_PASSKEY: {
148
145
  target: '#authMachine.active.login.idle.localPasskeySign',
149
146
  },
147
+ },
148
+ },
149
+ error: {
150
+ on: {
150
151
  FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
151
152
  PASSKEY_NOT_SUPPORTED: {
152
153
  target: '#authMachine.active.login.idle.authScreen',
@@ -156,15 +157,16 @@ export const authMachine = createMachine({
156
157
  },
157
158
  },
158
159
  },
159
- error: {
160
+ localPasskeySign: {
160
161
  on: {
161
- FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
162
162
  PASSKEY_NOT_SUPPORTED: {
163
163
  target: '#authMachine.active.login.idle.authScreen',
164
164
  actions: assign({
165
165
  error: (_, event) => event.payload.error,
166
166
  }),
167
167
  },
168
+ BACK: '#authMachine.active.login.idle.error',
169
+ FINISH_PASSKEY_LOGIN: '#authMachine.active.login.verifyingRegisterPublicKeyCredential',
168
170
  },
169
171
  },
170
172
  },
@@ -181,6 +183,7 @@ export const authMachine = createMachine({
181
183
  googleOtpCode: () => undefined,
182
184
  googleUser: () => undefined,
183
185
  registerUser: () => undefined,
186
+ socialProviderRegisterUser: () => undefined,
184
187
  sessionId: () => undefined,
185
188
  CCRPublicKey: () => undefined,
186
189
  RCRPublicKey: () => undefined,
@@ -206,6 +209,7 @@ export const authMachine = createMachine({
206
209
  actions: assign({
207
210
  googleUser: () => undefined,
208
211
  registerUser: () => undefined,
212
+ socialProviderRegisterUser: () => undefined,
209
213
  error: () => undefined,
210
214
  }),
211
215
  },
@@ -239,6 +243,7 @@ export const authMachine = createMachine({
239
243
  actions: assign({
240
244
  googleUser: () => undefined,
241
245
  registerUser: () => undefined,
246
+ socialProviderRegisterUser: () => undefined,
242
247
  error: () => undefined,
243
248
  }),
244
249
  cond: 'isPasskeyEnabled',
@@ -292,6 +297,7 @@ export const authMachine = createMachine({
292
297
  entry: assign({
293
298
  googleUser: () => undefined,
294
299
  registerUser: () => undefined,
300
+ socialProviderRegisterUser: () => undefined,
295
301
  }),
296
302
  on: {
297
303
  REFRESH_ACCESS_TOKEN: {
@@ -479,7 +485,7 @@ export const authMachine = createMachine({
479
485
  {
480
486
  target: 'idle',
481
487
  actions: assign({
482
- registerUser: (_, event) => event.data?.registerUser,
488
+ socialProviderRegisterUser: (_, event) => event.data?.socialProviderRegisterUser,
483
489
  }),
484
490
  cond: 'isNewUser',
485
491
  },
@@ -503,6 +509,7 @@ export const authMachine = createMachine({
503
509
  entry: assign({
504
510
  googleUser: () => undefined,
505
511
  registerUser: () => undefined,
512
+ socialProviderRegisterUser: () => undefined,
506
513
  }),
507
514
  },
508
515
  retrievingCredentialRCR: {
@@ -616,6 +623,7 @@ export const authMachine = createMachine({
616
623
  googleOtpCode: () => undefined,
617
624
  googleUser: () => undefined,
618
625
  registerUser: () => undefined,
626
+ socialProviderRegisterUser: () => undefined,
619
627
  }),
620
628
  },
621
629
  ADVANCE_TO_PASSWORD: 'createPassword',
@@ -707,11 +715,12 @@ export const authMachine = createMachine({
707
715
  actions: assign({
708
716
  googleUser: () => undefined,
709
717
  registerUser: () => undefined,
718
+ socialProviderRegisterUser: () => undefined,
710
719
  error: () => undefined,
711
720
  }),
712
721
  },
713
722
  BACK: {
714
- target: 'emailValidation',
723
+ target: '#authMachine.active.login',
715
724
  actions: assign({
716
725
  error: () => undefined,
717
726
  }),
@@ -738,6 +747,7 @@ export const authMachine = createMachine({
738
747
  entry: assign({
739
748
  googleUser: () => undefined,
740
749
  registerUser: () => undefined,
750
+ socialProviderRegisterUser: () => undefined,
741
751
  }),
742
752
  on: {
743
753
  REFRESH_ACCESS_TOKEN: {
@@ -789,6 +799,7 @@ export const authMachine = createMachine({
789
799
  entry: assign({
790
800
  googleUser: () => undefined,
791
801
  registerUser: () => undefined,
802
+ socialProviderRegisterUser: () => undefined,
792
803
  }),
793
804
  },
794
805
  retrievingCCR: {
@@ -835,6 +846,7 @@ export const authMachine = createMachine({
835
846
  on: {
836
847
  FINISH_PASSKEY_AUTH: '#authMachine.active.register.sendingAuthPublicCredential',
837
848
  BACK_TO_IDLE: '#authMachine.active.register.idle',
849
+ USER_CREATE_ACCOUNT_BUT_NOT_LOGIN: 'passkeyCreatedButNotAuthenticated',
838
850
  },
839
851
  },
840
852
  waitingForRCR: {
@@ -869,6 +881,7 @@ export const authMachine = createMachine({
869
881
  actions: assign({
870
882
  googleUser: () => undefined,
871
883
  registerUser: () => undefined,
884
+ socialProviderRegisterUser: () => undefined,
872
885
  error: () => undefined,
873
886
  }),
874
887
  },
@@ -907,6 +920,11 @@ export const authMachine = createMachine({
907
920
  },
908
921
  },
909
922
  },
923
+ passkeyCreatedButNotAuthenticated: {
924
+ on: {
925
+ BACK_TO_IDLE: 'idle',
926
+ },
927
+ },
910
928
  },
911
929
  initial: 'idle',
912
930
  entry: assign({
@@ -1194,6 +1212,7 @@ export const authService = (services, context) => {
1194
1212
  error: () => undefined,
1195
1213
  active2fa: () => undefined,
1196
1214
  registerUser: () => undefined,
1215
+ socialProviderRegisterUser: () => undefined,
1197
1216
  googleOtpCode: () => undefined,
1198
1217
  googleUser: () => undefined,
1199
1218
  sessionUser: () => undefined,
@@ -1207,6 +1226,7 @@ export const authService = (services, context) => {
1207
1226
  .onTransition((state) => {
1208
1227
  const shouldUpdate = state.changed &&
1209
1228
  (state.matches('inactive') ||
1229
+ state.matches('active.login.idle') ||
1210
1230
  state.matches('active.register.userCreated') ||
1211
1231
  state.matches('active.login.successfulLogin') ||
1212
1232
  state.matches('active.web3Connector.emailConfirmed') ||