@cef-ebsi/cli 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/bin/cli.js +1 -1
  2. package/dist/abi/pilot/DidRegistry.js +568 -0
  3. package/dist/abi/pilot/DidRegistry.js.map +1 -0
  4. package/dist/abi/pilot/SchemaSCRegistry.js +264 -0
  5. package/dist/abi/pilot/SchemaSCRegistry.js.map +1 -0
  6. package/dist/abi/pilot/Timestamp.js +658 -0
  7. package/dist/abi/pilot/Timestamp.js.map +1 -0
  8. package/dist/abi/pilot/Tir.js +428 -0
  9. package/dist/abi/pilot/Tir.js.map +1 -0
  10. package/dist/abi/pilot/TnT.js +842 -0
  11. package/dist/abi/pilot/TnT.js.map +1 -0
  12. package/dist/abi/pilot/Tpr.js +492 -0
  13. package/dist/abi/pilot/Tpr.js.map +1 -0
  14. package/dist/abi/test/DidRegistry.js +144 -658
  15. package/dist/abi/test/DidRegistry.js.map +1 -1
  16. package/dist/abi/test/SchemaSCRegistry.js +101 -810
  17. package/dist/abi/test/SchemaSCRegistry.js.map +1 -1
  18. package/dist/abi/test/Timestamp.js +239 -673
  19. package/dist/abi/test/Timestamp.js.map +1 -1
  20. package/dist/abi/test/Tir.js +167 -636
  21. package/dist/abi/test/Tir.js.map +1 -1
  22. package/dist/abi/test/TnT.js +842 -0
  23. package/dist/abi/test/TnT.js.map +1 -0
  24. package/dist/abi/test/Tpr.js +166 -942
  25. package/dist/abi/test/Tpr.js.map +1 -1
  26. package/dist/app.js +444 -443
  27. package/dist/app.js.map +1 -1
  28. package/dist/buildParam/{didV3.js → didr.js} +182 -204
  29. package/dist/buildParam/didr.js.map +1 -0
  30. package/dist/buildParam/index.js +32 -48
  31. package/dist/buildParam/index.js.map +1 -1
  32. package/dist/buildParam/{timestampV2.js → timestamp.js} +137 -136
  33. package/dist/buildParam/timestamp.js.map +1 -0
  34. package/dist/buildParam/{tirV3.js → tir.js} +57 -59
  35. package/dist/buildParam/tir.js.map +1 -0
  36. package/dist/buildParam/{tntV2.js → tnt.js} +62 -61
  37. package/dist/buildParam/tnt.js.map +1 -0
  38. package/dist/buildParam/{tprV2.js → tpr.js} +34 -33
  39. package/dist/buildParam/tpr.js.map +1 -0
  40. package/dist/buildParam/{tsrV2.js → tsr.js} +39 -38
  41. package/dist/buildParam/tsr.js.map +1 -0
  42. package/dist/cli.js +1 -0
  43. package/dist/cli.js.map +1 -1
  44. package/dist/commands/{authorisation-v4.js → authorisation.js} +78 -71
  45. package/dist/commands/authorisation.js.map +1 -0
  46. package/dist/commands/compute.js +389 -389
  47. package/dist/commands/compute.js.map +1 -1
  48. package/dist/commands/{conformance-v3.js → conformance.js} +236 -248
  49. package/dist/commands/conformance.js.map +1 -0
  50. package/dist/commands/hardwarewallet.js +5 -5
  51. package/dist/commands/hardwarewallet.js.map +1 -1
  52. package/dist/commands/index.js +4 -4
  53. package/dist/commands/index.js.map +1 -1
  54. package/dist/commands/{ledger-v4.js → ledger.js} +141 -128
  55. package/dist/commands/ledger.js.map +1 -0
  56. package/dist/commands/tnl.js +10 -9
  57. package/dist/commands/tnl.js.map +1 -1
  58. package/dist/commands/tsr.js +46 -0
  59. package/dist/commands/tsr.js.map +1 -0
  60. package/dist/commands/view.js +8 -8
  61. package/dist/commands/view.js.map +1 -1
  62. package/dist/config.js +280 -279
  63. package/dist/config.js.map +1 -1
  64. package/dist/index.js +3 -3
  65. package/dist/index.js.map +1 -1
  66. package/dist/interfaces/index.js +1 -1
  67. package/dist/interfaces/index.js.map +1 -1
  68. package/dist/programs/migrateDid.js +33 -33
  69. package/dist/programs/migrateDid.js.map +1 -1
  70. package/dist/programs/migrateDids.js +39 -42
  71. package/dist/programs/migrateDids.js.map +1 -1
  72. package/dist/programs/migrateTsr.js +109 -113
  73. package/dist/programs/migrateTsr.js.map +1 -1
  74. package/dist/scripts/accreditAndAuthorize/conformance/step1 +1 -1
  75. package/dist/scripts/accreditAndAuthorize/test/step1 +1 -1
  76. package/dist/scripts/accreditTI +1 -1
  77. package/dist/scripts/assets/CTRevocableCredential.json +1 -1
  78. package/dist/scripts/assets/CredentialToAttestVerifiableAuthorisationForTrustChain.json +2 -2
  79. package/dist/scripts/assets/TrustedNodesList.json +1 -1
  80. package/dist/scripts/assets/VerifiableAccreditationToAccredit.json +2 -2
  81. package/dist/scripts/assets/VerifiableAccreditationToAttest.json +2 -2
  82. package/dist/scripts/assets/VerifiableAuthorisationForTrustChain.json +1 -1
  83. package/dist/scripts/assets/VerifiableAuthorisationToOnboard.json +1 -1
  84. package/dist/scripts/bootstrap/6-setupConformanceIssuer +1 -1
  85. package/dist/scripts/issueVcOnboard +1 -1
  86. package/dist/scripts/issueVcRootTAO +1 -1
  87. package/dist/scripts/issueVcTAO +2 -2
  88. package/dist/scripts/issueVcTI +2 -2
  89. package/dist/scripts/issueVcTnl +1 -1
  90. package/dist/scripts/issue_CTRevocableCredential +1 -1
  91. package/dist/scripts/issue_SelfAttestationSupportOffice +2 -2
  92. package/dist/scripts/issue_VerifiableAccreditationToAccredit +2 -2
  93. package/dist/scripts/issue_VerifiableAccreditationToAttest +2 -2
  94. package/dist/scripts/issue_VerifiableAuthorisationForTrustChain +1 -1
  95. package/dist/scripts/issue_VerifiableAuthorisationToOnboard +1 -1
  96. package/dist/scripts/updateVcRootTAO +1 -1
  97. package/dist/scripts/updateVcTAO +2 -2
  98. package/dist/scripts/updateVcTI +2 -2
  99. package/dist/scripts/{wctv3 → wct}/accreditAndAuthorize +1 -1
  100. package/dist/tsconfig.build.tsbuildinfo +1 -0
  101. package/dist/utils/Client.js +81 -68
  102. package/dist/utils/Client.js.map +1 -1
  103. package/dist/utils/HardwareWallet.js +169 -165
  104. package/dist/utils/HardwareWallet.js.map +1 -1
  105. package/dist/utils/http.js +24 -27
  106. package/dist/utils/http.js.map +1 -1
  107. package/dist/utils/index.js +3 -3
  108. package/dist/utils/index.js.map +1 -1
  109. package/dist/utils/jsonrpc.js +14 -14
  110. package/dist/utils/jsonrpc.js.map +1 -1
  111. package/dist/utils/print.js +19 -19
  112. package/dist/utils/print.js.map +1 -1
  113. package/dist/utils/utils.js +180 -173
  114. package/dist/utils/utils.js.map +1 -1
  115. package/package.json +70 -46
  116. package/dist/abi/pilot/DidRegistryV3.js +0 -1082
  117. package/dist/abi/pilot/DidRegistryV3.js.map +0 -1
  118. package/dist/abi/pilot/DidRegistryV4.js +0 -942
  119. package/dist/abi/pilot/DidRegistryV4.js.map +0 -1
  120. package/dist/abi/pilot/SchemaSCRegistryV2.js +0 -474
  121. package/dist/abi/pilot/SchemaSCRegistryV2.js.map +0 -1
  122. package/dist/abi/pilot/TimestampV2.js +0 -1128
  123. package/dist/abi/pilot/TimestampV2.js.map +0 -1
  124. package/dist/abi/pilot/TimestampV3.js +0 -995
  125. package/dist/abi/pilot/TimestampV3.js.map +0 -1
  126. package/dist/abi/pilot/TirV3.js +0 -496
  127. package/dist/abi/pilot/TirV3.js.map +0 -1
  128. package/dist/abi/pilot/TirV4.js +0 -710
  129. package/dist/abi/pilot/TirV4.js.map +0 -1
  130. package/dist/abi/pilot/TnTV1.js +0 -1375
  131. package/dist/abi/pilot/TnTV1.js.map +0 -1
  132. package/dist/abi/pilot/TprV2.js +0 -889
  133. package/dist/abi/pilot/TprV2.js.map +0 -1
  134. package/dist/abi/pilot/TprV3.js +0 -707
  135. package/dist/abi/pilot/TprV3.js.map +0 -1
  136. package/dist/abi/pilot/TsrV3.js +0 -571
  137. package/dist/abi/pilot/TsrV3.js.map +0 -1
  138. package/dist/abi/test/DidRegistryV3.js +0 -1089
  139. package/dist/abi/test/DidRegistryV3.js.map +0 -1
  140. package/dist/abi/test/DidRegistryV4.js +0 -960
  141. package/dist/abi/test/DidRegistryV4.js.map +0 -1
  142. package/dist/abi/test/SchemaSCRegistryV2.js +0 -474
  143. package/dist/abi/test/SchemaSCRegistryV2.js.map +0 -1
  144. package/dist/abi/test/TimestampV2.js +0 -1128
  145. package/dist/abi/test/TimestampV2.js.map +0 -1
  146. package/dist/abi/test/TimestampV3.js +0 -995
  147. package/dist/abi/test/TimestampV3.js.map +0 -1
  148. package/dist/abi/test/TirV3.js +0 -496
  149. package/dist/abi/test/TirV3.js.map +0 -1
  150. package/dist/abi/test/TirV4.js +0 -710
  151. package/dist/abi/test/TirV4.js.map +0 -1
  152. package/dist/abi/test/TnTV1.js +0 -1375
  153. package/dist/abi/test/TnTV1.js.map +0 -1
  154. package/dist/abi/test/TprV2.js +0 -889
  155. package/dist/abi/test/TprV2.js.map +0 -1
  156. package/dist/abi/test/TprV3.js +0 -707
  157. package/dist/abi/test/TprV3.js.map +0 -1
  158. package/dist/abi/test/TsrV3.js +0 -571
  159. package/dist/abi/test/TsrV3.js.map +0 -1
  160. package/dist/buildParam/didV3.js.map +0 -1
  161. package/dist/buildParam/didV4.js +0 -326
  162. package/dist/buildParam/didV4.js.map +0 -1
  163. package/dist/buildParam/timestampV2.js.map +0 -1
  164. package/dist/buildParam/timestampV3.js +0 -317
  165. package/dist/buildParam/timestampV3.js.map +0 -1
  166. package/dist/buildParam/tirV3.js.map +0 -1
  167. package/dist/buildParam/tirV4.js +0 -119
  168. package/dist/buildParam/tirV4.js.map +0 -1
  169. package/dist/buildParam/tntV1.js +0 -185
  170. package/dist/buildParam/tntV1.js.map +0 -1
  171. package/dist/buildParam/tntV2.js.map +0 -1
  172. package/dist/buildParam/tprV2.js.map +0 -1
  173. package/dist/buildParam/tprV3.js +0 -82
  174. package/dist/buildParam/tprV3.js.map +0 -1
  175. package/dist/buildParam/tsrV2.js.map +0 -1
  176. package/dist/buildParam/tsrV3.js +0 -110
  177. package/dist/buildParam/tsrV3.js.map +0 -1
  178. package/dist/commands/authorisation-v4.js.map +0 -1
  179. package/dist/commands/authorisation-v5.js +0 -119
  180. package/dist/commands/authorisation-v5.js.map +0 -1
  181. package/dist/commands/conformance-v3.js.map +0 -1
  182. package/dist/commands/ledger-v4.js.map +0 -1
  183. package/dist/tsconfig.tsbuildinfo +0 -1
  184. /package/dist/scripts/{wctv3 → wct}/holderWallet +0 -0
  185. /package/dist/scripts/{wctv3 → wct}/issueToHolder +0 -0
  186. /package/dist/scripts/{wctv3 → wct}/pda1 +0 -0
  187. /package/dist/scripts/{wctv3 → wct}/verifier +0 -0
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;IACF,0DAA0D;KACzD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,8 +1,38 @@
1
+ import Joi from "joi";
1
2
  import { randomUUID } from "node:crypto";
2
3
  import { URLSearchParams } from "node:url";
3
- import Joi from "joi";
4
4
  import { httpCall } from "../utils/index.js";
5
5
  import { compute } from "./compute.js";
6
+ export async function authorisation(method, inputs, context) {
7
+ switch (method) {
8
+ case "auth": {
9
+ return authorisationAuth(inputs, context);
10
+ }
11
+ case "get": {
12
+ return authorisationGet(inputs, context);
13
+ }
14
+ case "token": {
15
+ return authorisationToken(inputs, context);
16
+ }
17
+ default: {
18
+ throw new Error(`Invalid method '${method}'`);
19
+ }
20
+ }
21
+ }
22
+ export async function authorisationAuth(inputs, context) {
23
+ const [definitionId, inputAlg, inputVc] = inputs;
24
+ const alg = inputAlg || "ES256";
25
+ const vc = inputVc ?? [];
26
+ const vcString = typeof vc === "string" ? vc : JSON.stringify(vc);
27
+ Joi.assert(alg, Joi.string().valid("ES256K", "ES256", "EdDSA", "RS256"));
28
+ console.log("==> authorisation get /.well-known/openid-configuration");
29
+ const openIdConfig = (await authorisationGet(["/.well-known/openid-configuration"], context));
30
+ const payloadJwt = { aud: openIdConfig.issuer };
31
+ console.log(`==> compute createVpJwt ${vcString} {} ${JSON.stringify(payloadJwt)} ${alg}`);
32
+ const vpJwt = (await compute("createVpJwt", [vc, {}, payloadJwt, alg], context));
33
+ console.log(`==> authorisation token ${definitionId} ${vpJwt}`);
34
+ return authorisationToken([definitionId, vpJwt], context);
35
+ }
6
36
  export async function authorisationGet(inputs, context) {
7
37
  const apiUrl = context.config.api.authorisation.url;
8
38
  const response = await httpCall.get(`${apiUrl}${inputs.join("")}`, context.httpOpts);
@@ -15,9 +45,9 @@ export async function authorisationToken(inputs, context) {
15
45
  const scopeByDefinition = {
16
46
  didr_invite_presentation: "openid didr_invite",
17
47
  didr_write_presentation: "openid didr_write",
48
+ timestamp_write_presentation: "openid timestamp_write",
18
49
  tir_invite_presentation: "openid tir_invite",
19
50
  tir_write_presentation: "openid tir_write",
20
- timestamp_write_presentation: "openid timestamp_write",
21
51
  tnt_authorise_presentation: "openid tnt_authorise",
22
52
  tnt_create_presentation: "openid tnt_create",
23
53
  tnt_write_presentation: "openid tnt_write",
@@ -25,95 +55,72 @@ export async function authorisationToken(inputs, context) {
25
55
  tsr_write_presentation: "openid tsr_write",
26
56
  };
27
57
  let descriptorMap = [];
28
- if (definitionId === "didr_invite_presentation") {
29
- descriptorMap = [
30
- {
31
- id: "didr_invite_credential",
32
- format: "jwt_vp",
33
- path: "$",
34
- path_nested: {
58
+ switch (definitionId) {
59
+ case "didr_invite_presentation": {
60
+ descriptorMap = [
61
+ {
62
+ format: "jwt_vp",
35
63
  id: "didr_invite_credential",
36
- format: "jwt_vc",
37
- path: "$.vp.verifiableCredential[0]",
64
+ path: "$",
65
+ path_nested: {
66
+ format: "jwt_vc",
67
+ id: "didr_invite_credential",
68
+ path: "$.vp.verifiableCredential[0]",
69
+ },
38
70
  },
39
- },
40
- ];
41
- }
42
- else if (definitionId === "tir_invite_presentation") {
43
- descriptorMap = [
44
- {
45
- id: "tir_invite_credential",
46
- format: "jwt_vp",
47
- path: "$",
48
- path_nested: {
71
+ ];
72
+ break;
73
+ }
74
+ case "tir_invite_presentation": {
75
+ descriptorMap = [
76
+ {
77
+ format: "jwt_vp",
49
78
  id: "tir_invite_credential",
50
- format: "jwt_vc",
51
- path: "$.vp.verifiableCredential[0]",
79
+ path: "$",
80
+ path_nested: {
81
+ format: "jwt_vc",
82
+ id: "tir_invite_credential",
83
+ path: "$.vp.verifiableCredential[0]",
84
+ },
52
85
  },
53
- },
54
- ];
55
- }
56
- else if (definitionId === "tnt_authorise_presentation") {
57
- descriptorMap = [
58
- {
59
- id: "tnt_authorise_credential",
60
- format: "jwt_vp",
61
- path: "$",
62
- path_nested: {
86
+ ];
87
+ break;
88
+ }
89
+ case "tnt_authorise_presentation": {
90
+ descriptorMap = [
91
+ {
92
+ format: "jwt_vp",
63
93
  id: "tnt_authorise_credential",
64
- format: "jwt_vc",
65
- path: "$.vp.verifiableCredential[0]",
94
+ path: "$",
95
+ path_nested: {
96
+ format: "jwt_vc",
97
+ id: "tnt_authorise_credential",
98
+ path: "$.vp.verifiableCredential[0]",
99
+ },
66
100
  },
67
- },
68
- ];
101
+ ];
102
+ break;
103
+ }
104
+ // No default
69
105
  }
70
106
  const presentationSubmission = {
71
- id: randomUUID(),
72
107
  definition_id: definitionId,
73
108
  descriptor_map: descriptorMap,
109
+ id: randomUUID(),
74
110
  };
75
111
  const httpOpts = {
76
112
  headers: {
77
113
  "Content-Type": "application/x-www-form-urlencoded",
78
- ...(context.httpOpts && context.httpOpts.headers),
114
+ ...context.httpOpts?.headers,
79
115
  },
80
116
  };
81
117
  const response = await httpCall.post(`${apiUrl}/token`, new URLSearchParams({
82
118
  grant_type: "vp_token",
119
+ presentation_submission: JSON.stringify(presentationSubmission),
83
120
  scope: scopeByDefinition[definitionId],
84
121
  vp_token: vpJwt,
85
- presentation_submission: JSON.stringify(presentationSubmission),
86
122
  }).toString(), httpOpts);
87
123
  return response.data;
88
124
  }
89
- export async function authorisationAuth(inputs, context) {
90
- const [definitionId, inputAlg, inputVc] = inputs;
91
- const alg = inputAlg || "ES256";
92
- const vc = inputVc ?? [];
93
- const vcString = typeof vc === "string" ? vc : JSON.stringify(vc);
94
- Joi.assert(alg, Joi.string().valid("ES256K", "ES256", "EdDSA", "RS256"));
95
- console.log("==> authorisation get /.well-known/openid-configuration");
96
- const openIdConfig = (await authorisationGet(["/.well-known/openid-configuration"], context));
97
- const payloadJwt = { aud: openIdConfig.issuer };
98
- console.log(`==> compute createVpJwt ${vcString} {} ${JSON.stringify(payloadJwt)} ${alg}`);
99
- const vpJwt = (await compute("createVpJwt", [vc, {}, payloadJwt, alg], context));
100
- console.log(`==> authorisation token ${definitionId} ${vpJwt}`);
101
- return authorisationToken([definitionId, vpJwt], context);
102
- }
103
- export async function authorisationV4(method, inputs, context) {
104
- switch (method) {
105
- case "get": {
106
- return authorisationGet(inputs, context);
107
- }
108
- case "token": {
109
- return authorisationToken(inputs, context);
110
- }
111
- case "auth": {
112
- return authorisationAuth(inputs, context);
113
- }
114
- default:
115
- throw new Error(`Invalid method '${method}'`);
116
- }
117
- }
118
- export default authorisationV4;
119
- //# sourceMappingURL=authorisation-v4.js.map
125
+ export default authorisation;
126
+ //# sourceMappingURL=authorisation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorisation.js","sourceRoot":"","sources":["../../src/commands/authorisation.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,MAAgB,EAChB,OAAgB;IAEhB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAiB,EAAE,OAAgB;IACzE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,MAIzC,CAAC;IACF,MAAM,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC;IAChC,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,CAAC,MAAM,gBAAgB,CAC1C,CAAC,mCAAmC,CAAC,EACrC,OAAO,CACR,CAAuB,CAAC;IAEzB,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;IAEhD,OAAO,CAAC,GAAG,CACT,2BAA2B,QAAQ,OAAO,IAAI,CAAC,SAAS,CACtD,UAAU,CACX,IAAI,GAAG,EAAE,CACX,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAC1B,aAAa,EACb,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EACzB,OAAO,CACR,CAAW,CAAC;IAEb,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,IAAI,KAAK,EAAE,CAAC,CAAC;IAChE,OAAO,kBAAkB,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAgB,EAAE,OAAgB;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,CACjC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAC7B,OAAO,CAAC,QAAQ,CACjB,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAgB,EAAE,OAAgB;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC;IACrC,GAAG,CAAC,MAAM,CACR,YAAY,EACZ,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAChB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,8BAA8B,EAC9B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,CACzB,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,wBAAwB,EAAE,oBAAoB;QAC9C,uBAAuB,EAAE,mBAAmB;QAC5C,4BAA4B,EAAE,wBAAwB;QACtD,uBAAuB,EAAE,mBAAmB;QAC5C,sBAAsB,EAAE,kBAAkB;QAC1C,0BAA0B,EAAE,sBAAsB;QAClD,uBAAuB,EAAE,mBAAmB;QAC5C,sBAAsB,EAAE,kBAAkB;QAC1C,sBAAsB,EAAE,kBAAkB;QAC1C,sBAAsB,EAAE,kBAAkB;KAC3C,CAAC;IAEF,IAAI,aAAa,GAAG,EAAE,CAAC;IAEvB,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAChC,aAAa,GAAG;gBACd;oBACE,MAAM,EAAE,QAAQ;oBAChB,EAAE,EAAE,wBAAwB;oBAC5B,IAAI,EAAE,GAAG;oBACT,WAAW,EAAE;wBACX,MAAM,EAAE,QAAQ;wBAChB,EAAE,EAAE,wBAAwB;wBAC5B,IAAI,EAAE,8BAA8B;qBACrC;iBACF;aACF,CAAC;YAEF,MAAM;QACR,CAAC;QACD,KAAK,yBAAyB,CAAC,CAAC,CAAC;YAC/B,aAAa,GAAG;gBACd;oBACE,MAAM,EAAE,QAAQ;oBAChB,EAAE,EAAE,uBAAuB;oBAC3B,IAAI,EAAE,GAAG;oBACT,WAAW,EAAE;wBACX,MAAM,EAAE,QAAQ;wBAChB,EAAE,EAAE,uBAAuB;wBAC3B,IAAI,EAAE,8BAA8B;qBACrC;iBACF;aACF,CAAC;YAEF,MAAM;QACR,CAAC;QACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;YAClC,aAAa,GAAG;gBACd;oBACE,MAAM,EAAE,QAAQ;oBAChB,EAAE,EAAE,0BAA0B;oBAC9B,IAAI,EAAE,GAAG;oBACT,WAAW,EAAE;wBACX,MAAM,EAAE,QAAQ;wBAChB,EAAE,EAAE,0BAA0B;wBAC9B,IAAI,EAAE,8BAA8B;qBACrC;iBACF;aACF,CAAC;YAEF,MAAM;QACR,CAAC;QACD,aAAa;IACf,CAAC;IAED,MAAM,sBAAsB,GAAG;QAC7B,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa;QAC7B,EAAE,EAAE,UAAU,EAAE;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE;YACP,cAAc,EAAE,mCAAmC;YACnD,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO;SAC7B;KACF,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAClC,GAAG,MAAM,QAAQ,EACjB,IAAI,eAAe,CAAC;QAClB,UAAU,EAAE,UAAU;QACtB,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAC/D,KAAK,EAAE,iBAAiB,CAAC,YAAY,CAAW;QAChD,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC,QAAQ,EAAE,EACb,QAAQ,CACT,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,eAAe,aAAa,CAAC"}