react-native-quick-crypto 1.0.9 → 1.0.10

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 (170) hide show
  1. package/QuickCrypto.podspec +9 -2
  2. package/README.md +13 -9
  3. package/android/CMakeLists.txt +4 -0
  4. package/cpp/cipher/HybridCipherFactory.hpp +15 -1
  5. package/cpp/cipher/OCBCipher.cpp +4 -4
  6. package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +161 -0
  7. package/cpp/cipher/XChaCha20Poly1305Cipher.hpp +43 -0
  8. package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +145 -0
  9. package/cpp/cipher/XSalsa20Poly1305Cipher.hpp +42 -0
  10. package/cpp/dh/HybridDiffieHellman.cpp +10 -0
  11. package/cpp/dh/HybridDiffieHellman.hpp +1 -0
  12. package/cpp/ec/HybridEcKeyPair.cpp +21 -0
  13. package/cpp/ec/HybridEcKeyPair.hpp +1 -0
  14. package/cpp/hash/HybridHash.cpp +1 -1
  15. package/cpp/hash/HybridHash.hpp +1 -1
  16. package/cpp/hmac/HybridHmac.cpp +1 -1
  17. package/cpp/hmac/HybridHmac.hpp +1 -1
  18. package/cpp/keys/HybridKeyObjectHandle.cpp +112 -1
  19. package/cpp/keys/HybridKeyObjectHandle.hpp +5 -1
  20. package/deps/ncrypto/.bazelrc +0 -1
  21. package/deps/ncrypto/.bazelversion +1 -1
  22. package/deps/ncrypto/.github/workflows/commitlint.yml +16 -0
  23. package/deps/ncrypto/.github/workflows/linter.yml +2 -2
  24. package/deps/ncrypto/.github/workflows/release-please.yml +16 -0
  25. package/deps/ncrypto/.github/workflows/ubuntu.yml +82 -0
  26. package/deps/ncrypto/.release-please-manifest.json +3 -0
  27. package/deps/ncrypto/BUILD.bazel +9 -1
  28. package/deps/ncrypto/CHANGELOG.md +37 -0
  29. package/deps/ncrypto/CMakeLists.txt +35 -11
  30. package/deps/ncrypto/MODULE.bazel +16 -1
  31. package/deps/ncrypto/MODULE.bazel.lock +299 -118
  32. package/deps/ncrypto/cmake/ncrypto-flags.cmake +1 -0
  33. package/deps/ncrypto/include/ncrypto/aead.h +137 -0
  34. package/deps/ncrypto/include/ncrypto/version.h +14 -0
  35. package/deps/ncrypto/include/ncrypto.h +85 -230
  36. package/deps/ncrypto/ncrypto.pc.in +10 -0
  37. package/deps/ncrypto/release-please-config.json +11 -0
  38. package/deps/ncrypto/src/CMakeLists.txt +31 -6
  39. package/deps/ncrypto/src/aead.cpp +302 -0
  40. package/deps/ncrypto/src/ncrypto.cpp +274 -556
  41. package/deps/ncrypto/tests/BUILD.bazel +2 -0
  42. package/deps/ncrypto/tests/basic.cpp +772 -2
  43. package/deps/ncrypto/tools/run-clang-format.sh +5 -5
  44. package/lib/commonjs/diffie-hellman.js +4 -1
  45. package/lib/commonjs/diffie-hellman.js.map +1 -1
  46. package/lib/commonjs/ec.js +20 -25
  47. package/lib/commonjs/ec.js.map +1 -1
  48. package/lib/commonjs/ed.js +1 -2
  49. package/lib/commonjs/ed.js.map +1 -1
  50. package/lib/commonjs/hash.js +7 -0
  51. package/lib/commonjs/hash.js.map +1 -1
  52. package/lib/commonjs/index.js +11 -1
  53. package/lib/commonjs/index.js.map +1 -1
  54. package/lib/commonjs/keys/classes.js +9 -5
  55. package/lib/commonjs/keys/classes.js.map +1 -1
  56. package/lib/commonjs/subtle.js +82 -31
  57. package/lib/commonjs/subtle.js.map +1 -1
  58. package/lib/commonjs/utils/types.js.map +1 -1
  59. package/lib/module/diffie-hellman.js +4 -0
  60. package/lib/module/diffie-hellman.js.map +1 -1
  61. package/lib/module/ec.js +19 -25
  62. package/lib/module/ec.js.map +1 -1
  63. package/lib/module/ed.js +1 -2
  64. package/lib/module/ed.js.map +1 -1
  65. package/lib/module/hash.js +6 -0
  66. package/lib/module/hash.js.map +1 -1
  67. package/lib/module/index.js +3 -0
  68. package/lib/module/index.js.map +1 -1
  69. package/lib/module/keys/classes.js +9 -5
  70. package/lib/module/keys/classes.js.map +1 -1
  71. package/lib/module/subtle.js +83 -32
  72. package/lib/module/subtle.js.map +1 -1
  73. package/lib/module/utils/types.js.map +1 -1
  74. package/lib/tsconfig.tsbuildinfo +1 -1
  75. package/lib/typescript/diffie-hellman.d.ts +2 -0
  76. package/lib/typescript/diffie-hellman.d.ts.map +1 -1
  77. package/lib/typescript/ec.d.ts +1 -0
  78. package/lib/typescript/ec.d.ts.map +1 -1
  79. package/lib/typescript/ed.d.ts.map +1 -1
  80. package/lib/typescript/hash.d.ts +2 -0
  81. package/lib/typescript/hash.d.ts.map +1 -1
  82. package/lib/typescript/index.d.ts +5 -0
  83. package/lib/typescript/index.d.ts.map +1 -1
  84. package/lib/typescript/keys/classes.d.ts +2 -0
  85. package/lib/typescript/keys/classes.d.ts.map +1 -1
  86. package/lib/typescript/specs/diffie-hellman.nitro.d.ts +1 -0
  87. package/lib/typescript/specs/diffie-hellman.nitro.d.ts.map +1 -1
  88. package/lib/typescript/specs/ecKeyPair.nitro.d.ts +1 -0
  89. package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -1
  90. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +2 -0
  91. package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
  92. package/lib/typescript/subtle.d.ts.map +1 -1
  93. package/lib/typescript/utils/types.d.ts +12 -5
  94. package/lib/typescript/utils/types.d.ts.map +1 -1
  95. package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +8 -5
  96. package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
  97. package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +54 -54
  98. package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +1 -1
  100. package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +2 -2
  101. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
  102. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
  103. package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +1 -1
  104. package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +54 -54
  105. package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +5 -1
  106. package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +1 -1
  107. package/nitrogen/generated/shared/c++/CipherArgs.hpp +34 -19
  108. package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +1 -1
  109. package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +1 -3
  110. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +1 -1
  111. package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
  112. package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -1
  113. package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -3
  114. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp +2 -1
  115. package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.hpp +3 -3
  116. package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -1
  117. package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +2 -3
  118. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +2 -1
  119. package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +2 -3
  120. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -1
  121. package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +2 -3
  122. package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -1
  123. package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -4
  124. package/nitrogen/generated/shared/c++/HybridHkdfSpec.cpp +1 -1
  125. package/nitrogen/generated/shared/c++/HybridHkdfSpec.hpp +2 -3
  126. package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +1 -1
  127. package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +3 -4
  128. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +3 -1
  129. package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -4
  130. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.cpp +1 -1
  131. package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.hpp +2 -3
  132. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
  133. package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +2 -3
  134. package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
  135. package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +2 -3
  136. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +1 -1
  137. package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +1 -3
  138. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +1 -1
  139. package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +1 -3
  140. package/nitrogen/generated/shared/c++/HybridScryptSpec.cpp +1 -1
  141. package/nitrogen/generated/shared/c++/HybridScryptSpec.hpp +2 -3
  142. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +1 -1
  143. package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +1 -3
  144. package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +1 -1
  145. package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +2 -3
  146. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +1 -1
  147. package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +1 -3
  148. package/nitrogen/generated/shared/c++/JWK.hpp +84 -68
  149. package/nitrogen/generated/shared/c++/JWKkty.hpp +5 -1
  150. package/nitrogen/generated/shared/c++/JWKuse.hpp +1 -1
  151. package/nitrogen/generated/shared/c++/KFormatType.hpp +1 -1
  152. package/nitrogen/generated/shared/c++/KeyDetail.hpp +39 -23
  153. package/nitrogen/generated/shared/c++/KeyEncoding.hpp +1 -1
  154. package/nitrogen/generated/shared/c++/KeyObject.hpp +21 -5
  155. package/nitrogen/generated/shared/c++/KeyType.hpp +1 -1
  156. package/nitrogen/generated/shared/c++/KeyUsage.hpp +1 -1
  157. package/nitrogen/generated/shared/c++/NamedCurve.hpp +1 -1
  158. package/package.json +1 -1
  159. package/src/diffie-hellman.ts +6 -0
  160. package/src/ec.ts +23 -19
  161. package/src/ed.ts +1 -2
  162. package/src/hash.ts +11 -0
  163. package/src/index.ts +3 -0
  164. package/src/keys/classes.ts +10 -3
  165. package/src/specs/diffie-hellman.nitro.ts +1 -0
  166. package/src/specs/ecKeyPair.nitro.ts +2 -0
  167. package/src/specs/keyObjectHandle.nitro.ts +2 -0
  168. package/src/subtle.ts +131 -32
  169. package/src/utils/types.ts +18 -3
  170. package/deps/ncrypto/WORKSPACE +0 -15
@@ -54,7 +54,22 @@ function normalizeAlgorithm(algorithm, _operation) {
54
54
  return algorithm;
55
55
  }
56
56
  function getAlgorithmName(name, length) {
57
- return `${name}${length}`;
57
+ switch (name) {
58
+ case 'AES-CBC':
59
+ return `A${length}CBC`;
60
+ case 'AES-CTR':
61
+ return `A${length}CTR`;
62
+ case 'AES-GCM':
63
+ return `A${length}GCM`;
64
+ case 'AES-KW':
65
+ return `A${length}KW`;
66
+ case 'AES-OCB':
67
+ return `A${length}OCB`;
68
+ case 'ChaCha20-Poly1305':
69
+ return 'C20P';
70
+ default:
71
+ return `${name}${length}`;
72
+ }
58
73
  }
59
74
 
60
75
  // Placeholder implementations for missing functions
@@ -137,6 +152,8 @@ async function aesCipher(mode, key, data, algorithm) {
137
152
  return aesCbcCipher(mode, key, data, algorithm);
138
153
  case 'AES-GCM':
139
154
  return aesGcmCipher(mode, key, data, algorithm);
155
+ case 'AES-OCB':
156
+ return aesOcbCipher(mode, key, data, algorithm);
140
157
  default:
141
158
  throw (0, _errors.lazyDOMException)(`Unsupported AES algorithm: ${name}`, 'NotSupportedError');
142
159
  }
@@ -203,61 +220,40 @@ async function aesCbcCipher(mode, key, data, algorithm) {
203
220
  result.set(new Uint8Array(final), updated.byteLength);
204
221
  return result.buffer;
205
222
  }
206
- async function aesGcmCipher(mode, key, data, algorithm) {
207
- const {
208
- tagLength = 128
209
- } = algorithm;
210
-
211
- // Validate tag length
212
- const validTagLengths = [32, 64, 96, 104, 112, 120, 128];
213
- if (!validTagLengths.includes(tagLength)) {
214
- throw (0, _errors.lazyDOMException)(`${tagLength} is not a valid AES-GCM tag length`, 'OperationError');
223
+ async function aesAeadCipher(mode, key, data, config, additionalData, tagLength = 128) {
224
+ if (!config.validTagLengths.includes(tagLength)) {
225
+ throw (0, _errors.lazyDOMException)(`${tagLength} is not a valid ${config.algorithmName} tag length`, 'OperationError');
215
226
  }
216
227
  const tagByteLength = tagLength / 8;
217
-
218
- // Get cipher type based on key length
219
228
  const keyLength = key.algorithm.length;
220
- const cipherType = `aes-${keyLength}-gcm`;
221
-
222
- // Create cipher
229
+ const cipherType = `aes-${keyLength}-${config.cipherSuffix}`;
223
230
  const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
224
231
  const cipher = factory.createCipher({
225
232
  isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
226
233
  cipherType,
227
234
  cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
228
- iv: (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv),
235
+ iv: config.iv,
229
236
  authTagLen: tagByteLength
230
237
  });
231
238
  let processData;
232
- let authTag;
233
239
  if (mode === CipherOrWrapMode.kWebCryptoCipherDecrypt) {
234
- // For decryption, extract auth tag from end of data
235
240
  const dataView = new Uint8Array(data);
236
241
  if (dataView.byteLength < tagByteLength) {
237
242
  throw (0, _errors.lazyDOMException)('The provided data is too small.', 'OperationError');
238
243
  }
239
-
240
- // Split data and tag
241
244
  const ciphertextLength = dataView.byteLength - tagByteLength;
242
245
  processData = dataView.slice(0, ciphertextLength).buffer;
243
- authTag = dataView.slice(ciphertextLength).buffer;
244
-
245
- // Set auth tag for verification
246
+ const authTag = dataView.slice(ciphertextLength).buffer;
246
247
  cipher.setAuthTag(authTag);
247
248
  } else {
248
249
  processData = data;
249
250
  }
250
-
251
- // Set additional authenticated data if provided
252
- if (algorithm.additionalData) {
253
- cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(algorithm.additionalData));
251
+ if (additionalData) {
252
+ cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(additionalData));
254
253
  }
255
-
256
- // Process data
257
254
  const updated = cipher.update(processData);
258
255
  const final = cipher.final();
259
256
  if (mode === CipherOrWrapMode.kWebCryptoCipherEncrypt) {
260
- // For encryption, append auth tag to result
261
257
  const tag = cipher.getAuthTag();
262
258
  const result = new Uint8Array(updated.byteLength + final.byteLength + tag.byteLength);
263
259
  result.set(new Uint8Array(updated), 0);
@@ -265,13 +261,32 @@ async function aesGcmCipher(mode, key, data, algorithm) {
265
261
  result.set(new Uint8Array(tag), updated.byteLength + final.byteLength);
266
262
  return result.buffer;
267
263
  } else {
268
- // For decryption, just concatenate plaintext
269
264
  const result = new Uint8Array(updated.byteLength + final.byteLength);
270
265
  result.set(new Uint8Array(updated), 0);
271
266
  result.set(new Uint8Array(final), updated.byteLength);
272
267
  return result.buffer;
273
268
  }
274
269
  }
270
+ async function aesGcmCipher(mode, key, data, algorithm) {
271
+ return aesAeadCipher(mode, key, data, {
272
+ algorithmName: 'AES-GCM',
273
+ validTagLengths: [32, 64, 96, 104, 112, 120, 128],
274
+ cipherSuffix: 'gcm',
275
+ iv: (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv)
276
+ }, algorithm.additionalData, algorithm.tagLength);
277
+ }
278
+ async function aesOcbCipher(mode, key, data, algorithm) {
279
+ const ivBuffer = (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv);
280
+ if (ivBuffer.byteLength < 1 || ivBuffer.byteLength > 15) {
281
+ throw (0, _errors.lazyDOMException)('AES-OCB algorithm.iv must be between 1 and 15 bytes', 'OperationError');
282
+ }
283
+ return aesAeadCipher(mode, key, data, {
284
+ algorithmName: 'AES-OCB',
285
+ validTagLengths: [64, 96, 128],
286
+ cipherSuffix: 'ocb',
287
+ iv: ivBuffer
288
+ }, algorithm.additionalData, algorithm.tagLength);
289
+ }
275
290
  async function aesKwCipher(mode, key, data) {
276
291
  const isWrap = mode === CipherOrWrapMode.kWebCryptoCipherEncrypt;
277
292
 
@@ -695,6 +710,18 @@ function edImportKey(format, data, algorithm, extractable, keyUsages) {
695
710
  // Raw public keys are just the key bytes
696
711
  handle.init(1, keyData); // 1 = public key type
697
712
  keyObject = new _keys.PublicKeyObject(handle);
713
+ } else if (format === 'jwk') {
714
+ const jwkData = data;
715
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
716
+ const keyType = handle.initJwk(jwkData);
717
+ if (keyType === undefined) {
718
+ throw (0, _errors.lazyDOMException)('Invalid JWK data', 'DataError');
719
+ }
720
+ if (keyType === _utils.KeyType.PRIVATE) {
721
+ keyObject = new _keys.PrivateKeyObject(handle);
722
+ } else {
723
+ keyObject = new _keys.PublicKeyObject(handle);
724
+ }
698
725
  } else {
699
726
  throw (0, _errors.lazyDOMException)(`Unsupported format for ${name} import: ${format}`, 'NotSupportedError');
700
727
  }
@@ -843,6 +870,8 @@ const exportKeyRaw = key => {
843
870
  // Fall through
844
871
  case 'AES-KW':
845
872
  // Fall through
873
+ case 'AES-OCB':
874
+ // Fall through
846
875
  case 'ChaCha20-Poly1305':
847
876
  // Fall through
848
877
  case 'HMAC':
@@ -877,6 +906,14 @@ const exportKeyJWK = key => {
877
906
  case 'ECDH':
878
907
  jwk.crv ||= key.algorithm.namedCurve;
879
908
  return jwk;
909
+ case 'Ed25519':
910
+ // Fall through
911
+ case 'Ed448':
912
+ // Fall through
913
+ case 'X25519':
914
+ // Fall through
915
+ case 'X448':
916
+ return jwk;
880
917
  case 'AES-CTR':
881
918
  // Fall through
882
919
  case 'AES-CBC':
@@ -885,6 +922,8 @@ const exportKeyJWK = key => {
885
922
  // Fall through
886
923
  case 'AES-KW':
887
924
  // Fall through
925
+ case 'AES-OCB':
926
+ // Fall through
888
927
  case 'ChaCha20-Poly1305':
889
928
  if (key.algorithm.length === undefined) {
890
929
  throw (0, _errors.lazyDOMException)(`Algorithm ${key.algorithm.name} missing required length property`, 'InvalidAccessError');
@@ -1101,6 +1140,8 @@ const cipherOrWrap = async (mode, algorithm, key, data, op) => {
1101
1140
  case 'AES-CBC':
1102
1141
  // Fall through
1103
1142
  case 'AES-GCM':
1143
+ // Fall through
1144
+ case 'AES-OCB':
1104
1145
  return aesCipher(mode, key, data, algorithm);
1105
1146
  case 'AES-KW':
1106
1147
  return aesKwCipher(mode, key, data);
@@ -1158,6 +1199,9 @@ class Subtle {
1158
1199
  case 'X448':
1159
1200
  derivedBits = await (0, _ed.xDeriveBits)(algorithm, baseKey, length);
1160
1201
  break;
1202
+ case 'ECDH':
1203
+ derivedBits = await (0, _ec.ecDeriveBits)(algorithm, baseKey, length);
1204
+ break;
1161
1205
  case 'HKDF':
1162
1206
  derivedBits = (0, _hkdf.hkdfDeriveBits)(algorithm, baseKey, length);
1163
1207
  break;
@@ -1174,6 +1218,7 @@ class Subtle {
1174
1218
  }
1175
1219
  async exportKey(format, key) {
1176
1220
  if (!key.extractable) throw new Error('key is not extractable');
1221
+ if (format === 'raw-secret') format = 'raw';
1177
1222
  switch (format) {
1178
1223
  case 'spki':
1179
1224
  return await exportKeySpki(key);
@@ -1279,6 +1324,8 @@ class Subtle {
1279
1324
  case 'AES-GCM':
1280
1325
  // Fall through
1281
1326
  case 'AES-KW':
1327
+ // Fall through
1328
+ case 'AES-OCB':
1282
1329
  result = await aesGenerateKey(algorithm, extractable, keyUsages);
1283
1330
  break;
1284
1331
  case 'ChaCha20-Poly1305':
@@ -1323,6 +1370,7 @@ class Subtle {
1323
1370
  return result;
1324
1371
  }
1325
1372
  async importKey(format, data, algorithm, extractable, keyUsages) {
1373
+ if (format === 'raw-secret') format = 'raw';
1326
1374
  const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'importKey');
1327
1375
  let result;
1328
1376
  switch (normalizedAlgorithm.name) {
@@ -1349,6 +1397,8 @@ class Subtle {
1349
1397
  // Fall through
1350
1398
  case 'AES-KW':
1351
1399
  // Fall through
1400
+ case 'AES-OCB':
1401
+ // Fall through
1352
1402
  case 'ChaCha20-Poly1305':
1353
1403
  result = await aesImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1354
1404
  break;
@@ -1473,6 +1523,7 @@ function getKeyLength(algorithm) {
1473
1523
  case 'AES-CBC':
1474
1524
  case 'AES-GCM':
1475
1525
  case 'AES-KW':
1526
+ case 'AES-OCB':
1476
1527
  case 'ChaCha20-Poly1305':
1477
1528
  return algorithm.length || 256;
1478
1529
  case 'HMAC':
@@ -1 +1 @@
1
- {"version":3,"names":["_safeBuffer","require","_utils","_keys","_conversion","_errors","_hashnames","_validation","_hash","_reactNativeNitroModules","_pbkdf","_ec","_rsa","_random","_hmac","_signVerify","_ed","_mldsa","_hkdf","KWebCryptoKeyFormat","CipherOrWrapMode","hasAnyNotIn","usages","allowed","some","usage","includes","normalizeAlgorithm","algorithm","_operation","name","getAlgorithmName","length","ecExportKey","key","format","keyObject","kWebCryptoKeyFormatSPKI","exported","export","type","bufferLikeToArrayBuffer","kWebCryptoKeyFormatPKCS8","Error","rsaExportKey","rsaCipher","mode","data","rsaParams","expectedType","kWebCryptoCipherEncrypt","lazyDOMException","hashAlgorithm","normalizeHashName","hash","label","undefined","rsaCipherModule","NitroModules","createHybridObject","RSA_PKCS1_OAEP_PADDING","encrypt","handle","decrypt","aesCipher","aesCtrCipher","aesCbcCipher","aesGcmCipher","counter","byteLength","keyLength","cipherType","factory","cipher","createCipher","isCipher","cipherKey","iv","updated","update","final","result","Uint8Array","set","buffer","tagLength","validTagLengths","tagByteLength","authTagLen","processData","authTag","kWebCryptoCipherDecrypt","dataView","ciphertextLength","slice","setAuthTag","additionalData","setAAD","tag","getAuthTag","aesKwCipher","isWrap","exportedKey","defaultWrapIV","chaCha20Poly1305Cipher","ivBuffer","aesGenerateKey","extractable","keyUsages","validUsages","keyBytes","getRandomValues","createSecretKey","keyAlgorithm","CryptoKey","hmacGenerateKey","hashName","Math","ceil","webCryptoHashName","HashContext","WebCrypto","rsaImportKey","checkSet","jwk","kty","keyType","initJwk","PublicKeyObject","PrivateKeyObject","keyData","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","keyDetails","asymmetricKeyDetails","publicExponentBytes","publicExponent","exp","bytes","value","unshift","floor","normalizedHash","algorithmWithDetails","modulusLength","hmacImportKey","k","decoded","SBuffer","from","keyBitLength","SecretKeyObject","normalizedAlgorithm","aesImportKey","actualLength","edImportKey","isX","allowedUsages","init","mldsaImportKey","exportKeySpki","exportKey","exportKeyPkcs8","exportKeyRaw","kWebCryptoKeyFormatRaw","byteOffset","exportKeyJWK","exportJwk","key_ops","ext","alg","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","crv","namedCurve","importGenericSecretKey","checkLength","isBuffer","hkdfImportKey","checkCryptoKeyPairUsages","pair","privateKey","isCryptoKeyPair","hmacSignVerify","signature","hmac","createHmac","computed","digest","sigBytes","computedBytes","i","rsaSignVerify","padding","saltLength","RSA_PKCS1_PADDING","RSA_PKCS1_PSS_PADDING","paddingValue","signer","createSign","sig","sign","verifier","createVerify","verify","edSignVerify","isSign","expectedKeyType","algorithmName","curveType","toLowerCase","ed","Ed","rawKey","dataBuffer","signSync","signatureBuffer","verifySync","mldsaSignVerify","signVerify","ecdsaSignVerify","cipherOrWrap","op","validateMaxBufferLength","Subtle","asyncDigest","deriveBits","baseKey","pbkdf2DeriveBits","xDeriveBits","ecDeriveBits","hkdfDeriveBits","deriveKey","derivedKeyAlgorithm","getKeyLength","derivedBits","importKey","wrapKey","wrappingKey","wrapAlgorithm","jwkString","JSON","stringify","paddedLength","paddedBuffer","alloc","copy","writeUInt8","unwrapKey","wrappedKey","unwrappingKey","unwrapAlgorithm","unwrappedKeyAlgorithm","decrypted","nullIndex","indexOf","toString","trim","parse","generateKey","rsa_generateKeyPair","ec_generateKeyPair","ed_generateKeyPairWebCrypto","mldsa_generateKeyPairWebCrypto","x_generateKeyPairWebCrypto","ecImportKey","keyAlg","expectedDigest","expected","signatureArray","exports","subtle","hmacAlg"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":";;;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAkBA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAQA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AAEA,IAAAQ,wBAAA,GAAAR,OAAA;AAIA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,GAAA,GAAAV,OAAA;AAMA,IAAAW,IAAA,GAAAX,OAAA;AACA,IAAAY,OAAA,GAAAZ,OAAA;AACA,IAAAa,KAAA,GAAAb,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AACA,IAAAe,GAAA,GAAAf,OAAA;AAMA,IAAAgB,MAAA,GAAAhB,OAAA;AACA,IAAAiB,KAAA,GAAAjB,OAAA;AAxDA;AAyDA;AACA;AACA;AACA;AACA;AAEA;AAAA,IAEKkB,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA,EAAnBA,mBAAmB;AAAA,IAMnBC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA,EAAhBA,gBAAgB,SAKrB;AACA,SAASC,WAAWA,CAACC,MAAkB,EAAEC,OAAmB,EAAW;EACrE,OAAOD,MAAM,CAACE,IAAI,CAACC,KAAK,IAAI,CAACF,OAAO,CAACG,QAAQ,CAACD,KAAK,CAAC,CAAC;AACvD;AAEA,SAASE,kBAAkBA,CACzBC,SAAyC,EACzCC,UAAqB,EACJ;EACjB,IAAI,OAAOD,SAAS,KAAK,QAAQ,EAAE;IACjC,OAAO;MAAEE,IAAI,EAAEF;IAAU,CAAC;EAC5B;EACA,OAAOA,SAAS;AAClB;AAEA,SAASG,gBAAgBA,CAACD,IAAY,EAAEE,MAAc,EAAU;EAC9D,OAAO,GAAGF,IAAI,GAAGE,MAAM,EAAE;AAC3B;;AAEA;AACA,SAASC,WAAWA,CAACC,GAAc,EAAEC,MAA2B,EAAe;EAC7E,MAAMC,SAAS,GAAGF,GAAG,CAACE,SAAS;EAE/B,IAAID,MAAM,KAAKhB,mBAAmB,CAACkB,uBAAuB,EAAE;IAC1D;IACA,MAAMC,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAAC;MAAEJ,MAAM,EAAE,KAAK;MAAEK,IAAI,EAAE;IAAO,CAAC,CAAC;IAClE,OAAO,IAAAC,mCAAuB,EAACH,QAAQ,CAAC;EAC1C,CAAC,MAAM,IAAIH,MAAM,KAAKhB,mBAAmB,CAACuB,wBAAwB,EAAE;IAClE;IACA,MAAMJ,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAAC;MAAEJ,MAAM,EAAE,KAAK;MAAEK,IAAI,EAAE;IAAQ,CAAC,CAAC;IACnE,OAAO,IAAAC,mCAAuB,EAACH,QAAQ,CAAC;EAC1C,CAAC,MAAM;IACL,MAAM,IAAIK,KAAK,CAAC,iCAAiCR,MAAM,EAAE,CAAC;EAC5D;AACF;AAEA,SAASS,YAAYA,CACnBV,GAAc,EACdC,MAA2B,EACd;EACb,MAAMC,SAAS,GAAGF,GAAG,CAACE,SAAS;EAE/B,IAAID,MAAM,KAAKhB,mBAAmB,CAACkB,uBAAuB,EAAE;IAC1D;IACA,MAAMC,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAAC;MAAEJ,MAAM,EAAE,KAAK;MAAEK,IAAI,EAAE;IAAO,CAAC,CAAC;IAClE,OAAO,IAAAC,mCAAuB,EAACH,QAAQ,CAAC;EAC1C,CAAC,MAAM,IAAIH,MAAM,KAAKhB,mBAAmB,CAACuB,wBAAwB,EAAE;IAClE;IACA,MAAMJ,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAAC;MAAEJ,MAAM,EAAE,KAAK;MAAEK,IAAI,EAAE;IAAQ,CAAC,CAAC;IACnE,OAAO,IAAAC,mCAAuB,EAACH,QAAQ,CAAC;EAC1C,CAAC,MAAM;IACL,MAAM,IAAIK,KAAK,CAAC,kCAAkCR,MAAM,EAAE,CAAC;EAC7D;AACF;AAEA,eAAeU,SAASA,CACtBC,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAA+B,EACT;EACtB,MAAMoB,SAAS,GAAGpB,SAA0B;;EAE5C;EACA,MAAMqB,YAAY,GAChBH,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB,GAAG,QAAQ,GAAG,SAAS;EAC1E,IAAIhB,GAAG,CAACM,IAAI,KAAKS,YAAY,EAAE;IAC7B,MAAM,IAAAE,wBAAgB,EACpB,2DAA2D,EAC3D,oBACF,CAAC;EACH;;EAEA;EACA,MAAMC,aAAa,GAAG,IAAAC,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,CAAC;;EAE3D;EACA,MAAMC,KAAK,GAAGP,SAAS,CAACO,KAAK,GACzB,IAAAd,mCAAuB,EAACO,SAAS,CAACO,KAAK,CAAC,GACxCC,SAAS;;EAEb;EACA,MAAMC,eAAe,GACnBC,qCAAY,CAACC,kBAAkB,CAAY,WAAW,CAAC;;EAEzD;EACA,MAAMC,sBAAsB,GAAG,CAAC;EAEhC,IAAId,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB,EAAE;IACrD;IACA,OAAOO,eAAe,CAACI,OAAO,CAC5B3B,GAAG,CAACE,SAAS,CAAC0B,MAAM,EACpBf,IAAI,EACJa,sBAAsB,EACtBR,aAAa,EACbG,KACF,CAAC;EACH,CAAC,MAAM;IACL;IACA,OAAOE,eAAe,CAACM,OAAO,CAC5B7B,GAAG,CAACE,SAAS,CAAC0B,MAAM,EACpBf,IAAI,EACJa,sBAAsB,EACtBR,aAAa,EACbG,KACF,CAAC;EACH;AACF;AAEA,eAAeS,SAASA,CACtBlB,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAA+B,EACT;EACtB,MAAM;IAAEE;EAAK,CAAC,GAAGF,SAAS;EAE1B,QAAQE,IAAI;IACV,KAAK,SAAS;MACZ,OAAOmC,YAAY,CAACnB,IAAI,EAAEZ,GAAG,EAAEa,IAAI,EAAEnB,SAAyB,CAAC;IACjE,KAAK,SAAS;MACZ,OAAOsC,YAAY,CAACpB,IAAI,EAAEZ,GAAG,EAAEa,IAAI,EAAEnB,SAAyB,CAAC;IACjE,KAAK,SAAS;MACZ,OAAOuC,YAAY,CAACrB,IAAI,EAAEZ,GAAG,EAAEa,IAAI,EAAEnB,SAAyB,CAAC;IACjE;MACE,MAAM,IAAAuB,wBAAgB,EACpB,8BAA8BrB,IAAI,EAAE,EACpC,mBACF,CAAC;EACL;AACF;AAEA,eAAemC,YAAYA,CACzBnB,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAAuB,EACD;EACtB;EACA,IAAI,CAACA,SAAS,CAACwC,OAAO,IAAIxC,SAAS,CAACwC,OAAO,CAACC,UAAU,KAAK,EAAE,EAAE;IAC7D,MAAM,IAAAlB,wBAAgB,EACpB,4CAA4C,EAC5C,gBACF,CAAC;EACH;EAEA,IAAIvB,SAAS,CAACI,MAAM,GAAG,CAAC,IAAIJ,SAAS,CAACI,MAAM,GAAG,GAAG,EAAE;IAClD,MAAM,IAAAmB,wBAAgB,EACpB,oDAAoD,EACpD,gBACF,CAAC;EACH;;EAEA;EACA,MAAMmB,SAAS,GAAIpC,GAAG,CAACN,SAAS,CAAwBI,MAAM;EAC9D,MAAMuC,UAAU,GAAG,OAAOD,SAAS,MAAM;;EAEzC;EACA,MAAME,OAAO,GACXd,qCAAY,CAACC,kBAAkB,CAAgB,eAAe,CAAC;EACjE,MAAMc,MAAM,GAAGD,OAAO,CAACE,YAAY,CAAC;IAClCC,QAAQ,EAAE7B,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB;IAC3DqB,UAAU;IACVK,SAAS,EAAE,IAAAnC,mCAAuB,EAACP,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC,CAAC;IAC1DsC,EAAE,EAAE,IAAApC,mCAAuB,EAACb,SAAS,CAACwC,OAAO;EAC/C,CAAC,CAAC;;EAEF;EACA,MAAMU,OAAO,GAAGL,MAAM,CAACM,MAAM,CAAChC,IAAI,CAAC;EACnC,MAAMiC,KAAK,GAAGP,MAAM,CAACO,KAAK,CAAC,CAAC;;EAE5B;EACA,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAACJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;EACpEY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;EACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;EAErD,OAAOY,MAAM,CAACG,MAAM;AACtB;AAEA,eAAelB,YAAYA,CACzBpB,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAAuB,EACD;EACtB;EACA,MAAMiD,EAAE,GAAG,IAAApC,mCAAuB,EAACb,SAAS,CAACiD,EAAE,CAAC;EAChD,IAAIA,EAAE,CAACR,UAAU,KAAK,EAAE,EAAE;IACxB,MAAM,IAAAlB,wBAAgB,EACpB,4CAA4C,EAC5C,gBACF,CAAC;EACH;;EAEA;EACA,MAAMmB,SAAS,GAAIpC,GAAG,CAACN,SAAS,CAAwBI,MAAM;EAC9D,MAAMuC,UAAU,GAAG,OAAOD,SAAS,MAAM;;EAEzC;EACA,MAAME,OAAO,GACXd,qCAAY,CAACC,kBAAkB,CAAgB,eAAe,CAAC;EACjE,MAAMc,MAAM,GAAGD,OAAO,CAACE,YAAY,CAAC;IAClCC,QAAQ,EAAE7B,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB;IAC3DqB,UAAU;IACVK,SAAS,EAAE,IAAAnC,mCAAuB,EAACP,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC,CAAC;IAC1DsC;EACF,CAAC,CAAC;;EAEF;EACA,MAAMC,OAAO,GAAGL,MAAM,CAACM,MAAM,CAAChC,IAAI,CAAC;EACnC,MAAMiC,KAAK,GAAGP,MAAM,CAACO,KAAK,CAAC,CAAC;;EAE5B;EACA,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAACJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;EACpEY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;EACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;EAErD,OAAOY,MAAM,CAACG,MAAM;AACtB;AAEA,eAAejB,YAAYA,CACzBrB,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAAuB,EACD;EACtB,MAAM;IAAEyD,SAAS,GAAG;EAAI,CAAC,GAAGzD,SAAS;;EAErC;EACA,MAAM0D,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACxD,IAAI,CAACA,eAAe,CAAC5D,QAAQ,CAAC2D,SAAS,CAAC,EAAE;IACxC,MAAM,IAAAlC,wBAAgB,EACpB,GAAGkC,SAAS,oCAAoC,EAChD,gBACF,CAAC;EACH;EAEA,MAAME,aAAa,GAAGF,SAAS,GAAG,CAAC;;EAEnC;EACA,MAAMf,SAAS,GAAIpC,GAAG,CAACN,SAAS,CAAwBI,MAAM;EAC9D,MAAMuC,UAAU,GAAG,OAAOD,SAAS,MAAM;;EAEzC;EACA,MAAME,OAAO,GACXd,qCAAY,CAACC,kBAAkB,CAAgB,eAAe,CAAC;EACjE,MAAMc,MAAM,GAAGD,OAAO,CAACE,YAAY,CAAC;IAClCC,QAAQ,EAAE7B,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB;IAC3DqB,UAAU;IACVK,SAAS,EAAE,IAAAnC,mCAAuB,EAACP,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC,CAAC;IAC1DsC,EAAE,EAAE,IAAApC,mCAAuB,EAACb,SAAS,CAACiD,EAAE,CAAC;IACzCW,UAAU,EAAED;EACd,CAAC,CAAC;EAEF,IAAIE,WAAwB;EAC5B,IAAIC,OAAgC;EAEpC,IAAI5C,IAAI,KAAK1B,gBAAgB,CAACuE,uBAAuB,EAAE;IACrD;IACA,MAAMC,QAAQ,GAAG,IAAIV,UAAU,CAACnC,IAAI,CAAC;IAErC,IAAI6C,QAAQ,CAACvB,UAAU,GAAGkB,aAAa,EAAE;MACvC,MAAM,IAAApC,wBAAgB,EACpB,iCAAiC,EACjC,gBACF,CAAC;IACH;;IAEA;IACA,MAAM0C,gBAAgB,GAAGD,QAAQ,CAACvB,UAAU,GAAGkB,aAAa;IAC5DE,WAAW,GAAGG,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAED,gBAAgB,CAAC,CAACT,MAAM;IACxDM,OAAO,GAAGE,QAAQ,CAACE,KAAK,CAACD,gBAAgB,CAAC,CAACT,MAAM;;IAEjD;IACAX,MAAM,CAACsB,UAAU,CAACL,OAAO,CAAC;EAC5B,CAAC,MAAM;IACLD,WAAW,GAAG1C,IAAI;EACpB;;EAEA;EACA,IAAInB,SAAS,CAACoE,cAAc,EAAE;IAC5BvB,MAAM,CAACwB,MAAM,CAAC,IAAAxD,mCAAuB,EAACb,SAAS,CAACoE,cAAc,CAAC,CAAC;EAClE;;EAEA;EACA,MAAMlB,OAAO,GAAGL,MAAM,CAACM,MAAM,CAACU,WAAW,CAAC;EAC1C,MAAMT,KAAK,GAAGP,MAAM,CAACO,KAAK,CAAC,CAAC;EAE5B,IAAIlC,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB,EAAE;IACrD;IACA,MAAMgD,GAAG,GAAGzB,MAAM,CAAC0B,UAAU,CAAC,CAAC;IAC/B,MAAMlB,MAAM,GAAG,IAAIC,UAAU,CAC3BJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,GAAG6B,GAAG,CAAC7B,UAC9C,CAAC;IACDY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;IACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;IACrDY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACgB,GAAG,CAAC,EAAEpB,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;IACtE,OAAOY,MAAM,CAACG,MAAM;EACtB,CAAC,MAAM;IACL;IACA,MAAMH,MAAM,GAAG,IAAIC,UAAU,CAACJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;IACpEY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;IACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;IACrD,OAAOY,MAAM,CAACG,MAAM;EACtB;AACF;AAEA,eAAegB,WAAWA,CACxBtD,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACK;EACtB,MAAMsD,MAAM,GAAGvD,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB;;EAEhE;EACA,IAAIH,IAAI,CAACsB,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE;IAC7B,MAAM,IAAAlB,wBAAgB,EACpB,0DAA0DJ,IAAI,CAACsB,UAAU,EAAE,EAC3E,gBACF,CAAC;EACH;;EAEA;EACA,IAAIgC,MAAM,IAAItD,IAAI,CAACsB,UAAU,GAAG,EAAE,EAAE;IAClC,MAAM,IAAAlB,wBAAgB,EACpB,+CAA+CJ,IAAI,CAACsB,UAAU,EAAE,EAChE,gBACF,CAAC;EACH;;EAEA;EACA,MAAMC,SAAS,GAAIpC,GAAG,CAACN,SAAS,CAAwBI,MAAM;EAC9D;EACA,MAAMuC,UAAU,GAAG,MAAMD,SAAS,OAAO;;EAEzC;EACA,MAAMgC,WAAW,GAAGpE,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC;EAC1C,MAAMqC,SAAS,GAAG,IAAAnC,mCAAuB,EAAC6D,WAAW,CAAC;;EAEtD;EACA,MAAMC,aAAa,GAAG,IAAIrB,UAAU,CAAC,CACnC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAC/C,CAAC;EAEF,MAAMV,OAAO,GACXd,qCAAY,CAACC,kBAAkB,CAAgB,eAAe,CAAC;EAEjE,MAAMc,MAAM,GAAGD,OAAO,CAACE,YAAY,CAAC;IAClCC,QAAQ,EAAE0B,MAAM;IAChB9B,UAAU;IACVK,SAAS;IACTC,EAAE,EAAE0B,aAAa,CAACnB,MAAM,CAAE;EAC5B,CAAC,CAAC;;EAEF;EACA,MAAMN,OAAO,GAAGL,MAAM,CAACM,MAAM,CAAChC,IAAI,CAAC;EACnC,MAAMiC,KAAK,GAAGP,MAAM,CAACO,KAAK,CAAC,CAAC;;EAE5B;EACA,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAACJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;EACpEY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;EACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;EAErD,OAAOY,MAAM,CAACG,MAAM;AACtB;AAEA,eAAeoB,sBAAsBA,CACnC1D,IAAsB,EACtBZ,GAAc,EACda,IAAiB,EACjBnB,SAAiC,EACX;EACtB,MAAM;IAAEiD,EAAE;IAAEmB,cAAc;IAAEX,SAAS,GAAG;EAAI,CAAC,GAAGzD,SAAS;;EAEzD;EACA,MAAM6E,QAAQ,GAAG,IAAAhE,mCAAuB,EAACoC,EAAE,CAAC;EAC5C,IAAI,CAAC4B,QAAQ,IAAIA,QAAQ,CAACpC,UAAU,KAAK,EAAE,EAAE;IAC3C,MAAM,IAAAlB,wBAAgB,EACpB,+CAA+C,EAC/C,gBACF,CAAC;EACH;;EAEA;EACA,IAAIkC,SAAS,KAAK,GAAG,EAAE;IACrB,MAAM,IAAAlC,wBAAgB,EACpB,mDAAmD,EACnD,mBACF,CAAC;EACH;EAEA,MAAMoC,aAAa,GAAG,EAAE,CAAC,CAAC;;EAE1B;EACA,MAAMf,OAAO,GACXd,qCAAY,CAACC,kBAAkB,CAAgB,eAAe,CAAC;EACjE,MAAMc,MAAM,GAAGD,OAAO,CAACE,YAAY,CAAC;IAClCC,QAAQ,EAAE7B,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB;IAC3DqB,UAAU,EAAE,mBAAmB;IAC/BK,SAAS,EAAE,IAAAnC,mCAAuB,EAACP,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC,CAAC;IAC1DsC,EAAE,EAAE4B,QAAQ;IACZjB,UAAU,EAAED;EACd,CAAC,CAAC;EAEF,IAAIE,WAAwB;EAC5B,IAAIC,OAAgC;EAEpC,IAAI5C,IAAI,KAAK1B,gBAAgB,CAACuE,uBAAuB,EAAE;IACrD;IACA,MAAMC,QAAQ,GAAG,IAAIV,UAAU,CAACnC,IAAI,CAAC;IAErC,IAAI6C,QAAQ,CAACvB,UAAU,GAAGkB,aAAa,EAAE;MACvC,MAAM,IAAApC,wBAAgB,EACpB,iCAAiC,EACjC,gBACF,CAAC;IACH;;IAEA;IACA,MAAM0C,gBAAgB,GAAGD,QAAQ,CAACvB,UAAU,GAAGkB,aAAa;IAC5DE,WAAW,GAAGG,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAED,gBAAgB,CAAC,CAACT,MAAM;IACxDM,OAAO,GAAGE,QAAQ,CAACE,KAAK,CAACD,gBAAgB,CAAC,CAACT,MAAM;;IAEjD;IACAX,MAAM,CAACsB,UAAU,CAACL,OAAO,CAAC;EAC5B,CAAC,MAAM;IACLD,WAAW,GAAG1C,IAAI;EACpB;;EAEA;EACA,IAAIiD,cAAc,EAAE;IAClBvB,MAAM,CAACwB,MAAM,CAAC,IAAAxD,mCAAuB,EAACuD,cAAc,CAAC,CAAC;EACxD;;EAEA;EACA,MAAMlB,OAAO,GAAGL,MAAM,CAACM,MAAM,CAACU,WAAW,CAAC;EAC1C,MAAMT,KAAK,GAAGP,MAAM,CAACO,KAAK,CAAC,CAAC;EAE5B,IAAIlC,IAAI,KAAK1B,gBAAgB,CAAC8B,uBAAuB,EAAE;IACrD;IACA,MAAMgD,GAAG,GAAGzB,MAAM,CAAC0B,UAAU,CAAC,CAAC;IAC/B,MAAMlB,MAAM,GAAG,IAAIC,UAAU,CAC3BJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,GAAG6B,GAAG,CAAC7B,UAC9C,CAAC;IACDY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;IACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;IACrDY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACgB,GAAG,CAAC,EAAEpB,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;IACtE,OAAOY,MAAM,CAACG,MAAM;EACtB,CAAC,MAAM;IACL;IACA,MAAMH,MAAM,GAAG,IAAIC,UAAU,CAACJ,OAAO,CAACT,UAAU,GAAGW,KAAK,CAACX,UAAU,CAAC;IACpEY,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACJ,OAAO,CAAC,EAAE,CAAC,CAAC;IACtCG,MAAM,CAACE,GAAG,CAAC,IAAID,UAAU,CAACF,KAAK,CAAC,EAAEF,OAAO,CAACT,UAAU,CAAC;IACrD,OAAOY,MAAM,CAACG,MAAM;EACtB;AACF;AAEA,eAAesB,cAAcA,CAC3B9E,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACD;EACpB,MAAM;IAAE5E;EAAO,CAAC,GAAGJ,SAAS;EAC5B,MAAME,IAAI,GAAGF,SAAS,CAACE,IAAI;EAE3B,IAAI,CAACA,IAAI,EAAE;IACT,MAAM,IAAAqB,wBAAgB,EAAC,4BAA4B,EAAE,gBAAgB,CAAC;EACxE;;EAEA;EACA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACzB,QAAQ,CAACM,MAAM,CAAC,EAAE;IACrC,MAAM,IAAAmB,wBAAgB,EACpB,2BAA2BnB,MAAM,6BAA6B,EAC9D,gBACF,CAAC;EACH;;EAEA;EACA,MAAM6E,WAAuB,GAAG,CAC9B,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,CACZ;EACD,IAAIxF,WAAW,CAACuF,SAAS,EAAEC,WAAW,CAAC,EAAE;IACvC,MAAM,IAAA1D,wBAAgB,EAAC,6BAA6BrB,IAAI,EAAE,EAAE,aAAa,CAAC;EAC5E;;EAEA;EACA,MAAMgF,QAAQ,GAAG,IAAI5B,UAAU,CAAClD,MAAM,GAAG,CAAC,CAAC;EAC3C,IAAA+E,uBAAe,EAACD,QAAQ,CAAC;;EAEzB;EACA,MAAM1E,SAAS,GAAG,IAAA4E,qBAAe,EAACF,QAAQ,CAAC;;EAE3C;EACA,MAAMG,YAA6B,GAAG;IAAEnF,IAAI;IAAEE;EAAO,CAAC;EAEtD,OAAO,IAAIkF,eAAS,CAAC9E,SAAS,EAAE6E,YAAY,EAAEL,SAAS,EAAED,WAAW,CAAC;AACvE;AAEA,eAAeQ,eAAeA,CAC5BvF,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACD;EACpB;EACA,IAAIvF,WAAW,CAACuF,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9C,MAAM,IAAAzD,wBAAgB,EAAC,oCAAoC,EAAE,aAAa,CAAC;EAC7E;;EAEA;EACA,MAAMG,IAAI,GAAG1B,SAAS,CAAC0B,IAAI;EAC3B,IAAI,CAACA,IAAI,EAAE;IACT,MAAM,IAAAH,wBAAgB,EACpB,0CAA0C,EAC1C,WACF,CAAC;EACH;EAEA,MAAMiE,QAAQ,GAAG,IAAA/D,4BAAiB,EAACC,IAAI,CAAC;;EAExC;EACA,IAAItB,MAAM,GAAGJ,SAAS,CAACI,MAAM;EAC7B,IAAIA,MAAM,KAAKwB,SAAS,EAAE;IACxB;IACA,QAAQ4D,QAAQ;MACd,KAAK,OAAO;QACVpF,MAAM,GAAG,GAAG;QACZ;MACF,KAAK,SAAS;QACZA,MAAM,GAAG,GAAG;QACZ;MACF,KAAK,SAAS;QACZA,MAAM,GAAG,GAAG;QACZ;MACF,KAAK,SAAS;QACZA,MAAM,GAAG,GAAG;QACZ;MACF;QACEA,MAAM,GAAG,GAAG;MAAE;IAClB;EACF;EAEA,IAAIA,MAAM,KAAK,CAAC,EAAE;IAChB,MAAM,IAAAmB,wBAAgB,EACpB,kCAAkC,EAClC,gBACF,CAAC;EACH;;EAEA;EACA,MAAM2D,QAAQ,GAAG,IAAI5B,UAAU,CAACmC,IAAI,CAACC,IAAI,CAACtF,MAAM,GAAG,CAAC,CAAC,CAAC;EACtD,IAAA+E,uBAAe,EAACD,QAAQ,CAAC;;EAEzB;EACA,MAAM1E,SAAS,GAAG,IAAA4E,qBAAe,EAACF,QAAQ,CAAC;;EAE3C;EACA,MAAMS,iBAAiB,GAAG,IAAAlE,4BAAiB,EAACC,IAAI,EAAEkE,sBAAW,CAACC,SAAS,CAAC;EACxE,MAAMR,YAA6B,GAAG;IACpCnF,IAAI,EAAE,MAAM;IACZwB,IAAI,EAAE;MAAExB,IAAI,EAAEyF;IAAkB,CAAC;IACjCvF;EACF,CAAC;EAED,OAAO,IAAIkF,eAAS,CAAC9E,SAAS,EAAE6E,YAAY,EAAEL,SAAS,EAAED,WAAW,CAAC;AACvE;AAEA,SAASe,YAAYA,CACnBvF,MAAoB,EACpBY,IAAsB,EACtBnB,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACV;EACX,MAAM;IAAE9E;EAAK,CAAC,GAAGF,SAAS;;EAE1B;EACA,IAAI+F,QAAoB;EACxB,QAAQ7F,IAAI;IACV,KAAK,mBAAmB;IACxB,KAAK,SAAS;MACZ6F,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;MAC7B;IACF,KAAK,UAAU;MACbA,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;MACzD;IACF;MACE,MAAM,IAAIhF,KAAK,CAAC,8BAA8Bb,IAAI,EAAE,CAAC;EACzD;EAEA,IAAIT,WAAW,CAACuF,SAAS,EAAEe,QAAQ,CAAC,EAAE;IACpC,MAAM,IAAIhF,KAAK,CAAC,6BAA6Bb,IAAI,EAAE,CAAC;EACtD;EAEA,IAAIM,SAAoB;EAExB,IAAID,MAAM,KAAK,KAAK,EAAE;IACpB,MAAMyF,GAAG,GAAG7E,IAAW;;IAEvB;IACA,IAAI6E,GAAG,CAACC,GAAG,KAAK,KAAK,EAAE;MACrB,MAAM,IAAIlF,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAMmB,MAAM,GACVJ,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;IACrE,MAAMmE,OAAO,GAAGhE,MAAM,CAACiE,OAAO,CAACH,GAAG,EAAEpE,SAAS,CAAC;IAE9C,IAAIsE,OAAO,KAAKtE,SAAS,EAAE;MACzB,MAAM,IAAIb,KAAK,CAAC,0BAA0B,CAAC;IAC7C;;IAEA;IACA,IAAImF,OAAO,KAAK,CAAC,EAAE;MACjB1F,SAAS,GAAG,IAAI4F,qBAAe,CAAClE,MAAM,CAAC;IACzC,CAAC,MAAM,IAAIgE,OAAO,KAAK,CAAC,EAAE;MACxB1F,SAAS,GAAG,IAAI6F,sBAAgB,CAACnE,MAAM,CAAC;IAC1C,CAAC,MAAM;MACL,MAAM,IAAInB,KAAK,CAAC,yCAAyC,CAAC;IAC5D;EACF,CAAC,MAAM,IAAIR,MAAM,KAAK,MAAM,EAAE;IAC5B,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAkB,CAAC;IAC3DX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,QAAQ,EACRF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAC;EACH,CAAC,MAAM,IAAIrG,MAAM,KAAK,OAAO,EAAE;IAC7B,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAkB,CAAC;IAC3DX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,SAAS,EACTF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;EACH,CAAC,MAAM;IACL,MAAM,IAAI9F,KAAK,CAAC,sCAAsCR,MAAM,EAAE,CAAC;EACjE;;EAEA;EACA,MAAMuG,UAAU,GAAItG,SAAS,CAC1BuG,oBAAoB;;EAEvB;EACA,IAAIC,mBAA2C;EAC/C,IAAIF,UAAU,EAAEG,cAAc,EAAE;IAC9B,MAAMC,GAAG,GAAGJ,UAAU,CAACG,cAAc;IACrC;IACA,MAAME,KAAe,GAAG,EAAE;IAC1B,IAAIC,KAAK,GAAGF,GAAG;IACf,OAAOE,KAAK,GAAG,CAAC,EAAE;MAChBD,KAAK,CAACE,OAAO,CAACD,KAAK,GAAG,IAAI,CAAC;MAC3BA,KAAK,GAAG3B,IAAI,CAAC6B,KAAK,CAACF,KAAK,GAAG,GAAG,CAAC;IACjC;IACAJ,mBAAmB,GAAG,IAAI1D,UAAU,CAAC6D,KAAK,CAAC/G,MAAM,GAAG,CAAC,GAAG+G,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;EACtE;;EAEA;EACA,MAAM3B,QAAQ,GAAG,IAAA/D,4BAAiB,EAACzB,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAACC,SAAS,CAAC;EACzE,MAAM0B,cAAc,GAAG;IAAErH,IAAI,EAAEsF;EAAS,CAAC;EAEzC,MAAMgC,oBAAoB,GAAG;IAC3B,GAAGxH,SAAS;IACZyH,aAAa,EAAEX,UAAU,EAAEW,aAAa;IACxCR,cAAc,EAAED,mBAAmB;IACnCtF,IAAI,EAAE6F;EACR,CAAC;EAED,OAAO,IAAIjC,eAAS,CAAC9E,SAAS,EAAEgH,oBAAoB,EAAExC,SAAS,EAAED,WAAW,CAAC;AAC/E;AAEA,eAAe2C,aAAaA,CAC1B1H,SAA0B,EAC1BO,MAAoB,EACpBY,IAAsB,EACtB4D,WAAoB,EACpBC,SAAqB,EACD;EACpB;EACA,IAAIvF,WAAW,CAACuF,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9C,MAAM,IAAIjE,KAAK,CAAC,uCAAuC,CAAC;EAC1D;EAEA,IAAIP,SAAoB;EAExB,IAAID,MAAM,KAAK,KAAK,EAAE;IACpB,MAAMyF,GAAG,GAAG7E,IAAW;;IAEvB;IACA,IAAI,CAAC6E,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MACnC,MAAM,IAAIjF,KAAK,CAAC,iBAAiB,CAAC;IACpC;IAEA,IAAIiF,GAAG,CAACC,GAAG,KAAK,KAAK,EAAE;MACrB,MAAM,IAAIlF,KAAK,CAAC,iCAAiC,CAAC;IACpD;;IAEA;IACA,IAAIf,SAAS,CAACI,MAAM,KAAKwB,SAAS,EAAE;MAClC,IAAI,CAACoE,GAAG,CAAC2B,CAAC,EAAE;QACV,MAAM,IAAI5G,KAAK,CAAC,sBAAsB,CAAC;MACzC;MACA;MACA,MAAM6G,OAAO,GAAGC,kBAAO,CAACC,IAAI,CAAC9B,GAAG,CAAC2B,CAAC,EAAE,QAAQ,CAAC;MAC7C,MAAMI,YAAY,GAAGH,OAAO,CAACxH,MAAM,GAAG,CAAC;MACvC,IAAIJ,SAAS,CAACI,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAIW,KAAK,CAAC,kCAAkC,CAAC;MACrD;MACA,IAAIf,SAAS,CAACI,MAAM,KAAK2H,YAAY,EAAE;QACrC,MAAM,IAAIhH,KAAK,CAAC,oBAAoB,CAAC;MACvC;IACF;IAEA,MAAMmB,MAAM,GACVJ,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;IACrE,MAAMmE,OAAO,GAAGhE,MAAM,CAACiE,OAAO,CAACH,GAAG,EAAEpE,SAAS,CAAC;IAE9C,IAAIsE,OAAO,KAAKtE,SAAS,IAAIsE,OAAO,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAInF,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IAEAP,SAAS,GAAG,IAAIwH,qBAAe,CAAC9F,MAAM,CAAC;EACzC,CAAC,MAAM,IAAI3B,MAAM,KAAK,KAAK,EAAE;IAC3BC,SAAS,GAAG,IAAA4E,qBAAe,EAACjE,IAAkB,CAAC;EACjD,CAAC,MAAM;IACL,MAAM,IAAIJ,KAAK,CAAC,yCAAyCR,MAAM,EAAE,CAAC;EACpE;;EAEA;EACA,MAAMiF,QAAQ,GAAG,IAAA/D,4BAAiB,EAACzB,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAACC,SAAS,CAAC;EACzE,MAAMoC,mBAAoC,GAAG;IAC3C,GAAGjI,SAAS;IACZE,IAAI,EAAE,MAAM;IACZwB,IAAI,EAAE;MAAExB,IAAI,EAAEsF;IAAS;EACzB,CAAC;EAED,OAAO,IAAIF,eAAS,CAAC9E,SAAS,EAAEyH,mBAAmB,EAAEjD,SAAS,EAAED,WAAW,CAAC;AAC9E;AAEA,eAAemD,YAAYA,CACzBlI,SAA0B,EAC1BO,MAAoB,EACpBY,IAAsB,EACtB4D,WAAoB,EACpBC,SAAqB,EACD;EACpB,MAAM;IAAE9E,IAAI;IAAEE;EAAO,CAAC,GAAGJ,SAAS;;EAElC;EACA,MAAMiF,WAAuB,GAAG,CAC9B,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,CACZ;EACD,IAAIxF,WAAW,CAACuF,SAAS,EAAEC,WAAW,CAAC,EAAE;IACvC,MAAM,IAAIlE,KAAK,CAAC,6BAA6Bb,IAAI,EAAE,CAAC;EACtD;EAEA,IAAIM,SAAoB;EACxB,IAAI2H,YAAoB;EAExB,IAAI5H,MAAM,KAAK,KAAK,EAAE;IACpB,MAAMyF,GAAG,GAAG7E,IAAW;;IAEvB;IACA,IAAI6E,GAAG,CAACC,GAAG,KAAK,KAAK,EAAE;MACrB,MAAM,IAAIlF,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,MAAMmB,MAAM,GACVJ,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;IACrE,MAAMmE,OAAO,GAAGhE,MAAM,CAACiE,OAAO,CAACH,GAAG,EAAEpE,SAAS,CAAC;IAE9C,IAAIsE,OAAO,KAAKtE,SAAS,IAAIsE,OAAO,KAAK,CAAC,EAAE;MAC1C,MAAM,IAAInF,KAAK,CAAC,0BAA0B,CAAC;IAC7C;IAEAP,SAAS,GAAG,IAAIwH,qBAAe,CAAC9F,MAAM,CAAC;;IAEvC;IACA,MAAMxB,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAAC,CAAC;IACnCwH,YAAY,GAAGzH,QAAQ,CAAC+B,UAAU,GAAG,CAAC;EACxC,CAAC,MAAM,IAAIlC,MAAM,KAAK,KAAK,EAAE;IAC3B,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAkB,CAAC;IAC3DgH,YAAY,GAAG7B,OAAO,CAAC7D,UAAU,GAAG,CAAC;;IAErC;IACA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC3C,QAAQ,CAACqI,YAAY,CAAC,EAAE;MAC3C,MAAM,IAAIpH,KAAK,CAAC,wBAAwB,CAAC;IAC3C;IAEAP,SAAS,GAAG,IAAA4E,qBAAe,EAACkB,OAAO,CAAC;EACtC,CAAC,MAAM;IACL,MAAM,IAAIvF,KAAK,CAAC,sCAAsCR,MAAM,EAAE,CAAC;EACjE;;EAEA;EACA,IAAIH,MAAM,KAAKwB,SAAS,IAAIxB,MAAM,KAAK+H,YAAY,EAAE;IACnD,MAAM,IAAIpH,KAAK,CACb,iCAAiCX,MAAM,SAAS+H,YAAY,EAC9D,CAAC;EACH;EAEA,OAAO,IAAI7C,eAAS,CAClB9E,SAAS,EACT;IAAEN,IAAI;IAAEE,MAAM,EAAE+H;EAAa,CAAC,EAC9BnD,SAAS,EACTD,WACF,CAAC;AACH;AAEA,SAASqD,WAAWA,CAClB7H,MAAoB,EACpBY,IAAgB,EAChBnB,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACV;EACX,MAAM;IAAE9E;EAAK,CAAC,GAAGF,SAAS;;EAE1B;EACA,MAAMqI,GAAG,GAAGnI,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,MAAM;EAChD,MAAMoI,aAAyB,GAAGD,GAAG,GACjC,CAAC,WAAW,EAAE,YAAY,CAAC,GAC3B,CAAC,MAAM,EAAE,QAAQ,CAAC;EAEtB,IAAI5I,WAAW,CAACuF,SAAS,EAAEsD,aAAa,CAAC,EAAE;IACzC,MAAM,IAAA/G,wBAAgB,EACpB,6BAA6BrB,IAAI,MAAM,EACvC,aACF,CAAC;EACH;EAEA,IAAIM,SAAoB;EAExB,IAAID,MAAM,KAAK,MAAM,EAAE;IACrB;IACA,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAI,CAAC;IAC7CX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,QAAQ,EACRF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAC;EACH,CAAC,MAAM,IAAIrG,MAAM,KAAK,OAAO,EAAE;IAC7B;IACA,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAI,CAAC;IAC7CX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,SAAS,EACTF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;EACH,CAAC,MAAM,IAAItG,MAAM,KAAK,KAAK,EAAE;IAC3B;IACA,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAI,CAAC;IAC7C,MAAMe,MAAM,GACVJ,qCAAY,CAACC,kBAAkB,CAAkB,iBAAiB,CAAC;IACrE;IACA;IACAG,MAAM,CAACqG,IAAI,CAAC,CAAC,EAAEjC,OAAO,CAAC,CAAC,CAAC;IACzB9F,SAAS,GAAG,IAAI4F,qBAAe,CAAClE,MAAM,CAAC;EACzC,CAAC,MAAM;IACL,MAAM,IAAAX,wBAAgB,EACpB,0BAA0BrB,IAAI,YAAYK,MAAM,EAAE,EAClD,mBACF,CAAC;EACH;EAEA,OAAO,IAAI+E,eAAS,CAAC9E,SAAS,EAAE;IAAEN;EAAK,CAAC,EAAE8E,SAAS,EAAED,WAAW,CAAC;AACnE;AAEA,SAASyD,cAAcA,CACrBjI,MAAoB,EACpBY,IAAgB,EAChBnB,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACV;EACX,MAAM;IAAE9E;EAAK,CAAC,GAAGF,SAAS;;EAE1B;EACA,IAAIP,WAAW,CAACuF,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9C,MAAM,IAAAzD,wBAAgB,EACpB,6BAA6BrB,IAAI,MAAM,EACvC,aACF,CAAC;EACH;EAEA,IAAIM,SAAoB;EAExB,IAAID,MAAM,KAAK,MAAM,EAAE;IACrB;IACA,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAI,CAAC;IAC7CX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,QAAQ,EACRF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAC;EACH,CAAC,MAAM,IAAIrG,MAAM,KAAK,OAAO,EAAE;IAC7B;IACA,MAAM+F,OAAO,GAAG,IAAAzF,mCAAuB,EAACM,IAAI,CAAC;IAC7CX,SAAS,GAAG+F,eAAS,CAACC,eAAe,CACnC,SAAS,EACTF,OAAO,EACPG,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACE,KACd,CAAC;EACH,CAAC,MAAM;IACL,MAAM,IAAAtF,wBAAgB,EACpB,0BAA0BrB,IAAI,YAAYK,MAAM,EAAE,EAClD,mBACF,CAAC;EACH;EAEA,OAAO,IAAI+E,eAAS,CAAC9E,SAAS,EAAE;IAAEN;EAAK,CAAC,EAAE8E,SAAS,EAAED,WAAW,CAAC;AACnE;AAEA,MAAM0D,aAAa,GAAG,MACpBnI,GAAc,IACqB;EACnC,QAAQA,GAAG,CAACN,SAAS,CAACE,IAAI;IACxB,KAAK,mBAAmB;IACxB;IACA,KAAK,SAAS;IACd;IACA,KAAK,UAAU;MACb,IAAII,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB,OAAOI,YAAY,CAACV,GAAG,EAAEf,mBAAmB,CAACkB,uBAAuB,CAAC;MACvE;MACA;IACF,KAAK,OAAO;IACZ;IACA,KAAK,MAAM;MACT,IAAIH,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB,OAAOP,WAAW,CAACC,GAAG,EAAEf,mBAAmB,CAACkB,uBAAuB,CAAC;MACtE;MACA;IACF,KAAK,SAAS;IACd;IACA,KAAK,OAAO;IACZ;IACA,KAAK,QAAQ;IACb;IACA,KAAK,MAAM;MACT,IAAIH,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB;QACA,OAAO,IAAAC,mCAAuB,EAC5BP,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAACjC,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACC,IAAI,CAClE,CAAC;MACH;MACA;IACF,KAAK,WAAW;IAChB;IACA,KAAK,WAAW;IAChB;IACA,KAAK,WAAW;MACd,IAAItG,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB;QACA,OAAO,IAAAC,mCAAuB,EAC5BP,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAACjC,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACC,IAAI,CAClE,CAAC;MACH;MACA;EACJ;EAEA,MAAM,IAAI7F,KAAK,CACb,2BAA2BT,GAAG,CAACN,SAAS,CAACE,IAAI,IAAII,GAAG,CAACM,IAAI,MAC3D,CAAC;AACH,CAAC;AAED,MAAM+H,cAAc,GAAG,MACrBrI,GAAc,IACqB;EACnC,QAAQA,GAAG,CAACN,SAAS,CAACE,IAAI;IACxB,KAAK,mBAAmB;IACxB;IACA,KAAK,SAAS;IACd;IACA,KAAK,UAAU;MACb,IAAII,GAAG,CAACM,IAAI,KAAK,SAAS,EAAE;QAC1B,OAAOI,YAAY,CAACV,GAAG,EAAEf,mBAAmB,CAACuB,wBAAwB,CAAC;MACxE;MACA;IACF,KAAK,OAAO;IACZ;IACA,KAAK,MAAM;MACT,IAAIR,GAAG,CAACM,IAAI,KAAK,SAAS,EAAE;QAC1B,OAAOP,WAAW,CAACC,GAAG,EAAEf,mBAAmB,CAACuB,wBAAwB,CAAC;MACvE;MACA;IACF,KAAK,SAAS;IACd;IACA,KAAK,OAAO;IACZ;IACA,KAAK,QAAQ;IACb;IACA,KAAK,MAAM;MACT,IAAIR,GAAG,CAACM,IAAI,KAAK,SAAS,EAAE;QAC1B;QACA,OAAO,IAAAC,mCAAuB,EAC5BP,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAACjC,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACE,KAAK,CACnE,CAAC;MACH;MACA;IACF,KAAK,WAAW;IAChB;IACA,KAAK,WAAW;IAChB;IACA,KAAK,WAAW;MACd,IAAIvG,GAAG,CAACM,IAAI,KAAK,SAAS,EAAE;QAC1B;QACA,OAAO,IAAAC,mCAAuB,EAC5BP,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAACjC,kBAAW,CAACC,GAAG,EAAEC,kBAAW,CAACE,KAAK,CACnE,CAAC;MACH;MACA;EACJ;EAEA,MAAM,IAAI9F,KAAK,CACb,4BAA4BT,GAAG,CAACN,SAAS,CAACE,IAAI,IAAII,GAAG,CAACM,IAAI,MAC5D,CAAC;AACH,CAAC;AAED,MAAMgI,YAAY,GAAItI,GAAc,IAA4B;EAC9D,QAAQA,GAAG,CAACN,SAAS,CAACE,IAAI;IACxB,KAAK,OAAO;IACZ;IACA,KAAK,MAAM;MACT,IAAII,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB,OAAOP,WAAW,CAACC,GAAG,EAAEf,mBAAmB,CAACsJ,sBAAsB,CAAC;MACrE;MACA;IACF,KAAK,SAAS;IACd;IACA,KAAK,OAAO;IACZ;IACA,KAAK,QAAQ;IACb;IACA,KAAK,MAAM;MACT,IAAIvI,GAAG,CAACM,IAAI,KAAK,QAAQ,EAAE;QACzB;QACA,MAAMF,QAAQ,GAAGJ,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAAC,CAAC;QACjD,OAAO,IAAA7H,mCAAuB,EAACH,QAAQ,CAAC;MAC1C;MACA;IACF,KAAK,SAAS;IACd;IACA,KAAK,SAAS;IACd;IACA,KAAK,SAAS;IACd;IACA,KAAK,QAAQ;IACb;IACA,KAAK,mBAAmB;IACxB;IACA,KAAK,MAAM;MAAE;QACX,MAAMA,QAAQ,GAAGJ,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC;QACvC;QACA,OAAOD,QAAQ,CAAC8C,MAAM,CAACU,KAAK,CAC1BxD,QAAQ,CAACoI,UAAU,EACnBpI,QAAQ,CAACoI,UAAU,GAAGpI,QAAQ,CAAC+B,UACjC,CAAC;MACH;EACF;EAEA,MAAM,IAAAlB,wBAAgB,EACpB,0BAA0BjB,GAAG,CAACN,SAAS,CAACE,IAAI,IAAII,GAAG,CAACM,IAAI,MAAM,EAC9D,oBACF,CAAC;AACH,CAAC;AAED,MAAMmI,YAAY,GAAIzI,GAAc,IAA4B;EAC9D,MAAM0F,GAAG,GAAG1F,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAAC8G,SAAS,CACxC;IACEC,OAAO,EAAE3I,GAAG,CAACZ,MAAM;IACnBwJ,GAAG,EAAE5I,GAAG,CAACyE;EACX,CAAC,EACD,IACF,CAAC;EACD,QAAQzE,GAAG,CAACN,SAAS,CAACE,IAAI;IACxB,KAAK,mBAAmB;MACtB8F,GAAG,CAACmD,GAAG,GAAG,IAAA1H,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAACwD,MAAM,CAAC;MACnE,OAAOpD,GAAG;IACZ,KAAK,SAAS;MACZA,GAAG,CAACmD,GAAG,GAAG,IAAA1H,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAACyD,SAAS,CAAC;MACtE,OAAOrD,GAAG;IACZ,KAAK,UAAU;MACbA,GAAG,CAACmD,GAAG,GAAG,IAAA1H,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAAC0D,UAAU,CAAC;MACvE,OAAOtD,GAAG;IACZ,KAAK,MAAM;MACTA,GAAG,CAACmD,GAAG,GAAG,IAAA1H,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,EAAEkE,sBAAW,CAAC2D,OAAO,CAAC;MACpE,OAAOvD,GAAG;IACZ,KAAK,OAAO;IACZ;IACA,KAAK,MAAM;MACTA,GAAG,CAACwD,GAAG,KAAKlJ,GAAG,CAACN,SAAS,CAACyJ,UAAU;MACpC,OAAOzD,GAAG;IACZ,KAAK,SAAS;IACd;IACA,KAAK,SAAS;IACd;IACA,KAAK,SAAS;IACd;IACA,KAAK,QAAQ;IACb;IACA,KAAK,mBAAmB;MACtB,IAAI1F,GAAG,CAACN,SAAS,CAACI,MAAM,KAAKwB,SAAS,EAAE;QACtC,MAAM,IAAAL,wBAAgB,EACpB,aAAajB,GAAG,CAACN,SAAS,CAACE,IAAI,mCAAmC,EAClE,oBACF,CAAC;MACH;MACA8F,GAAG,CAACmD,GAAG,GAAGhJ,gBAAgB,CAACG,GAAG,CAACN,SAAS,CAACE,IAAI,EAAEI,GAAG,CAACN,SAAS,CAACI,MAAM,CAAC;MACpE,OAAO4F,GAAG;IACZ;IACA;EACF;EAEA,MAAM,IAAAzE,wBAAgB,EACpB,iCAAiCjB,GAAG,CAACN,SAAS,CAACE,IAAI,EAAE,EACrD,mBACF,CAAC;AACH,CAAC;AAED,MAAMwJ,sBAAsB,GAAG,MAAAA,CAC7B;EAAExJ,IAAI;EAAEE;AAAwB,CAAC,EACjCG,MAAoB,EACpB+F,OAAgC,EAChCvB,WAAoB,EACpBC,SAAqB,KACE;EACvB,IAAID,WAAW,EAAE;IACf,MAAM,IAAIhE,KAAK,CAAC,GAAGb,IAAI,2BAA2B,CAAC;EACrD;EACA,IAAIT,WAAW,CAACuF,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;IACvD,MAAM,IAAIjE,KAAK,CAAC,+BAA+Bb,IAAI,MAAM,CAAC;EAC5D;EAEA,QAAQK,MAAM;IACZ,KAAK,KAAK;MAAE;QACV,IAAId,WAAW,CAACuF,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;UACvD,MAAM,IAAIjE,KAAK,CAAC,+BAA+Bb,IAAI,MAAM,CAAC;QAC5D;QAEA,MAAMyJ,WAAW,GACf,OAAOrD,OAAO,KAAK,QAAQ,IAAIuB,kBAAO,CAAC+B,QAAQ,CAACtD,OAAO,CAAC,GACpDA,OAAO,CAAClG,MAAM,GAAG,CAAC,GAClBkG,OAAO,CAAC7D,UAAU,GAAG,CAAC;QAE5B,IAAIrC,MAAM,KAAKwB,SAAS,IAAIxB,MAAM,KAAKuJ,WAAW,EAAE;UAClD,MAAM,IAAI5I,KAAK,CAAC,oBAAoB,CAAC;QACvC;QAEA,MAAMP,SAAS,GAAG,IAAA4E,qBAAe,EAACkB,OAAqB,CAAC;QACxD,OAAO,IAAIhB,eAAS,CAAC9E,SAAS,EAAE;UAAEN;QAAK,CAAC,EAAE8E,SAAS,EAAE,KAAK,CAAC;MAC7D;EACF;EAEA,MAAM,IAAIjE,KAAK,CAAC,oBAAoBb,IAAI,oBAAoBK,MAAM,EAAE,CAAC;AACvE,CAAC;AAED,MAAMsJ,aAAa,GAAG,MAAAA,CACpBtJ,MAAoB,EACpB+F,OAAgC,EAChCtG,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,KACE;EACvB,MAAM;IAAE9E;EAAK,CAAC,GAAGF,SAAS;EAC1B,IAAIP,WAAW,CAACuF,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;IACvD,MAAM,IAAIjE,KAAK,CAAC,+BAA+Bb,IAAI,MAAM,CAAC;EAC5D;EAEA,QAAQK,MAAM;IACZ,KAAK,KAAK;MAAE;QACV,MAAMC,SAAS,GAAG,IAAA4E,qBAAe,EAACkB,OAAqB,CAAC;QACxD,OAAO,IAAIhB,eAAS,CAAC9E,SAAS,EAAE;UAAEN;QAAK,CAAC,EAAE8E,SAAS,EAAED,WAAW,CAAC;MACnE;IACA;MACE,MAAM,IAAIhE,KAAK,CAAC,oBAAoBb,IAAI,oBAAoBK,MAAM,EAAE,CAAC;EACzE;AACF,CAAC;AAED,MAAMuJ,wBAAwB,GAAIC,IAAmB,IAAK;EACxD,IACEA,IAAI,CAACC,UAAU,IACfD,IAAI,CAACC,UAAU,YAAY1E,eAAS,IACpCyE,IAAI,CAACC,UAAU,CAAChF,SAAS,IACzB+E,IAAI,CAACC,UAAU,CAAChF,SAAS,CAAC5E,MAAM,GAAG,CAAC,EACpC;IACA;EACF;EACA,MAAM,IAAAmB,wBAAgB,EACpB,6CAA6C,EAC7C,aACF,CAAC;AACH,CAAC;;AAED;AACO,SAAS0I,eAAeA,CAC7B5G,MAAiC,EACR;EACzB,OAAO,WAAW,IAAIA,MAAM,IAAI,YAAY,IAAIA,MAAM;AACxD;AAEA,SAAS6G,cAAcA,CACrB5J,GAAc,EACda,IAAgB,EAChBgJ,SAAsB,EACC;EACvB;EACA,MAAM3E,QAAQ,GAAG,IAAA/D,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,CAAC;;EAEtD;EACA,MAAM4E,OAAO,GAAGhG,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC;;EAEtC;EACA,MAAMyJ,IAAI,GAAG,IAAAC,gBAAU,EAAC7E,QAAQ,EAAEc,OAAO,CAAC;EAC1C8D,IAAI,CAACjH,MAAM,CAAC,IAAAtC,mCAAuB,EAACM,IAAI,CAAC,CAAC;EAC1C,MAAMmJ,QAAQ,GAAGF,IAAI,CAACG,MAAM,CAAC,CAAC;EAE9B,IAAIJ,SAAS,KAAKvI,SAAS,EAAE;IAC3B;IACA,OAAO0I,QAAQ,CAAC9G,MAAM,CAACU,KAAK,CAC1BoG,QAAQ,CAACxB,UAAU,EACnBwB,QAAQ,CAACxB,UAAU,GAAGwB,QAAQ,CAAC7H,UACjC,CAAC;EACH;;EAEA;EACA,MAAM+H,QAAQ,GAAG,IAAIlH,UAAU,CAAC,IAAAzC,mCAAuB,EAACsJ,SAAS,CAAC,CAAC;EACnE,MAAMM,aAAa,GAAG,IAAInH,UAAU,CAClCgH,QAAQ,CAAC9G,MAAM,EACf8G,QAAQ,CAACxB,UAAU,EACnBwB,QAAQ,CAAC7H,UACX,CAAC;EAED,IAAIgI,aAAa,CAACrK,MAAM,KAAKoK,QAAQ,CAACpK,MAAM,EAAE;IAC5C,OAAO,KAAK;EACd;;EAEA;EACA,IAAIiD,MAAM,GAAG,CAAC;EACd,KAAK,IAAIqH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,aAAa,CAACrK,MAAM,EAAEsK,CAAC,EAAE,EAAE;IAC7CrH,MAAM,IAAIoH,aAAa,CAACC,CAAC,CAAC,GAAIF,QAAQ,CAACE,CAAC,CAAE;EAC5C;EACA,OAAOrH,MAAM,KAAK,CAAC;AACrB;AAEA,SAASsH,aAAaA,CACpBrK,GAAc,EACda,IAAgB,EAChByJ,OAAwB,EACxBT,SAAsB,EACtBU,UAAmB,EACI;EACvB;EACA,MAAMrF,QAAQ,GAAG,IAAA/D,4BAAiB,EAACnB,GAAG,CAACN,SAAS,CAAC0B,IAAI,CAAC;;EAEtD;EACA,MAAMoJ,iBAAiB,GAAG,CAAC;EAC3B,MAAMC,qBAAqB,GAAG,CAAC;EAC/B,MAAMC,YAAY,GAChBJ,OAAO,KAAK,KAAK,GAAGG,qBAAqB,GAAGD,iBAAiB;EAE/D,IAAIX,SAAS,KAAKvI,SAAS,EAAE;IAC3B;IACA,MAAMqJ,MAAM,GAAG,IAAAC,sBAAU,EAAC1F,QAAQ,CAAC;IACnCyF,MAAM,CAAC9H,MAAM,CAAChC,IAAI,CAAC;IACnB,MAAMgK,GAAG,GAAGF,MAAM,CAACG,IAAI,CAAC;MACtB9K,GAAG,EAAEA,GAAG;MACRsK,OAAO,EAAEI,YAAY;MACrBH;IACF,CAAC,CAAC;IACF,OAAOM,GAAG,CAAC3H,MAAM,CAACU,KAAK,CAACiH,GAAG,CAACrC,UAAU,EAAEqC,GAAG,CAACrC,UAAU,GAAGqC,GAAG,CAAC1I,UAAU,CAAC;EAC1E;;EAEA;EACA,MAAM4I,QAAQ,GAAG,IAAAC,wBAAY,EAAC9F,QAAQ,CAAC;EACvC6F,QAAQ,CAAClI,MAAM,CAAChC,IAAI,CAAC;EACrB,OAAOkK,QAAQ,CAACE,MAAM,CACpB;IACEjL,GAAG,EAAEA,GAAG;IACRsK,OAAO,EAAEI,YAAY;IACrBH;EACF,CAAC,EACDV,SACF,CAAC;AACH;AAEA,SAASqB,YAAYA,CACnBlL,GAAc,EACda,IAAgB,EAChBgJ,SAAsB,EACC;EACvB,MAAMsB,MAAM,GAAGtB,SAAS,KAAKvI,SAAS;EACtC,MAAM8J,eAAe,GAAGD,MAAM,GAAG,SAAS,GAAG,QAAQ;EAErD,IAAInL,GAAG,CAACM,IAAI,KAAK8K,eAAe,EAAE;IAChC,MAAM,IAAAnK,wBAAgB,EACpB,iBAAiBmK,eAAe,MAAM,EACtC,oBACF,CAAC;EACH;;EAEA;EACA,MAAMC,aAAa,GAAGrL,GAAG,CAACN,SAAS,CAACE,IAAI;EACxC,MAAM0L,SAAS,GAAGD,aAAa,CAACE,WAAW,CAAC,CAAwB;;EAEpE;EACA,MAAMC,EAAE,GAAG,IAAIC,MAAE,CAACH,SAAS,EAAE,CAAC,CAAC,CAAC;;EAEhC;EACA,MAAMI,MAAM,GAAG1L,GAAG,CAACE,SAAS,CAAC0B,MAAM,CAACwG,SAAS,CAAC,CAAC;EAC/C,MAAMuD,UAAU,GAAG,IAAApL,mCAAuB,EAACM,IAAI,CAAC;EAEhD,IAAIsK,MAAM,EAAE;IACV;IACA,MAAMN,GAAG,GAAGW,EAAE,CAACI,QAAQ,CAACD,UAAU,EAAED,MAAM,CAAC;IAC3C,OAAOb,GAAG;EACZ,CAAC,MAAM;IACL;IACA,MAAMgB,eAAe,GAAG,IAAAtL,mCAAuB,EAACsJ,SAAU,CAAC;IAC3D,OAAO2B,EAAE,CAACM,UAAU,CAACD,eAAe,EAAEF,UAAU,EAAED,MAAM,CAAC;EAC3D;AACF;AAEA,SAASK,eAAeA,CACtB/L,GAAc,EACda,IAAgB,EAChBgJ,SAAsB,EACC;EACvB,MAAMsB,MAAM,GAAGtB,SAAS,KAAKvI,SAAS;EACtC,MAAM8J,eAAe,GAAGD,MAAM,GAAG,SAAS,GAAG,QAAQ;EAErD,IAAInL,GAAG,CAACM,IAAI,KAAK8K,eAAe,EAAE;IAChC,MAAM,IAAAnK,wBAAgB,EACpB,iBAAiBmK,eAAe,MAAM,EACtC,oBACF,CAAC;EACH;EAEA,MAAMO,UAAU,GAAG,IAAApL,mCAAuB,EAACM,IAAI,CAAC;EAEhD,IAAIsK,MAAM,EAAE;IACV,MAAMR,MAAM,GAAG,IAAAC,sBAAU,EAAC,EAAE,CAAC;IAC7BD,MAAM,CAAC9H,MAAM,CAAC8I,UAAU,CAAC;IACzB,MAAMd,GAAG,GAAGF,MAAM,CAACG,IAAI,CAAC;MAAE9K,GAAG,EAAEA;IAAI,CAAC,CAAC;IACrC,OAAO6K,GAAG,CAAC3H,MAAM,CAACU,KAAK,CAACiH,GAAG,CAACrC,UAAU,EAAEqC,GAAG,CAACrC,UAAU,GAAGqC,GAAG,CAAC1I,UAAU,CAAC;EAC1E,CAAC,MAAM;IACL,MAAM0J,eAAe,GAAG,IAAAtL,mCAAuB,EAACsJ,SAAU,CAAC;IAC3D,MAAMkB,QAAQ,GAAG,IAAAC,wBAAY,EAAC,EAAE,CAAC;IACjCD,QAAQ,CAAClI,MAAM,CAAC8I,UAAU,CAAC;IAC3B,OAAOZ,QAAQ,CAACE,MAAM,CAAC;MAAEjL,GAAG,EAAEA;IAAI,CAAC,EAAE6L,eAAe,CAAC;EACvD;AACF;AAEA,MAAMG,UAAU,GAAGA,CACjBtM,SAA0B,EAC1BM,GAAc,EACda,IAAgB,EAChBgJ,SAAsB,KACI;EAC1B,MAAMtK,KAAgB,GAAGsK,SAAS,KAAKvI,SAAS,GAAG,MAAM,GAAG,QAAQ;EACpE5B,SAAS,GAAGD,kBAAkB,CAACC,SAAS,EAAEH,KAAK,CAAC;EAEhD,IAAI,CAACS,GAAG,CAACZ,MAAM,CAACI,QAAQ,CAACD,KAAK,CAAC,IAAIG,SAAS,CAACE,IAAI,KAAKI,GAAG,CAACN,SAAS,CAACE,IAAI,EAAE;IACxE,MAAM,IAAAqB,wBAAgB,EACpB,6BAA6B1B,KAAK,EAAE,EACpC,oBACF,CAAC;EACH;EAEA,QAAQG,SAAS,CAACE,IAAI;IACpB,KAAK,OAAO;MACV,OAAO,IAAAqM,mBAAe,EAACjM,GAAG,EAAEa,IAAI,EAAEnB,SAAS,EAAEmK,SAAS,CAAC;IACzD,KAAK,MAAM;MACT,OAAOD,cAAc,CAAC5J,GAAG,EAAEa,IAAI,EAAEgJ,SAAS,CAAC;IAC7C,KAAK,mBAAmB;MACtB,OAAOQ,aAAa,CAACrK,GAAG,EAAEa,IAAI,EAAE,OAAO,EAAEgJ,SAAS,CAAC;IACrD,KAAK,SAAS;MACZ,OAAOQ,aAAa,CAACrK,GAAG,EAAEa,IAAI,EAAE,KAAK,EAAEgJ,SAAS,EAAEnK,SAAS,CAAC6K,UAAU,CAAC;IACzE,KAAK,SAAS;IACd,KAAK,OAAO;MACV,OAAOW,YAAY,CAAClL,GAAG,EAAEa,IAAI,EAAEgJ,SAAS,CAAC;IAC3C,KAAK,WAAW;IAChB,KAAK,WAAW;IAChB,KAAK,WAAW;MACd,OAAOkC,eAAe,CAAC/L,GAAG,EAAEa,IAAI,EAAEgJ,SAAS,CAAC;EAChD;EACA,MAAM,IAAA5I,wBAAgB,EACpB,gCAAgCvB,SAAS,CAACE,IAAI,UAAUL,KAAK,GAAG,EAChE,mBACF,CAAC;AACH,CAAC;AAED,MAAM2M,YAAY,GAAG,MAAAA,CACnBtL,IAAsB,EACtBlB,SAA+B,EAC/BM,GAAc,EACda,IAAiB,EACjBsL,EAAa,KACY;EACzB,IACEnM,GAAG,CAACN,SAAS,CAACE,IAAI,KAAKF,SAAS,CAACE,IAAI,IACrC,CAACI,GAAG,CAACZ,MAAM,CAACI,QAAQ,CAAC2M,EAAc,CAAC,EACpC;IACA,MAAM,IAAAlL,wBAAgB,EACpB,2DAA2D,EAC3D,oBACF,CAAC;EACH;EAEA,IAAAmL,mCAAuB,EAACvL,IAAI,EAAE,MAAM,CAAC;EAErC,QAAQnB,SAAS,CAACE,IAAI;IACpB,KAAK,UAAU;MACb,OAAOe,SAAS,CAACC,IAAI,EAAEZ,GAAG,EAAEa,IAAI,EAAEnB,SAAS,CAAC;IAC9C,KAAK,SAAS;IACd;IACA,KAAK,SAAS;IACd;IACA,KAAK,SAAS;MACZ,OAAOoC,SAAS,CAAClB,IAAI,EAAEZ,GAAG,EAAEa,IAAI,EAAEnB,SAAS,CAAC;IAC9C,KAAK,QAAQ;MACX,OAAOwE,WAAW,CAACtD,IAAI,EAAEZ,GAAG,EAAEa,IAAI,CAAC;IACrC,KAAK,mBAAmB;MACtB,OAAOyD,sBAAsB,CAC3B1D,IAAI,EACJZ,GAAG,EACHa,IAAI,EACJnB,SACF,CAAC;EACL;AACF,CAAC;AAEM,MAAM2M,MAAM,CAAC;EAClB,MAAMxK,OAAOA,CACXnC,SAA+B,EAC/BM,GAAc,EACda,IAAgB,EACM;IACtB,MAAM8G,mBAAmB,GAAGlI,kBAAkB,CAACC,SAAS,EAAE,SAAS,CAAC;IACpE,OAAOwM,YAAY,CACjBhN,gBAAgB,CAACuE,uBAAuB,EACxCkE,mBAAmB,EACnB3H,GAAG,EACH,IAAAO,mCAAuB,EAACM,IAAI,CAAC,EAC7B,SACF,CAAC;EACH;EAEA,MAAMoJ,MAAMA,CACVvK,SAAyC,EACzCmB,IAAgB,EACM;IACtB,MAAM8G,mBAAmB,GAAGlI,kBAAkB,CAC5CC,SAAS,EACT,QACF,CAAC;IACD,OAAO,IAAA4M,iBAAW,EAAC3E,mBAAmB,EAAE9G,IAAI,CAAC;EAC/C;EAEA,MAAM0L,UAAUA,CACd7M,SAA0B,EAC1B8M,OAAkB,EAClB1M,MAAc,EACQ;IACtB;IACA,IACE,CAAC0M,OAAO,CAAC9H,SAAS,CAAClF,QAAQ,CAAC,YAAY,CAAC,IACzC,CAACgN,OAAO,CAAC9H,SAAS,CAAClF,QAAQ,CAAC,WAAW,CAAC,EACxC;MACA,MAAM,IAAIiB,KAAK,CAAC,qDAAqD,CAAC;IACxE;IACA,IAAI+L,OAAO,CAAC9M,SAAS,CAACE,IAAI,KAAKF,SAAS,CAACE,IAAI,EAC3C,MAAM,IAAIa,KAAK,CAAC,wBAAwB,CAAC;IAC3C,QAAQf,SAAS,CAACE,IAAI;MACpB,KAAK,QAAQ;QACX,OAAO,IAAA6M,uBAAgB,EAAC/M,SAAS,EAAE8M,OAAO,EAAE1M,MAAM,CAAC;MACrD,KAAK,QAAQ;MACb;MACA,KAAK,MAAM;QACT,OAAO,IAAA4M,eAAW,EAAChN,SAAS,EAAE8M,OAAO,EAAE1M,MAAM,CAAC;MAChD,KAAK,MAAM;QACT,OAAO,IAAA6M,gBAAY,EAACjN,SAAS,EAAE8M,OAAO,EAAE1M,MAAM,CAAC;MACjD,KAAK,MAAM;QACT,OAAO,IAAA8M,oBAAc,EACnBlN,SAAS,EACT8M,OAAO,EACP1M,MACF,CAAC;IACL;IACA,MAAM,IAAIW,KAAK,CACb,6BAA6Bf,SAAS,CAACE,IAAI,sBAC7C,CAAC;EACH;EAEA,MAAMiN,SAASA,CACbnN,SAA0B,EAC1B8M,OAAkB,EAClBM,mBAAoC,EACpCrI,WAAoB,EACpBC,SAAqB,EACD;IACpB;IACA,IACE,CAAC8H,OAAO,CAACpN,MAAM,CAACI,QAAQ,CAAC,WAAW,CAAC,IACrC,CAACgN,OAAO,CAACpN,MAAM,CAACI,QAAQ,CAAC,YAAY,CAAC,EACtC;MACA,MAAM,IAAAyB,wBAAgB,EACpB,qDAAqD,EACrD,oBACF,CAAC;IACH;;IAEA;IACA,MAAMnB,MAAM,GAAGiN,YAAY,CAACD,mBAAmB,CAAC;;IAEhD;IACA,IAAIE,WAAwB;IAC5B,IAAIR,OAAO,CAAC9M,SAAS,CAACE,IAAI,KAAKF,SAAS,CAACE,IAAI,EAC3C,MAAM,IAAIa,KAAK,CAAC,wBAAwB,CAAC;IAE3C,QAAQf,SAAS,CAACE,IAAI;MACpB,KAAK,QAAQ;QACXoN,WAAW,GAAG,MAAM,IAAAP,uBAAgB,EAAC/M,SAAS,EAAE8M,OAAO,EAAE1M,MAAM,CAAC;QAChE;MACF,KAAK,QAAQ;MACb;MACA,KAAK,MAAM;QACTkN,WAAW,GAAG,MAAM,IAAAN,eAAW,EAAChN,SAAS,EAAE8M,OAAO,EAAE1M,MAAM,CAAC;QAC3D;MACF,KAAK,MAAM;QACTkN,WAAW,GAAG,IAAAJ,oBAAc,EAC1BlN,SAAS,EACT8M,OAAO,EACP1M,MACF,CAAC;QACD;MACF;QACE,MAAM,IAAIW,KAAK,CACb,4BAA4Bf,SAAS,CAACE,IAAI,sBAC5C,CAAC;IACL;;IAEA;IACA,OAAO,IAAI,CAACqN,SAAS,CACnB,KAAK,EACLD,WAAW,EACXF,mBAAmB,EACnBrI,WAAW,EACXC,SACF,CAAC;EACH;EAEA,MAAM/C,OAAOA,CACXjC,SAA+B,EAC/BM,GAAc,EACda,IAAgB,EACM;IACtB,MAAM8G,mBAAmB,GAAGlI,kBAAkB,CAACC,SAAS,EAAE,SAAS,CAAC;IACpE,OAAOwM,YAAY,CACjBhN,gBAAgB,CAAC8B,uBAAuB,EACxC2G,mBAAmB,EACnB3H,GAAG,EACH,IAAAO,mCAAuB,EAACM,IAAI,CAAC,EAC7B,SACF,CAAC;EACH;EAEA,MAAMuH,SAASA,CACbnI,MAAoB,EACpBD,GAAc,EACc;IAC5B,IAAI,CAACA,GAAG,CAACyE,WAAW,EAAE,MAAM,IAAIhE,KAAK,CAAC,wBAAwB,CAAC;IAE/D,QAAQR,MAAM;MACZ,KAAK,MAAM;QACT,OAAQ,MAAMkI,aAAa,CAACnI,GAAG,CAAC;MAClC,KAAK,OAAO;QACV,OAAQ,MAAMqI,cAAc,CAACrI,GAAG,CAAC;MACnC,KAAK,KAAK;QACR,OAAOyI,YAAY,CAACzI,GAAG,CAAC;MAC1B,KAAK,KAAK;QACR,OAAOsI,YAAY,CAACtI,GAAG,CAAC;IAC5B;EACF;EAEA,MAAMkN,OAAOA,CACXjN,MAAoB,EACpBD,GAAc,EACdmN,WAAsB,EACtBC,aAAmC,EACb;IACtB;IACA,IAAI,CAACD,WAAW,CAAC/N,MAAM,CAACI,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC3C,MAAM,IAAAyB,wBAAgB,EACpB,yCAAyC,EACzC,oBACF,CAAC;IACH;;IAEA;IACA,MAAMb,QAAQ,GAAG,MAAM,IAAI,CAACgI,SAAS,CAACnI,MAAM,EAAED,GAAG,CAAC;;IAElD;IACA,IAAIgG,OAAoB;IACxB,IAAI/F,MAAM,KAAK,KAAK,EAAE;MACpB,MAAMoN,SAAS,GAAGC,IAAI,CAACC,SAAS,CAACnN,QAAQ,CAAC;MAC1C,MAAM8C,MAAM,GAAGqE,kBAAO,CAACC,IAAI,CAAC6F,SAAS,EAAE,MAAM,CAAC;;MAE9C;MACA,IAAID,aAAa,CAACxN,IAAI,KAAK,QAAQ,EAAE;QACnC,MAAME,MAAM,GAAGoD,MAAM,CAACpD,MAAM;QAC5B;QACA,MAAM0N,YAAY,GAAGrI,IAAI,CAACC,IAAI,CAAC,CAACtF,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QACpD,MAAM2N,YAAY,GAAGlG,kBAAO,CAACmG,KAAK,CAACF,YAAY,CAAC;QAChDtK,MAAM,CAACyK,IAAI,CAACF,YAAY,CAAC;QACzB;QACAA,YAAY,CAACG,UAAU,CAAC,CAAC,EAAE9N,MAAM,CAAC;QAClCkG,OAAO,GAAG,IAAAzF,mCAAuB,EAACkN,YAAY,CAAC;MACjD,CAAC,MAAM;QACLzH,OAAO,GAAG,IAAAzF,mCAAuB,EAAC2C,MAAM,CAAC;MAC3C;IACF,CAAC,MAAM;MACL8C,OAAO,GAAG5F,QAAuB;IACnC;;IAEA;IACA,OAAO8L,YAAY,CACjBhN,gBAAgB,CAAC8B,uBAAuB,EACxCoM,aAAa,EACbD,WAAW,EACXnH,OAAO,EACP,SACF,CAAC;EACH;EAEA,MAAM6H,SAASA,CACb5N,MAAoB,EACpB6N,UAAsB,EACtBC,aAAwB,EACxBC,eAAqC,EACrCC,qBAAqD,EACrDxJ,WAAoB,EACpBC,SAAqB,EACD;IACpB;IACA,IAAI,CAACqJ,aAAa,CAAC3O,MAAM,CAACI,QAAQ,CAAC,WAAW,CAAC,EAAE;MAC/C,MAAM,IAAAyB,wBAAgB,EACpB,6CAA6C,EAC7C,oBACF,CAAC;IACH;;IAEA;IACA,MAAMiN,SAAS,GAAG,MAAMhC,YAAY,CAClChN,gBAAgB,CAACuE,uBAAuB,EACxCuK,eAAe,EACfD,aAAa,EACb,IAAAxN,mCAAuB,EAACuN,UAAU,CAAC,EACnC,WACF,CAAC;;IAED;IACA,IAAI9H,OAAyB;IAC7B,IAAI/F,MAAM,KAAK,KAAK,EAAE;MACpB,MAAMiD,MAAM,GAAGqE,kBAAO,CAACC,IAAI,CAAC0G,SAAS,CAAC;MACtC;MACA,IAAIb,SAAiB;MACrB,IAAIW,eAAe,CAACpO,IAAI,KAAK,QAAQ,EAAE;QACrC;QACA,MAAMuO,SAAS,GAAGjL,MAAM,CAACkL,OAAO,CAAC,CAAC,CAAC;QACnC,IAAID,SAAS,KAAK,CAAC,CAAC,EAAE;UACpBd,SAAS,GAAGnK,MAAM,CAACmL,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAEF,SAAS,CAAC;QACnD,CAAC,MAAM;UACL;UACAd,SAAS,GAAGnK,MAAM,CAACmL,QAAQ,CAAC,MAAM,CAAC,CAACC,IAAI,CAAC,CAAC;QAC5C;MACF,CAAC,MAAM;QACLjB,SAAS,GAAGnK,MAAM,CAACmL,QAAQ,CAAC,MAAM,CAAC;MACrC;MACArI,OAAO,GAAGsH,IAAI,CAACiB,KAAK,CAAClB,SAAS,CAAQ;IACxC,CAAC,MAAM;MACLrH,OAAO,GAAGkI,SAAS;IACrB;;IAEA;IACA,OAAO,IAAI,CAACjB,SAAS,CACnBhN,MAAM,EACN+F,OAAO,EACPiI,qBAAqB,EACrBxJ,WAAW,EACXC,SACF,CAAC;EACH;EAEA,MAAM8J,WAAWA,CACf9O,SAA0B,EAC1B+E,WAAoB,EACpBC,SAAqB,EACe;IACpChF,SAAS,GAAGD,kBAAkB,CAACC,SAAS,EAAE,aAAa,CAAC;IACxD,IAAIqD,MAAiC;IACrC,QAAQrD,SAAS,CAACE,IAAI;MACpB,KAAK,mBAAmB;MACxB;MACA,KAAK,SAAS;MACd;MACA,KAAK,UAAU;QACbmD,MAAM,GAAG,MAAM,IAAA0L,wBAAmB,EAAC/O,SAAS,EAAE+E,WAAW,EAAEC,SAAS,CAAC;QACrE;MACF,KAAK,OAAO;MACZ;MACA,KAAK,MAAM;QACT3B,MAAM,GAAG,MAAM,IAAA2L,sBAAkB,EAC/BhP,SAAS,CAACE,IAAI,EACdF,SAAS,CAACyJ,UAAU,EACpB1E,WAAW,EACXC,SACF,CAAC;QACD8E,wBAAwB,CAACzG,MAAuB,CAAC;QACjD;MACF,KAAK,SAAS;MACd;MACA,KAAK,SAAS;MACd;MACA,KAAK,SAAS;MACd;MACA,KAAK,QAAQ;QACXA,MAAM,GAAG,MAAMyB,cAAc,CAC3B9E,SAAS,EACT+E,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,mBAAmB;QAAE;UACxB,MAAM5E,MAAM,GAAIJ,SAAS,CAAqBI,MAAM,IAAI,GAAG;UAE3D,IAAIA,MAAM,KAAK,GAAG,EAAE;YAClB,MAAM,IAAAmB,wBAAgB,EACpB,8CAA8C,EAC9C,mBACF,CAAC;UACH;UAEA8B,MAAM,GAAG,MAAMyB,cAAc,CAC3B;YACE5E,IAAI,EAAE,mBAAmB;YACzBE,MAAM,EAAE;UACV,CAAC,EACD2E,WAAW,EACXC,SACF,CAAC;UACD;QACF;MACA,KAAK,MAAM;QACT3B,MAAM,GAAG,MAAMkC,eAAe,CAACvF,SAAS,EAAE+E,WAAW,EAAEC,SAAS,CAAC;QACjE;MACF,KAAK,SAAS;MACd;MACA,KAAK,OAAO;QACV3B,MAAM,GAAG,MAAM,IAAA4L,+BAA2B,EACxCjP,SAAS,CAACE,IAAI,CAAC2L,WAAW,CAAC,CAAC,EAC5B9G,WAAW,EACXC,SACF,CAAC;QACD8E,wBAAwB,CAACzG,MAAuB,CAAC;QACjD;MACF,KAAK,WAAW;MAChB;MACA,KAAK,WAAW;MAChB;MACA,KAAK,WAAW;QACdA,MAAM,GAAG,MAAM,IAAA6L,qCAA8B,EAC3ClP,SAAS,CAACE,IAAI,EACd6E,WAAW,EACXC,SACF,CAAC;QACD8E,wBAAwB,CAACzG,MAAuB,CAAC;QACjD;MACF,KAAK,QAAQ;MACb;MACA,KAAK,MAAM;QACTA,MAAM,GAAG,MAAM,IAAA8L,8BAA0B,EACvCnP,SAAS,CAACE,IAAI,CAAC2L,WAAW,CAAC,CAAC,EAC5B9G,WAAW,EACXC,SACF,CAAC;QACD8E,wBAAwB,CAACzG,MAAuB,CAAC;QACjD;MACF;QACE,MAAM,IAAItC,KAAK,CACb,iDAAiDf,SAAS,CAACE,IAAI;AACzE,wCACQ,CAAC;IACL;IAEA,OAAOmD,MAAM;EACf;EAEA,MAAMkK,SAASA,CACbhN,MAAoB,EACpBY,IAAmC,EACnCnB,SAAyC,EACzC+E,WAAoB,EACpBC,SAAqB,EACD;IACpB,MAAMiD,mBAAmB,GAAGlI,kBAAkB,CAACC,SAAS,EAAE,WAAW,CAAC;IACtE,IAAIqD,MAAiB;IACrB,QAAQ4E,mBAAmB,CAAC/H,IAAI;MAC9B,KAAK,mBAAmB;MACxB;MACA,KAAK,SAAS;MACd;MACA,KAAK,UAAU;QACbmD,MAAM,GAAGyC,YAAY,CACnBvF,MAAM,EACNY,IAAI,EACJ8G,mBAAmB,EACnBlD,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,OAAO;MACZ;MACA,KAAK,MAAM;QACT3B,MAAM,GAAG,IAAA+L,eAAW,EAClB7O,MAAM,EACNY,IAAI,EACJ8G,mBAAmB,EACnBlD,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,MAAM;QACT3B,MAAM,GAAG,MAAMqE,aAAa,CAC1BO,mBAAmB,EACnB1H,MAAM,EACNY,IAAI,EACJ4D,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,SAAS;MACd;MACA,KAAK,SAAS;MACd;MACA,KAAK,SAAS;MACd;MACA,KAAK,QAAQ;MACb;MACA,KAAK,mBAAmB;QACtB3B,MAAM,GAAG,MAAM6E,YAAY,CACzBD,mBAAmB,EACnB1H,MAAM,EACNY,IAAI,EACJ4D,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,QAAQ;QACX3B,MAAM,GAAG,MAAMqG,sBAAsB,CACnCzB,mBAAmB,EACnB1H,MAAM,EACNY,IAAI,EACJ4D,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,MAAM;QACT3B,MAAM,GAAG,MAAMwG,aAAa,CAC1BtJ,MAAM,EACNY,IAAI,EACJ8G,mBAAmB,EACnBlD,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,QAAQ;MACb;MACA,KAAK,MAAM;MACX;MACA,KAAK,SAAS;MACd;MACA,KAAK,OAAO;QACV3B,MAAM,GAAG+E,WAAW,CAClB7H,MAAM,EACNY,IAAI,EACJ8G,mBAAmB,EACnBlD,WAAW,EACXC,SACF,CAAC;QACD;MACF,KAAK,WAAW;MAChB;MACA,KAAK,WAAW;MAChB;MACA,KAAK,WAAW;QACd3B,MAAM,GAAGmF,cAAc,CACrBjI,MAAM,EACNY,IAAI,EACJ8G,mBAAmB,EACnBlD,WAAW,EACXC,SACF,CAAC;QACD;MACF;QACE,MAAM,IAAIjE,KAAK,CACb,+CAA+CkH,mBAAmB,CAAC/H,IAAI,EACzE,CAAC;IACL;IAEA,IACE,CAACmD,MAAM,CAACzC,IAAI,KAAK,QAAQ,IAAIyC,MAAM,CAACzC,IAAI,KAAK,SAAS,KACtDyC,MAAM,CAAC3D,MAAM,CAACU,MAAM,KAAK,CAAC,EAC1B;MACA,MAAM,IAAIW,KAAK,CACb,2CAA2CsC,MAAM,CAACzC,IAAI,OACxD,CAAC;IACH;IAEA,OAAOyC,MAAM;EACf;EAEA,MAAM+H,IAAIA,CACRpL,SAA0B,EAC1BM,GAAc,EACda,IAAgB,EACM;IACtB,MAAM8G,mBAAmB,GAAGlI,kBAAkB,CAACC,SAAS,EAAE,MAAM,CAAC;IAEjE,IAAIiI,mBAAmB,CAAC/H,IAAI,KAAK,MAAM,EAAE;MACvC;MACA,IAAI,CAACI,GAAG,CAACZ,MAAM,CAACI,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChC,MAAM,IAAAyB,wBAAgB,EACpB,8BAA8B,EAC9B,oBACF,CAAC;MACH;;MAEA;MACA;MACA;MACA,MAAM4H,GAAG,GAAGlB,mBAA0B;MACtC;MACA,MAAMoH,MAAM,GAAG/O,GAAG,CAACN,SAAgB;MACnC,IAAIwB,aAAa,GAAG,SAAS;MAE7B,IAAI,OAAO2H,GAAG,CAACzH,IAAI,KAAK,QAAQ,EAAE;QAChCF,aAAa,GAAG2H,GAAG,CAACzH,IAAI;MAC1B,CAAC,MAAM,IAAIyH,GAAG,CAACzH,IAAI,EAAExB,IAAI,EAAE;QACzBsB,aAAa,GAAG2H,GAAG,CAACzH,IAAI,CAACxB,IAAI;MAC/B,CAAC,MAAM,IAAI,OAAOmP,MAAM,CAAC3N,IAAI,KAAK,QAAQ,EAAE;QAC1CF,aAAa,GAAG6N,MAAM,CAAC3N,IAAI;MAC7B,CAAC,MAAM,IAAI2N,MAAM,CAAC3N,IAAI,EAAExB,IAAI,EAAE;QAC5BsB,aAAa,GAAG6N,MAAM,CAAC3N,IAAI,CAACxB,IAAI;MAClC;;MAEA;MACA,MAAMoG,OAAO,GAAGhG,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC;MACtC,MAAMyJ,IAAI,GAAG,IAAAC,gBAAU,EAAC7I,aAAa,EAAE8E,OAAO,CAAC;MAC/C8D,IAAI,CAACjH,MAAM,CAAC,IAAAtC,mCAAuB,EAACM,IAAI,CAAC,CAAC;MAC1C,OAAO,IAAAN,mCAAuB,EAACuJ,IAAI,CAACG,MAAM,CAAC,CAAC,CAAC;IAC/C;IAEA,OAAO+B,UAAU,CAACrE,mBAAmB,EAAE3H,GAAG,EAAEa,IAAI,CAAC;EACnD;EAEA,MAAMoK,MAAMA,CACVvL,SAA0B,EAC1BM,GAAc,EACd6J,SAAqB,EACrBhJ,IAAgB,EACE;IAClB,MAAM8G,mBAAmB,GAAGlI,kBAAkB,CAACC,SAAS,EAAE,QAAQ,CAAC;IAEnE,IAAIiI,mBAAmB,CAAC/H,IAAI,KAAK,MAAM,EAAE;MACvC;MACA,IAAI,CAACI,GAAG,CAACZ,MAAM,CAACI,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClC,MAAM,IAAAyB,wBAAgB,EACpB,gCAAgC,EAChC,oBACF,CAAC;MACH;;MAEA;MACA;MACA;MACA,MAAM4H,GAAG,GAAGlB,mBAA0B;MACtC;MACA,MAAMoH,MAAM,GAAG/O,GAAG,CAACN,SAAgB;MACnC,IAAIwB,aAAa,GAAG,SAAS;MAE7B,IAAI,OAAO2H,GAAG,CAACzH,IAAI,KAAK,QAAQ,EAAE;QAChCF,aAAa,GAAG2H,GAAG,CAACzH,IAAI;MAC1B,CAAC,MAAM,IAAIyH,GAAG,CAACzH,IAAI,EAAExB,IAAI,EAAE;QACzBsB,aAAa,GAAG2H,GAAG,CAACzH,IAAI,CAACxB,IAAI;MAC/B,CAAC,MAAM,IAAI,OAAOmP,MAAM,CAAC3N,IAAI,KAAK,QAAQ,EAAE;QAC1CF,aAAa,GAAG6N,MAAM,CAAC3N,IAAI;MAC7B,CAAC,MAAM,IAAI2N,MAAM,CAAC3N,IAAI,EAAExB,IAAI,EAAE;QAC5BsB,aAAa,GAAG6N,MAAM,CAAC3N,IAAI,CAACxB,IAAI;MAClC;;MAEA;MACA,MAAMoG,OAAO,GAAGhG,GAAG,CAACE,SAAS,CAACG,MAAM,CAAC,CAAC;MACtC,MAAMyJ,IAAI,GAAG,IAAAC,gBAAU,EAAC7I,aAAa,EAAE8E,OAAO,CAAC;MAC/C,MAAM2F,UAAU,GAAG,IAAApL,mCAAuB,EAACM,IAAI,CAAC;MAChDiJ,IAAI,CAACjH,MAAM,CAAC8I,UAAU,CAAC;MACvB,MAAMqD,cAAc,GAAGlF,IAAI,CAACG,MAAM,CAAC,CAAC;MACpC,MAAMgF,QAAQ,GAAG,IAAIjM,UAAU,CAAC,IAAAzC,mCAAuB,EAACyO,cAAc,CAAC,CAAC;;MAExE;MACA,MAAME,cAAc,GAAG,IAAIlM,UAAU,CAAC,IAAAzC,mCAAuB,EAACsJ,SAAS,CAAC,CAAC;MACzE,IAAIoF,QAAQ,CAACnP,MAAM,KAAKoP,cAAc,CAACpP,MAAM,EAAE;QAC7C,OAAO,KAAK;MACd;;MAEA;MACA,IAAIiD,MAAM,GAAG,CAAC;MACd,KAAK,IAAIqH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6E,QAAQ,CAACnP,MAAM,EAAEsK,CAAC,EAAE,EAAE;QACxCrH,MAAM,IAAIkM,QAAQ,CAAC7E,CAAC,CAAC,GAAI8E,cAAc,CAAC9E,CAAC,CAAE;MAC7C;MACA,OAAOrH,MAAM,KAAK,CAAC;IACrB;IAEA,OAAOiJ,UAAU,CAACrE,mBAAmB,EAAE3H,GAAG,EAAEa,IAAI,EAAEgJ,SAAS,CAAC;EAC9D;AACF;AAACsF,OAAA,CAAA9C,MAAA,GAAAA,MAAA;AAEM,MAAM+C,MAAM,GAAAD,OAAA,CAAAC,MAAA,GAAG,IAAI/C,MAAM,CAAC,CAAC;AAElC,SAASU,YAAYA,CAACrN,SAA0B,EAAU;EACxD,MAAME,IAAI,GAAGF,SAAS,CAACE,IAAI;EAE3B,QAAQA,IAAI;IACV,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,mBAAmB;MACtB,OAAQF,SAAS,CAAqBI,MAAM,IAAI,GAAG;IAErD,KAAK,MAAM;MAAE;QACX,MAAMuP,OAAO,GAAG3P,SAAgC;QAChD,OAAO2P,OAAO,CAACvP,MAAM,IAAI,GAAG;MAC9B;IAEA;MACE,MAAM,IAAAmB,wBAAgB,EACpB,mCAAmCrB,IAAI,EAAE,EACzC,mBACF,CAAC;EACL;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_safeBuffer","require","_utils","_keys","_conversion","_errors","_hashnames","_validation","_hash","_reactNativeNitroModules","_pbkdf","_ec","_rsa","_random","_hmac","_signVerify","_ed","_mldsa","_hkdf","KWebCryptoKeyFormat","CipherOrWrapMode","hasAnyNotIn","usages","allowed","some","usage","includes","normalizeAlgorithm","algorithm","_operation","name","getAlgorithmName","length","ecExportKey","key","format","keyObject","kWebCryptoKeyFormatSPKI","exported","export","type","bufferLikeToArrayBuffer","kWebCryptoKeyFormatPKCS8","Error","rsaExportKey","rsaCipher","mode","data","rsaParams","expectedType","kWebCryptoCipherEncrypt","lazyDOMException","hashAlgorithm","normalizeHashName","hash","label","undefined","rsaCipherModule","NitroModules","createHybridObject","RSA_PKCS1_OAEP_PADDING","encrypt","handle","decrypt","aesCipher","aesCtrCipher","aesCbcCipher","aesGcmCipher","aesOcbCipher","counter","byteLength","keyLength","cipherType","factory","cipher","createCipher","isCipher","cipherKey","iv","updated","update","final","result","Uint8Array","set","buffer","aesAeadCipher","config","additionalData","tagLength","validTagLengths","algorithmName","tagByteLength","cipherSuffix","authTagLen","processData","kWebCryptoCipherDecrypt","dataView","ciphertextLength","slice","authTag","setAuthTag","setAAD","tag","getAuthTag","ivBuffer","aesKwCipher","isWrap","exportedKey","defaultWrapIV","chaCha20Poly1305Cipher","aesGenerateKey","extractable","keyUsages","validUsages","keyBytes","getRandomValues","createSecretKey","keyAlgorithm","CryptoKey","hmacGenerateKey","hashName","Math","ceil","webCryptoHashName","HashContext","WebCrypto","rsaImportKey","checkSet","jwk","kty","keyType","initJwk","PublicKeyObject","PrivateKeyObject","keyData","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","keyDetails","asymmetricKeyDetails","publicExponentBytes","publicExponent","exp","bytes","value","unshift","floor","normalizedHash","algorithmWithDetails","modulusLength","hmacImportKey","k","decoded","SBuffer","from","keyBitLength","SecretKeyObject","normalizedAlgorithm","aesImportKey","actualLength","edImportKey","isX","allowedUsages","init","jwkData","KeyType","PRIVATE","mldsaImportKey","exportKeySpki","exportKey","exportKeyPkcs8","exportKeyRaw","kWebCryptoKeyFormatRaw","byteOffset","exportKeyJWK","exportJwk","key_ops","ext","alg","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","crv","namedCurve","importGenericSecretKey","checkLength","isBuffer","hkdfImportKey","checkCryptoKeyPairUsages","pair","privateKey","isCryptoKeyPair","hmacSignVerify","signature","hmac","createHmac","computed","digest","sigBytes","computedBytes","i","rsaSignVerify","padding","saltLength","RSA_PKCS1_PADDING","RSA_PKCS1_PSS_PADDING","paddingValue","signer","createSign","sig","sign","verifier","createVerify","verify","edSignVerify","isSign","expectedKeyType","curveType","toLowerCase","ed","Ed","rawKey","dataBuffer","signSync","signatureBuffer","verifySync","mldsaSignVerify","signVerify","ecdsaSignVerify","cipherOrWrap","op","validateMaxBufferLength","Subtle","asyncDigest","deriveBits","baseKey","pbkdf2DeriveBits","xDeriveBits","ecDeriveBits","hkdfDeriveBits","deriveKey","derivedKeyAlgorithm","getKeyLength","derivedBits","importKey","wrapKey","wrappingKey","wrapAlgorithm","jwkString","JSON","stringify","paddedLength","paddedBuffer","alloc","copy","writeUInt8","unwrapKey","wrappedKey","unwrappingKey","unwrapAlgorithm","unwrappedKeyAlgorithm","decrypted","nullIndex","indexOf","toString","trim","parse","generateKey","rsa_generateKeyPair","ec_generateKeyPair","ed_generateKeyPairWebCrypto","mldsa_generateKeyPairWebCrypto","x_generateKeyPairWebCrypto","ecImportKey","keyAlg","expectedDigest","expected","signatureArray","exports","subtle","hmacAlg"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding","KeyFormat","kNamedCurveAliases","KeyVariant"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAE8C;AAoE9C;AA8IA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAMXE,OAAO,GAAAD,OAAA,CAAAC,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,WAAW,GAAAF,OAAA,CAAAE,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAOXC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AASd,MAAMC,kBAAkB,GAAAJ,OAAA,CAAAI,kBAAA,GAAG;EAChC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE;AACX,CAAU;AACV;AAAA,IA0IYC,UAAU,GAAAL,OAAA,CAAAK,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,OAuBtB;AACA;AACA;AAqCA","ignoreList":[]}
1
+ {"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding","KeyFormat","kNamedCurveAliases","KeyVariant"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAE8C;AAoE9C;AA6JA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAMXE,OAAO,GAAAD,OAAA,CAAAC,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,WAAW,GAAAF,OAAA,CAAAE,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAOXC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AASd,MAAMC,kBAAkB,GAAAJ,OAAA,CAAAI,kBAAA,GAAG;EAChC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE;AACX,CAAU;AACV;AAAA,IA0IYC,UAAU,GAAAL,OAAA,CAAAK,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,OAuBtB;AACA;AACA;AAqCA","ignoreList":[]}
@@ -83,6 +83,9 @@ export class DiffieHellman {
83
83
  }
84
84
  this._hybrid.setPrivateKey(keyBuf.buffer);
85
85
  }
86
+ get verifyError() {
87
+ return this._hybrid.getVerifyError();
88
+ }
86
89
  }
87
90
  export function createDiffieHellman(primeOrSize, primeEncodingOrGenerator, generator, _generatorEncoding) {
88
91
  if (typeof primeOrSize === 'number') {
@@ -137,4 +140,5 @@ export function getDiffieHellman(groupName) {
137
140
  // group.prime and group.generator are hex strings
138
141
  return new DiffieHellman(group.prime, group.generator, 'hex');
139
142
  }
143
+ export { getDiffieHellman as createDiffieHellmanGroup };
140
144
  //# sourceMappingURL=diffie-hellman.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","Buffer","DH_GROUPS","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","createHybridObject","gen","initWithSize","primeBuf","isBuffer","from","genBuf","undefined","init","buffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","Error"],"sourceRoot":"../../src","sources":["diffie-hellman.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","Buffer","DH_GROUPS","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","createHybridObject","gen","initWithSize","primeBuf","isBuffer","from","genBuf","undefined","init","buffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","verifyError","getVerifyError","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","Error","createDiffieHellmanGroup"],"sourceRoot":"../../src","sources":["diffie-hellman.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/ec.js CHANGED
@@ -5,6 +5,20 @@ import { CryptoKey, KeyObject, PublicKeyObject, PrivateKeyObject } from './keys'
5
5
  import { bufferLikeToArrayBuffer, getUsagesUnion, hasAnyNotIn, kNamedCurveAliases, lazyDOMException, normalizeHashName, HashContext, KeyEncoding, KFormatType } from './utils';
6
6
  import { Buffer } from '@craftzdog/react-native-buffer';
7
7
  import { ECDH } from './ecdh';
8
+ class EcUtils {
9
+ static get native() {
10
+ if (!this._native) {
11
+ this._native = NitroModules.createHybridObject('EcKeyPair');
12
+ }
13
+ return this._native;
14
+ }
15
+ static getSupportedCurves() {
16
+ return this.native.getSupportedCurves();
17
+ }
18
+ }
19
+ export function getCurves() {
20
+ return EcUtils.getSupportedCurves();
21
+ }
8
22
  export class Ec {
9
23
  constructor(curve) {
10
24
  this.native = NitroModules.createHybridObject('EcKeyPair');
@@ -294,8 +308,7 @@ export function ec_generateKeyPairNodeSync(options, encoding) {
294
308
  return ec_formatKeyPairOutput(ec, encoding);
295
309
  }
296
310
  export function ecDeriveBits(algorithm, baseKey, length) {
297
- const publicParams = algorithm;
298
- const publicKey = publicParams.public;
311
+ const publicKey = algorithm.public;
299
312
  if (!publicKey) {
300
313
  throw new Error('Public key is required for ECDH derivation');
301
314
  }
@@ -309,35 +322,16 @@ export function ecDeriveBits(algorithm, baseKey, length) {
309
322
  if (!namedCurve) {
310
323
  throw new Error('Curve name is missing');
311
324
  }
312
-
313
- // Create new ECDH instance (Node.js style wrapper)
314
- const ecdh = new ECDH(namedCurve);
315
-
316
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
317
- const jwkPrivate = baseKey.keyObject.export({
318
- format: 'jwk'
319
- });
325
+ const opensslCurve = kNamedCurveAliases[namedCurve];
326
+ const ecdh = new ECDH(opensslCurve);
327
+ const jwkPrivate = baseKey.keyObject.handle.exportJwk({}, false);
320
328
  if (!jwkPrivate.d) throw new Error('Invalid private key');
321
329
  const privateBytes = Buffer.from(jwkPrivate.d, 'base64');
322
330
  ecdh.setPrivateKey(privateBytes);
323
-
324
- // Public key
325
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
326
- const jwkPublic = publicKey.keyObject.export({
327
- format: 'jwk'
328
- });
329
-
330
- // HybridECDH `computeSecret` takes public key.
331
- // My implementation `HybridECDH.cpp` `computeSecret` expects what?
332
- // `derive_secret` -> `EVP_PKEY_derive_set_peer`
333
- // `computeSecret` calls `EC_POINT_oct2point`. So it expects an uncompressed/compressed point (04... or 02/03...).
334
- // JWK gives `x` and `y`. We can construct the uncompressed point 04 + x + y.
335
-
331
+ const jwkPublic = publicKey.keyObject.handle.exportJwk({}, false);
336
332
  if (!jwkPublic.x || !jwkPublic.y) throw new Error('Invalid public key');
337
333
  const x = Buffer.from(jwkPublic.x, 'base64');
338
334
  const y = Buffer.from(jwkPublic.y, 'base64');
339
-
340
- // Uncompressed point: 0x04 || x || y
341
335
  const publicBytes = Buffer.concat([Buffer.from([0x04]), x, y]);
342
336
  const secret = ecdh.computeSecret(publicBytes);
343
337
  const secretBuf = Buffer.from(secret);