@fhevm/sdk 1.1.0-alpha.4 → 1.1.0-alpha.6

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 (881) hide show
  1. package/_cjs/core/_version.js +1 -1
  2. package/_cjs/core/actions/base/canDecryptPublicValue.js +1 -1
  3. package/_cjs/core/actions/base/canDecryptPublicValue.js.map +1 -1
  4. package/_cjs/core/actions/base/canDecryptPublicValues.js +1 -1
  5. package/_cjs/core/actions/base/canDecryptPublicValues.js.map +1 -1
  6. package/_cjs/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +5 -5
  7. package/_cjs/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  8. package/_cjs/core/actions/base/index.js +3 -3
  9. package/_cjs/core/actions/base/index.js.map +1 -1
  10. package/_cjs/core/actions/base/readKmsSignersContext.js +2 -1
  11. package/_cjs/core/actions/base/readKmsSignersContext.js.map +1 -1
  12. package/_cjs/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  13. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js +13 -0
  14. package/_cjs/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  15. package/_cjs/core/actions/decrypt/decryptValue.js +3 -1
  16. package/_cjs/core/actions/decrypt/decryptValue.js.map +1 -1
  17. package/_cjs/core/actions/decrypt/decryptValues.js +3 -1
  18. package/_cjs/core/actions/decrypt/decryptValues.js.map +1 -1
  19. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  20. package/_cjs/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  21. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  22. package/_cjs/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  23. package/_cjs/core/actions/decrypt/index.js +3 -3
  24. package/_cjs/core/actions/decrypt/index.js.map +1 -1
  25. package/_cjs/core/actions/encrypt/encryptValue.js +3 -1
  26. package/_cjs/core/actions/encrypt/encryptValue.js.map +1 -1
  27. package/_cjs/core/actions/encrypt/encryptValues.js +3 -1
  28. package/_cjs/core/actions/encrypt/encryptValues.js.map +1 -1
  29. package/_cjs/core/actions/encrypt/generateZkProof.js +5 -1
  30. package/_cjs/core/actions/encrypt/generateZkProof.js.map +1 -1
  31. package/_cjs/core/actions/host/readFhevmExecutorContractData.js +7 -7
  32. package/_cjs/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  33. package/_cjs/core/actions/host/readInputVerifierContractData.js +1 -1
  34. package/_cjs/core/actions/host/readInputVerifierContractData.js.map +1 -1
  35. package/_cjs/core/actions/host/readKmsVerifierContractData.js +6 -5
  36. package/_cjs/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  37. package/_cjs/core/actions/host/resolveFhevmConfig.js +7 -1
  38. package/_cjs/core/actions/host/resolveFhevmConfig.js.map +1 -1
  39. package/_cjs/core/base/bytes.js +2 -1
  40. package/_cjs/core/base/bytes.js.map +1 -1
  41. package/_cjs/core/base/environment.js +122 -0
  42. package/_cjs/core/base/environment.js.map +1 -0
  43. package/_cjs/core/base/errors/Sha256VerificationError.js +15 -0
  44. package/_cjs/core/base/errors/Sha256VerificationError.js.map +1 -0
  45. package/_cjs/core/base/inflate.js +282 -0
  46. package/_cjs/core/base/inflate.js.map +1 -0
  47. package/_cjs/core/base/isomorphicFs.js +24 -0
  48. package/_cjs/core/base/isomorphicFs.js.map +1 -0
  49. package/_cjs/core/base/isomorphicWorker.js +42 -111
  50. package/_cjs/core/base/isomorphicWorker.js.map +1 -1
  51. package/_cjs/core/base/object.js +23 -0
  52. package/_cjs/core/base/object.js.map +1 -1
  53. package/_cjs/core/base/semver.js +166 -0
  54. package/_cjs/core/base/semver.js.map +1 -0
  55. package/_cjs/core/base/uint.js +20 -3
  56. package/_cjs/core/base/uint.js.map +1 -1
  57. package/_cjs/core/base/wasm.js +15 -55
  58. package/_cjs/core/base/wasm.js.map +1 -1
  59. package/_cjs/core/chains/definitions/localTestnet.js +3 -0
  60. package/_cjs/core/chains/definitions/localTestnet.js.map +1 -1
  61. package/_cjs/core/chains/definitions/mainnet.js +1 -0
  62. package/_cjs/core/chains/definitions/mainnet.js.map +1 -1
  63. package/_cjs/core/chains/definitions/sepolia.js +1 -0
  64. package/_cjs/core/chains/definitions/sepolia.js.map +1 -1
  65. package/_cjs/core/clients/decorators/base.js +5 -0
  66. package/_cjs/core/clients/decorators/base.js.map +1 -1
  67. package/_cjs/core/clients/decorators/decrypt-p.js +13 -0
  68. package/_cjs/core/clients/decorators/decrypt-p.js.map +1 -0
  69. package/_cjs/core/clients/decorators/decrypt.js +4 -7
  70. package/_cjs/core/clients/decorators/decrypt.js.map +1 -1
  71. package/_cjs/core/clients/decorators/encrypt-p.js +5 -1
  72. package/_cjs/core/clients/decorators/encrypt-p.js.map +1 -1
  73. package/_cjs/core/clients/decorators/encrypt.js.map +1 -1
  74. package/_cjs/core/coprocessor/ZkProof-p.js +4 -2
  75. package/_cjs/core/coprocessor/ZkProof-p.js.map +1 -1
  76. package/_cjs/core/coprocessor/ZkProofBuilder-p.js +2 -1
  77. package/_cjs/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  78. package/_cjs/core/coprocessor/encrypt.js +1 -1
  79. package/_cjs/core/coprocessor/encrypt.js.map +1 -1
  80. package/_cjs/core/errors/RelayerResponseStatusError.js +3 -2
  81. package/_cjs/core/errors/RelayerResponseStatusError.js.map +1 -1
  82. package/_cjs/core/host-contracts/HostContractVersion-p.js +26 -4
  83. package/_cjs/core/host-contracts/HostContractVersion-p.js.map +1 -1
  84. package/_cjs/core/host-contracts/KmsSignersContext-p.js +23 -5
  85. package/_cjs/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  86. package/_cjs/core/host-contracts/abi-fragments/fragments.js +21 -1
  87. package/_cjs/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  88. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  89. package/_cjs/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  90. package/_cjs/core/host-contracts/checkAllowedForDecryption.js +2 -2
  91. package/_cjs/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  92. package/_cjs/core/host-contracts/checkDelegation.js +8 -8
  93. package/_cjs/core/host-contracts/checkDelegation.js.map +1 -1
  94. package/_cjs/core/host-contracts/checkPersistAllowed.js +9 -9
  95. package/_cjs/core/host-contracts/checkPersistAllowed.js.map +1 -1
  96. package/_cjs/core/host-contracts/getAclAddress-p.js +1 -2
  97. package/_cjs/core/host-contracts/getAclAddress-p.js.map +1 -1
  98. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +51 -0
  99. package/_cjs/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  100. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js +4 -5
  101. package/_cjs/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  102. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  103. package/_cjs/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  104. package/_cjs/core/host-contracts/getHandleVersion-p.js +1 -2
  105. package/_cjs/core/host-contracts/getHandleVersion-p.js.map +1 -1
  106. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  107. package/_cjs/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  108. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  109. package/_cjs/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  110. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js +5 -7
  111. package/_cjs/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  112. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +4 -5
  113. package/_cjs/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  114. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js +3 -5
  115. package/_cjs/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  116. package/_cjs/core/host-contracts/isAllowedForDecryption.js +4 -4
  117. package/_cjs/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  118. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  119. package/_cjs/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  120. package/_cjs/core/host-contracts/isUserDecryptable.js +2 -2
  121. package/_cjs/core/host-contracts/isUserDecryptable.js.map +1 -1
  122. package/_cjs/core/host-contracts/persistAllowed.js +4 -4
  123. package/_cjs/core/host-contracts/persistAllowed.js.map +1 -1
  124. package/_cjs/core/host-contracts/readKmsSignersContext-p.js +74 -25
  125. package/_cjs/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  126. package/_cjs/core/key/FheEncryptionKeyWasm-p.js +12 -4
  127. package/_cjs/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  128. package/_cjs/core/key/deserializeFheEncryptionKey.js +3 -0
  129. package/_cjs/core/key/deserializeFheEncryptionKey.js.map +1 -1
  130. package/_cjs/core/key/fetchFheEncryptionKey.js +1 -1
  131. package/_cjs/core/key/fetchFheEncryptionKey.js.map +1 -1
  132. package/_cjs/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  133. package/_cjs/core/key/serializeFheEncryptionKey.js +4 -1
  134. package/_cjs/core/key/serializeFheEncryptionKey.js.map +1 -1
  135. package/_cjs/core/kms/KmsSigncryptedShares-p.js +9 -1
  136. package/_cjs/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  137. package/_cjs/core/kms/SignedDecryptionPermit-p.js +5 -1
  138. package/_cjs/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  139. package/_cjs/core/kms/TransportKeyPair-p.js +27 -7
  140. package/_cjs/core/kms/TransportKeyPair-p.js.map +1 -1
  141. package/_cjs/core/kms/createKmsUserDecryptEip712.js +8 -0
  142. package/_cjs/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  143. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js +97 -0
  144. package/_cjs/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  145. package/_cjs/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +10 -3
  146. package/_cjs/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  147. package/_cjs/core/kms/decryptValuesFromPairs.js +4 -4
  148. package/_cjs/core/kms/decryptValuesFromPairs.js.map +1 -1
  149. package/_cjs/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +10 -6
  150. package/_cjs/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  151. package/_cjs/core/kms/kmsExtraData.js +53 -10
  152. package/_cjs/core/kms/kmsExtraData.js.map +1 -1
  153. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js +25 -0
  154. package/_cjs/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  155. package/_cjs/core/kms/publicDecrypt.js +5 -3
  156. package/_cjs/core/kms/publicDecrypt.js.map +1 -1
  157. package/_cjs/core/modules/decrypt/mock.js +1 -23
  158. package/_cjs/core/modules/decrypt/mock.js.map +1 -1
  159. package/_cjs/core/modules/decrypt/module/api-p.js +51 -23
  160. package/_cjs/core/modules/decrypt/module/api-p.js.map +1 -1
  161. package/_cjs/core/modules/decrypt/module/index.js +5 -27
  162. package/_cjs/core/modules/decrypt/module/index.js.map +1 -1
  163. package/_cjs/core/modules/decrypt/module/init-p.js +155 -49
  164. package/_cjs/core/modules/decrypt/module/init-p.js.map +1 -1
  165. package/_cjs/core/modules/encrypt/mock.js +26 -8
  166. package/_cjs/core/modules/encrypt/mock.js.map +1 -1
  167. package/_cjs/core/modules/encrypt/module/api-p.js +50 -21
  168. package/_cjs/core/modules/encrypt/module/api-p.js.map +1 -1
  169. package/_cjs/core/modules/encrypt/module/index.js +3 -3
  170. package/_cjs/core/modules/encrypt/module/index.js.map +1 -1
  171. package/_cjs/core/modules/encrypt/module/init-p.js +211 -69
  172. package/_cjs/core/modules/encrypt/module/init-p.js.map +1 -1
  173. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +1 -1
  174. package/_cjs/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  175. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js +1 -1
  176. package/_cjs/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  177. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js +28 -4
  178. package/_cjs/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  179. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js +5 -1
  180. package/_cjs/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  181. package/_cjs/core/modules/relayer/module/readErrorMessage.js +29 -0
  182. package/_cjs/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  183. package/_cjs/core/runtime/CoreFhevm-p.js +171 -5
  184. package/_cjs/core/runtime/CoreFhevm-p.js.map +1 -1
  185. package/_cjs/core/runtime/HyperWasmSolver-p.js +187 -0
  186. package/_cjs/core/runtime/HyperWasmSolver-p.js.map +1 -0
  187. package/_cjs/core/runtime/ProtocolVersionResolver-p.js +270 -0
  188. package/_cjs/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  189. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  190. package/_cjs/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  191. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  192. package/_cjs/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  193. package/_cjs/core/runtime/initFhevmRuntime-p.js +4 -1
  194. package/_cjs/core/runtime/initFhevmRuntime-p.js.map +1 -1
  195. package/_cjs/core/runtime/resolveFhevmVersions-p.js +48 -0
  196. package/_cjs/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  197. package/_cjs/core/runtimeConfig-p.js +10 -0
  198. package/_cjs/core/runtimeConfig-p.js.map +1 -1
  199. package/_cjs/core/types/{zkProofBuilder.js → moduleVersions.js} +1 -1
  200. package/_cjs/core/types/moduleVersions.js.map +1 -0
  201. package/_cjs/core/types/{fhevmUser.js → wasmAssets.js} +1 -1
  202. package/_cjs/core/types/wasmAssets.js.map +1 -0
  203. package/_cjs/core/types/{fhevmDecryptionKey.js → zkProofBuilder-p.js} +1 -1
  204. package/_cjs/core/types/zkProofBuilder-p.js.map +1 -0
  205. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  206. package/_cjs/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  207. package/_cjs/ethers/internal/config.js +1 -18
  208. package/_cjs/ethers/internal/config.js.map +1 -1
  209. package/_cjs/viem/internal/config.js +1 -18
  210. package/_cjs/viem/internal/config.js.map +1 -1
  211. package/_cjs/wasm/tfhe/TfheApi.d.ts +12 -12
  212. package/_cjs/wasm/tfhe/loadTfheLib.js +11 -11
  213. package/_cjs/wasm/tfhe/loadTfheLib.js.map +2 -2
  214. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js +26 -9
  215. package/_cjs/wasm/tfhe/v1.5.3/startWorkers.js.map +2 -2
  216. package/_cjs/wasm/tfhe/v1.5.3/tfhe.d.ts +7 -0
  217. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js +6 -1
  218. package/_cjs/wasm/tfhe/v1.5.3/tfhe.js.map +2 -2
  219. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +28 -11
  220. package/_cjs/wasm/tfhe/v1.6.2/startWorkers.js.map +7 -0
  221. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  222. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +92 -85
  223. package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +251 -443
  224. package/_cjs/wasm/tfhe/v1.6.2/tfhe.js.map +7 -0
  225. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  226. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +35 -0
  227. package/_cjs/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js.map +7 -0
  228. package/_cjs/wasm/tkms/loadKmsLib.js.map +1 -1
  229. package/_cjs/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  230. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js +6 -1
  231. package/_cjs/wasm/tkms/v0.13.10/kms_lib.js.map +2 -2
  232. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  233. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js +6 -1
  234. package/_cjs/wasm/tkms/v0.13.20-0/kms_lib.js.map +2 -2
  235. package/_cjs/wasm/wasmBaseUrl.js +12 -7
  236. package/_cjs/wasm/wasmBaseUrl.js.map +2 -2
  237. package/_esm/core/_version.js +1 -1
  238. package/_esm/core/actions/base/canDecryptPublicValue.js +1 -1
  239. package/_esm/core/actions/base/canDecryptPublicValue.js.map +1 -1
  240. package/_esm/core/actions/base/canDecryptPublicValues.js +1 -1
  241. package/_esm/core/actions/base/canDecryptPublicValues.js.map +1 -1
  242. package/_esm/core/actions/base/{fetchKmsSignedcryptedShares.js → fetchKmsSigncryptedShares.js} +4 -4
  243. package/_esm/core/actions/base/fetchKmsSigncryptedShares.js.map +1 -0
  244. package/_esm/core/actions/base/index.js +1 -1
  245. package/_esm/core/actions/base/index.js.map +1 -1
  246. package/_esm/core/actions/base/readKmsSignersContext.js +2 -1
  247. package/_esm/core/actions/base/readKmsSignersContext.js.map +1 -1
  248. package/_esm/core/actions/chain/parseTransportKeyPair.js.map +1 -1
  249. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js +11 -0
  250. package/_esm/core/actions/decrypt/decryptKmsSigncryptedShares.js.map +1 -0
  251. package/_esm/core/actions/decrypt/decryptValue.js +3 -1
  252. package/_esm/core/actions/decrypt/decryptValue.js.map +1 -1
  253. package/_esm/core/actions/decrypt/decryptValues.js +3 -1
  254. package/_esm/core/actions/decrypt/decryptValues.js.map +1 -1
  255. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js +3 -1
  256. package/_esm/core/actions/decrypt/decryptValuesFromPairs.js.map +1 -1
  257. package/_esm/core/actions/decrypt/generateTransportKeyPair.js +3 -1
  258. package/_esm/core/actions/decrypt/generateTransportKeyPair.js.map +1 -1
  259. package/_esm/core/actions/decrypt/index.js +1 -1
  260. package/_esm/core/actions/decrypt/index.js.map +1 -1
  261. package/_esm/core/actions/encrypt/encryptValue.js +3 -1
  262. package/_esm/core/actions/encrypt/encryptValue.js.map +1 -1
  263. package/_esm/core/actions/encrypt/encryptValues.js +3 -1
  264. package/_esm/core/actions/encrypt/encryptValues.js.map +1 -1
  265. package/_esm/core/actions/encrypt/generateZkProof.js +5 -1
  266. package/_esm/core/actions/encrypt/generateZkProof.js.map +1 -1
  267. package/_esm/core/actions/host/readFhevmExecutorContractData.js +8 -8
  268. package/_esm/core/actions/host/readFhevmExecutorContractData.js.map +1 -1
  269. package/_esm/core/actions/host/readInputVerifierContractData.js +2 -2
  270. package/_esm/core/actions/host/readInputVerifierContractData.js.map +1 -1
  271. package/_esm/core/actions/host/readKmsVerifierContractData.js +7 -6
  272. package/_esm/core/actions/host/readKmsVerifierContractData.js.map +1 -1
  273. package/_esm/core/actions/host/resolveFhevmConfig.js +7 -1
  274. package/_esm/core/actions/host/resolveFhevmConfig.js.map +1 -1
  275. package/_esm/core/base/bytes.js +2 -1
  276. package/_esm/core/base/bytes.js.map +1 -1
  277. package/_esm/core/base/environment.js +164 -0
  278. package/_esm/core/base/environment.js.map +1 -0
  279. package/_esm/core/base/errors/Sha256VerificationError.js +11 -0
  280. package/_esm/core/base/errors/Sha256VerificationError.js.map +1 -0
  281. package/_esm/core/base/inflate.js +337 -0
  282. package/_esm/core/base/inflate.js.map +1 -0
  283. package/_esm/core/base/isomorphicFs.js +21 -0
  284. package/_esm/core/base/isomorphicFs.js.map +1 -0
  285. package/_esm/core/base/isomorphicWorker.js +92 -85
  286. package/_esm/core/base/isomorphicWorker.js.map +1 -1
  287. package/_esm/core/base/object.js +28 -0
  288. package/_esm/core/base/object.js.map +1 -1
  289. package/_esm/core/base/semver.js +164 -0
  290. package/_esm/core/base/semver.js.map +1 -0
  291. package/_esm/core/base/uint.js +23 -2
  292. package/_esm/core/base/uint.js.map +1 -1
  293. package/_esm/core/base/wasm.js +25 -31
  294. package/_esm/core/base/wasm.js.map +1 -1
  295. package/_esm/core/chains/definitions/localTestnet.js +3 -0
  296. package/_esm/core/chains/definitions/localTestnet.js.map +1 -1
  297. package/_esm/core/chains/definitions/mainnet.js +1 -0
  298. package/_esm/core/chains/definitions/mainnet.js.map +1 -1
  299. package/_esm/core/chains/definitions/sepolia.js +1 -0
  300. package/_esm/core/chains/definitions/sepolia.js.map +1 -1
  301. package/_esm/core/clients/decorators/base.js +6 -1
  302. package/_esm/core/clients/decorators/base.js.map +1 -1
  303. package/_esm/core/clients/decorators/decrypt-p.js +11 -0
  304. package/_esm/core/clients/decorators/decrypt-p.js.map +1 -0
  305. package/_esm/core/clients/decorators/decrypt.js +3 -7
  306. package/_esm/core/clients/decorators/decrypt.js.map +1 -1
  307. package/_esm/core/clients/decorators/encrypt-p.js +6 -2
  308. package/_esm/core/clients/decorators/encrypt-p.js.map +1 -1
  309. package/_esm/core/clients/decorators/encrypt.js.map +1 -1
  310. package/_esm/core/coprocessor/ZkProof-p.js +4 -2
  311. package/_esm/core/coprocessor/ZkProof-p.js.map +1 -1
  312. package/_esm/core/coprocessor/ZkProofBuilder-p.js +2 -1
  313. package/_esm/core/coprocessor/ZkProofBuilder-p.js.map +1 -1
  314. package/_esm/core/coprocessor/encrypt.js +1 -1
  315. package/_esm/core/coprocessor/encrypt.js.map +1 -1
  316. package/_esm/core/errors/RelayerResponseStatusError.js +7 -2
  317. package/_esm/core/errors/RelayerResponseStatusError.js.map +1 -1
  318. package/_esm/core/host-contracts/HostContractVersion-p.js +34 -3
  319. package/_esm/core/host-contracts/HostContractVersion-p.js.map +1 -1
  320. package/_esm/core/host-contracts/KmsSignersContext-p.js +24 -6
  321. package/_esm/core/host-contracts/KmsSignersContext-p.js.map +1 -1
  322. package/_esm/core/host-contracts/abi-fragments/fragments.js +24 -0
  323. package/_esm/core/host-contracts/abi-fragments/fragments.js.map +1 -1
  324. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js +1 -1
  325. package/_esm/core/host-contracts/canDecryptValuesFromPairs.js.map +1 -1
  326. package/_esm/core/host-contracts/checkAllowedForDecryption.js +2 -2
  327. package/_esm/core/host-contracts/checkAllowedForDecryption.js.map +1 -1
  328. package/_esm/core/host-contracts/checkDelegation.js +8 -8
  329. package/_esm/core/host-contracts/checkDelegation.js.map +1 -1
  330. package/_esm/core/host-contracts/checkPersistAllowed.js +9 -9
  331. package/_esm/core/host-contracts/checkPersistAllowed.js.map +1 -1
  332. package/_esm/core/host-contracts/getAclAddress-p.js +1 -2
  333. package/_esm/core/host-contracts/getAclAddress-p.js.map +1 -1
  334. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js +63 -0
  335. package/_esm/core/host-contracts/getCurrentKmsContextAndEpoch-p.js.map +1 -0
  336. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js +6 -7
  337. package/_esm/core/host-contracts/getCurrentKmsContextId-p.js.map +1 -1
  338. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js +1 -1
  339. package/_esm/core/host-contracts/getFhevmExecutorAddress-p.js.map +1 -1
  340. package/_esm/core/host-contracts/getHandleVersion-p.js +1 -2
  341. package/_esm/core/host-contracts/getHandleVersion-p.js.map +1 -1
  342. package/_esm/core/host-contracts/getHcuLimitAddress-p.js +1 -2
  343. package/_esm/core/host-contracts/getHcuLimitAddress-p.js.map +1 -1
  344. package/_esm/core/host-contracts/getInputVerifierAddress-p.js +1 -2
  345. package/_esm/core/host-contracts/getInputVerifierAddress-p.js.map +1 -1
  346. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js +6 -8
  347. package/_esm/core/host-contracts/getKmsContextSignersAndThreshold-p.js.map +1 -1
  348. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js +5 -6
  349. package/_esm/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.js.map +1 -1
  350. package/_esm/core/host-contracts/getSignersForKmsContext-p.js +5 -7
  351. package/_esm/core/host-contracts/getSignersForKmsContext-p.js.map +1 -1
  352. package/_esm/core/host-contracts/isAllowedForDecryption.js +4 -4
  353. package/_esm/core/host-contracts/isAllowedForDecryption.js.map +1 -1
  354. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js +5 -5
  355. package/_esm/core/host-contracts/isHandleDelegatedForUserDecryption-p.js.map +1 -1
  356. package/_esm/core/host-contracts/isUserDecryptable.js +2 -2
  357. package/_esm/core/host-contracts/isUserDecryptable.js.map +1 -1
  358. package/_esm/core/host-contracts/persistAllowed.js +4 -4
  359. package/_esm/core/host-contracts/persistAllowed.js.map +1 -1
  360. package/_esm/core/host-contracts/readKmsSignersContext-p.js +89 -29
  361. package/_esm/core/host-contracts/readKmsSignersContext-p.js.map +1 -1
  362. package/_esm/core/key/FheEncryptionKeyWasm-p.js +12 -4
  363. package/_esm/core/key/FheEncryptionKeyWasm-p.js.map +1 -1
  364. package/_esm/core/key/deserializeFheEncryptionKey.js +3 -0
  365. package/_esm/core/key/deserializeFheEncryptionKey.js.map +1 -1
  366. package/_esm/core/key/fetchFheEncryptionKey.js +1 -1
  367. package/_esm/core/key/fetchFheEncryptionKey.js.map +1 -1
  368. package/_esm/core/key/fetchFheEncryptionKeyBytes.js.map +1 -1
  369. package/_esm/core/key/serializeFheEncryptionKey.js +4 -1
  370. package/_esm/core/key/serializeFheEncryptionKey.js.map +1 -1
  371. package/_esm/core/kms/KmsSigncryptedShares-p.js +9 -1
  372. package/_esm/core/kms/KmsSigncryptedShares-p.js.map +1 -1
  373. package/_esm/core/kms/SignedDecryptionPermit-p.js +5 -1
  374. package/_esm/core/kms/SignedDecryptionPermit-p.js.map +1 -1
  375. package/_esm/core/kms/TransportKeyPair-p.js +28 -7
  376. package/_esm/core/kms/TransportKeyPair-p.js.map +1 -1
  377. package/_esm/core/kms/createKmsUserDecryptEip712.js +8 -0
  378. package/_esm/core/kms/createKmsUserDecryptEip712.js.map +1 -1
  379. package/_esm/core/kms/createKmsUserDecryptEip712V2.js +98 -0
  380. package/_esm/core/kms/createKmsUserDecryptEip712V2.js.map +1 -0
  381. package/_esm/core/kms/{decryptKmsSignedcryptedShares-p.js → decryptKmsSigncryptedShares-p.js} +9 -2
  382. package/_esm/core/kms/decryptKmsSigncryptedShares-p.js.map +1 -0
  383. package/_esm/core/kms/decryptValuesFromPairs.js +4 -4
  384. package/_esm/core/kms/decryptValuesFromPairs.js.map +1 -1
  385. package/_esm/core/kms/{fetchKmsSignedcryptedShares-p.js → fetchKmsSigncryptedShares-p.js} +12 -6
  386. package/_esm/core/kms/fetchKmsSigncryptedShares-p.js.map +1 -0
  387. package/_esm/core/kms/kmsExtraData.js +70 -12
  388. package/_esm/core/kms/kmsExtraData.js.map +1 -1
  389. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js +28 -0
  390. package/_esm/core/kms/kmsUserDecryptEip712V2Types.js.map +1 -0
  391. package/_esm/core/kms/publicDecrypt.js +5 -3
  392. package/_esm/core/kms/publicDecrypt.js.map +1 -1
  393. package/_esm/core/modules/decrypt/mock.js +0 -24
  394. package/_esm/core/modules/decrypt/mock.js.map +1 -1
  395. package/_esm/core/modules/decrypt/module/api-p.js +51 -23
  396. package/_esm/core/modules/decrypt/module/api-p.js.map +1 -1
  397. package/_esm/core/modules/decrypt/module/index.js +31 -25
  398. package/_esm/core/modules/decrypt/module/index.js.map +1 -1
  399. package/_esm/core/modules/decrypt/module/init-p.js +141 -64
  400. package/_esm/core/modules/decrypt/module/init-p.js.map +1 -1
  401. package/_esm/core/modules/encrypt/mock.js +26 -9
  402. package/_esm/core/modules/encrypt/mock.js.map +1 -1
  403. package/_esm/core/modules/encrypt/module/api-p.js +50 -21
  404. package/_esm/core/modules/encrypt/module/api-p.js.map +1 -1
  405. package/_esm/core/modules/encrypt/module/index.js +3 -3
  406. package/_esm/core/modules/encrypt/module/index.js.map +1 -1
  407. package/_esm/core/modules/encrypt/module/init-p.js +369 -82
  408. package/_esm/core/modules/encrypt/module/init-p.js.map +1 -1
  409. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js +2 -2
  410. package/_esm/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.js.map +1 -1
  411. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js +2 -2
  412. package/_esm/core/modules/relayer/cleartext/fetchUserDecrypt.js.map +1 -1
  413. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js +57 -4
  414. package/_esm/core/modules/relayer/module/RelayerAsyncRequest.js.map +1 -1
  415. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js +8 -1
  416. package/_esm/core/modules/relayer/module/fetchFheEncryptionKeySource.js.map +1 -1
  417. package/_esm/core/modules/relayer/module/readErrorMessage.js +52 -0
  418. package/_esm/core/modules/relayer/module/readErrorMessage.js.map +1 -0
  419. package/_esm/core/runtime/CoreFhevm-p.js +167 -5
  420. package/_esm/core/runtime/CoreFhevm-p.js.map +1 -1
  421. package/_esm/core/runtime/HyperWasmSolver-p.js +268 -0
  422. package/_esm/core/runtime/HyperWasmSolver-p.js.map +1 -0
  423. package/_esm/core/runtime/ProtocolVersionResolver-p.js +326 -0
  424. package/_esm/core/runtime/ProtocolVersionResolver-p.js.map +1 -0
  425. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js +1 -1
  426. package/_esm/core/runtime/initFhevmDecryptRuntime-p.js.map +1 -1
  427. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js +1 -1
  428. package/_esm/core/runtime/initFhevmEncryptRuntime-p.js.map +1 -1
  429. package/_esm/core/runtime/initFhevmRuntime-p.js +4 -1
  430. package/_esm/core/runtime/initFhevmRuntime-p.js.map +1 -1
  431. package/_esm/core/runtime/resolveFhevmVersions-p.js +62 -0
  432. package/_esm/core/runtime/resolveFhevmVersions-p.js.map +1 -0
  433. package/_esm/core/runtimeConfig-p.js +9 -0
  434. package/_esm/core/runtimeConfig-p.js.map +1 -1
  435. package/_esm/core/types/moduleVersions.js +2 -0
  436. package/_esm/core/types/moduleVersions.js.map +1 -0
  437. package/_esm/core/types/wasmAssets.js +2 -0
  438. package/_esm/core/types/wasmAssets.js.map +1 -0
  439. package/_esm/core/types/zkProofBuilder-p.js +2 -0
  440. package/_esm/core/types/zkProofBuilder-p.js.map +1 -0
  441. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js +1 -0
  442. package/_esm/core/utils-p/decrypt/verifyTkmsPublicKey.js.map +1 -1
  443. package/_esm/ethers/internal/config.js +1 -18
  444. package/_esm/ethers/internal/config.js.map +1 -1
  445. package/_esm/viem/internal/config.js +1 -18
  446. package/_esm/viem/internal/config.js.map +1 -1
  447. package/_esm/wasm/tfhe/TfheApi.d.ts +12 -12
  448. package/_esm/wasm/tfhe/loadTfheLib.js +11 -11
  449. package/_esm/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  450. package/_esm/wasm/tfhe/v1.5.3/tfhe.d.ts +7 -0
  451. package/_esm/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  452. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  453. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  454. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +92 -85
  455. package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +253 -442
  456. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  457. package/_esm/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  458. package/_esm/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  459. package/_esm/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  460. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  461. package/_esm/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  462. package/_esm/wasm/wasmBaseUrl.js +32 -4
  463. package/_types/core/actions/base/{fetchKmsSignedcryptedShares.d.ts → fetchKmsSigncryptedShares.d.ts} +7 -7
  464. package/_types/core/actions/base/fetchKmsSigncryptedShares.d.ts.map +1 -0
  465. package/_types/core/actions/base/index.d.ts +1 -1
  466. package/_types/core/actions/base/index.d.ts.map +1 -1
  467. package/_types/core/actions/base/readKmsSignersContext.d.ts.map +1 -1
  468. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts +2 -2
  469. package/_types/core/actions/chain/parseSignedDecryptionPermit.d.ts.map +1 -1
  470. package/_types/core/actions/chain/parseTransportKeyPair.d.ts +1 -1
  471. package/_types/core/actions/chain/parseTransportKeyPair.d.ts.map +1 -1
  472. package/_types/core/actions/decrypt/{decryptKmsSignedcryptedShares.d.ts → decryptKmsSigncryptedShares.d.ts} +4 -4
  473. package/_types/core/actions/decrypt/decryptKmsSigncryptedShares.d.ts.map +1 -0
  474. package/_types/core/actions/decrypt/decryptValue.d.ts.map +1 -1
  475. package/_types/core/actions/decrypt/decryptValues.d.ts.map +1 -1
  476. package/_types/core/actions/decrypt/decryptValuesFromPairs.d.ts.map +1 -1
  477. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts +2 -2
  478. package/_types/core/actions/decrypt/generateTransportKeyPair.d.ts.map +1 -1
  479. package/_types/core/actions/decrypt/index.d.ts +1 -1
  480. package/_types/core/actions/decrypt/index.d.ts.map +1 -1
  481. package/_types/core/actions/encrypt/encryptValue.d.ts.map +1 -1
  482. package/_types/core/actions/encrypt/encryptValues.d.ts.map +1 -1
  483. package/_types/core/actions/encrypt/generateZkProof.d.ts.map +1 -1
  484. package/_types/core/actions/host/readKmsVerifierContractData.d.ts +1 -0
  485. package/_types/core/actions/host/readKmsVerifierContractData.d.ts.map +1 -1
  486. package/_types/core/actions/host/resolveFhevmConfig.d.ts +2 -0
  487. package/_types/core/actions/host/resolveFhevmConfig.d.ts.map +1 -1
  488. package/_types/core/base/bytes.d.ts.map +1 -1
  489. package/_types/core/base/environment.d.ts +92 -0
  490. package/_types/core/base/environment.d.ts.map +1 -0
  491. package/_types/core/base/errors/Sha256VerificationError.d.ts +14 -0
  492. package/_types/core/base/errors/Sha256VerificationError.d.ts.map +1 -0
  493. package/_types/core/base/inflate.d.ts +25 -0
  494. package/_types/core/base/inflate.d.ts.map +1 -0
  495. package/_types/core/base/isomorphicFs.d.ts +2 -0
  496. package/_types/core/base/isomorphicFs.d.ts.map +1 -0
  497. package/_types/core/base/isomorphicWorker.d.ts +27 -43
  498. package/_types/core/base/isomorphicWorker.d.ts.map +1 -1
  499. package/_types/core/base/object.d.ts +7 -0
  500. package/_types/core/base/object.d.ts.map +1 -1
  501. package/_types/core/base/semver.d.ts +39 -0
  502. package/_types/core/base/semver.d.ts.map +1 -0
  503. package/_types/core/base/uint.d.ts +13 -2
  504. package/_types/core/base/uint.d.ts.map +1 -1
  505. package/_types/core/base/wasm.d.ts +0 -8
  506. package/_types/core/base/wasm.d.ts.map +1 -1
  507. package/_types/core/chains/definitions/localTestnet.d.ts +3 -0
  508. package/_types/core/chains/definitions/localTestnet.d.ts.map +1 -1
  509. package/_types/core/chains/definitions/mainnet.d.ts +1 -0
  510. package/_types/core/chains/definitions/mainnet.d.ts.map +1 -1
  511. package/_types/core/chains/definitions/sepolia.d.ts.map +1 -1
  512. package/_types/core/clients/decorators/base.d.ts.map +1 -1
  513. package/_types/core/clients/decorators/decrypt-p.d.ts +4 -0
  514. package/_types/core/clients/decorators/decrypt-p.d.ts.map +1 -0
  515. package/_types/core/clients/decorators/decrypt.d.ts +4 -2
  516. package/_types/core/clients/decorators/decrypt.d.ts.map +1 -1
  517. package/_types/core/clients/decorators/encrypt-p.d.ts +2 -3
  518. package/_types/core/clients/decorators/encrypt-p.d.ts.map +1 -1
  519. package/_types/core/clients/decorators/encrypt.d.ts +4 -2
  520. package/_types/core/clients/decorators/encrypt.d.ts.map +1 -1
  521. package/_types/core/coprocessor/ZkProof-p.d.ts +9 -2
  522. package/_types/core/coprocessor/ZkProof-p.d.ts.map +1 -1
  523. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts +3 -1
  524. package/_types/core/coprocessor/ZkProofBuilder-p.d.ts.map +1 -1
  525. package/_types/core/coprocessor/encrypt.d.ts +2 -0
  526. package/_types/core/coprocessor/encrypt.d.ts.map +1 -1
  527. package/_types/core/errors/RelayerResponseStatusError.d.ts +7 -1
  528. package/_types/core/errors/RelayerResponseStatusError.d.ts.map +1 -1
  529. package/_types/core/host-contracts/HostContractVersion-p.d.ts +18 -1
  530. package/_types/core/host-contracts/HostContractVersion-p.d.ts.map +1 -1
  531. package/_types/core/host-contracts/KmsSignersContext-p.d.ts +2 -1
  532. package/_types/core/host-contracts/KmsSignersContext-p.d.ts.map +1 -1
  533. package/_types/core/host-contracts/abi-fragments/fragments.d.ts +5 -0
  534. package/_types/core/host-contracts/abi-fragments/fragments.d.ts.map +1 -1
  535. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts +1 -1
  536. package/_types/core/host-contracts/checkAllowedForDecryption.d.ts.map +1 -1
  537. package/_types/core/host-contracts/checkDelegation.d.ts +1 -1
  538. package/_types/core/host-contracts/checkDelegation.d.ts.map +1 -1
  539. package/_types/core/host-contracts/checkPersistAllowed.d.ts +1 -1
  540. package/_types/core/host-contracts/checkPersistAllowed.d.ts.map +1 -1
  541. package/_types/core/host-contracts/getAclAddress-p.d.ts +1 -1
  542. package/_types/core/host-contracts/getAclAddress-p.d.ts.map +1 -1
  543. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts +30 -0
  544. package/_types/core/host-contracts/getCurrentKmsContextAndEpoch-p.d.ts.map +1 -0
  545. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts +1 -1
  546. package/_types/core/host-contracts/getCurrentKmsContextId-p.d.ts.map +1 -1
  547. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts +1 -1
  548. package/_types/core/host-contracts/getFhevmExecutorAddress-p.d.ts.map +1 -1
  549. package/_types/core/host-contracts/getHandleVersion-p.d.ts +1 -1
  550. package/_types/core/host-contracts/getHandleVersion-p.d.ts.map +1 -1
  551. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts +1 -1
  552. package/_types/core/host-contracts/getHcuLimitAddress-p.d.ts.map +1 -1
  553. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts +1 -1
  554. package/_types/core/host-contracts/getInputVerifierAddress-p.d.ts.map +1 -1
  555. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts +1 -1
  556. package/_types/core/host-contracts/getKmsContextSignersAndThreshold-p.d.ts.map +1 -1
  557. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts +1 -1
  558. package/_types/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.d.ts.map +1 -1
  559. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts +2 -2
  560. package/_types/core/host-contracts/getSignersForKmsContext-p.d.ts.map +1 -1
  561. package/_types/core/host-contracts/isAllowedForDecryption.d.ts +1 -1
  562. package/_types/core/host-contracts/isAllowedForDecryption.d.ts.map +1 -1
  563. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts +1 -1
  564. package/_types/core/host-contracts/isHandleDelegatedForUserDecryption-p.d.ts.map +1 -1
  565. package/_types/core/host-contracts/isUserDecryptable.d.ts +1 -1
  566. package/_types/core/host-contracts/isUserDecryptable.d.ts.map +1 -1
  567. package/_types/core/host-contracts/persistAllowed.d.ts +1 -1
  568. package/_types/core/host-contracts/persistAllowed.d.ts.map +1 -1
  569. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts +25 -7
  570. package/_types/core/host-contracts/readKmsSignersContext-p.d.ts.map +1 -1
  571. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts +3 -1
  572. package/_types/core/key/FheEncryptionKeyWasm-p.d.ts.map +1 -1
  573. package/_types/core/key/deserializeFheEncryptionKey.d.ts +2 -0
  574. package/_types/core/key/deserializeFheEncryptionKey.d.ts.map +1 -1
  575. package/_types/core/key/fetchFheEncryptionKey.d.ts +3 -1
  576. package/_types/core/key/fetchFheEncryptionKey.d.ts.map +1 -1
  577. package/_types/core/key/fetchFheEncryptionKeyBytes.d.ts.map +1 -1
  578. package/_types/core/key/serializeFheEncryptionKey.d.ts.map +1 -1
  579. package/_types/core/kms/KmsSigncryptedShares-p.d.ts.map +1 -1
  580. package/_types/core/kms/SignedDecryptionPermit-p.d.ts.map +1 -1
  581. package/_types/core/kms/TransportKeyPair-p.d.ts +9 -0
  582. package/_types/core/kms/TransportKeyPair-p.d.ts.map +1 -1
  583. package/_types/core/kms/createKmsUserDecryptEip712.d.ts.map +1 -1
  584. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts +15 -0
  585. package/_types/core/kms/createKmsUserDecryptEip712V2.d.ts.map +1 -0
  586. package/_types/core/kms/{decryptKmsSignedcryptedShares-p.d.ts → decryptKmsSigncryptedShares-p.d.ts} +4 -2
  587. package/_types/core/kms/decryptKmsSigncryptedShares-p.d.ts.map +1 -0
  588. package/_types/core/kms/decryptValuesFromPairs.d.ts +2 -0
  589. package/_types/core/kms/decryptValuesFromPairs.d.ts.map +1 -1
  590. package/_types/core/kms/{fetchKmsSignedcryptedShares-p.d.ts → fetchKmsSigncryptedShares-p.d.ts} +2 -2
  591. package/_types/core/kms/fetchKmsSigncryptedShares-p.d.ts.map +1 -0
  592. package/_types/core/kms/kmsExtraData.d.ts +9 -2
  593. package/_types/core/kms/kmsExtraData.d.ts.map +1 -1
  594. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts +3 -0
  595. package/_types/core/kms/kmsUserDecryptEip712V2Types.d.ts.map +1 -0
  596. package/_types/core/kms/publicDecrypt.d.ts.map +1 -1
  597. package/_types/core/modules/decrypt/mock.d.ts +1 -2
  598. package/_types/core/modules/decrypt/mock.d.ts.map +1 -1
  599. package/_types/core/modules/decrypt/module/api-p.d.ts +2 -2
  600. package/_types/core/modules/decrypt/module/api-p.d.ts.map +1 -1
  601. package/_types/core/modules/decrypt/module/index.d.ts +1 -2
  602. package/_types/core/modules/decrypt/module/index.d.ts.map +1 -1
  603. package/_types/core/modules/decrypt/module/init-p.d.ts +3 -3
  604. package/_types/core/modules/decrypt/module/init-p.d.ts.map +1 -1
  605. package/_types/core/modules/decrypt/types.d.ts +33 -34
  606. package/_types/core/modules/decrypt/types.d.ts.map +1 -1
  607. package/_types/core/modules/encrypt/mock.d.ts.map +1 -1
  608. package/_types/core/modules/encrypt/module/api-p.d.ts.map +1 -1
  609. package/_types/core/modules/encrypt/module/index.d.ts.map +1 -1
  610. package/_types/core/modules/encrypt/module/init-p.d.ts +11 -4
  611. package/_types/core/modules/encrypt/module/init-p.d.ts.map +1 -1
  612. package/_types/core/modules/encrypt/types.d.ts +31 -2
  613. package/_types/core/modules/encrypt/types.d.ts.map +1 -1
  614. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts +18 -0
  615. package/_types/core/modules/relayer/module/RelayerAsyncRequest.d.ts.map +1 -1
  616. package/_types/core/modules/relayer/module/fetchFheEncryptionKeySource.d.ts.map +1 -1
  617. package/_types/core/modules/relayer/module/readErrorMessage.d.ts +26 -0
  618. package/_types/core/modules/relayer/module/readErrorMessage.d.ts.map +1 -0
  619. package/_types/core/runtime/CoreFhevm-p.d.ts +15 -4
  620. package/_types/core/runtime/CoreFhevm-p.d.ts.map +1 -1
  621. package/_types/core/runtime/HyperWasmSolver-p.d.ts +71 -0
  622. package/_types/core/runtime/HyperWasmSolver-p.d.ts.map +1 -0
  623. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts +29 -0
  624. package/_types/core/runtime/ProtocolVersionResolver-p.d.ts.map +1 -0
  625. package/_types/core/runtime/initFhevmRuntime-p.d.ts.map +1 -1
  626. package/_types/core/runtime/resolveFhevmVersions-p.d.ts +21 -0
  627. package/_types/core/runtime/resolveFhevmVersions-p.d.ts.map +1 -0
  628. package/_types/core/runtimeConfig-p.d.ts +3 -2
  629. package/_types/core/runtimeConfig-p.d.ts.map +1 -1
  630. package/_types/core/types/auth.d.ts +12 -1
  631. package/_types/core/types/auth.d.ts.map +1 -1
  632. package/_types/core/types/coreFhevmClient.d.ts +72 -2
  633. package/_types/core/types/coreFhevmClient.d.ts.map +1 -1
  634. package/_types/core/types/coreFhevmRuntime.d.ts +3 -9
  635. package/_types/core/types/coreFhevmRuntime.d.ts.map +1 -1
  636. package/_types/core/types/fheEncryptionKey.d.ts +2 -0
  637. package/_types/core/types/fheEncryptionKey.d.ts.map +1 -1
  638. package/_types/core/types/fhevmChain.d.ts +3 -0
  639. package/_types/core/types/fhevmChain.d.ts.map +1 -1
  640. package/_types/core/types/hostContract.d.ts +1 -0
  641. package/_types/core/types/hostContract.d.ts.map +1 -1
  642. package/_types/core/types/index.d.ts +1 -1
  643. package/_types/core/types/index.d.ts.map +1 -1
  644. package/_types/core/types/kms-p.d.ts +2 -0
  645. package/_types/core/types/kms-p.d.ts.map +1 -1
  646. package/_types/core/types/kms.d.ts +71 -21
  647. package/_types/core/types/kms.d.ts.map +1 -1
  648. package/_types/core/types/kmsSignersContext.d.ts +8 -0
  649. package/_types/core/types/kmsSignersContext.d.ts.map +1 -1
  650. package/_types/core/types/logger.d.ts +1 -0
  651. package/_types/core/types/logger.d.ts.map +1 -1
  652. package/_types/core/types/moduleVersions.d.ts +25 -0
  653. package/_types/core/types/moduleVersions.d.ts.map +1 -0
  654. package/_types/core/types/tkms-p.d.ts +2 -0
  655. package/_types/core/types/tkms-p.d.ts.map +1 -1
  656. package/_types/core/types/wasmAssets.d.ts +2 -0
  657. package/_types/core/types/wasmAssets.d.ts.map +1 -0
  658. package/_types/core/types/{zkProofBuilder.d.ts → zkProofBuilder-p.d.ts} +8 -3
  659. package/_types/core/types/zkProofBuilder-p.d.ts.map +1 -0
  660. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts +2 -0
  661. package/_types/core/utils-p/decrypt/verifyTkmsPublicKey.d.ts.map +1 -1
  662. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  663. package/_types/ethers/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  664. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  665. package/_types/ethers/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  666. package/_types/ethers/clients/createFhevmDecryptClient.d.ts +2 -2
  667. package/_types/ethers/clients/createFhevmDecryptClient.d.ts.map +1 -1
  668. package/_types/ethers/clients/createFhevmEncryptClient.d.ts +2 -2
  669. package/_types/ethers/clients/createFhevmEncryptClient.d.ts.map +1 -1
  670. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts +2 -2
  671. package/_types/viem/cleartext/createFhevmCleartextDecryptClient.d.ts.map +1 -1
  672. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts +2 -2
  673. package/_types/viem/cleartext/createFhevmCleartextEncryptClient.d.ts.map +1 -1
  674. package/_types/viem/clients/createFhevmDecryptClient.d.ts +2 -2
  675. package/_types/viem/clients/createFhevmDecryptClient.d.ts.map +1 -1
  676. package/_types/viem/clients/createFhevmEncryptClient.d.ts +2 -2
  677. package/_types/viem/clients/createFhevmEncryptClient.d.ts.map +1 -1
  678. package/_types/wasm/tfhe/TfheApi.d.ts +12 -12
  679. package/_types/wasm/tfhe/v1.5.3/tfhe.d.ts +7 -0
  680. package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +92 -85
  681. package/_types/wasm/tfheModuleVersion-p.d.ts +1 -1
  682. package/_types/wasm/tfheModuleVersion-p.d.ts.map +1 -1
  683. package/_types/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  684. package/_types/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  685. package/_types/wasm/tkmsModuleVersion-p.d.ts +1 -1
  686. package/_types/wasm/tkmsModuleVersion-p.d.ts.map +1 -1
  687. package/core/_version.ts +1 -1
  688. package/core/actions/base/canDecryptPublicValue.ts +1 -1
  689. package/core/actions/base/canDecryptPublicValues.ts +1 -1
  690. package/core/actions/base/{fetchKmsSignedcryptedShares.ts → fetchKmsSigncryptedShares.ts} +16 -16
  691. package/core/actions/base/index.ts +5 -5
  692. package/core/actions/base/readKmsSignersContext.ts +2 -1
  693. package/core/actions/chain/parseSignedDecryptionPermit.ts +2 -2
  694. package/core/actions/chain/parseTransportKeyPair.ts +2 -1
  695. package/core/actions/decrypt/{decryptKmsSignedcryptedShares.ts → decryptKmsSigncryptedShares.ts} +12 -9
  696. package/core/actions/decrypt/decryptValue.ts +4 -1
  697. package/core/actions/decrypt/decryptValues.ts +4 -1
  698. package/core/actions/decrypt/decryptValuesFromPairs.ts +4 -1
  699. package/core/actions/decrypt/generateTransportKeyPair.ts +5 -3
  700. package/core/actions/decrypt/index.ts +4 -4
  701. package/core/actions/encrypt/encryptValue.ts +4 -1
  702. package/core/actions/encrypt/encryptValues.ts +4 -1
  703. package/core/actions/encrypt/generateZkProof.ts +9 -1
  704. package/core/actions/host/readFhevmExecutorContractData.ts +8 -8
  705. package/core/actions/host/readInputVerifierContractData.ts +2 -2
  706. package/core/actions/host/readKmsVerifierContractData.ts +8 -6
  707. package/core/actions/host/resolveFhevmConfig.ts +10 -1
  708. package/core/base/bytes.ts +2 -1
  709. package/core/base/environment.ts +210 -0
  710. package/core/base/errors/Sha256VerificationError.ts +22 -0
  711. package/core/base/inflate.ts +373 -0
  712. package/core/base/isomorphicFs.ts +23 -0
  713. package/core/base/isomorphicWorker.ts +96 -123
  714. package/core/base/object.ts +38 -0
  715. package/core/base/semver.ts +231 -0
  716. package/core/base/uint.ts +33 -4
  717. package/core/base/wasm.ts +28 -35
  718. package/core/chains/definitions/localTestnet.ts +3 -0
  719. package/core/chains/definitions/mainnet.ts +1 -0
  720. package/core/chains/definitions/sepolia.ts +6 -6
  721. package/core/clients/decorators/base.ts +8 -1
  722. package/core/clients/decorators/decrypt-p.ts +18 -0
  723. package/core/clients/decorators/decrypt.ts +10 -15
  724. package/core/clients/decorators/encrypt-p.ts +12 -7
  725. package/core/clients/decorators/encrypt.ts +6 -4
  726. package/core/coprocessor/ZkProof-p.ts +17 -5
  727. package/core/coprocessor/ZkProofBuilder-p.ts +5 -2
  728. package/core/coprocessor/encrypt.ts +6 -1
  729. package/core/errors/RelayerResponseStatusError.ts +14 -2
  730. package/core/host-contracts/HostContractVersion-p.ts +60 -3
  731. package/core/host-contracts/KmsSignersContext-p.ts +36 -5
  732. package/core/host-contracts/abi-fragments/fragments.ts +28 -0
  733. package/core/host-contracts/canDecryptValuesFromPairs.ts +1 -1
  734. package/core/host-contracts/checkAllowedForDecryption.ts +3 -3
  735. package/core/host-contracts/checkDelegation.ts +9 -9
  736. package/core/host-contracts/checkPersistAllowed.ts +10 -10
  737. package/core/host-contracts/getAclAddress-p.ts +2 -3
  738. package/core/host-contracts/getCurrentKmsContextAndEpoch-p.ts +92 -0
  739. package/core/host-contracts/getCurrentKmsContextId-p.ts +8 -8
  740. package/core/host-contracts/getFhevmExecutorAddress-p.ts +2 -2
  741. package/core/host-contracts/getHandleVersion-p.ts +2 -3
  742. package/core/host-contracts/getHcuLimitAddress-p.ts +2 -3
  743. package/core/host-contracts/getInputVerifierAddress-p.ts +2 -3
  744. package/core/host-contracts/getKmsContextSignersAndThreshold-p.ts +7 -9
  745. package/core/host-contracts/getKmsContextSignersAndThresholdFromExtraData-p.ts +6 -7
  746. package/core/host-contracts/getSignersForKmsContext-p.ts +6 -8
  747. package/core/host-contracts/isAllowedForDecryption.ts +6 -6
  748. package/core/host-contracts/isHandleDelegatedForUserDecryption-p.ts +7 -7
  749. package/core/host-contracts/isUserDecryptable.ts +3 -3
  750. package/core/host-contracts/persistAllowed.ts +6 -6
  751. package/core/host-contracts/readKmsSignersContext-p.ts +131 -41
  752. package/core/key/FheEncryptionKeyWasm-p.ts +24 -3
  753. package/core/key/deserializeFheEncryptionKey.ts +8 -1
  754. package/core/key/fetchFheEncryptionKey.ts +8 -4
  755. package/core/key/fetchFheEncryptionKeyBytes.ts +4 -2
  756. package/core/key/serializeFheEncryptionKey.ts +8 -2
  757. package/core/kms/KmsSigncryptedShares-p.ts +11 -1
  758. package/core/kms/SignedDecryptionPermit-p.ts +6 -1
  759. package/core/kms/TransportKeyPair-p.ts +52 -11
  760. package/core/kms/createKmsUserDecryptEip712.ts +11 -0
  761. package/core/kms/createKmsUserDecryptEip712V2.ts +159 -0
  762. package/core/kms/{decryptKmsSignedcryptedShares-p.ts → decryptKmsSigncryptedShares-p.ts} +12 -2
  763. package/core/kms/decryptValuesFromPairs.ts +6 -4
  764. package/core/kms/{fetchKmsSignedcryptedShares-p.ts → fetchKmsSigncryptedShares-p.ts} +12 -5
  765. package/core/kms/kmsExtraData.ts +82 -13
  766. package/core/kms/kmsUserDecryptEip712V2Types.ts +31 -0
  767. package/core/kms/publicDecrypt.ts +5 -3
  768. package/core/modules/decrypt/mock.ts +0 -35
  769. package/core/modules/decrypt/module/api-p.ts +88 -17
  770. package/core/modules/decrypt/module/index.ts +37 -34
  771. package/core/modules/decrypt/module/init-p.ts +194 -73
  772. package/core/modules/decrypt/types.ts +37 -65
  773. package/core/modules/encrypt/mock.ts +34 -4
  774. package/core/modules/encrypt/module/api-p.ts +66 -15
  775. package/core/modules/encrypt/module/index.ts +5 -3
  776. package/core/modules/encrypt/module/init-p.ts +465 -101
  777. package/core/modules/encrypt/types.ts +34 -2
  778. package/core/modules/relayer/cleartext/fetchDelegatedUserDecrypt.ts +2 -2
  779. package/core/modules/relayer/cleartext/fetchUserDecrypt.ts +2 -2
  780. package/core/modules/relayer/module/RelayerAsyncRequest.ts +60 -4
  781. package/core/modules/relayer/module/fetchFheEncryptionKeySource.ts +9 -1
  782. package/core/modules/relayer/module/readErrorMessage.ts +56 -0
  783. package/core/runtime/CoreFhevm-p.ts +247 -22
  784. package/core/runtime/HyperWasmSolver-p.ts +417 -0
  785. package/core/runtime/ProtocolVersionResolver-p.ts +463 -0
  786. package/core/runtime/initFhevmDecryptRuntime-p.ts +1 -1
  787. package/core/runtime/initFhevmEncryptRuntime-p.ts +1 -1
  788. package/core/runtime/initFhevmRuntime-p.ts +4 -1
  789. package/core/runtime/resolveFhevmVersions-p.ts +85 -0
  790. package/core/runtimeConfig-p.ts +17 -2
  791. package/core/types/auth.ts +12 -1
  792. package/core/types/coreFhevmClient.ts +89 -4
  793. package/core/types/coreFhevmRuntime.ts +3 -18
  794. package/core/types/fheEncryptionKey.ts +2 -0
  795. package/core/types/fhevmChain.ts +3 -0
  796. package/core/types/hostContract.ts +1 -0
  797. package/core/types/index.ts +1 -1
  798. package/core/types/kms-p.ts +2 -0
  799. package/core/types/kms.ts +48 -18
  800. package/core/types/kmsSignersContext.ts +8 -0
  801. package/core/types/logger.ts +1 -0
  802. package/core/types/moduleVersions.ts +35 -0
  803. package/core/types/tkms-p.ts +3 -0
  804. package/core/types/wasmAssets.ts +64 -0
  805. package/core/types/{zkProofBuilder.ts → zkProofBuilder-p.ts} +3 -2
  806. package/core/utils-p/decrypt/verifyTkmsPublicKey.ts +3 -1
  807. package/ethers/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  808. package/ethers/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  809. package/ethers/clients/createFhevmDecryptClient.ts +2 -2
  810. package/ethers/clients/createFhevmEncryptClient.ts +2 -2
  811. package/ethers/internal/config.ts +2 -30
  812. package/package.json +1 -1
  813. package/viem/cleartext/createFhevmCleartextDecryptClient.ts +2 -2
  814. package/viem/cleartext/createFhevmCleartextEncryptClient.ts +2 -2
  815. package/viem/clients/createFhevmDecryptClient.ts +2 -2
  816. package/viem/clients/createFhevmEncryptClient.ts +2 -2
  817. package/viem/internal/config.ts +2 -30
  818. package/wasm/tfhe/TfheApi.d.ts +12 -12
  819. package/wasm/tfhe/loadTfheLib.js +11 -11
  820. package/wasm/tfhe/v1.5.3/startWorkers.js +41 -20
  821. package/wasm/tfhe/v1.5.3/tfhe.d.ts +7 -0
  822. package/wasm/tfhe/v1.5.3/tfhe.js +8 -0
  823. package/wasm/tfhe/v1.6.0-dev/startWorkers.js +41 -20
  824. package/wasm/tfhe/v1.6.0-dev/tfhe.d.ts +7 -0
  825. package/wasm/tfhe/v1.6.0-dev/tfhe.js +8 -0
  826. package/wasm/tfhe/{v1.6.1 → v1.6.2}/startWorkers.js +46 -25
  827. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe-worker.mjs +40 -40
  828. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.d.ts +92 -85
  829. package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe.js +253 -442
  830. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm +0 -0
  831. package/wasm/tfhe/v1.6.2/tfhe_bg.wasm.base64.js +7 -0
  832. package/wasm/tfheModuleVersion-p.ts +1 -1
  833. package/wasm/tkms/v0.13.10/kms_lib.d.ts +4 -0
  834. package/wasm/tkms/v0.13.10/kms_lib.js +8 -0
  835. package/wasm/tkms/v0.13.20-0/kms_lib.d.ts +4 -0
  836. package/wasm/tkms/v0.13.20-0/kms_lib.js +8 -0
  837. package/wasm/tkmsModuleVersion-p.ts +1 -1
  838. package/wasm/wasmBaseUrl.js +32 -4
  839. package/_cjs/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  840. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -11
  841. package/_cjs/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  842. package/_cjs/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  843. package/_cjs/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  844. package/_cjs/core/types/fhevmDecryptionKey.js.map +0 -1
  845. package/_cjs/core/types/fhevmUser.js.map +0 -1
  846. package/_cjs/core/types/zkProofBuilder.js.map +0 -1
  847. package/_cjs/wasm/tfhe/v1.6.1/startWorkers.js.map +0 -7
  848. package/_cjs/wasm/tfhe/v1.6.1/tfhe.js.map +0 -7
  849. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  850. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -35
  851. package/_cjs/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js.map +0 -7
  852. package/_esm/core/actions/base/fetchKmsSignedcryptedShares.js.map +0 -1
  853. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js +0 -9
  854. package/_esm/core/actions/decrypt/decryptKmsSignedcryptedShares.js.map +0 -1
  855. package/_esm/core/kms/decryptKmsSignedcryptedShares-p.js.map +0 -1
  856. package/_esm/core/kms/fetchKmsSignedcryptedShares-p.js.map +0 -1
  857. package/_esm/core/types/fhevmDecryptionKey.js +0 -2
  858. package/_esm/core/types/fhevmDecryptionKey.js.map +0 -1
  859. package/_esm/core/types/fhevmUser.js +0 -2
  860. package/_esm/core/types/fhevmUser.js.map +0 -1
  861. package/_esm/core/types/zkProofBuilder.js +0 -2
  862. package/_esm/core/types/zkProofBuilder.js.map +0 -1
  863. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  864. package/_esm/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  865. package/_types/core/actions/base/fetchKmsSignedcryptedShares.d.ts.map +0 -1
  866. package/_types/core/actions/decrypt/decryptKmsSignedcryptedShares.d.ts.map +0 -1
  867. package/_types/core/kms/decryptKmsSignedcryptedShares-p.d.ts.map +0 -1
  868. package/_types/core/kms/fetchKmsSignedcryptedShares-p.d.ts.map +0 -1
  869. package/_types/core/types/fhevmDecryptionKey.d.ts +0 -4
  870. package/_types/core/types/fhevmDecryptionKey.d.ts.map +0 -1
  871. package/_types/core/types/fhevmUser.d.ts +0 -7
  872. package/_types/core/types/fhevmUser.d.ts.map +0 -1
  873. package/_types/core/types/zkProofBuilder.d.ts.map +0 -1
  874. package/core/types/fhevmDecryptionKey.ts +0 -8
  875. package/core/types/fhevmUser.ts +0 -7
  876. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm +0 -0
  877. package/wasm/tfhe/v1.6.1/tfhe_bg.wasm.base64.js +0 -7
  878. /package/_cjs/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  879. /package/_esm/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  880. /package/_types/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
  881. /package/wasm/tfhe/{v1.6.1 → v1.6.2}/tfhe_bg.wasm.base64.d.ts +0 -0
@@ -7,7 +7,7 @@ type TfheModuleVersionConfig = {
7
7
  readonly moduleVersions?:
8
8
  | 'auto'
9
9
  | {
10
- readonly tfhe?: TfheVersion | 'auto';
10
+ readonly tfhe?: TfheVersion | 'auto' | undefined;
11
11
  }
12
12
  | undefined;
13
13
  };
@@ -629,4 +629,8 @@ export function getWasmInfo(): {
629
629
  filename: string;
630
630
  sha256: string;
631
631
  }[];
632
+ memory?: {
633
+ byteLength: number;
634
+ pages: number;
635
+ };
632
636
  };
@@ -2109,6 +2109,7 @@ async function __wbg_init(module_or_path) {
2109
2109
  }
2110
2110
 
2111
2111
  function getWasmInfo() {
2112
+ const memory = wasm?.memory;
2112
2113
  return {
2113
2114
  name: 'tkms',
2114
2115
  version: '0.13.10',
@@ -2118,6 +2119,13 @@ function getWasmInfo() {
2118
2119
  sha256: "31cfb31392445ae2630f560b961edd21c72e40d58cb20c455f9fc4d4750bb9a0",
2119
2120
  }
2120
2121
  ],
2122
+ memory:
2123
+ memory === undefined
2124
+ ? undefined
2125
+ : {
2126
+ byteLength: memory.buffer.byteLength,
2127
+ pages: memory.buffer.byteLength / 65536,
2128
+ },
2121
2129
  };
2122
2130
  }
2123
2131
 
@@ -639,4 +639,8 @@ export function getWasmInfo(): {
639
639
  filename: string;
640
640
  sha256: string;
641
641
  }[];
642
+ memory?: {
643
+ byteLength: number;
644
+ pages: number;
645
+ };
642
646
  };
@@ -2114,6 +2114,7 @@ async function __wbg_init(module_or_path) {
2114
2114
  }
2115
2115
 
2116
2116
  function getWasmInfo() {
2117
+ const memory = wasm?.memory;
2117
2118
  return {
2118
2119
  name: 'tkms',
2119
2120
  version: '0.13.20-0',
@@ -2123,6 +2124,13 @@ function getWasmInfo() {
2123
2124
  sha256: "be54c8f11daf048b897b41cf6e6735895490cdca77f2a01c01be0d6fbf369c81",
2124
2125
  }
2125
2126
  ],
2127
+ memory:
2128
+ memory === undefined
2129
+ ? undefined
2130
+ : {
2131
+ byteLength: memory.buffer.byteLength,
2132
+ pages: memory.buffer.byteLength / 65536,
2133
+ },
2126
2134
  };
2127
2135
  }
2128
2136
 
@@ -7,7 +7,7 @@ type TkmsModuleVersionConfig = {
7
7
  readonly moduleVersions?:
8
8
  | 'auto'
9
9
  | {
10
- readonly kms?: TkmsVersion | 'auto';
10
+ readonly kms?: TkmsVersion | 'auto' | undefined;
11
11
  }
12
12
  | undefined;
13
13
  };
@@ -1,5 +1,36 @@
1
1
  // @ts-check
2
2
 
3
+ /**
4
+ * Standalone WASM URL resolver.
5
+ *
6
+ * This file must remain plain JavaScript with no imports and no exported helper
7
+ * functions. It is consumed from both ESM and generated CJS builds, and bundlers
8
+ * may evaluate or rewrite it in unusual environments. Keep all environment
9
+ * detection self-contained in this file.
10
+ */
11
+
12
+ function __resolveWasmBaseUrl() {
13
+ // In the CommonJS build tsc lowers `import.meta` to `{}`, so a usable string
14
+ // here means the ESM build (browser, worker, or Node ESM) — it's authoritative.
15
+ const metaUrl = import.meta.url;
16
+ if (typeof metaUrl === 'string' && metaUrl.length > 0) {
17
+ return metaUrl;
18
+ }
19
+
20
+ // CommonJS build: trust `__filename` ONLY in a genuine Node process, never a
21
+ // bundler shim. Turbopack/webpack inject `__filename` + a partial `process`
22
+ // into client bundles, but never populate `process.versions.node`.
23
+ // @ts-ignore
24
+ const isRealNode = typeof process !== 'undefined' && typeof process.versions?.node === 'string';
25
+ // @ts-ignore
26
+ if (isRealNode && typeof __filename === 'string' && typeof require === 'function') {
27
+ // @ts-ignore — keep `node:url` indirect so bundlers don't rewrite it
28
+ return require('node:url').pathToFileURL(__filename).href;
29
+ }
30
+
31
+ return metaUrl; // undefined → caller surfaces a clear "could not resolve" error
32
+ }
33
+
3
34
  /**
4
35
  * Base URL for resolving WASM file paths relative to this module.
5
36
  * Works in both ESM and CJS contexts.
@@ -8,7 +39,4 @@
8
39
  *
9
40
  * @type {string}
10
41
  */
11
- export const wasmBaseUrl =
12
- typeof __filename !== "undefined"
13
- ? /* CJS */ require("node:url").pathToFileURL(__filename).href
14
- : /* ESM */ import.meta.url;
42
+ export const wasmBaseUrl = __resolveWasmBaseUrl();
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchKmsSignedcryptedShares.js","sourceRoot":"","sources":["../../../../core/actions/base/fetchKmsSignedcryptedShares.ts"],"names":[],"mappings":";;AAiEA,kEAiBC;AAxED,iGAAyH;AACzH,gEAAwF;AACxF,sDAAqF;AAqD9E,KAAK,UAAU,2BAA2B,CAC/C,KAAwB,EACxB,UAAsG;IAEtG,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAG7B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAA,2CAA0B,EAAC,CAAC,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QAClF,IAAA,4BAAe,EAAC,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO;YACL,MAAM,EAAE,IAAA,8BAAa,EAAC,CAAC,CAAC,cAAc,CAAC;YACvC,eAAe,EAAE,IAAA,wCAA2B,EAAC,CAAC,CAAC,eAAe,CAAC;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAA,8DAA4B,EAAC,KAAK,EAAE,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AACvF,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decryptKmsSignedcryptedShares = decryptKmsSignedcryptedShares;
4
- const decryptKmsSignedcryptedShares_p_js_1 = require("../../kms/decryptKmsSignedcryptedShares-p.js");
5
- const ClearValue_js_1 = require("../../handle/ClearValue.js");
6
- async function decryptKmsSignedcryptedShares(fhevm, parameters) {
7
- const clearValues = await (0, decryptKmsSignedcryptedShares_p_js_1.decryptKmsSignedcryptedShares)(fhevm, parameters);
8
- const originToken = Symbol('decryptKmsSignedcryptedShares');
9
- return clearValues.map((cv) => (0, ClearValue_js_1.clearValueToTypedValue)(cv, originToken));
10
- }
11
- //# sourceMappingURL=decryptKmsSignedcryptedShares.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decryptKmsSignedcryptedShares.js","sourceRoot":"","sources":["../../../../core/actions/decrypt/decryptKmsSignedcryptedShares.ts"],"names":[],"mappings":";;AAsBA,sEAQC;AAxBD,qGAA+H;AAC/H,8DAAoE;AAe7D,KAAK,UAAU,6BAA6B,CACjD,KAAqC,EACrC,UAAmD;IAEnD,MAAM,WAAW,GAAG,MAAM,IAAA,kEAA8B,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,sCAAsB,EAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"decryptKmsSignedcryptedShares-p.js","sourceRoot":"","sources":["../../../core/kms/decryptKmsSignedcryptedShares-p.ts"],"names":[],"mappings":";;AAuBA,sEAaC;AAhCD,mEAA2E;AAmBpE,KAAK,UAAU,6BAA6B,CAAC,OAAgB,EAAE,UAAsB;IAC1F,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;IAGhF,MAAM,cAAc,GAAG,MAAM,IAAA,wDAAgC,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAGzF,MAAM,uBAAuB,GAA0B,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;QACzG,MAAM,EAAE,oBAAoB;QAC5B,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchKmsSignedcryptedShares-p.js","sourceRoot":"","sources":["../../../core/kms/fetchKmsSignedcryptedShares-p.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fhevmDecryptionKey.js","sourceRoot":"","sources":["../../../core/types/fhevmDecryptionKey.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fhevmUser.js","sourceRoot":"","sources":["../../../core/types/fhevmUser.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"zkProofBuilder.js","sourceRoot":"","sources":["../../../core/types/zkProofBuilder.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../wasm/tfhe/v1.6.1/startWorkers.js"],
4
- "sourcesContent": ["/**\n * Auto-generated from scripts/wasm/tfhe/startWorkers.template.js.\n * Embedded worker base64 payload SHA-256: c6beb212e48e93e3813f82c35f96125dae236d4369aed0b3992adcb4c925cb52\n */\n\n/**\n * Worker load mode security guarantees:\n *\n * embedded-base64 Integrity: build-time. Inherits the JS bundle's integrity.\n * verified-blob Integrity: runtime SHA-256 of fetched bytes; executed bytes\n * are the verified bytes themselves.\n * precheck-direct-url No integrity guarantee. The SDK fetches the URL once and\n * validates SHA-256, then the runtime fetches the URL a\n * second time and executes those (unverified) bytes. Use\n * for fail-fast on misconfigured URLs / wrong builds, not\n * for protection against on-path or CDN-edge tampering.\n * trusted-direct-url No integrity check. Use only when the URL is fully trusted\n * (e.g., same-origin static asset).\n * auto Tries verified-blob if workerUrl is set, falls back to\n * embedded-base64 on any non-SHA-256 error. SHA-256 mismatch\n * is always fatal and never falls back.\n */\n\n/**\n * Module invariants.\n *\n * Lifecycle (one-shot, no retry):\n * - setWorkerUrlConfig() and startWorkers() each at most once.\n * - A failed startWorkers() locks the module; no retry, no reconfigure.\n * - terminateWorkers() throws while startWorkers() is in flight; idempotent after.\n *\n * Concurrency:\n * - _started and _starting are check-and-set without intervening await.\n * - Parallel workers dedupe to a single fetch+verify (cached promise).\n *\n * Security:\n * - SHA-256 mismatch (Sha256MismatchError) is always fatal \u2014 never falls back.\n * - Hash is the build-time constant \"348fe6c2e77bafe0cbfb9c0a512af99b5f97de1119ceadf07cc34620dbc5690e\".\n * - auto silently falls back to embedded-base64 on any non-SHA-256 error.\n * - precheck-direct-url's SHA-256 check is informational; the runtime refetches.\n *\n * Errors:\n * - Partial worker-pool failure: successful workers are terminated before throw.\n * - Concurrent failures: only the first error is surfaced.\n * - __waitForMsgType has no timeout \u2014 a silent worker hangs startWorkers().\n *\n * Resources:\n * - Blob URLs are revoked on both success and synchronous-constructor failure.\n * - _verifiedWorkerUrlBytesPromise is cleared in startWorkers()'s finally.\n * - _workers is a strong reference (owns the shared WebAssembly memory).\n * - __waitForMsgType listeners are not removed if the worker never replies.\n *\n * Caller contract:\n * - workerUrl: URL instance (required for verified/checked/trusted-direct-url).\n * - logger: must expose debug(message) and error(message, cause).\n * - wasmAssetLoadMode: one of __wasmAssetLoadModes.\n */\n\n////////////////////////////////////////////////////////////////////////////////\n// Runtime detection and load modes\n////////////////////////////////////////////////////////////////////////////////\n\nfunction __isBrowserLike() {\n return (\n typeof Bun === 'undefined' &&\n typeof process === 'undefined' &&\n typeof addEventListener === 'function' &&\n typeof removeEventListener === 'function'\n );\n}\n\nconst __wasmAssetLoadModes = ['embedded-base64', 'verified-blob', 'precheck-direct-url', 'trusted-direct-url', 'auto'];\n\nfunction __isWasmAssetLoadMode(value) {\n return __wasmAssetLoadModes.includes(value);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// SHA-256 verification\n////////////////////////////////////////////////////////////////////////////////\n\nfunction __bytesToHex(bytes) {\n return [...bytes].map((b) => b.toString(16).padStart(2, '0')).join('');\n}\n\n/**\n * Computes the SHA-256 digest of worker bytes and returns it as lowercase hex.\n * @param {ArrayBuffer | Uint8Array} bytes Worker bytes to hash.\n * @returns {Promise<string>} Lowercase hexadecimal SHA-256 digest without a `0x` prefix.\n */\nasync function __sha256(bytes) {\n if (__isBrowserLike()) {\n if (typeof crypto === 'undefined' || !crypto.subtle || typeof crypto.subtle.digest !== 'function') {\n throw new Error('Web Crypto SHA-256 digest is not available');\n }\n\n const hash = await crypto.subtle.digest('SHA-256', bytes);\n return __bytesToHex(new Uint8Array(hash));\n }\n\n const nodeModuleName = 'crypto';\n const nodeModuleId = `node:${nodeModuleName}`;\n const { createHash } = await import(/* @vite-ignore */ nodeModuleId);\n return createHash('sha256').update(new Uint8Array(bytes)).digest('hex');\n}\n\n/**\n * Verifies that worker bytes match the expected SHA-256 digest.\n * @param {ArrayBuffer | Uint8Array} bytes Worker bytes to verify.\n * @param {string} expectedSha256 Expected lowercase hex digest without a `0x` prefix.\n * @param {string} url Url to verify.\n * @returns {Promise<void>} Resolves when the digest matches.\n * @throws {Error} Throws a `Sha256MismatchError` when the digest does not match.\n */\nasync function __verifySha256(bytes, expectedSha256, url) {\n const actualSha256 = await __sha256(bytes);\n\n if (actualSha256 !== expectedSha256) {\n const error = new Error(`SHA-256 mismatch: expected ${expectedSha256}, got ${actualSha256}. url=${url}`);\n error.name = 'Sha256MismatchError';\n throw error;\n }\n}\n\nfunction __isSha256MismatchError(error) {\n return error?.name === 'Sha256MismatchError';\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker URL byte loading\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Reads worker script bytes from a URL and verifies their SHA-256 digest.\n * @param {URL} url Worker script URL.\n * @param {string} expectedSha256 Expected lowercase hex digest without a `0x` prefix.\n * @returns {Promise<ArrayBuffer | Uint8Array>} Verified worker script bytes.\n */\nasync function __fetchAndVerifyWorkerUrlBytes(url, expectedSha256) {\n const bytes = await __readWorkerUrlBytes(url);\n\n await __verifySha256(bytes, expectedSha256, url);\n\n return bytes;\n}\n\n/**\n * Reads worker script bytes from a URL.\n * Uses the filesystem for Node `file:` URLs, otherwise falls back to `fetch`.\n * Assumes `fetch` exists for non-`file:` URLs.\n * @param {URL} url Worker script URL.\n * @returns {Promise<ArrayBuffer | Uint8Array>} Raw worker script bytes.\n */\nasync function __readWorkerUrlBytes(url) {\n if (!__isBrowserLike() && url.protocol === 'file:') {\n const fsModuleName = 'fs/promises';\n const fsModuleId = `node:${fsModuleName}`;\n const urlModuleName = 'url';\n const urlModuleId = `node:${urlModuleName}`;\n const { readFile } = await import(/* @vite-ignore */ fsModuleId);\n const { fileURLToPath } = await import(/* @vite-ignore */ urlModuleId);\n return await readFile(fileURLToPath(url));\n }\n\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to fetch worker: ${response.status} ${response.statusText}`);\n }\n\n return await response.arrayBuffer();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker construction primitives\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a browser module Worker from a Blob.\n * Browser-only: creates a Blob URL and returns it so the caller can revoke it after worker startup.\n * @param {Blob} blob JavaScript worker source Blob.\n * @returns {Promise<{ worker: Worker, blobUrl: string }>} Created browser worker and Blob URL to revoke.\n */\nasync function __newBrowserWorkerFromBlob(blob) {\n const blobUrl = URL.createObjectURL(blob);\n\n try {\n const worker = new Worker(blobUrl, {\n type: 'module',\n name: 'wasm_bindgen_worker',\n });\n\n return { worker, blobUrl };\n } catch (e) {\n URL.revokeObjectURL(blobUrl);\n throw e;\n }\n}\n\n/**\n * Creates a module Worker that loads its script directly from a URL object, isomorphically.\n * Browsers use the global Worker; Node uses worker_threads' Worker.\n * @param {URL} url Worker script URL.\n * @returns {Promise<Worker>} Created worker.\n */\nasync function __newIsomorphicWorkerFromUrl(url) {\n if (__isBrowserLike()) {\n return new Worker(url, {\n type: 'module',\n name: 'wasm_bindgen_worker',\n });\n }\n\n const nodeModuleName = 'worker_threads';\n const nodeModuleId = `node:${nodeModuleName}`;\n const { Worker: NodeWorker } = await import(/* @vite-ignore */ nodeModuleId);\n return new NodeWorker(url);\n}\n\nasync function __newNodeWorkerFromJsCode(jsCode) {\n const nodeModuleName = 'worker_threads';\n const nodeModuleId = `node:${nodeModuleName}`;\n const { Worker: NodeWorker } = await import(/* @vite-ignore */ nodeModuleId);\n return { worker: new NodeWorker(jsCode, { eval: true }), blobUrl: undefined };\n}\n\n/**\n * Creates a worker from already verified JavaScript source bytes.\n * 1. Caller must provide bytes returned by the SHA-256 verification path.\n * 2. In browsers, wrap the verified bytes in a Blob URL and create a module Worker.\n * 3. In Node, decode the verified bytes as UTF-8 JavaScript and create a worker_threads eval Worker.\n * @param {ArrayBuffer | Uint8Array} verifiedJsCodeBytes SHA-256 verified JavaScript source bytes.\n * @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.\n */\nasync function __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedJsCodeBytes) {\n if (__isBrowserLike()) {\n return await __newBrowserWorkerFromBlob(\n new Blob([verifiedJsCodeBytes], {\n type: 'application/javascript',\n }),\n );\n }\n\n return await __newNodeWorkerFromJsCode(Buffer.from(verifiedJsCodeBytes).toString('utf-8'));\n}\n\n/**\n * Creates a worker from the SDK-embedded base64 JavaScript source.\n * 1. In browsers, decode the base64 source into a Blob URL and create a module Worker.\n * 2. In Node, decode the base64 source into UTF-8 JavaScript and create a worker_threads eval Worker.\n * @param {string} jsCodeBase64 Base64-encoded JavaScript worker source.\n * @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.\n */\nasync function __newWorkerFromJsCodeBase64(jsCodeBase64) {\n if (__isBrowserLike()) {\n const blob = new Blob([atob(jsCodeBase64)], {\n type: 'application/javascript',\n });\n\n const blobUrl = URL.createObjectURL(blob);\n\n try {\n const worker = new Worker(blobUrl, {\n type: 'module',\n name: 'wasm_bindgen_worker',\n });\n\n return { worker, blobUrl };\n } catch (e) {\n URL.revokeObjectURL(blobUrl);\n throw e;\n }\n }\n\n const code = Buffer.from(jsCodeBase64, 'base64').toString('utf-8');\n return await __newNodeWorkerFromJsCode(code);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker message protocol\n////////////////////////////////////////////////////////////////////////////////\n\nfunction __waitForMsgType(target, type) {\n return new Promise((resolve, reject) => {\n function cleanup() {\n if (typeof target.removeEventListener === 'function') {\n target.removeEventListener('message', onBrowserMsg);\n target.removeEventListener('error', onBrowserError);\n } else {\n target.off('message', onNodeMsg);\n target.off('error', onNodeError);\n target.off('exit', onNodeExit);\n }\n }\n\n function onBrowserMsg({ data }) {\n if (data?.type !== type) return;\n cleanup();\n resolve(data);\n }\n\n function onBrowserError(e) {\n cleanup();\n reject(e.error || new Error('Worker error'));\n }\n\n function onNodeMsg(data) {\n if (data?.type !== type) return;\n cleanup();\n resolve(data);\n }\n\n function onNodeError(err) {\n cleanup();\n reject(err);\n }\n\n function onNodeExit(code) {\n cleanup();\n reject(new Error(`Worker exited with code ${code}`));\n }\n\n if (typeof target.removeEventListener === 'function') {\n target.addEventListener('message', onBrowserMsg);\n target.addEventListener('error', onBrowserError);\n } else {\n target.on('message', onNodeMsg);\n target.on('error', onNodeError);\n target.on('exit', onNodeExit);\n }\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Module state\n////////////////////////////////////////////////////////////////////////////////\n\nlet _terminating;\nlet _configSet = false;\nlet _workerUrl = undefined;\nlet _wasmAssetLoadMode = 'auto';\nconst _workerUrlSha256 = \"348fe6c2e77bafe0cbfb9c0a512af99b5f97de1119ceadf07cc34620dbc5690e\";\nlet _verifiedWorkerUrlBytesPromise = undefined;\nlet _logger = undefined;\nlet _started = false;\n// True only while the body of startWorkers() is executing.\n// Reset by the try/finally in startWorkers, so a failed start still allows\n// terminateWorkers() to be called (and become a no-op when _workers is unset).\nlet _starting = false;\n\n// Keep workers strongly referenced while they own shared WebAssembly memory.\nlet _workers;\n\nfunction getTfheWorkers() {\n return _workers;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Configuration API\n////////////////////////////////////////////////////////////////////////////////\n\nfunction __assertLogger(logger) {\n if (logger === undefined) {\n return;\n }\n\n if (typeof logger.debug !== 'function' || typeof logger.error !== 'function') {\n throw new TypeError('logger must expose debug(message) and error(message, cause) functions');\n }\n}\n\nfunction setWorkerUrlConfig(parameters = {}) {\n if (_configSet) {\n throw new Error('Cannot set worker URL config: config was already set');\n }\n\n if (_started) {\n throw new Error('Cannot set worker URL config after workers have started');\n }\n\n if (parameters === null || typeof parameters !== 'object') {\n throw new TypeError('setWorkerUrlConfig parameters must be an object');\n }\n\n const { workerUrl = undefined, wasmAssetLoadMode = 'auto', logger = undefined } = parameters;\n\n // Check `wasmAssetLoadMode`\n if (!__isWasmAssetLoadMode(wasmAssetLoadMode)) {\n throw new TypeError(`wasmAssetLoadMode must be one of: ${__wasmAssetLoadModes.join(', ')}`);\n }\n\n // Check `workerUrl`\n if (workerUrl !== undefined) {\n if (!(workerUrl instanceof URL)) {\n throw new TypeError('workerUrl must be a URL');\n }\n _workerUrl = workerUrl;\n } else {\n if (\n wasmAssetLoadMode === 'verified-blob' ||\n wasmAssetLoadMode === 'precheck-direct-url' ||\n wasmAssetLoadMode === 'trusted-direct-url'\n ) {\n throw new Error(`workerUrl is required when wasmAssetLoadMode is \"${wasmAssetLoadMode}\"`);\n }\n }\n\n // Check `logger`\n __assertLogger(logger);\n\n _wasmAssetLoadMode = wasmAssetLoadMode;\n _logger = logger;\n _configSet = true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker source strategies\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Returns the cached verification promise for the configured worker URL.\n * The first call reads `_workerUrl` and verifies it against `_workerUrlSha256`; later calls reuse the same promise\n * so parallel workers do not refetch or rehash the script.\n * @returns {Promise<ArrayBuffer | Uint8Array>} Verified worker script bytes.\n * @throws {Error} If no worker URL is configured.\n */\nfunction __getVerifiedWorkerUrlBytesPromise() {\n const workerUrl = _workerUrl;\n\n if (workerUrl === undefined) {\n throw new Error('workerUrl is required to verify worker URL bytes');\n }\n\n if (_verifiedWorkerUrlBytesPromise !== undefined) {\n return _verifiedWorkerUrlBytesPromise;\n }\n\n _verifiedWorkerUrlBytesPromise = __fetchAndVerifyWorkerUrlBytes(workerUrl, _workerUrlSha256);\n return _verifiedWorkerUrlBytesPromise;\n}\n\n/**\n * Creates a worker from the configured URL after SHA-256 verification.\n * 1. Reuse cached verified bytes.\n * 2. Execute those exact bytes as a Blob worker in browsers.\n * 3. Execute those exact bytes as an eval worker in Node.\n * @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.\n */\nasync function __createWorkerFromVerifiedWorkerUrl() {\n const verifiedWorkerBytes = await __getVerifiedWorkerUrlBytesPromise();\n return await __newIsomorphicWorkerFromVerifiedJsCodeBytes(verifiedWorkerBytes);\n}\n\n/**\n * Creates a worker by passing the configured URL directly to the runtime.\n * 1. Require a configured worker URL.\n * 2. Do not perform SDK byte verification.\n * 3. Let the browser or Node runtime load and execute the URL directly.\n * @returns {Promise<{ worker: Worker, blobUrl: undefined }>} Created worker with no Blob URL to revoke.\n */\nasync function __createWorkerFromTrustedDirectWorkerUrl() {\n if (_workerUrl === undefined) {\n throw new Error('workerUrl is required to create a trusted direct worker');\n }\n\n return { worker: await __newIsomorphicWorkerFromUrl(_workerUrl), blobUrl: undefined };\n}\n\n/**\n * Creates a worker by passing the configured URL directly to the runtime, after a pre-flight SHA-256 probe.\n *\n * IMPORTANT: this is NOT an integrity check. The SDK fetches the URL once to validate\n * the hash, then hands the URL to the runtime, which fetches it a SECOND time and\n * executes those bytes. The two fetches are independent \u2014 the executed bytes are\n * never verified. Use only for fail-fast on misconfigured URLs / build mismatches.\n *\n * For an actual integrity guarantee, use `verified-blob` (requires CSP allowing blob: workers).\n *\n * 1. Fetch the URL and verify its SHA-256 against \"348fe6c2e77bafe0cbfb9c0a512af99b5f97de1119ceadf07cc34620dbc5690e\" \u2014 fails fast on mismatch.\n * 2. Discard the verified bytes.\n * 3. Let the runtime fetch the same URL again and execute it (no verification on this fetch).\n * @returns {Promise<{ worker: Worker, blobUrl: undefined }>} Created worker with no Blob URL to revoke.\n */\nasync function __createWorkerFromCheckedDirectWorkerUrl() {\n await __getVerifiedWorkerUrlBytesPromise();\n return await __createWorkerFromTrustedDirectWorkerUrl();\n}\n\n/**\n * Creates a worker from the SDK-embedded base64 worker source.\n * 1. Read the base64-encoded JavaScript source baked into this module.\n * 2. Decode into a Blob URL and create a module Worker in browsers.\n * 3. Decode into UTF-8 JavaScript and create a worker_threads eval Worker in Node.\n * @returns {Promise<{ worker: Worker, blobUrl: string | undefined }>} Created worker and optional Blob URL to revoke.\n */\nasync function __createWorkerFromBase64() {\n const workerBase64 = \"ZnVuY3Rpb24gX19faXNCcm93c2VyTGlrZSgpIHsKICByZXR1cm4gKAogICAgdHlwZW9mIGFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicgJiYKICAgIHR5cGVvZiByZW1vdmVFdmVudExpc3RlbmVyID09PSAnZnVuY3Rpb24nCiAgKTsKfQoKYXN5bmMgZnVuY3Rpb24gX19fZ2V0VGFyZ2V0KCkgewogIGlmIChfX19pc0Jyb3dzZXJMaWtlKCkpIHJldHVybiBzZWxmOwogIGNvbnN0IG5vZGVNb2R1bGVOYW1lID0gJ3dvcmtlcl90aHJlYWRzJzsKICBjb25zdCBub2RlTW9kdWxlSWQgPSBgbm9kZToke25vZGVNb2R1bGVOYW1lfWA7CiAgY29uc3QgeyBwYXJlbnRQb3J0IH0gPSBhd2FpdCBpbXBvcnQoLyogQHZpdGUtaWdub3JlICovIG5vZGVNb2R1bGVJZCk7CiAgcmV0dXJuIHBhcmVudFBvcnQ7Cn0KCmZ1bmN0aW9uIF9fX3dhaXRGb3JNc2dUeXBlKHRhcmdldCwgdHlwZSkgewogIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaWYgKHR5cGVvZiB0YXJnZXQub24gPT09ICdmdW5jdGlvbicpIHsKICAgICAgLy8gTm9kZTogRXZlbnRFbWl0dGVyLCBkYXRhIHBhc3NlZCBkaXJlY3RseQogICAgICB0YXJnZXQub24oJ21lc3NhZ2UnLCBmdW5jdGlvbiBvbk1zZyhkYXRhKSB7CiAgICAgICAgaWYgKGRhdGE/LnR5cGUgIT09IHR5cGUpIHJldHVybjsKICAgICAgICB0YXJnZXQub2ZmKCdtZXNzYWdlJywgb25Nc2cpOwogICAgICAgIHJlc29sdmUoZGF0YSk7CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgLy8gQnJvd3NlcjogRE9NIGV2ZW50cywgZGF0YSB3cmFwcGVkIGluIE1lc3NhZ2VFdmVudAogICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uIG9uTXNnKHsgZGF0YSB9KSB7CiAgICAgICAgaWYgKGRhdGE/LnR5cGUgIT09IHR5cGUpIHJldHVybjsKICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTXNnKTsKICAgICAgICByZXNvbHZlKGRhdGEpOwogICAgICB9KTsKICAgIH0KICB9KTsKfQoKX19fZ2V0VGFyZ2V0KCkudGhlbigodGFyZ2V0KSA9PgogIF9fX3dhaXRGb3JNc2dUeXBlKHRhcmdldCwgJ3dhc21fYmluZGdlbl93b3JrZXJfaW5pdCcpLnRoZW4oCiAgICBhc3luYyAoeyBpbml0LCByZWNlaXZlciB9KSA9PiB7CiAgICAgIGNvbnN0IHBrZyA9IGF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0ZmhlOwogICAgICB9KTsKICAgICAgYXdhaXQgcGtnLmRlZmF1bHQoaW5pdCk7CiAgICAgIHRhcmdldC5wb3N0TWVzc2FnZSh7IHR5cGU6ICd3YXNtX2JpbmRnZW5fd29ya2VyX3JlYWR5JyB9KTsKICAgICAgcGtnLndiZ19yYXlvbl9zdGFydF93b3JrZXIocmVjZWl2ZXIpOwogICAgfSwKICApLAopOwoKLyoqCiAqIEBwYXJhbSB7bnVtYmVyfSByZWNlaXZlcgogKi8KZnVuY3Rpb24gd2JnX3JheW9uX3N0YXJ0X3dvcmtlcihyZWNlaXZlcikgewogIHdhc20ud2JnX3JheW9uX3N0YXJ0X3dvcmtlcihyZWNlaXZlcik7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIEludGVybmFsIHdhc21iaW5kZ2VuIHRvb2xzCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBJbXBvcnRzOgovLyBfX3diZ19nZXRfaW1wb3J0cwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX193YmdfZ2V0X2ltcG9ydHMobWVtb3J5KSB7CiAgICBjb25zdCBpbXBvcnQwID0gewogICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICAgICBfX3diZ19CaWdJbnRfNjViY2VhMjUxZTc4ODA4MzogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gQmlnSW50KGFyZzApOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfQmlnSW50X2NjYmNhNzkzZjQ1NmU1ODI6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgICAgICBjb25zdCByZXQgPSBCaWdJbnQoYXJnMCk7CiAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgICAgICB9LCBhcmd1bWVudHMpOwogICAgICAgIH0sCiAgICAgICAgX193YmdfRXJyb3JfOTYwYzE1NWQzZDQ5ZTRjMjogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gRXJyb3IoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX19fd2JpbmRnZW5fYmlnaW50X2dldF9hc19pNjRfM2QzYWJhNWQ2MTZjNmE1MTogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3QgdiA9IGFyZzE7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHR5cGVvZiAodikgPT09ICdiaWdpbnQnID8gdiA6IHVuZGVmaW5lZDsKICAgICAgICAgICAgZ2V0RGF0YVZpZXdNZW1vcnkwKCkuc2V0QmlnSW50NjQoYXJnMCArIDggKiAxLCBpc0xpa2VOb25lKHJldCkgPyBCaWdJbnQoMCkgOiByZXQsIHRydWUpOwogICAgICAgICAgICBnZXREYXRhVmlld01lbW9yeTAoKS5zZXRJbnQzMihhcmcwICsgNCAqIDAsICFpc0xpa2VOb25lKHJldCksIHRydWUpOwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9iaXRfYW5kXzk2ZjY5NmM1NmI0OTUwZDU6IGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAgJiBhcmcxOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9iaXRfb3JfZDU2NGMyNzUxZmRhYzZjOTogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMCB8IGFyZzE7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX2RlYnVnX3N0cmluZ19hYjRiMzRkMjNkNjc3OGJkOiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICBjb25zdCByZXQgPSBkZWJ1Z1N0cmluZyhhcmcxKTsKICAgICAgICAgICAgY29uc3QgcHRyMSA9IHBhc3NTdHJpbmdUb1dhc20wKHJldCwgd2FzbS5fX3diaW5kZ2VuX21hbGxvYywgd2FzbS5fX3diaW5kZ2VuX3JlYWxsb2MpOwogICAgICAgICAgICBjb25zdCBsZW4xID0gV0FTTV9WRUNUT1JfTEVOOwogICAgICAgICAgICBnZXREYXRhVmlld01lbW9yeTAoKS5zZXRJbnQzMihhcmcwICsgNCAqIDEsIGxlbjEsIHRydWUpOwogICAgICAgICAgICBnZXREYXRhVmlld01lbW9yeTAoKS5zZXRJbnQzMihhcmcwICsgNCAqIDAsIHB0cjEsIHRydWUpOwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9pc19mdW5jdGlvbl8zYmFhOWRiMWE5ODdmNDdkOiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICBjb25zdCByZXQgPSB0eXBlb2YgKGFyZzApID09PSAnZnVuY3Rpb24nOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9pc19vYmplY3RfNjMzMjJlYzBjZDZlYTRlZjogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgY29uc3QgdmFsID0gYXJnMDsKICAgICAgICAgICAgY29uc3QgcmV0ID0gdHlwZW9mICh2YWwpID09PSAnb2JqZWN0JyAmJiB2YWwgIT09IG51bGw7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX2lzX3N0cmluZ182ZGYzYmY3ZWYxMTY0ZWQzOiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICBjb25zdCByZXQgPSB0eXBlb2YgKGFyZzApID09PSAnc3RyaW5nJzsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX19fd2JpbmRnZW5faXNfdW5kZWZpbmVkXzI5YTQzYjRkNDI5MjBhYmQ6IGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAgPT09IHVuZGVmaW5lZDsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX19fd2JpbmRnZW5fanN2YWxfZXFfZDM0NjVkOGEwNzY5NzIyODogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMCA9PT0gYXJnMTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX19fd2JpbmRnZW5fbHRfNzhiYWIzODI2MjhmYjQ4ZjogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMCA8IGFyZzE7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX21lbW9yeV9kZmExMjA5NmY0MDBjOWJkOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHdhc20ubWVtb3J5OwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9tb2R1bGVfYjVlNmZiOTVkYmRiN2Q3ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zdCByZXQgPSB3YXNtTW9kdWxlOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl9uZWdfOGQzOWQyM2VmNjVjOWZkYjogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gLWFyZzA7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX3NobF9jN2VhNDE3MzM4N2ExNjY5OiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICBjb25zdCByZXQgPSBhcmcwIDw8IGFyZzE7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX3Nocl80MzY1NTNjYmFlZjQxYTY2OiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICBjb25zdCByZXQgPSBhcmcwID4+IGFyZzE7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19fX3diaW5kZ2VuX3N0cmluZ19nZXRfN2VkNTMyMjk5MWNhYWVjNTogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgY29uc3Qgb2JqID0gYXJnMTsKICAgICAgICAgICAgY29uc3QgcmV0ID0gdHlwZW9mIChvYmopID09PSAnc3RyaW5nJyA/IG9iaiA6IHVuZGVmaW5lZDsKICAgICAgICAgICAgdmFyIHB0cjEgPSBpc0xpa2VOb25lKHJldCkgPyAwIDogcGFzc1N0cmluZ1RvV2FzbTAocmV0LCB3YXNtLl9fd2JpbmRnZW5fbWFsbG9jLCB3YXNtLl9fd2JpbmRnZW5fcmVhbGxvYyk7CiAgICAgICAgICAgIHZhciBsZW4xID0gV0FTTV9WRUNUT1JfTEVOOwogICAgICAgICAgICBnZXREYXRhVmlld01lbW9yeTAoKS5zZXRJbnQzMihhcmcwICsgNCAqIDEsIGxlbjEsIHRydWUpOwogICAgICAgICAgICBnZXREYXRhVmlld01lbW9yeTAoKS5zZXRJbnQzMihhcmcwICsgNCAqIDAsIHB0cjEsIHRydWUpOwogICAgICAgIH0sCiAgICAgICAgX193YmdfX193YmluZGdlbl90aHJvd182YjY0NDQ5YjliOWVkMzNjOiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTsKICAgICAgICB9LAogICAgICAgIF9fd2JnX2NhbGxfYTI0NTkyYTZmMzQ5YTk3ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAuY2FsbChhcmcxLCBhcmcyKTsKICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICAgIH0sIGFyZ3VtZW50cyk7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19jcnlwdG9fMzhkZjJiYWIxMjZiNjNkYzogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMC5jcnlwdG87CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19lcnJvcl9hNmZhMjAyYjU4YWExY2QzOiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICBsZXQgZGVmZXJyZWQwXzA7CiAgICAgICAgICAgIGxldCBkZWZlcnJlZDBfMTsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGRlZmVycmVkMF8wID0gYXJnMDsKICAgICAgICAgICAgICAgIGRlZmVycmVkMF8xID0gYXJnMTsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZ2V0U3RyaW5nRnJvbVdhc20wKGFyZzAsIGFyZzEpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIHdhc20uX193YmluZGdlbl9mcmVlKGRlZmVycmVkMF8wLCBkZWZlcnJlZDBfMSwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIF9fd2JnX2dldFJhbmRvbVZhbHVlc19jNDRhNTBkOGNmZGFlYmViOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiBoYW5kbGVFcnJvcihmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICAgICAgYXJnMC5nZXRSYW5kb21WYWx1ZXMoYXJnMSk7CiAgICAgICAgICAgIH0sIGFyZ3VtZW50cyk7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19nZXRUaW1lX2RhN2M1NWY1MmI3MWU4YzY6IGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAuZ2V0VGltZSgpOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfaW5zdGFuY2VvZl9XaW5kb3dfY2M2NGM4NmM4ZWY5ZTAyYjogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgbGV0IHJlc3VsdDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFyZzAgaW5zdGFuY2VvZiBXaW5kb3c7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggKF8pIHsKICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHJlc3VsdDsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX2xlbmd0aF85ZjE3NzUyMjRjZjFkODE1OiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICBjb25zdCByZXQgPSBhcmcwLmxlbmd0aDsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX21zQ3J5cHRvX2JkNWEwMzRhZjk2YmNiYTY6IGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAubXNDcnlwdG87CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19uZXdfMF80ZDY1NzIwMWNlZDE0ZGUzOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IG5ldyBEYXRlKCk7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19uZXdfMjI3ZDdjMDU0MTRlYjg2MTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zdCByZXQgPSBuZXcgRXJyb3IoKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX25ld193aXRoX2xlbmd0aF84Yzg1NGU0MWVhNGRhZTliOiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICBjb25zdCByZXQgPSBuZXcgVWludDhBcnJheShhcmcwID4+PiAwKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX25vZGVfODRlYTg3NTQxMTI1NGRiMTogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMC5ub2RlOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmdfcHJvY2Vzc180NGM3YTE0ZTExZTlmNjllOiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICBjb25zdCByZXQgPSBhcmcwLnByb2Nlc3M7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19wcm90b3R5cGVzZXRjYWxsX2E2YjAyZWIwMGIwZjRjZTI6IGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7CiAgICAgICAgICAgIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGdldEFycmF5VThGcm9tV2FzbTAoYXJnMCwgYXJnMSksIGFyZzIpOwogICAgICAgIH0sCiAgICAgICAgX193YmdfcmFuZG9tRmlsbFN5bmNfNmMyNWVhYzk4NjllYjUzYzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3IoZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgICAgIGFyZzAucmFuZG9tRmlsbFN5bmMoYXJnMSk7CiAgICAgICAgICAgIH0sIGFyZ3VtZW50cyk7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19yZXF1aXJlX2I0ZWRiZGNmM2UyYTFlZjA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHJldCA9IG1vZHVsZS5yZXF1aXJlOwogICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgICAgfSwgYXJndW1lbnRzKTsKICAgICAgICB9LAogICAgICAgIF9fd2JnX3N0YWNrXzNiMGQ5NzRiYmYzMWU0NGY6IGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzEuc3RhY2s7CiAgICAgICAgICAgIGNvbnN0IHB0cjEgPSBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTsKICAgICAgICAgICAgY29uc3QgbGVuMSA9IFdBU01fVkVDVE9SX0xFTjsKICAgICAgICAgICAgZ2V0RGF0YVZpZXdNZW1vcnkwKCkuc2V0SW50MzIoYXJnMCArIDQgKiAxLCBsZW4xLCB0cnVlKTsKICAgICAgICAgICAgZ2V0RGF0YVZpZXdNZW1vcnkwKCkuc2V0SW50MzIoYXJnMCArIDQgKiAwLCBwdHIxLCB0cnVlKTsKICAgICAgICB9LAogICAgICAgIF9fd2JnX3N0YXJ0V29ya2Vyc184YjU4MmQ1N2U5MmJkMmQ0OiBmdW5jdGlvbiAoYXJnMCwgYXJnMSwgYXJnMikgewogICAgICAgICAgICBoYW5kbGVFcnJvcihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YXJ0V29ya2VycyBub3Qgc3VwcG9ydGVkIGZyb20gYSB3b3JrZXIgdGhyZWFkJyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAvLyBjb25zdCByZXQgPSBzdGFydFdvcmtlcnMoYXJnMCwgYXJnMSwgd2JnX3JheW9uX1Bvb2xCdWlsZGVyLl9fd3JhcChhcmcyKSk7CiAgICAgICAgICAgIC8vIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19zdGF0aWNfYWNjZXNzb3JfR0xPQkFMXzhjZmFkYzg3YTI5N2NhMDI6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gdHlwZW9mIGdsb2JhbCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogZ2xvYmFsOwogICAgICAgICAgICByZXR1cm4gaXNMaWtlTm9uZShyZXQpID8gMCA6IGFkZFRvRXh0ZXJucmVmVGFibGUwKHJldCk7CiAgICAgICAgfSwKICAgICAgICBfX3diZ19zdGF0aWNfYWNjZXNzb3JfR0xPQkFMX1RISVNfNjAyMjU2YWU1YzhmNDJjZjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zdCByZXQgPSB0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogZ2xvYmFsVGhpczsKICAgICAgICAgICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRUb0V4dGVybnJlZlRhYmxlMChyZXQpOwogICAgICAgIH0sCiAgICAgICAgX193Ymdfc3RhdGljX2FjY2Vzc29yX1NFTEZfZTQ0NWMxYzc0ODRhZWNjMzogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zdCByZXQgPSB0eXBlb2Ygc2VsZiA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogc2VsZjsKICAgICAgICAgICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRUb0V4dGVybnJlZlRhYmxlMChyZXQpOwogICAgICAgIH0sCiAgICAgICAgX193Ymdfc3RhdGljX2FjY2Vzc29yX1dJTkRPV19mMjBlODU3NmVmMWUwZjE3OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHdpbmRvdzsKICAgICAgICAgICAgcmV0dXJuIGlzTGlrZU5vbmUocmV0KSA/IDAgOiBhZGRUb0V4dGVybnJlZlRhYmxlMChyZXQpOwogICAgICAgIH0sCiAgICAgICAgX193Ymdfc3ViYXJyYXlfZjhjYTQ2YTI1YjFmNWUwZDogZnVuY3Rpb24gKGFyZzAsIGFyZzEsIGFyZzIpIHsKICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMC5zdWJhcnJheShhcmcxID4+PiAwLCBhcmcyID4+PiAwKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX3RvU3RyaW5nXzZkYzFhOTRlMGJkYmEzNzg6IGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAudG9TdHJpbmcoKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JnX3RvU3RyaW5nX2M5NmRjNzZkNTU0N2E3MTU6IGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzEudG9TdHJpbmcoYXJnMik7CiAgICAgICAgICAgIGNvbnN0IHB0cjEgPSBwYXNzU3RyaW5nVG9XYXNtMChyZXQsIHdhc20uX193YmluZGdlbl9tYWxsb2MsIHdhc20uX193YmluZGdlbl9yZWFsbG9jKTsKICAgICAgICAgICAgY29uc3QgbGVuMSA9IFdBU01fVkVDVE9SX0xFTjsKICAgICAgICAgICAgZ2V0RGF0YVZpZXdNZW1vcnkwKCkuc2V0SW50MzIoYXJnMCArIDQgKiAxLCBsZW4xLCB0cnVlKTsKICAgICAgICAgICAgZ2V0RGF0YVZpZXdNZW1vcnkwKCkuc2V0SW50MzIoYXJnMCArIDQgKiAwLCBwdHIxLCB0cnVlKTsKICAgICAgICB9LAogICAgICAgIF9fd2JnX3ZlcnNpb25zXzI3NmIyNzk1YjFjNmEyMTk6IGZ1bmN0aW9uIChhcmcwKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IGFyZzAudmVyc2lvbnM7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwMTogZnVuY3Rpb24gKGFyZzApIHsKICAgICAgICAgICAgLy8gQ2FzdCBpbnRyaW5zaWMgZm9yIGBGNjQgLT4gRXh0ZXJucmVmYC4KICAgICAgICAgICAgY29uc3QgcmV0ID0gYXJnMDsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAyOiBmdW5jdGlvbiAoYXJnMCwgYXJnMSkgewogICAgICAgICAgICAvLyBDYXN0IGludHJpbnNpYyBmb3IgYEkxMjggLT4gRXh0ZXJucmVmYC4KICAgICAgICAgICAgY29uc3QgcmV0ID0gKEJpZ0ludC5hc1VpbnROKDY0LCBhcmcwKSB8IChhcmcxIDw8IEJpZ0ludCg2NCkpKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAzOiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICAvLyBDYXN0IGludHJpbnNpYyBmb3IgYEk2NCAtPiBFeHRlcm5yZWZgLgogICAgICAgICAgICBjb25zdCByZXQgPSBhcmcwOwogICAgICAgICAgICByZXR1cm4gcmV0OwogICAgICAgIH0sCiAgICAgICAgX193YmluZGdlbl9jYXN0XzAwMDAwMDAwMDAwMDAwMDQ6IGZ1bmN0aW9uIChhcmcwLCBhcmcxKSB7CiAgICAgICAgICAgIC8vIENhc3QgaW50cmluc2ljIGZvciBgUmVmKFNsaWNlKFU4KSkgLT4gTmFtZWRFeHRlcm5yZWYoIlVpbnQ4QXJyYXkiKWAuCiAgICAgICAgICAgIGNvbnN0IHJldCA9IGdldEFycmF5VThGcm9tV2FzbTAoYXJnMCwgYXJnMSk7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNTogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgLy8gQ2FzdCBpbnRyaW5zaWMgZm9yIGBSZWYoU3RyaW5nKSAtPiBFeHRlcm5yZWZgLgogICAgICAgICAgICBjb25zdCByZXQgPSBnZXRTdHJpbmdGcm9tV2FzbTAoYXJnMCwgYXJnMSk7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diaW5kZ2VuX2Nhc3RfMDAwMDAwMDAwMDAwMDAwNjogZnVuY3Rpb24gKGFyZzAsIGFyZzEpIHsKICAgICAgICAgICAgLy8gQ2FzdCBpbnRyaW5zaWMgZm9yIGBVMTI4IC0+IEV4dGVybnJlZmAuCiAgICAgICAgICAgIGNvbnN0IHJldCA9IChCaWdJbnQuYXNVaW50Tig2NCwgYXJnMCkgfCAoQmlnSW50LmFzVWludE4oNjQsIGFyZzEpIDw8IEJpZ0ludCg2NCkpKTsKICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICB9LAogICAgICAgIF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDA3OiBmdW5jdGlvbiAoYXJnMCkgewogICAgICAgICAgICAvLyBDYXN0IGludHJpbnNpYyBmb3IgYFU2NCAtPiBFeHRlcm5yZWZgLgogICAgICAgICAgICBjb25zdCByZXQgPSBCaWdJbnQuYXNVaW50Tig2NCwgYXJnMCk7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfSwKICAgICAgICBfX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHRhYmxlID0gd2FzbS5fX3diaW5kZ2VuX2V4dGVybnJlZnM7CiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRhYmxlLmdyb3coNCk7CiAgICAgICAgICAgIHRhYmxlLnNldCgwLCB1bmRlZmluZWQpOwogICAgICAgICAgICB0YWJsZS5zZXQob2Zmc2V0ICsgMCwgdW5kZWZpbmVkKTsKICAgICAgICAgICAgdGFibGUuc2V0KG9mZnNldCArIDEsIG51bGwpOwogICAgICAgICAgICB0YWJsZS5zZXQob2Zmc2V0ICsgMiwgdHJ1ZSk7CiAgICAgICAgICAgIHRhYmxlLnNldChvZmZzZXQgKyAzLCBmYWxzZSk7CiAgICAgICAgfSwKICAgICAgICBtZW1vcnk6IG1lbW9yeSB8fCBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KHsgaW5pdGlhbDogMjEsIG1heGltdW06IDE2Mzg0LCBzaGFyZWQ6IHRydWUgfSksCiAgICB9OwogICAgcmV0dXJuIHsKICAgICAgICBfX3Byb3RvX186IG51bGwsCiAgICAgICAgIi4vdGZoZV9iZy5qcyI6IGltcG9ydDAsCiAgICB9Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBhZGRUb0V4dGVybnJlZlRhYmxlMAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gYWRkVG9FeHRlcm5yZWZUYWJsZTAob2JqKSB7CiAgICBjb25zdCBpZHggPSB3YXNtLl9fZXh0ZXJucmVmX3RhYmxlX2FsbG9jKCk7CiAgICB3YXNtLl9fd2JpbmRnZW5fZXh0ZXJucmVmcy5zZXQoaWR4LCBvYmopOwogICAgcmV0dXJuIGlkeDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gZGVidWdTdHJpbmcKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGRlYnVnU3RyaW5nKHZhbCkgewogICAgLy8gcHJpbWl0aXZlIHR5cGVzCiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbDsKICAgIGlmICh0eXBlID09ICdudW1iZXInIHx8IHR5cGUgPT0gJ2Jvb2xlYW4nIHx8IHZhbCA9PSBudWxsKSB7CiAgICAgICAgcmV0dXJuIGAke3ZhbH1gOwogICAgfQogICAgaWYgKHR5cGUgPT0gJ3N0cmluZycpIHsKICAgICAgICByZXR1cm4gYCIke3ZhbH0iYDsKICAgIH0KICAgIGlmICh0eXBlID09ICdzeW1ib2wnKSB7CiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB2YWwuZGVzY3JpcHRpb247CiAgICAgICAgaWYgKGRlc2NyaXB0aW9uID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuICdTeW1ib2wnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGBTeW1ib2woJHtkZXNjcmlwdGlvbn0pYDsKICAgICAgICB9CiAgICB9CiAgICBpZiAodHlwZSA9PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgY29uc3QgbmFtZSA9IHZhbC5uYW1lOwogICAgICAgIGlmICh0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJyAmJiBuYW1lLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgcmV0dXJuIGBGdW5jdGlvbigke25hbWV9KWA7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJ0Z1bmN0aW9uJzsKICAgICAgICB9CiAgICB9CiAgICAvLyBvYmplY3RzCiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmFsLmxlbmd0aDsKICAgICAgICBsZXQgZGVidWcgPSAnWyc7CiAgICAgICAgaWYgKGxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZGVidWcgKz0gZGVidWdTdHJpbmcodmFsWzBdKTsKICAgICAgICB9CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBkZWJ1ZyArPSAnLCAnICsgZGVidWdTdHJpbmcodmFsW2ldKTsKICAgICAgICB9CiAgICAgICAgZGVidWcgKz0gJ10nOwogICAgICAgIHJldHVybiBkZWJ1ZzsKICAgIH0KICAgIC8vIFRlc3QgZm9yIGJ1aWx0LWluCiAgICBjb25zdCBidWlsdEluTWF0Y2hlcyA9IC9cW29iamVjdCAoW15cXV0rKVxdLy5leGVjKHRvU3RyaW5nLmNhbGwodmFsKSk7CiAgICBsZXQgY2xhc3NOYW1lOwogICAgaWYgKGJ1aWx0SW5NYXRjaGVzICYmIGJ1aWx0SW5NYXRjaGVzLmxlbmd0aCA+IDEpIHsKICAgICAgICBjbGFzc05hbWUgPSBidWlsdEluTWF0Y2hlc1sxXTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIC8vIEZhaWxlZCB0byBtYXRjaCB0aGUgc3RhbmRhcmQgJ1tvYmplY3QgQ2xhc3NOYW1lXScKICAgICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWwpOwogICAgfQogICAgaWYgKGNsYXNzTmFtZSA9PSAnT2JqZWN0JykgewogICAgICAgIC8vIHdlJ3JlIGEgdXNlciBkZWZpbmVkIGNsYXNzIG9yIE9iamVjdAogICAgICAgIC8vIEpTT04uc3RyaW5naWZ5IGF2b2lkcyBwcm9ibGVtcyB3aXRoIGN5Y2xlcywgYW5kIGlzIGdlbmVyYWxseSBtdWNoCiAgICAgICAgLy8gZWFzaWVyIHRoYW4gbG9vcGluZyB0aHJvdWdoIG93blByb3BlcnRpZXMgb2YgYHZhbGAuCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcmV0dXJuICdPYmplY3QoJyArIEpTT04uc3RyaW5naWZ5KHZhbCkgKyAnKSc7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChfKSB7CiAgICAgICAgICAgIHJldHVybiAnT2JqZWN0JzsKICAgICAgICB9CiAgICB9CiAgICAvLyBlcnJvcnMKICAgIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikgewogICAgICAgIHJldHVybiBgJHt2YWwubmFtZX06ICR7dmFsLm1lc3NhZ2V9XG4ke3ZhbC5zdGFja31gOwogICAgfQogICAgLy8gVE9ETyB3ZSBjb3VsZCB0ZXN0IGZvciBtb3JlIHRoaW5ncyBoZXJlLCBsaWtlIGBTZXRgcyBhbmQgYE1hcGBzLgogICAgcmV0dXJuIGNsYXNzTmFtZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gZ2V0QXJyYXlVOEZyb21XYXNtMAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gZ2V0QXJyYXlVOEZyb21XYXNtMChwdHIsIGxlbikgewogICAgcHRyID0gcHRyID4+PiAwOwogICAgcmV0dXJuIGdldFVpbnQ4QXJyYXlNZW1vcnkwKCkuc3ViYXJyYXkocHRyIC8gMSwgcHRyIC8gMSArIGxlbik7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIGNhY2hlZERhdGFWaWV3TWVtb3J5MAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKbGV0IGNhY2hlZERhdGFWaWV3TWVtb3J5MCA9IG51bGw7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBnZXREYXRhVmlld01lbW9yeTAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGdldERhdGFWaWV3TWVtb3J5MCgpIHsKICAgIGlmIChjYWNoZWREYXRhVmlld01lbW9yeTAgPT09IG51bGwgfHwgY2FjaGVkRGF0YVZpZXdNZW1vcnkwLmJ1ZmZlciAhPT0gd2FzbS5tZW1vcnkuYnVmZmVyKSB7CiAgICAgICAgY2FjaGVkRGF0YVZpZXdNZW1vcnkwID0gbmV3IERhdGFWaWV3KHdhc20ubWVtb3J5LmJ1ZmZlcik7CiAgICB9CiAgICByZXR1cm4gY2FjaGVkRGF0YVZpZXdNZW1vcnkwOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBnZXRTdHJpbmdGcm9tV2FzbTAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGdldFN0cmluZ0Zyb21XYXNtMChwdHIsIGxlbikgewogICAgcHRyID0gcHRyID4+PiAwOwogICAgcmV0dXJuIGRlY29kZVRleHQocHRyLCBsZW4pOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBjYWNoZWRVaW50OEFycmF5TWVtb3J5MAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKbGV0IGNhY2hlZFVpbnQ4QXJyYXlNZW1vcnkwID0gbnVsbDsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIGdldFVpbnQ4QXJyYXlNZW1vcnkwCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBnZXRVaW50OEFycmF5TWVtb3J5MCgpIHsKICAgIGlmIChjYWNoZWRVaW50OEFycmF5TWVtb3J5MCA9PT0gbnVsbCB8fCBjYWNoZWRVaW50OEFycmF5TWVtb3J5MC5idWZmZXIgIT09IHdhc20ubWVtb3J5LmJ1ZmZlcikgewogICAgICAgIGNhY2hlZFVpbnQ4QXJyYXlNZW1vcnkwID0gbmV3IFVpbnQ4QXJyYXkod2FzbS5tZW1vcnkuYnVmZmVyKTsKICAgIH0KICAgIHJldHVybiBjYWNoZWRVaW50OEFycmF5TWVtb3J5MDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaGFuZGxlRXJyb3IKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGhhbmRsZUVycm9yKGYsIGFyZ3MpIHsKICAgIHRyeSB7CiAgICAgICAgcmV0dXJuIGYuYXBwbHkodGhpcywgYXJncyk7CiAgICB9CiAgICBjYXRjaCAoZSkgewogICAgICAgIGNvbnN0IGlkeCA9IGFkZFRvRXh0ZXJucmVmVGFibGUwKGUpOwogICAgICAgIHdhc20uX193YmluZGdlbl9leG5fc3RvcmUoaWR4KTsKICAgIH0KfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gaXNMaWtlTm9uZQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gaXNMaWtlTm9uZSh4KSB7CiAgICByZXR1cm4geCA9PT0gdW5kZWZpbmVkIHx8IHggPT09IG51bGw7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIHBhc3NTdHJpbmdUb1dhc20wCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBwYXNzU3RyaW5nVG9XYXNtMChhcmcsIG1hbGxvYywgcmVhbGxvYykgewogICAgaWYgKHJlYWxsb2MgPT09IHVuZGVmaW5lZCkgewogICAgICAgIGNvbnN0IGJ1ZiA9IGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZShhcmcpOwogICAgICAgIGNvbnN0IHB0ciA9IG1hbGxvYyhidWYubGVuZ3RoLCAxKSA+Pj4gMDsKICAgICAgICBnZXRVaW50OEFycmF5TWVtb3J5MCgpLnN1YmFycmF5KHB0ciwgcHRyICsgYnVmLmxlbmd0aCkuc2V0KGJ1Zik7CiAgICAgICAgV0FTTV9WRUNUT1JfTEVOID0gYnVmLmxlbmd0aDsKICAgICAgICByZXR1cm4gcHRyOwogICAgfQogICAgbGV0IGxlbiA9IGFyZy5sZW5ndGg7CiAgICBsZXQgcHRyID0gbWFsbG9jKGxlbiwgMSkgPj4+IDA7CiAgICBjb25zdCBtZW0gPSBnZXRVaW50OEFycmF5TWVtb3J5MCgpOwogICAgbGV0IG9mZnNldCA9IDA7CiAgICBmb3IgKDsgb2Zmc2V0IDwgbGVuOyBvZmZzZXQrKykgewogICAgICAgIGNvbnN0IGNvZGUgPSBhcmcuY2hhckNvZGVBdChvZmZzZXQpOwogICAgICAgIGlmIChjb2RlID4gMHg3RikKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgbWVtW3B0ciArIG9mZnNldF0gPSBjb2RlOwogICAgfQogICAgaWYgKG9mZnNldCAhPT0gbGVuKSB7CiAgICAgICAgaWYgKG9mZnNldCAhPT0gMCkgewogICAgICAgICAgICBhcmcgPSBhcmcuc2xpY2Uob2Zmc2V0KTsKICAgICAgICB9CiAgICAgICAgcHRyID0gcmVhbGxvYyhwdHIsIGxlbiwgbGVuID0gb2Zmc2V0ICsgYXJnLmxlbmd0aCAqIDMsIDEpID4+PiAwOwogICAgICAgIGNvbnN0IHZpZXcgPSBnZXRVaW50OEFycmF5TWVtb3J5MCgpLnN1YmFycmF5KHB0ciArIG9mZnNldCwgcHRyICsgbGVuKTsKICAgICAgICBjb25zdCByZXQgPSBjYWNoZWRUZXh0RW5jb2Rlci5lbmNvZGVJbnRvKGFyZywgdmlldyk7CiAgICAgICAgb2Zmc2V0ICs9IHJldC53cml0dGVuOwogICAgICAgIHB0ciA9IHJlYWxsb2MocHRyLCBsZW4sIG9mZnNldCwgMSkgPj4+IDA7CiAgICB9CiAgICBXQVNNX1ZFQ1RPUl9MRU4gPSBvZmZzZXQ7CiAgICByZXR1cm4gcHRyOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBjYWNoZWRUZXh0RGVjb2RlcgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKbGV0IGNhY2hlZFRleHREZWNvZGVyID0gKHR5cGVvZiBUZXh0RGVjb2RlciAhPT0gJ3VuZGVmaW5lZCcgPyBuZXcgVGV4dERlY29kZXIoJ3V0Zi04JywgeyBpZ25vcmVCT006IHRydWUsIGZhdGFsOiB0cnVlIH0pIDogdW5kZWZpbmVkKTsKCmlmIChjYWNoZWRUZXh0RGVjb2RlcikKICAgIGNhY2hlZFRleHREZWNvZGVyLmRlY29kZSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gTUFYX1NBRkFSSV9ERUNPREVfQllURVMKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmNvbnN0IE1BWF9TQUZBUklfREVDT0RFX0JZVEVTID0gMjE0NjQzNTA3MjsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIG51bUJ5dGVzRGVjb2RlZAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKbGV0IG51bUJ5dGVzRGVjb2RlZCA9IDA7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBkZWNvZGVUZXh0Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBkZWNvZGVUZXh0KHB0ciwgbGVuKSB7CiAgICBudW1CeXRlc0RlY29kZWQgKz0gbGVuOwogICAgaWYgKG51bUJ5dGVzRGVjb2RlZCA+PSBNQVhfU0FGQVJJX0RFQ09ERV9CWVRFUykgewogICAgICAgIGNhY2hlZFRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHsgaWdub3JlQk9NOiB0cnVlLCBmYXRhbDogdHJ1ZSB9KTsKICAgICAgICBjYWNoZWRUZXh0RGVjb2Rlci5kZWNvZGUoKTsKICAgICAgICBudW1CeXRlc0RlY29kZWQgPSBsZW47CiAgICB9CiAgICByZXR1cm4gY2FjaGVkVGV4dERlY29kZXIuZGVjb2RlKGdldFVpbnQ4QXJyYXlNZW1vcnkwKCkuc2xpY2UocHRyLCBwdHIgKyBsZW4pKTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gY2FjaGVkVGV4dEVuY29kZXIKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmNvbnN0IGNhY2hlZFRleHRFbmNvZGVyID0gKHR5cGVvZiBUZXh0RW5jb2RlciAhPT0gJ3VuZGVmaW5lZCcgPyBuZXcgVGV4dEVuY29kZXIoKSA6IHVuZGVmaW5lZCk7CgppZiAoY2FjaGVkVGV4dEVuY29kZXIpIHsKICAgIGNhY2hlZFRleHRFbmNvZGVyLmVuY29kZUludG8gPSBmdW5jdGlvbiAoYXJnLCB2aWV3KSB7CiAgICAgICAgY29uc3QgYnVmID0gY2FjaGVkVGV4dEVuY29kZXIuZW5jb2RlKGFyZyk7CiAgICAgICAgdmlldy5zZXQoYnVmKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICByZWFkOiBhcmcubGVuZ3RoLAogICAgICAgICAgICB3cml0dGVuOiBidWYubGVuZ3RoCiAgICAgICAgfTsKICAgIH07Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFdBU01fVkVDVE9SX0xFTiBpcyBhIG1vZHVsZS1sZXZlbCB2YXJpYWJsZSB0aGF0IHN0b3JlcyB0aGUgYnl0ZSBsZW5ndGggb2YKLy8gdGhlIGRhdGEganVzdCB3cml0dGVuIGludG8gV0FTTSBtZW1vcnkuIEl0IGFjdHMgYXMgYW4gb3V0LXBhcmFtZXRlci4KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmxldCBXQVNNX1ZFQ1RPUl9MRU4gPSAwOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gV0FTTSBtb2R1bGUgc3RhdGUKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmxldCB3YXNtTW9kdWxlLCB3YXNtOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gSW5pdDoKLy8gX193YmdfZmluYWxpemVfaW5pdAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX193YmdfZmluYWxpemVfaW5pdChpbnN0YW5jZSwgbW9kdWxlLCB0aHJlYWRfc3RhY2tfc2l6ZSkgewogICAgd2FzbSA9IGluc3RhbmNlLmV4cG9ydHM7CiAgICB3YXNtTW9kdWxlID0gbW9kdWxlOwogICAgY2FjaGVkRGF0YVZpZXdNZW1vcnkwID0gbnVsbDsKICAgIGNhY2hlZFVpbnQ4QXJyYXlNZW1vcnkwID0gbnVsbDsKICAgIGlmICh0eXBlb2YgdGhyZWFkX3N0YWNrX3NpemUgIT09ICd1bmRlZmluZWQnICYmICh0eXBlb2YgdGhyZWFkX3N0YWNrX3NpemUgIT09ICdudW1iZXInIHx8IHRocmVhZF9zdGFja19zaXplID09PSAwIHx8IHRocmVhZF9zdGFja19zaXplICUgNjU1MzYgIT09IDApKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHN0YWNrIHNpemUnKTsKICAgIH0KICAgIHdhc20uX193YmluZGdlbl9zdGFydCh0aHJlYWRfc3RhY2tfc2l6ZSk7CiAgICByZXR1cm4gd2FzbTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gSW5pdDoKLy8gX193YmdfbG9hZAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKYXN5bmMgZnVuY3Rpb24gX193YmdfbG9hZChtb2R1bGUsIGltcG9ydHMpIHsKICAgIGlmICh0eXBlb2YgUmVzcG9uc2UgPT09ICdmdW5jdGlvbicgJiYgbW9kdWxlIGluc3RhbmNlb2YgUmVzcG9uc2UpIHsKICAgICAgICBpZiAodHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcobW9kdWxlLCBpbXBvcnRzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgY29uc3QgdmFsaWRSZXNwb25zZSA9IG1vZHVsZS5vayAmJiBleHBlY3RlZFJlc3BvbnNlVHlwZShtb2R1bGUudHlwZSk7CiAgICAgICAgICAgICAgICBpZiAodmFsaWRSZXNwb25zZSAmJiBtb2R1bGUuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpICE9PSAnYXBwbGljYXRpb24vd2FzbScpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oImBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZ2AgZmFpbGVkIGJlY2F1c2UgeW91ciBzZXJ2ZXIgZG9lcyBub3Qgc2VydmUgV2FzbSB3aXRoIGBhcHBsaWNhdGlvbi93YXNtYCBNSU1FIHR5cGUuIEZhbGxpbmcgYmFjayB0byBgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVgIHdoaWNoIGlzIHNsb3dlci4gT3JpZ2luYWwgZXJyb3I6XG4iLCBlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBtb2R1bGUuYXJyYXlCdWZmZXIoKTsKICAgICAgICByZXR1cm4gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnl0ZXMsIGltcG9ydHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShtb2R1bGUsIGltcG9ydHMpOwogICAgICAgIGlmIChpbnN0YW5jZSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5Lkluc3RhbmNlKSB7CiAgICAgICAgICAgIHJldHVybiB7IGluc3RhbmNlLCBtb2R1bGUgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBleHBlY3RlZFJlc3BvbnNlVHlwZSh0eXBlKSB7CiAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ2Jhc2ljJzoKICAgICAgICAgICAgY2FzZSAnY29ycyc6CiAgICAgICAgICAgIGNhc2UgJ2RlZmF1bHQnOiByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBJbml0OgovLyBfX3diZ19pbml0Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgphc3luYyBmdW5jdGlvbiBfX3diZ19pbml0KG1vZHVsZV9vcl9wYXRoLCBtZW1vcnkpIHsKICAgIGlmICh3YXNtICE9PSB1bmRlZmluZWQpCiAgICAgICAgcmV0dXJuIHdhc207CiAgICBsZXQgdGhyZWFkX3N0YWNrX3NpemU7CiAgICBpZiAobW9kdWxlX29yX3BhdGggIT09IHVuZGVmaW5lZCkgewogICAgICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YobW9kdWxlX29yX3BhdGgpID09PSBPYmplY3QucHJvdG90eXBlKSB7CiAgICAgICAgICAgICh7IG1vZHVsZV9vcl9wYXRoLCBtZW1vcnksIHRocmVhZF9zdGFja19zaXplIH0gPSBtb2R1bGVfb3JfcGF0aCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBjb25zb2xlLndhcm4oJ3VzaW5nIGRlcHJlY2F0ZWQgcGFyYW1ldGVycyBmb3IgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uOyBwYXNzIGEgc2luZ2xlIG9iamVjdCBpbnN0ZWFkJyk7CiAgICAgICAgfQogICAgfQogICAgLy8gICBpZiAobW9kdWxlX29yX3BhdGggPT09IHVuZGVmaW5lZCkgewogICAgLy8gICAgIG1vZHVsZV9vcl9wYXRoID0gbmV3IFVSTCgndGZoZV9iZy53YXNtJywgaW1wb3J0Lm1ldGEudXJsKTsKICAgIC8vICAgfQogICAgY29uc3QgaW1wb3J0cyA9IF9fd2JnX2dldF9pbXBvcnRzKG1lbW9yeSk7CiAgICAvLyAgIGlmICgKICAgIC8vICAgICB0eXBlb2YgbW9kdWxlX29yX3BhdGggPT09ICdzdHJpbmcnIHx8CiAgICAvLyAgICAgKHR5cGVvZiBSZXF1ZXN0ID09PSAnZnVuY3Rpb24nICYmIG1vZHVsZV9vcl9wYXRoIGluc3RhbmNlb2YgUmVxdWVzdCkgfHwKICAgIC8vICAgICAodHlwZW9mIFVSTCA9PT0gJ2Z1bmN0aW9uJyAmJiBtb2R1bGVfb3JfcGF0aCBpbnN0YW5jZW9mIFVSTCkKICAgIC8vICAgKSB7CiAgICAvLyAgICAgbW9kdWxlX29yX3BhdGggPSBmZXRjaChtb2R1bGVfb3JfcGF0aCk7CiAgICAvLyAgIH0KICAgIGNvbnN0IHsgaW5zdGFuY2UsIG1vZHVsZSB9ID0gYXdhaXQgX193YmdfbG9hZChhd2FpdCBtb2R1bGVfb3JfcGF0aCwgaW1wb3J0cyk7CiAgICByZXR1cm4gX193YmdfZmluYWxpemVfaW5pdChpbnN0YW5jZSwgbW9kdWxlLCB0aHJlYWRfc3RhY2tfc2l6ZSk7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vCi8vIFRoZSAndGZoZScgZ2xvYmFsIG9iamVjdAovLyA9PT09PT09PT09PT09PT09PT09PT09PT0KLy8gRmluYWwgdGZoZSBvYmplY3QgZ2xvYmFsIGRlY2xhcmF0aW9uIGNhbGxlZCBieSAnd2FpdEZvck1zZ1R5cGUnIG9ubHkKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciB0ZmhlID0gLyojX19QVVJFX18qLyBPYmplY3QuZnJlZXplKHsKICBfX3Byb3RvX186IG51bGwsCiAgZGVmYXVsdDogX193YmdfaW5pdCwKICB3YmdfcmF5b25fc3RhcnRfd29ya2VyOiB3YmdfcmF5b25fc3RhcnRfd29ya2VyLAp9KTsKCg==\";\n return await __newWorkerFromJsCodeBase64(workerBase64);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker initialization helpers\n////////////////////////////////////////////////////////////////////////////////\n\nasync function __createAndInitWorker(createWorker, workerInit, workerIndex, label) {\n let blobUrl = undefined;\n let worker = undefined;\n\n try {\n const result = await createWorker();\n worker = result.worker;\n blobUrl = result.blobUrl;\n\n _logger?.debug(`[Worker #${workerIndex}] - created with ${label}`);\n worker.postMessage(workerInit);\n await __waitForMsgType(worker, 'wasm_bindgen_worker_ready');\n\n if (blobUrl) {\n URL.revokeObjectURL(blobUrl);\n blobUrl = undefined;\n }\n\n _logger?.debug(`[Worker #${workerIndex}] - ready`);\n return worker;\n } catch (e) {\n if (blobUrl) {\n URL.revokeObjectURL(blobUrl);\n }\n\n if (worker) {\n try {\n await worker.terminate();\n } catch {\n // Preserve the worker creation/init error that triggered cleanup.\n }\n }\n\n throw e;\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Mode: `embedded-base64`\n */\nasync function __createAndInitWorkerFromEmbeddedBase64(workerInit, workerIndex) {\n return await __createAndInitWorker(\n () => __createWorkerFromBase64(),\n workerInit,\n workerIndex,\n 'embedded base64 worker',\n );\n}\n\n/**\n * Mode: `verified-blob`\n */\nasync function __createAndInitWorkerFromVerifiedBlob(workerInit, workerIndex) {\n return await __createAndInitWorker(\n () => __createWorkerFromVerifiedWorkerUrl(),\n workerInit,\n workerIndex,\n 'verified worker URL',\n );\n}\n\n/**\n * Mode: `trusted-direct-url`\n */\nasync function __createAndInitWorkerFromTrustedDirectUrl(workerInit, workerIndex) {\n return await __createAndInitWorker(\n () => __createWorkerFromTrustedDirectWorkerUrl(),\n workerInit,\n workerIndex,\n 'trusted direct worker URL',\n );\n}\n\n/**\n * Mode: `precheck-direct-url`\n */\nasync function __createAndInitWorkerFromCheckedDirectUrl(workerInit, workerIndex) {\n return await __createAndInitWorker(\n () => __createWorkerFromCheckedDirectWorkerUrl(),\n workerInit,\n workerIndex,\n 'checked direct worker URL',\n );\n}\n\n/**\n * Mode: `auto`\n */\nasync function __createAndInitWorkerAuto(workerInit, workerIndex) {\n if (_workerUrl) {\n try {\n /**\n * Mode: `verified-blob`\n */\n return await __createAndInitWorkerFromVerifiedBlob(workerInit, workerIndex);\n } catch (e) {\n if (__isSha256MismatchError(e)) {\n throw e;\n }\n\n _logger?.error(`[Worker #${workerIndex}] - verified worker URL failed; falling back to embedded base64`, e);\n }\n }\n\n try {\n /**\n * Mode: `embedded-base64`\n */\n return await __createAndInitWorkerFromEmbeddedBase64(workerInit, workerIndex);\n } catch (e) {\n throw new Error('All worker creation methods failed. Check CSP, COOP/COEP headers, and cross-origin policies.', {\n cause: e,\n });\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker load mode dispatcher\n////////////////////////////////////////////////////////////////////////////////\n\nasync function __createAndInitConfiguredWorker(workerInit, workerIndex) {\n switch (_wasmAssetLoadMode) {\n case 'embedded-base64':\n return await __createAndInitWorkerFromEmbeddedBase64(workerInit, workerIndex);\n\n case 'verified-blob':\n return await __createAndInitWorkerFromVerifiedBlob(workerInit, workerIndex);\n\n case 'precheck-direct-url':\n return await __createAndInitWorkerFromCheckedDirectUrl(workerInit, workerIndex);\n\n case 'trusted-direct-url':\n return await __createAndInitWorkerFromTrustedDirectUrl(workerInit, workerIndex);\n\n case 'auto':\n return await __createAndInitWorkerAuto(workerInit, workerIndex);\n\n default:\n throw new Error(`Unsupported wasmAssetLoadMode: ${_wasmAssetLoadMode}`);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Worker pool lifecycle\n////////////////////////////////////////////////////////////////////////////////\n\nasync function startWorkers(module, memory, builder) {\n if (_started) {\n throw new Error('Already started');\n }\n\n _started = true;\n _starting = true;\n\n try {\n if (_terminating) {\n throw new Error('Cannot start workers while termination is in progress');\n }\n\n if (builder.numThreads() === 0) {\n throw new Error(`num_threads must be > 0.`);\n }\n\n const workerInit = {\n type: 'wasm_bindgen_worker_init',\n init: { module_or_path: module, memory },\n receiver: builder.receiver(),\n };\n const results = await Promise.allSettled(\n Array.from({ length: builder.numThreads() }, async (_, workerIndex) => {\n return await __createAndInitConfiguredWorker(workerInit, workerIndex);\n }),\n );\n\n const workers = [];\n const errors = [];\n\n for (const result of results) {\n if (result.status === 'fulfilled') {\n workers.push(result.value);\n } else {\n errors.push(result.reason);\n }\n }\n\n if (errors.length > 0) {\n await Promise.allSettled(workers.map((w) => w.terminate()));\n throw errors[0];\n }\n\n _workers = workers;\n builder.build();\n } finally {\n _starting = false;\n // Drop the verified-bytes cache: each spawned worker now holds its own copy\n // of the script (via Blob URL or eval source), so the SDK no longer needs\n // to keep the bytes around. On failure the module is one-shot anyway, so\n // the cache would never be reused.\n _verifiedWorkerUrlBytesPromise = undefined;\n }\n}\n\nasync function terminateWorkers() {\n if (_starting) {\n throw new Error('Cannot terminate while startWorkers() is in progress. Await the startWorkers() promise first.');\n }\n\n if (_terminating) {\n return _terminating;\n }\n\n if (!_workers) {\n return;\n }\n\n const workers = _workers;\n _workers = undefined;\n _terminating = Promise.allSettled(workers.map((w) => w.terminate()));\n\n return _terminating;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Public exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport { getTfheWorkers, startWorkers, terminateWorkers, setWorkerUrlConfig };\n"],
5
- "mappings": "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",
6
- "names": ["module"]
7
- }