@taqueria/protocol 0.37.20 → 0.37.31

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 (282) hide show
  1. package/Alias.js +7 -1
  2. package/Alias.js.map +1 -1
  3. package/Command.js +7 -1
  4. package/Command.js.map +1 -1
  5. package/Config.js +7 -1
  6. package/Config.js.map +1 -1
  7. package/ConfigContractsDir.js +7 -1
  8. package/ConfigContractsDir.js.map +1 -1
  9. package/ConfigEnvironmentFileV2.js +7 -1
  10. package/ConfigEnvironmentFileV2.js.map +1 -1
  11. package/ConfigFileV2.js +7 -1
  12. package/ConfigFileV2.js.map +1 -1
  13. package/Contract.js +7 -1
  14. package/Contract.js.map +1 -1
  15. package/EconomicalProtocolHash.js +7 -1
  16. package/EconomicalProtocolHash.js.map +1 -1
  17. package/Environment.js +7 -1
  18. package/Environment.js.map +1 -1
  19. package/EphemeralState.d.ts +17 -3
  20. package/EphemeralState.d.ts.map +1 -1
  21. package/Faucet.js +7 -1
  22. package/Faucet.js.map +1 -1
  23. package/HumanReadableIdentifier.js +7 -1
  24. package/HumanReadableIdentifier.js.map +1 -1
  25. package/InstalledPlugin.js +7 -1
  26. package/InstalledPlugin.js.map +1 -1
  27. package/LoadedConfig.js +7 -1
  28. package/LoadedConfig.js.map +1 -1
  29. package/MetadataConfig.js +7 -1
  30. package/MetadataConfig.js.map +1 -1
  31. package/NetworkAccountConfig.js +7 -1
  32. package/NetworkAccountConfig.js.map +1 -1
  33. package/NetworkConfig.js +7 -1
  34. package/NetworkConfig.js.map +1 -1
  35. package/NonEmptyString.js +7 -1
  36. package/NonEmptyString.js.map +1 -1
  37. package/Operation.js +7 -1
  38. package/Operation.js.map +1 -1
  39. package/Option.js +7 -1
  40. package/Option.js.map +1 -1
  41. package/ParsedOperation.js +7 -1
  42. package/ParsedOperation.js.map +1 -1
  43. package/ParsedPluginInfo.d.ts +22 -3
  44. package/ParsedPluginInfo.d.ts.map +1 -1
  45. package/ParsedPluginInfo.js +8 -1
  46. package/ParsedPluginInfo.js.map +1 -1
  47. package/ParsedTemplate.js +7 -1
  48. package/ParsedTemplate.js.map +1 -1
  49. package/PersistentState.js +7 -1
  50. package/PersistentState.js.map +1 -1
  51. package/PluginActionName.js +7 -1
  52. package/PluginActionName.js.map +1 -1
  53. package/PluginDependenciesResponse.js +7 -1
  54. package/PluginDependenciesResponse.js.map +1 -1
  55. package/PluginInfo.d.ts +26 -6
  56. package/PluginInfo.d.ts.map +1 -1
  57. package/PluginInfo.js +8 -1
  58. package/PluginInfo.js.map +1 -1
  59. package/PluginJsonResponse.js +7 -1
  60. package/PluginJsonResponse.js.map +1 -1
  61. package/PluginProxyResponse.js +7 -1
  62. package/PluginProxyResponse.js.map +1 -1
  63. package/PluginResponseEncoding.js +7 -1
  64. package/PluginResponseEncoding.js.map +1 -1
  65. package/PluginSchema.d.ts +610 -90
  66. package/PluginSchema.d.ts.map +1 -1
  67. package/PluginSchema.js +8 -1
  68. package/PluginSchema.js.map +1 -1
  69. package/PositionalArg.js +7 -1
  70. package/PositionalArg.js.map +1 -1
  71. package/Provisioner.js +7 -1
  72. package/Provisioner.js.map +1 -1
  73. package/ProvisionerID.js +7 -1
  74. package/ProvisionerID.js.map +1 -1
  75. package/Provisions.js +7 -1
  76. package/Provisions.js.map +1 -1
  77. package/ProxyTaskArgs.js +7 -1
  78. package/ProxyTaskArgs.js.map +1 -1
  79. package/ProxyTemplateArgs.js +7 -1
  80. package/ProxyTemplateArgs.js.map +1 -1
  81. package/PublicKeyHash.js +7 -1
  82. package/PublicKeyHash.js.map +1 -1
  83. package/RequestArgs.js +7 -1
  84. package/RequestArgs.js.map +1 -1
  85. package/SandboxAccountConfig.js +7 -1
  86. package/SandboxAccountConfig.js.map +1 -1
  87. package/SandboxConfig.js +7 -1
  88. package/SandboxConfig.js.map +1 -1
  89. package/SanitizedArgs.js +7 -1
  90. package/SanitizedArgs.js.map +1 -1
  91. package/SanitizedPath.js +7 -1
  92. package/SanitizedPath.js.map +1 -1
  93. package/ScaffoldConfig.js +7 -1
  94. package/ScaffoldConfig.js.map +1 -1
  95. package/Settings.js +7 -1
  96. package/Settings.js.map +1 -1
  97. package/SingleChar.js +7 -1
  98. package/SingleChar.js.map +1 -1
  99. package/Task.js +7 -1
  100. package/Task.js.map +1 -1
  101. package/Template.js +7 -1
  102. package/Template.js.map +1 -1
  103. package/Timestamp.js +7 -1
  104. package/Timestamp.js.map +1 -1
  105. package/Tz.js +7 -1
  106. package/Tz.js.map +1 -1
  107. package/Url.js +7 -1
  108. package/Url.js.map +1 -1
  109. package/Verb.js +7 -1
  110. package/Verb.js.map +1 -1
  111. package/VersionNumber.js +7 -1
  112. package/VersionNumber.js.map +1 -1
  113. package/index.js +8 -1
  114. package/index.js.map +1 -1
  115. package/out/types/Alias.js +7 -1
  116. package/out/types/Alias.js.map +1 -1
  117. package/out/types/BuildNumber.js +7 -1
  118. package/out/types/BuildNumber.js.map +1 -1
  119. package/out/types/Command.js +7 -1
  120. package/out/types/Command.js.map +1 -1
  121. package/out/types/Config.js +7 -1
  122. package/out/types/Config.js.map +1 -1
  123. package/out/types/ConfigAccount.js +7 -1
  124. package/out/types/ConfigAccount.js.map +1 -1
  125. package/out/types/ConfigArtifactsDir.js +7 -1
  126. package/out/types/ConfigArtifactsDir.js.map +1 -1
  127. package/out/types/ConfigContractsDir.js +7 -1
  128. package/out/types/ConfigContractsDir.js.map +1 -1
  129. package/out/types/ConfigEnvironmentFileV2.js +7 -1
  130. package/out/types/ConfigEnvironmentFileV2.js.map +1 -1
  131. package/out/types/ConfigFileV1.js +7 -1
  132. package/out/types/ConfigFileV1.js.map +1 -1
  133. package/out/types/ConfigFileV2.js +7 -1
  134. package/out/types/ConfigFileV2.js.map +1 -1
  135. package/out/types/Contract.js +7 -1
  136. package/out/types/Contract.js.map +1 -1
  137. package/out/types/CurrencyAmountV2.js +7 -1
  138. package/out/types/CurrencyAmountV2.js.map +1 -1
  139. package/out/types/EconomicalProtocolHash.js +7 -1
  140. package/out/types/EconomicalProtocolHash.js.map +1 -1
  141. package/out/types/Environment.js +7 -1
  142. package/out/types/Environment.js.map +1 -1
  143. package/out/types/EphemeralState.d.ts +45 -24
  144. package/out/types/EphemeralState.d.ts.map +1 -1
  145. package/out/types/EphemeralState.js +7 -1
  146. package/out/types/EphemeralState.js.map +1 -1
  147. package/out/types/Faucet.js +7 -1
  148. package/out/types/Faucet.js.map +1 -1
  149. package/out/types/HumanReadableIdentifier.js +7 -1
  150. package/out/types/HumanReadableIdentifier.js.map +1 -1
  151. package/out/types/InstalledPlugin.js +7 -1
  152. package/out/types/InstalledPlugin.js.map +1 -1
  153. package/out/types/LoadedConfig.js +7 -1
  154. package/out/types/LoadedConfig.js.map +1 -1
  155. package/out/types/MetadataConfig.js +7 -1
  156. package/out/types/MetadataConfig.js.map +1 -1
  157. package/out/types/NetworkAccountConfig.js +7 -1
  158. package/out/types/NetworkAccountConfig.js.map +1 -1
  159. package/out/types/NetworkConfig.js +7 -1
  160. package/out/types/NetworkConfig.js.map +1 -1
  161. package/out/types/NonEmptyString.js +7 -1
  162. package/out/types/NonEmptyString.js.map +1 -1
  163. package/out/types/Operation.d.ts +21 -21
  164. package/out/types/Operation.js +7 -1
  165. package/out/types/Operation.js.map +1 -1
  166. package/out/types/Option.js +7 -1
  167. package/out/types/Option.js.map +1 -1
  168. package/out/types/ParsedConfig.js +7 -1
  169. package/out/types/ParsedConfig.js.map +1 -1
  170. package/out/types/ParsedOperation.d.ts +12 -12
  171. package/out/types/ParsedOperation.js +7 -1
  172. package/out/types/ParsedOperation.js.map +1 -1
  173. package/out/types/ParsedTemplate.js +7 -1
  174. package/out/types/ParsedTemplate.js.map +1 -1
  175. package/out/types/PersistedOperation.js +7 -1
  176. package/out/types/PersistedOperation.js.map +1 -1
  177. package/out/types/PersistedTask.js +7 -1
  178. package/out/types/PersistedTask.js.map +1 -1
  179. package/out/types/PersistentState.js +7 -1
  180. package/out/types/PersistentState.js.map +1 -1
  181. package/out/types/PluginActionName.d.ts +7 -5
  182. package/out/types/PluginActionName.d.ts.map +1 -1
  183. package/out/types/PluginActionName.js +7 -1
  184. package/out/types/PluginActionName.js.map +1 -1
  185. package/out/types/PluginDependenciesResponse.js +7 -1
  186. package/out/types/PluginDependenciesResponse.js.map +1 -1
  187. package/out/types/PluginInfo.d.ts +25 -12
  188. package/out/types/PluginInfo.d.ts.map +1 -1
  189. package/out/types/PluginInfo.js +7 -1
  190. package/out/types/PluginInfo.js.map +1 -1
  191. package/out/types/PluginJsonResponse.d.ts +80 -0
  192. package/out/types/PluginJsonResponse.d.ts.map +1 -1
  193. package/out/types/PluginJsonResponse.js +7 -1
  194. package/out/types/PluginJsonResponse.js.map +1 -1
  195. package/out/types/PluginProxyResponse.d.ts +80 -0
  196. package/out/types/PluginProxyResponse.d.ts.map +1 -1
  197. package/out/types/PluginProxyResponse.js +7 -1
  198. package/out/types/PluginProxyResponse.js.map +1 -1
  199. package/out/types/PluginResponseEncoding.js +7 -1
  200. package/out/types/PluginResponseEncoding.js.map +1 -1
  201. package/out/types/PluginSchema.d.ts +675 -138
  202. package/out/types/PluginSchema.d.ts.map +1 -1
  203. package/out/types/PluginSchema.js +7 -1
  204. package/out/types/PluginSchema.js.map +1 -1
  205. package/out/types/PositionalArg.js +7 -1
  206. package/out/types/PositionalArg.js.map +1 -1
  207. package/out/types/Provisioner.js +7 -1
  208. package/out/types/Provisioner.js.map +1 -1
  209. package/out/types/ProvisionerID.js +7 -1
  210. package/out/types/ProvisionerID.js.map +1 -1
  211. package/out/types/Provisions.js +7 -1
  212. package/out/types/Provisions.js.map +1 -1
  213. package/out/types/ProxyTaskArgs.d.ts +13 -13
  214. package/out/types/ProxyTaskArgs.js +7 -1
  215. package/out/types/ProxyTaskArgs.js.map +1 -1
  216. package/out/types/ProxyTemplateArgs.d.ts +13 -13
  217. package/out/types/ProxyTemplateArgs.js +7 -1
  218. package/out/types/ProxyTemplateArgs.js.map +1 -1
  219. package/out/types/PublicKeyHash.js +7 -1
  220. package/out/types/PublicKeyHash.js.map +1 -1
  221. package/out/types/RequestArgs.d.ts +13 -13
  222. package/out/types/RequestArgs.js +7 -1
  223. package/out/types/RequestArgs.js.map +1 -1
  224. package/out/types/RuntimeDependency.js +7 -1
  225. package/out/types/RuntimeDependency.js.map +1 -1
  226. package/out/types/RuntimeDependencyReport.js +7 -1
  227. package/out/types/RuntimeDependencyReport.js.map +1 -1
  228. package/out/types/SHA256.js +7 -1
  229. package/out/types/SHA256.js.map +1 -1
  230. package/out/types/SandboxAccount.js +7 -1
  231. package/out/types/SandboxAccount.js.map +1 -1
  232. package/out/types/SandboxAccountConfig.js +7 -1
  233. package/out/types/SandboxAccountConfig.js.map +1 -1
  234. package/out/types/SandboxAccounts.js +7 -1
  235. package/out/types/SandboxAccounts.js.map +1 -1
  236. package/out/types/SandboxConfig.js +7 -1
  237. package/out/types/SandboxConfig.js.map +1 -1
  238. package/out/types/SanitizedAbsPath.js +7 -1
  239. package/out/types/SanitizedAbsPath.js.map +1 -1
  240. package/out/types/SanitizedArgs.js +7 -1
  241. package/out/types/SanitizedArgs.js.map +1 -1
  242. package/out/types/SanitizedPath.js +7 -1
  243. package/out/types/SanitizedPath.js.map +1 -1
  244. package/out/types/ScaffoldConfig.js +7 -1
  245. package/out/types/ScaffoldConfig.js.map +1 -1
  246. package/out/types/Settings.js +7 -1
  247. package/out/types/Settings.js.map +1 -1
  248. package/out/types/SingleChar.js +7 -1
  249. package/out/types/SingleChar.js.map +1 -1
  250. package/out/types/Task.js +7 -1
  251. package/out/types/Task.js.map +1 -1
  252. package/out/types/Template.d.ts +318 -30
  253. package/out/types/Template.d.ts.map +1 -1
  254. package/out/types/Template.js +7 -1
  255. package/out/types/Template.js.map +1 -1
  256. package/out/types/Timestamp.js +7 -1
  257. package/out/types/Timestamp.js.map +1 -1
  258. package/out/types/Tz.js +7 -1
  259. package/out/types/Tz.js.map +1 -1
  260. package/out/types/TzKtConfig.js +7 -1
  261. package/out/types/TzKtConfig.js.map +1 -1
  262. package/out/types/Url.js +7 -1
  263. package/out/types/Url.js.map +1 -1
  264. package/out/types/Verb.js +7 -1
  265. package/out/types/Verb.js.map +1 -1
  266. package/out/types/VersionNumber.js +7 -1
  267. package/out/types/VersionNumber.js.map +1 -1
  268. package/out/types-strict.d.js.map +1 -1
  269. package/out/types-strict.d.ts +7 -2
  270. package/out/types-strict.d.ts.map +1 -1
  271. package/out/types-strict.js.map +1 -1
  272. package/out/types-zod.d.js.map +1 -1
  273. package/out/types-zod.d.ts +308 -67
  274. package/out/types-zod.d.ts.map +1 -1
  275. package/out/types-zod.js +7 -1
  276. package/out/types-zod.js.map +1 -1
  277. package/package.json +2 -2
  278. package/taqueria-protocol-types.js +8 -1
  279. package/taqueria-protocol-types.js.map +1 -1
  280. package/types.d.ts +7 -2
  281. package/types.d.ts.map +1 -1
  282. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PluginSchema.d.ts","sourceRoot":"","sources":["PluginSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAA4E,MAAM,6BAA6B,CAAC;AACjI,OAAO,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzF,YAAY,EAAE,kBAAkB,IAAI,YAAY,EAAE,CAAC;AAEnD,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,kBAoBrC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,YAAY,KAAG,kBAAiC,CAAC;AAE/E,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAO9E,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,KAAK,kBAAkB,EAAE,QAAQ,CAAC,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAAc,CAAC;AAG3H,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGnB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoB,CAAC;AAC3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEjD,MAAM,MAAM,CAAC,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PluginSchema.d.ts","sourceRoot":"","sources":["PluginSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAA4E,MAAM,6BAA6B,CAAC;AACjI,OAAO,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzF,YAAY,EAAE,kBAAkB,IAAI,YAAY,EAAE,CAAC;AAEnD,eAAO,MAAM,IAAI,UAAW,OAAO,KAAG,kBAoBrC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,YAAY,KAAG,kBAAiC,CAAC;AAE/E,eAAO,MAAM,EAAE,UAAW,OAAO,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAO9E,CAAC;AAEF,eAAO,MAAM,IAAI,UAAW,KAAK,kBAAkB,EAAE,QAAQ,CAAC,KAAG,eAAe,QAAQ,EAAE,kBAAkB,CAAc,CAAC;AAG3H,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGnB,CAAC;AACF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoB,CAAC;AAC3C,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAC;AAEjD,MAAM,MAAM,CAAC,GAAG,kBAAkB,CAAC"}
@@ -111,6 +111,10 @@ var pluginDependenciesResponseSchema = import_zod.z.object({
111
111
  var pluginJsonResponseSchema = import_zod.z.union([
112
112
  import_zod.z.object({
113
113
  data: import_zod.z.unknown().optional(),
114
+ messages: import_zod.z.object({
115
+ header: import_zod.z.string().optional(),
116
+ footer: import_zod.z.string().optional()
117
+ }).optional(),
114
118
  render: import_zod.z.union([import_zod.z.literal("none"), import_zod.z.literal("table"), import_zod.z.literal("string")]).default("none")
115
119
  }),
116
120
  import_zod.z.void()
@@ -144,6 +148,7 @@ var pluginActionNameSchema = import_zod.z.union([
144
148
  import_zod.z.literal("pluginInfo"),
145
149
  import_zod.z.literal("checkRuntimeDependencies"),
146
150
  import_zod.z.literal("installRuntimeDependencies"),
151
+ import_zod.z.literal("runPostInstall"),
147
152
  import_zod.z.literal("proxyTemplate")
148
153
  ]);
149
154
  var economicalProtocolHashSchema = import_zod.z.string();
@@ -295,7 +300,8 @@ var pluginSchemaBaseSchema = import_zod.z.object({
295
300
  version: versionNumberSchema,
296
301
  schema: versionNumberSchema,
297
302
  alias: aliasSchema,
298
- tasks: import_zod.z.array(taskSchema).optional()
303
+ tasks: import_zod.z.array(taskSchema).optional(),
304
+ postInstall: import_zod.z.string().optional()
299
305
  });
300
306
  var configSchema = import_zod.z.object({
301
307
  language: humanLanguageSchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"sources":["PluginSchema.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '../../TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PluginSchema } from '../../types';\nimport { PluginSchema as PluginSchemaStrict } from '../types-strict';\nimport { pluginSchemaSchema } from '../types-zod';\n\nexport type { PluginSchemaStrict as PluginSchema };\n\nexport const from = (input: unknown): PluginSchemaStrict => {\n\ttry {\n\t\treturn pluginSchemaSchema.parse(input) as PluginSchemaStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PluginSchema is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PluginSchema.\")\n\t}\n \n};\n\nexport const create = (input: PluginSchema): PluginSchemaStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PluginSchemaStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PluginSchemaStrict, '__type'>): FutureInstance<TaqError, PluginSchemaStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: pluginSchemaSchema,\n\tschema: pluginSchemaSchema.transform(val => val as PluginSchemaStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = pluginSchemaSchema;\n\nexport type t = PluginSchemaStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema;\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n })\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\"\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n })\n )\n .optional(),\n}).passthrough();\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n});\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n })\n);\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n })\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n })\n ).passthrough();\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)])\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n })\n);\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n })\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n })\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}
1
+ {"version":3,"sources":["PluginSchema.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '../../TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PluginSchema } from '../../types';\nimport { PluginSchema as PluginSchemaStrict } from '../types-strict';\nimport { pluginSchemaSchema } from '../types-zod';\n\nexport type { PluginSchemaStrict as PluginSchema };\n\nexport const from = (input: unknown): PluginSchemaStrict => {\n\ttry {\n\t\treturn pluginSchemaSchema.parse(input) as PluginSchemaStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PluginSchema is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PluginSchema.\")\n\t}\n \n};\n\nexport const create = (input: PluginSchema): PluginSchemaStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PluginSchemaStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PluginSchemaStrict, '__type'>): FutureInstance<TaqError, PluginSchemaStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: pluginSchemaSchema,\n\tschema: pluginSchemaSchema.transform(val => val as PluginSchemaStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = pluginSchemaSchema;\n\nexport type t = PluginSchemaStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema;\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n })\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n messages: z\n .object({\n header: z.string().optional(),\n footer: z.string().optional(),\n })\n .optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"runPostInstall\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\"\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n })\n )\n .optional(),\n}).passthrough();\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n postInstall: z.string().optional(),\n});\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n })\n);\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n })\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n })\n ).passthrough();\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)])\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n })\n);\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n })\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n })\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}
@@ -111,6 +111,10 @@ var pluginDependenciesResponseSchema = import_zod.z.object({
111
111
  var pluginJsonResponseSchema = import_zod.z.union([
112
112
  import_zod.z.object({
113
113
  data: import_zod.z.unknown().optional(),
114
+ messages: import_zod.z.object({
115
+ header: import_zod.z.string().optional(),
116
+ footer: import_zod.z.string().optional()
117
+ }).optional(),
114
118
  render: import_zod.z.union([import_zod.z.literal("none"), import_zod.z.literal("table"), import_zod.z.literal("string")]).default("none")
115
119
  }),
116
120
  import_zod.z.void()
@@ -144,6 +148,7 @@ var pluginActionNameSchema = import_zod.z.union([
144
148
  import_zod.z.literal("pluginInfo"),
145
149
  import_zod.z.literal("checkRuntimeDependencies"),
146
150
  import_zod.z.literal("installRuntimeDependencies"),
151
+ import_zod.z.literal("runPostInstall"),
147
152
  import_zod.z.literal("proxyTemplate")
148
153
  ]);
149
154
  var economicalProtocolHashSchema = import_zod.z.string();
@@ -295,7 +300,8 @@ var pluginSchemaBaseSchema = import_zod.z.object({
295
300
  version: versionNumberSchema,
296
301
  schema: versionNumberSchema,
297
302
  alias: aliasSchema,
298
- tasks: import_zod.z.array(taskSchema).optional()
303
+ tasks: import_zod.z.array(taskSchema).optional(),
304
+ postInstall: import_zod.z.string().optional()
299
305
  });
300
306
  var configSchema = import_zod.z.object({
301
307
  language: humanLanguageSchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"sources":["PositionalArg.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '../../TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PositionalArg } from '../../types';\nimport { PositionalArg as PositionalArgStrict } from '../types-strict';\nimport { positionalArgSchema } from '../types-zod';\n\nexport type { PositionalArgStrict as PositionalArg };\n\nexport const from = (input: unknown): PositionalArgStrict => {\n\ttry {\n\t\treturn positionalArgSchema.parse(input) as PositionalArgStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PositionalArg is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PositionalArg.\")\n\t}\n \n};\n\nexport const create = (input: PositionalArg): PositionalArgStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PositionalArgStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PositionalArgStrict, '__type'>): FutureInstance<TaqError, PositionalArgStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: positionalArgSchema,\n\tschema: positionalArgSchema.transform(val => val as PositionalArgStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = positionalArgSchema;\n\nexport type t = PositionalArgStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema;\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n })\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\"\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n })\n )\n .optional(),\n}).passthrough();\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n});\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n })\n);\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n })\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n })\n ).passthrough();\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)])\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n })\n);\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n })\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n })\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}
1
+ {"version":3,"sources":["PositionalArg.ts","../../TaqError.ts","../types-zod.ts"],"sourcesContent":["// Generated file: Do not edit \n// generated from @taqueria-protocol-types\n \nimport { TaqError, toFutureParseErr, toFutureParseUnknownErr, toParseErr, toParseUnknownErr } from '../../TaqError';\nimport { FutureInstance, resolve, reject } from 'fluture';\nimport { ZodError } from 'zod';\nimport { PositionalArg } from '../../types';\nimport { PositionalArg as PositionalArgStrict } from '../types-strict';\nimport { positionalArgSchema } from '../types-zod';\n\nexport type { PositionalArgStrict as PositionalArg };\n\nexport const from = (input: unknown): PositionalArgStrict => {\n\ttry {\n\t\treturn positionalArgSchema.parse(input) as PositionalArgStrict;\n\t}\n\tcatch (previous: unknown) {\n\t\tif (previous instanceof ZodError) {\n\t\t\tconst msgs: string[] = previous.errors.reduce(\n\t\t\t\t(retval, issue) => {\n\t\t\t\t\tconst path = issue.path.join(' → ');\n\t\t\t\t\tconst msg = path + ': ' + issue.message;\n\t\t\t\t\treturn [...retval, msg];\n\t\t\t\t},\n\t\t\t\t[\"PositionalArg is invalid:\"],\n\t\t\t);\n\t\t\tconst validationErr = msgs.join('\\n') + '\\n';\n\t\t\tthrow toParseErr(previous, validationErr);\n\t\t}\n\t\tthrow toParseUnknownErr(previous, \"There was a problem trying to parse a PositionalArg.\")\n\t}\n \n};\n\nexport const create = (input: PositionalArg): PositionalArgStrict => from(input);\n\nexport const of = (input: unknown): FutureInstance<TaqError, PositionalArgStrict> => {\n\ttry {\n\t\treturn resolve(from(input))\n\t}\n\tcatch (err){\n\t\treturn reject(err) as FutureInstance<TaqError, never>\n\t}\n};\n\nexport const make = (input: Omit<PositionalArgStrict, '__type'>): FutureInstance<TaqError, PositionalArgStrict> => of(input);\n\n// TEMP: for interoperation with old protocol types during transition\nexport const schemas = {\n\trawSchema: positionalArgSchema,\n\tschema: positionalArgSchema.transform(val => val as PositionalArgStrict),\n};\nexport const rawSchema = schemas.rawSchema;\nexport const internalSchema = positionalArgSchema;\n\nexport type t = PositionalArgStrict;\n ","import { map, reject } from 'fluture';\nimport { ZodError } from 'zod';\n\nexport type ErrorType =\n\t| 'E_INVALID_PATH_DOES_NOT_EXIST'\n\t| 'E_INVALID_PATH_EXISTS_AND_NOT_AN_EMPTY_DIR'\n\t| 'E_INVALID_PATH_ALREADY_EXISTS'\n\t| 'E_INVALID_CONFIG'\n\t| 'E_INVALID_JSON'\n\t| 'E_FORK'\n\t| 'E_INVALID_TASK'\n\t| 'E_READFILE'\n\t| 'E_NPM_INIT'\n\t| 'E_INVALID_PLUGIN_RESPONSE'\n\t| 'E_INVALID_ARGS'\n\t| 'E_MKDIR_FAILED'\n\t| 'E_GIT_CLONE_FAILED'\n\t| 'E_PROVISION'\n\t| 'E_PARSE'\n\t| 'E_PARSE_UNKNOWN'\n\t| 'E_INVALID_ARCH'\n\t| 'E_NO_PROVISIONS'\n\t| 'E_INTERNAL_LOGICAL_VALIDATION_FAILURE'\n\t| 'E_EXEC'\n\t| 'E_OPT_IN_WARNING'\n\t| 'E_INVALID_OPTION'\n\t| 'E_TAQ_PROJECT_NOT_FOUND';\n\nexport interface TaqError {\n\treadonly kind: ErrorType;\n\tmsg: string;\n\tprevious?: TaqError | Error | unknown;\n\tcontext?: unknown;\n}\n\nexport type t = TaqError;\n\nexport class E_TaqError extends Error {\n\treadonly context;\n\treadonly kind;\n\treadonly previous;\n\tconstructor(taqErr: TaqError) {\n\t\tsuper(taqErr.msg);\n\t\tthis.context = taqErr.context;\n\t\tthis.kind = taqErr.kind;\n\t\tthis.name = this.kind;\n\t\tthis.previous = taqErr.previous;\n\t}\n}\n\nexport const toFutureParseErr = <T>(previous: ZodError, msg: string, context?: unknown) =>\n\treject(toParseErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const toParseErr = (previous: ZodError, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toParseUnknownErr = (previous: Error | TaqError | E_TaqError | unknown, msg: string, context?: unknown) =>\n\tcreate({\n\t\tkind: 'E_PARSE_UNKNOWN',\n\t\tmsg: msg,\n\t\tcontext,\n\t\tprevious,\n\t});\n\nexport const toFutureParseUnknownErr = <T>(\n\tprevious: Error | TaqError | E_TaqError | unknown,\n\tmsg: string,\n\tcontext?: unknown,\n) =>\n\treject(toParseUnknownErr(previous, msg, context))\n\t\t.pipe(map((val: unknown) => val as T));\n\nexport const create = (err: TaqError) => err;\n","// Generated by ts-to-zod\nimport { z } from \"zod\";\n\nexport const nonEmptyStringSchema = z.string().min(1);\n\nexport const singleCharSchema = nonEmptyStringSchema.regex(/^[A-Za-z]$/);\n\nexport const verbSchema = nonEmptyStringSchema.regex(/^[A-Za-z\\-\\ ]+/);\n\nexport const aliasSchema = z.union([verbSchema, singleCharSchema]);\n\nexport const humanReadableIdentifierSchema = nonEmptyStringSchema.regex(\n /^[A-Za-z]+[A-Za-z0-9-_ ]*$/\n);\n\nexport const sanitizedAbsPathSchema = nonEmptyStringSchema;\n\nexport const sanitizedPathSchema = nonEmptyStringSchema;\n\nexport const settingsSchema = z.object({\n consent: z.union([\n z.literal(\"opt_in\"),\n z.literal(\"opt_out\"),\n z.literal(\"unspecified\"),\n ]),\n});\n\nexport const timestampSchema = z.number().min(1651846877);\n\nexport const tzSchema = nonEmptyStringSchema.min(1).regex(/^\\d([\\d_]+\\d)?$/);\n\nexport const versionNumberSchema = nonEmptyStringSchema\n .min(1)\n .regex(/^\\d+\\.\\d+(\\.\\d+)*$/);\n\nexport const urlSchema = nonEmptyStringSchema.url();\n\nexport const commandSchema = nonEmptyStringSchema;\n\nexport const optionSchema = z.object({\n shortFlag: singleCharSchema.optional(),\n flag: verbSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n boolean: z.boolean().optional(),\n choices: z.array(nonEmptyStringSchema).optional(),\n});\n\nexport const positionalArgSchema = z.object({\n placeholder: humanReadableIdentifierSchema,\n description: nonEmptyStringSchema,\n defaultValue: z.union([z.string(), z.number(), z.boolean()]).optional(),\n type: z\n .union([z.literal(\"string\"), z.literal(\"number\"), z.literal(\"boolean\")])\n .optional(),\n required: z.boolean().optional(),\n});\n\nexport const installedPluginSchema = z.object({\n type: z.union([z.literal(\"npm\"), z.literal(\"binary\"), z.literal(\"deno\")]),\n name: nonEmptyStringSchema,\n});\n\nexport const runtimeDependencySchema = z.object({\n name: humanReadableIdentifierSchema,\n path: z.string(),\n version: z.string(),\n kind: z.union([z.literal(\"required\"), z.literal(\"optional\")]),\n});\n\nexport const runtimeDependencyReportSchema = runtimeDependencySchema.extend(\n({\n met: z.boolean(),\n })\n);\n\nexport const pluginDependenciesResponseSchema = z.object({\n report: z.array(runtimeDependencyReportSchema),\n});\n\nexport const pluginJsonResponseSchema = z.union([\n z.object({\n data: z.unknown().optional(),\n messages: z\n .object({\n header: z.string().optional(),\n footer: z.string().optional(),\n })\n .optional(),\n render: z\n .union([z.literal(\"none\"), z.literal(\"table\"), z.literal(\"string\")])\n .default(\"none\"),\n }),\n z.void(),\n]);\n\nexport const pluginProxyResponseSchema = z.union([\n z.void(),\n pluginJsonResponseSchema,\n]);\n\nexport const pluginResponseEncodingSchema = z\n .union([z.literal(\"none\"), z.literal(\"json\"), z.literal(\"application/json\")])\n .default(\"none\");\n\nexport const buildNumberSchema = z.number();\n\nexport const sanitizedArgsSchema = z.object({\n _: z.array(z.string()),\n projectDir: sanitizedPathSchema,\n maxConcurrency: z.number(),\n debug: z.boolean(),\n disableState: z.boolean(),\n logPluginRequests: z.boolean(),\n fromVsCode: z.boolean(),\n version: z.boolean(),\n build: z.boolean(),\n help: z.boolean(),\n yes: z.boolean(),\n plugin: nonEmptyStringSchema.optional(),\n env: nonEmptyStringSchema,\n quickstart: nonEmptyStringSchema,\n setBuild: z.union([nonEmptyStringSchema, buildNumberSchema]),\n setVersion: nonEmptyStringSchema,\n}).passthrough();\n\nexport const pluginActionNameSchema = z.union([\n z.literal(\"proxy\"),\n z.literal(\"pluginInfo\"),\n z.literal(\"checkRuntimeDependencies\"),\n z.literal(\"installRuntimeDependencies\"),\n z.literal(\"runPostInstall\"),\n z.literal(\"proxyTemplate\"),\n]);\n\nexport const economicalProtocolHashSchema = z.string();\n\nexport const publicKeyHashSchema = z.string().regex(/^tz\\d[A-Za-z0-9]{33}$/);\n\nexport const sha256Schema = z.string().regex(/^[A-Fa-f0-9]{64}$/);\n\nexport const contractSchema = z.object({\n sourceFile: nonEmptyStringSchema,\n hash: sha256Schema,\n});\n\nexport const faucetSchema = z.object({\n pkh: publicKeyHashSchema,\n mnemonic: z.array(z.string()),\n email: z.string().email(),\n password: z.string(),\n amount: z.string().regex(/^\\d+$/),\n activation_code: z.string(),\n});\n\nconst tzKtConfigPostgresqlPortSchema = z.number().default(5432);\n\nconst tzKtConfigApiPortSchema = z.number().default(5000);\n\nexport const tzKtConfigSchema = z.object({\n disableAutostartWithSandbox: z.boolean().optional(),\n postgresqlPort: tzKtConfigPostgresqlPortSchema.optional(),\n apiPort: tzKtConfigApiPortSchema.optional(),\n});\n\nexport const persistedTaskSchema = z.object({\n task: verbSchema,\n plugin: nonEmptyStringSchema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const persistedOperationSchema = z.object({\n hash: sha256Schema,\n time: timestampSchema,\n output: z.unknown().optional(),\n});\n\nexport const provisionerIDSchema = z\n .string()\n .min(1)\n .regex(\n /^[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+\\.[A-Za-z0-9]+[A-Za-z0-9-_]+$/\n );\n\nexport const provisionerSchema = z.object({\n id: provisionerIDSchema,\n plugin: nonEmptyStringSchema,\n operation: z.union([nonEmptyStringSchema, z.literal(\"custom\")]),\n command: z.string().optional(),\n label: z.string().optional(),\n depends_on: z.array(provisionerIDSchema).optional(),\n});\n\nexport const provisionsSchema = z.array(provisionerSchema);\n\nexport const environmentSchema = z.object({\n networks: z.array(nonEmptyStringSchema),\n sandboxes: z.array(nonEmptyStringSchema),\n storage: z.record(nonEmptyStringSchema).optional(),\n aliases: z.record(z.record(nonEmptyStringSchema)).optional(),\n});\n\nconst environmentNameSchema = nonEmptyStringSchema.min(\n 1,\n \"Default environment must reference the name of an existing environment.\"\n);\n\nconst humanLanguageSchema = z\n .union([z.literal(\"en\"), z.literal(\"fr\")])\n .default(\"en\");\n\nexport const configContractsDirSchema = z.string().min(1).default(\"contracts\");\n\nexport const configArtifactsDirSchema = z.string().min(1).default(\"artifacts\");\n\nexport const currencyAmountV2Schema = z.object({\n amount: z.string(),\n units: z.string(),\n});\n\nconst versionV2Schema = z.string().regex(/^v2$/);\n\nexport const sandboxAccountSchema = z.object({\n type: z.string().optional(),\n}).passthrough();\n\nexport const sandboxAccountsSchema = z.record(sandboxAccountSchema);\n\nexport const configEnvironmentFileV2Schema = z.object({\n type: z.string().optional(),\n accounts: sandboxAccountsSchema.optional(),\n accountDefault: z.any().optional(),\n contracts: z\n .record(\n z.object({\n address: z.string().optional(),\n })\n )\n .optional(),\n}).passthrough();\n\nexport const metadataConfigSchema = z.object({\n name: z.string().optional(),\n projectDescription: z.string().optional(),\n authors: z.array(z.string()).optional(),\n license: z.string().optional(),\n homepage: z.string().optional(),\n});\n\nexport const networkAccountConfigSchema = z.object({\n publicKey: nonEmptyStringSchema.optional(),\n publicKeyHash: publicKeyHashSchema.optional(),\n privateKey: nonEmptyStringSchema.optional(),\n mnemonic: nonEmptyStringSchema.optional(),\n});\n\nexport const sandboxAccountConfigSchema = z.object({\n encryptedKey: nonEmptyStringSchema,\n publicKeyHash: publicKeyHashSchema,\n secretKey: nonEmptyStringSchema,\n});\n\nexport const sandboxConfigSchema = z.object({\n label: nonEmptyStringSchema,\n rpcUrl: urlSchema,\n protocol: economicalProtocolHashSchema.optional(),\n plugin: verbSchema.optional(),\n accounts: z\n .record(z.union([sandboxAccountConfigSchema, nonEmptyStringSchema]))\n .optional(),\n tzkt: tzKtConfigSchema.optional(),\n annotations: z.record(z.unknown()).optional(),\n});\n\nexport const scaffoldConfigSchema = z.object({\n postInit: z.string().optional(),\n});\n\nexport const taskSchema = z.object({\n task: verbSchema,\n command: commandSchema,\n aliases: z.array(aliasSchema).optional(),\n description: nonEmptyStringSchema.min(3).optional(),\n example: nonEmptyStringSchema.optional(),\n hidden: z.boolean().optional(),\n encoding: pluginResponseEncodingSchema.optional(),\n handler: z.union([z.literal(\"proxy\"), nonEmptyStringSchema]),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n});\n\nexport const persistentStateSchema = z.object({\n operations: z.record(persistedOperationSchema),\n tasks: z.record(persistedTaskSchema),\n});\n\nexport const configAccountSchema = z.object({\n balance: currencyAmountV2Schema,\n});\n\nexport const configFileV2Schema = z.object({\n version: versionV2Schema,\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n accounts: z.record(configAccountSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n environmentDefault: environmentNameSchema.optional(),\n environments: z.record(configEnvironmentFileV2Schema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n});\n\nexport const networkConfigSchema = z.object({\n label: humanReadableIdentifierSchema,\n rpcUrl: urlSchema,\n accounts: z.record(networkAccountConfigSchema).optional(),\n faucet: faucetSchema.optional(),\n});\n\nconst pluginSchemaBaseSchema = z.object({\n name: nonEmptyStringSchema,\n version: versionNumberSchema,\n schema: versionNumberSchema,\n alias: aliasSchema,\n tasks: z.array(taskSchema).optional(),\n postInstall: z.string().optional(),\n});\n\nexport const configSchema = z.object({\n language: humanLanguageSchema.optional(),\n metadata: metadataConfigSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n contractsDir: configContractsDirSchema.optional(),\n contracts: z.record(contractSchema).optional(),\n plugins: z.array(installedPluginSchema).optional(),\n accounts: z.record(tzSchema).optional(),\n environment: z.record(z.union([environmentSchema, environmentNameSchema])),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n});\n\nexport const configFileV1Schema = z.object({\n language: humanLanguageSchema.optional(),\n plugins: z.array(installedPluginSchema).optional(),\n contractsDir: configContractsDirSchema.optional(),\n artifactsDir: configArtifactsDirSchema.optional(),\n network: z.record(networkConfigSchema).optional(),\n sandbox: z.record(sandboxConfigSchema).optional(),\n environment: z\n .record(z.union([environmentSchema, environmentNameSchema]))\n .optional(),\n accounts: z.record(tzSchema).optional(),\n contracts: z.record(contractSchema).optional(),\n metadata: metadataConfigSchema.optional(),\n});\n\nexport const loadedConfigSchema = configSchema.extend(\n({\n projectDir: sanitizedAbsPathSchema,\n configFile: sanitizedAbsPathSchema,\n hash: sha256Schema,\n })\n);\n\nexport const parsedConfigSchema = configSchema.omit({ sandbox: true }).extend(\n({\n sandbox: z.record(z.union([sandboxConfigSchema, nonEmptyStringSchema])),\n })\n);\n\nexport const requestArgsSchema = sanitizedArgsSchema\n .omit({ quickstart: true })\n .extend(\n({\n taqRun: pluginActionNameSchema,\n config: loadedConfigSchema,\n })\n ).passthrough();\n\nexport const proxyTaskArgsSchema = requestArgsSchema.extend(\n({\n task: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const proxyTemplateArgsSchema = requestArgsSchema.extend(\n({\n template: nonEmptyStringSchema,\n })\n).passthrough();\n\nexport const operationSchema = z.object({\n operation: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema.optional(),\n positionals: z.array(positionalArgSchema).optional(),\n options: z.array(optionSchema).optional(),\n handler: z\n .function()\n .args(persistentStateSchema)\n .returns(z.function().args(requestArgsSchema).returns(z.void()))\n .optional(),\n});\n\nexport const parsedOperationSchema = operationSchema.omit({ handler: true });\n\nconst templateHandlerSchema = z.union([\n nonEmptyStringSchema,\n z\n .function()\n .args(requestArgsSchema)\n .returns(\n z.union([pluginJsonResponseSchema, z.promise(pluginJsonResponseSchema)])\n ),\n z.promise(z.void()),\n]);\n\nexport const templateSchema = z.object({\n template: verbSchema,\n command: commandSchema,\n description: nonEmptyStringSchema,\n hidden: z.boolean().optional(),\n options: z.array(optionSchema).optional(),\n positionals: z.array(positionalArgSchema).optional(),\n handler: templateHandlerSchema,\n encoding: pluginResponseEncodingSchema.optional(),\n});\n\nexport const parsedTemplateSchema = templateSchema.omit({ handler: true }).extend(\n({\n handler: z.string(),\n })\n);\n\nexport const pluginInfoSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(parsedOperationSchema).optional(),\n templates: z.array(parsedTemplateSchema).optional(),\n })\n);\n\nexport const pluginSchemaSchema = pluginSchemaBaseSchema.extend(\n({\n operations: z.array(operationSchema).optional(),\n templates: z.array(templateSchema).optional(),\n proxy: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginProxyResponseSchema))\n .optional(),\n checkRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n installRuntimeDependencies: z\n .function()\n .args(requestArgsSchema)\n .returns(z.promise(pluginDependenciesResponseSchema))\n .optional(),\n })\n);\n\nexport const ephemeralStateSchema = z.object({\n build: z.string(),\n configHash: z.string(),\n tasks: z.record(installedPluginSchema.and(taskSchema)),\n operations: z.record(installedPluginSchema.and(parsedOperationSchema)),\n templates: z.record(installedPluginSchema.and(parsedTemplateSchema)),\n plugins: z.array(pluginInfoSchema),\n});\n"],"mappings":"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","names":["create","import_fluture","import_zod","create"]}