@elite-dangerous-almanac/core 0.1.0-beta.9 → 0.1.2

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 (239) hide show
  1. package/PROVENANCE/i18n/SOURCES.md +71 -12
  2. package/PROVENANCE/ships/SOURCES.md +74 -48
  3. package/README.md +34 -2
  4. package/THIRD_PARTY_NOTICES.md +3 -3
  5. package/dist/astro/codex-region-lookup.js +1 -1
  6. package/dist/astro/codex-region.js +1 -1
  7. package/dist/astro/galaxy-grid.js +1 -1
  8. package/dist/astro/index.js +1 -1
  9. package/dist/astro/mass-code.js +1 -1
  10. package/dist/astro/naming-region-origins.js +1 -1
  11. package/dist/astro/nebulae.js +1 -1
  12. package/dist/astro/permit-locked-regions.js +1 -1
  13. package/dist/astro/permit-locked-systems.js +1 -1
  14. package/dist/astro/permit-locks.js +1 -1
  15. package/dist/astro/procedural-system.js +1 -1
  16. package/dist/astro/sector-name.js +1 -1
  17. package/dist/astro/system-address-input.js +1 -1
  18. package/dist/astro/system-address.js +1 -1
  19. package/dist/astro/system-name.js +1 -1
  20. package/dist/{chunk-KQDJTDLV.js → chunk-2J2UV4ZX.js} +1 -1
  21. package/dist/{chunk-DB54PH3X.js → chunk-6EPYVBAX.js} +1 -1
  22. package/dist/{chunk-U6TMCYA6.js → chunk-6EUVIZAS.js} +1 -1
  23. package/dist/chunk-6RLMBSXE.js +1 -0
  24. package/dist/chunk-6RLMBSXE.js.map +1 -0
  25. package/dist/{chunk-NWPK6Q3S.js → chunk-ADLVPKUV.js} +1 -1
  26. package/dist/{chunk-S4DBNX2B.js → chunk-BKWLI44T.js} +1 -1
  27. package/dist/chunk-BMM6GQAU.js +1 -0
  28. package/dist/chunk-BMM6GQAU.js.map +1 -0
  29. package/dist/{chunk-WV5YM7H5.js → chunk-BMT3U46U.js} +1 -1
  30. package/dist/chunk-CTJQPQRA.js +1 -0
  31. package/dist/{chunk-NSSWYRHN.js.map → chunk-CTJQPQRA.js.map} +1 -1
  32. package/dist/chunk-DAQ3PJ4R.js +1 -0
  33. package/dist/chunk-DAQ3PJ4R.js.map +1 -0
  34. package/dist/{chunk-BTPV5CIF.js → chunk-DI5RXSJR.js} +1 -1
  35. package/dist/{chunk-YDBRGW4G.js → chunk-DLLBARN5.js} +1 -1
  36. package/dist/{chunk-J2PNZQY4.js → chunk-DVL5RBKX.js} +1 -1
  37. package/dist/{chunk-VXVUEF5U.js → chunk-E3BRVGJJ.js} +1 -1
  38. package/dist/{chunk-MFV4VZFP.js → chunk-EBAHNZ36.js} +1 -1
  39. package/dist/{chunk-BSOIPL4A.js → chunk-EJMNNQIS.js} +1 -1
  40. package/dist/{chunk-BSOIPL4A.js.map → chunk-EJMNNQIS.js.map} +1 -1
  41. package/dist/{chunk-QF3NYGUJ.js → chunk-EKWLAHRG.js} +1 -1
  42. package/dist/chunk-EU42PAV4.js +1 -0
  43. package/dist/{chunk-32PVERNH.js.map → chunk-EU42PAV4.js.map} +1 -1
  44. package/dist/{chunk-Q22LXT53.js → chunk-FEER4ERG.js} +1 -1
  45. package/dist/{chunk-G3AMKCOE.js → chunk-FGNJ7EVM.js} +1 -1
  46. package/dist/{chunk-JWJ7RSZC.js → chunk-G3265B27.js} +1 -1
  47. package/dist/chunk-GKDEI2SQ.js +1 -0
  48. package/dist/chunk-GKDEI2SQ.js.map +1 -0
  49. package/dist/chunk-GOMBLS2T.js +1 -0
  50. package/dist/chunk-GOMBLS2T.js.map +1 -0
  51. package/dist/{chunk-V3DW67W2.js → chunk-GRIK3EDH.js} +1 -1
  52. package/dist/chunk-H3HMVGEY.js +1 -0
  53. package/dist/chunk-H3HMVGEY.js.map +1 -0
  54. package/dist/{chunk-UXZJMZEU.js → chunk-HRVIHQ4A.js} +1 -1
  55. package/dist/{chunk-QTDBO7R2.js → chunk-IYU4WLFM.js} +1 -1
  56. package/dist/{chunk-5EUX3L76.js → chunk-JWWYAMGD.js} +1 -1
  57. package/dist/chunk-KAA4VOOB.js +1 -0
  58. package/dist/chunk-KAA4VOOB.js.map +1 -0
  59. package/dist/{chunk-ZFT56QFR.js → chunk-L7CLUYZ6.js} +1 -1
  60. package/dist/{chunk-4AE22CHV.js → chunk-M5IBENCW.js} +1 -1
  61. package/dist/chunk-M5IBENCW.js.map +1 -0
  62. package/dist/{chunk-IH4NXKVW.js → chunk-NEEFT7WH.js} +1 -1
  63. package/dist/{chunk-VZXL5KBR.js → chunk-NLBUKXNV.js} +1 -1
  64. package/dist/{chunk-4OSCSACF.js → chunk-OCND33TO.js} +1 -1
  65. package/dist/{chunk-PMJG7PHU.js → chunk-PHPLZEFS.js} +1 -1
  66. package/dist/chunk-PKWVG2JY.js +1 -0
  67. package/dist/chunk-PKWVG2JY.js.map +1 -0
  68. package/dist/chunk-PNZCLQDJ.js +1 -0
  69. package/dist/{chunk-53ERRGPM.js.map → chunk-PNZCLQDJ.js.map} +1 -1
  70. package/dist/{chunk-DACZE3HX.js → chunk-POZTXBSN.js} +1 -1
  71. package/dist/chunk-Q4E2V6RE.js +1 -0
  72. package/dist/chunk-Q4E2V6RE.js.map +1 -0
  73. package/dist/{chunk-DNTN34M4.js → chunk-QI22FKBG.js} +1 -1
  74. package/dist/chunk-QTZPA2FR.js +1 -0
  75. package/dist/{chunk-TH4S5MVD.js.map → chunk-QTZPA2FR.js.map} +1 -1
  76. package/dist/{chunk-MNXWK7PA.js → chunk-R26GVRMI.js} +1 -1
  77. package/dist/{chunk-I7PIDRMU.js → chunk-RAO35XDF.js} +1 -1
  78. package/dist/chunk-TFPIPIMU.js +1 -0
  79. package/dist/chunk-TFPIPIMU.js.map +1 -0
  80. package/dist/chunk-TLA6LHLN.js +1 -0
  81. package/dist/{chunk-V4C6FIE2.js.map → chunk-TLA6LHLN.js.map} +1 -1
  82. package/dist/{chunk-JYQE53FL.js → chunk-TMMGS6TC.js} +1 -1
  83. package/dist/{chunk-ZAHNOQGG.js → chunk-UBYO7VZR.js} +1 -1
  84. package/dist/{chunk-Z4GTTB7I.js → chunk-UXBCLFGU.js} +1 -1
  85. package/dist/{chunk-RKLJ7EEE.js → chunk-UXFMVZAY.js} +1 -1
  86. package/dist/chunk-VB3XZGIB.js +1 -0
  87. package/dist/chunk-VB3XZGIB.js.map +1 -0
  88. package/dist/chunk-VKN65H2U.js +1 -0
  89. package/dist/chunk-VKN65H2U.js.map +1 -0
  90. package/dist/chunk-VSNS7Y3M.js +1 -0
  91. package/dist/chunk-VSNS7Y3M.js.map +1 -0
  92. package/dist/{chunk-MPZGCTRG.js → chunk-VZZUNSDF.js} +1 -1
  93. package/dist/chunk-VZZUNSDF.js.map +1 -0
  94. package/dist/{chunk-ZJB5UYNE.js → chunk-W5G2NUCZ.js} +1 -1
  95. package/dist/{chunk-ZJB5UYNE.js.map → chunk-W5G2NUCZ.js.map} +1 -1
  96. package/dist/{chunk-IJRKEODR.js → chunk-WNGQ3IAM.js} +1 -1
  97. package/dist/{chunk-VARPO47V.js → chunk-XN6Q7LWU.js} +1 -1
  98. package/dist/chunk-XT6KKGSE.js +1 -0
  99. package/dist/chunk-XT6KKGSE.js.map +1 -0
  100. package/dist/{chunk-KMFUCORC.js → chunk-Y6UZWNP4.js} +1 -1
  101. package/dist/{chunk-QMQHIZGS.js → chunk-YU5GND2Q.js} +1 -1
  102. package/dist/chunk-YU5GND2Q.js.map +1 -0
  103. package/dist/commodities/commodities.js +1 -1
  104. package/dist/commodities/index.js +1 -1
  105. package/dist/equipment/index.js +1 -1
  106. package/dist/equipment/modification-costs.js +1 -1
  107. package/dist/equipment/modification-journal.js +1 -1
  108. package/dist/equipment/modifications.js +1 -1
  109. package/dist/equipment/suits.js +1 -1
  110. package/dist/equipment/upgrade-costs.js +1 -1
  111. package/dist/equipment/weapons.js +1 -1
  112. package/dist/i18n/blueprints.js +1 -1
  113. package/dist/i18n/diagnostics.d.ts +62 -0
  114. package/dist/i18n/diagnostics.js +1 -0
  115. package/dist/i18n/diagnostics.js.map +1 -0
  116. package/dist/i18n/engineering-groups.d.ts +20 -0
  117. package/dist/i18n/engineering-groups.js +1 -0
  118. package/dist/i18n/engineering-groups.js.map +1 -0
  119. package/dist/i18n/experimental-effect-descriptions.d.ts +20 -0
  120. package/dist/i18n/experimental-effect-descriptions.js +1 -0
  121. package/dist/i18n/experimental-effect-descriptions.js.map +1 -0
  122. package/dist/i18n/experimental-effects.js +1 -1
  123. package/dist/i18n/index.d.ts +27 -0
  124. package/dist/i18n/index.js +1 -1
  125. package/dist/i18n/materials.js +1 -1
  126. package/dist/i18n/micro-resources.js +1 -1
  127. package/dist/i18n/modules.js +1 -1
  128. package/dist/i18n/pre-engineered.d.ts +39 -0
  129. package/dist/i18n/pre-engineered.js +1 -0
  130. package/dist/i18n/pre-engineered.js.map +1 -0
  131. package/dist/i18n/ships.d.ts +36 -0
  132. package/dist/i18n/ships.js +1 -0
  133. package/dist/i18n/ships.js.map +1 -0
  134. package/dist/i18n/slots.d.ts +42 -0
  135. package/dist/i18n/slots.js +1 -0
  136. package/dist/i18n/slots.js.map +1 -0
  137. package/dist/materials/index.js +1 -1
  138. package/dist/materials/materials-all.js +1 -1
  139. package/dist/materials/materials.js +1 -1
  140. package/dist/materials/micro-resources-all.js +1 -1
  141. package/dist/materials/micro-resources.js +1 -1
  142. package/dist/ships/blueprint-costs.d.ts +13 -11
  143. package/dist/ships/blueprint-costs.js +1 -1
  144. package/dist/ships/blueprint-costs.js.map +1 -1
  145. package/dist/ships/blueprint-journal.d.ts +6 -7
  146. package/dist/ships/blueprint-journal.js +1 -1
  147. package/dist/ships/blueprints.js +1 -1
  148. package/dist/ships/default-loadouts.js +1 -1
  149. package/dist/ships/engineering-options.d.ts +28 -29
  150. package/dist/ships/engineering-options.js +1 -1
  151. package/dist/ships/experimental-effect-costs.js +1 -1
  152. package/dist/ships/experimental-effects.js +1 -1
  153. package/dist/ships/gunsights.js +1 -1
  154. package/dist/ships/heat.d.ts +22 -0
  155. package/dist/ships/heat.js +1 -1
  156. package/dist/ships/index.d.ts +6 -5
  157. package/dist/ships/index.js +1 -1
  158. package/dist/ships/loadout-calculations.d.ts +21 -11
  159. package/dist/ships/loadout-calculations.js +1 -1
  160. package/dist/ships/loadout-validation.d.ts +7 -6
  161. package/dist/ships/loadout-validation.js +1 -1
  162. package/dist/ships/modules-all.js +1 -1
  163. package/dist/ships/modules-hardpoint.js +1 -1
  164. package/dist/ships/modules-internal.js +1 -1
  165. package/dist/ships/modules.d.ts +5 -5
  166. package/dist/ships/modules.js +1 -1
  167. package/dist/ships/power.d.ts +39 -11
  168. package/dist/ships/power.js +1 -1
  169. package/dist/ships/pre-engineered-stats.d.ts +20 -4
  170. package/dist/ships/pre-engineered-stats.js +1 -1
  171. package/dist/ships/pre-engineered.d.ts +7 -8
  172. package/dist/ships/pre-engineered.js +1 -1
  173. package/dist/ships/shield-recovery.d.ts +12 -6
  174. package/dist/ships/shield-recovery.js +1 -1
  175. package/dist/ships/ship-loadout.d.ts +1793 -19
  176. package/dist/ships/ship-loadout.js +1 -1
  177. package/dist/ships/ships.js +1 -1
  178. package/dist/ships/slef.js +1 -1
  179. package/dist/ships/slots.js +1 -1
  180. package/dist/ships/source-purchase.js +1 -1
  181. package/package.json +26 -2
  182. package/dist/chunk-32PVERNH.js +0 -1
  183. package/dist/chunk-4AE22CHV.js.map +0 -1
  184. package/dist/chunk-4WC5NHBJ.js +0 -1
  185. package/dist/chunk-4WC5NHBJ.js.map +0 -1
  186. package/dist/chunk-53ERRGPM.js +0 -1
  187. package/dist/chunk-5W43EQEQ.js +0 -1
  188. package/dist/chunk-5W43EQEQ.js.map +0 -1
  189. package/dist/chunk-76XKY2Y2.js +0 -1
  190. package/dist/chunk-76XKY2Y2.js.map +0 -1
  191. package/dist/chunk-B5TT26XE.js +0 -1
  192. package/dist/chunk-B5TT26XE.js.map +0 -1
  193. package/dist/chunk-BYBT5XSW.js +0 -1
  194. package/dist/chunk-BYBT5XSW.js.map +0 -1
  195. package/dist/chunk-KLIYDSYF.js +0 -1
  196. package/dist/chunk-KLIYDSYF.js.map +0 -1
  197. package/dist/chunk-MPZGCTRG.js.map +0 -1
  198. package/dist/chunk-NSSWYRHN.js +0 -1
  199. package/dist/chunk-QMQHIZGS.js.map +0 -1
  200. package/dist/chunk-RF2IKLWQ.js +0 -1
  201. package/dist/chunk-RF2IKLWQ.js.map +0 -1
  202. package/dist/chunk-TH4S5MVD.js +0 -1
  203. package/dist/chunk-V4C6FIE2.js +0 -1
  204. package/dist/ship-loadout-BsfKbvKe.d.ts +0 -1455
  205. /package/dist/{chunk-KQDJTDLV.js.map → chunk-2J2UV4ZX.js.map} +0 -0
  206. /package/dist/{chunk-DB54PH3X.js.map → chunk-6EPYVBAX.js.map} +0 -0
  207. /package/dist/{chunk-U6TMCYA6.js.map → chunk-6EUVIZAS.js.map} +0 -0
  208. /package/dist/{chunk-NWPK6Q3S.js.map → chunk-ADLVPKUV.js.map} +0 -0
  209. /package/dist/{chunk-S4DBNX2B.js.map → chunk-BKWLI44T.js.map} +0 -0
  210. /package/dist/{chunk-WV5YM7H5.js.map → chunk-BMT3U46U.js.map} +0 -0
  211. /package/dist/{chunk-BTPV5CIF.js.map → chunk-DI5RXSJR.js.map} +0 -0
  212. /package/dist/{chunk-YDBRGW4G.js.map → chunk-DLLBARN5.js.map} +0 -0
  213. /package/dist/{chunk-J2PNZQY4.js.map → chunk-DVL5RBKX.js.map} +0 -0
  214. /package/dist/{chunk-VXVUEF5U.js.map → chunk-E3BRVGJJ.js.map} +0 -0
  215. /package/dist/{chunk-MFV4VZFP.js.map → chunk-EBAHNZ36.js.map} +0 -0
  216. /package/dist/{chunk-QF3NYGUJ.js.map → chunk-EKWLAHRG.js.map} +0 -0
  217. /package/dist/{chunk-Q22LXT53.js.map → chunk-FEER4ERG.js.map} +0 -0
  218. /package/dist/{chunk-G3AMKCOE.js.map → chunk-FGNJ7EVM.js.map} +0 -0
  219. /package/dist/{chunk-JWJ7RSZC.js.map → chunk-G3265B27.js.map} +0 -0
  220. /package/dist/{chunk-V3DW67W2.js.map → chunk-GRIK3EDH.js.map} +0 -0
  221. /package/dist/{chunk-UXZJMZEU.js.map → chunk-HRVIHQ4A.js.map} +0 -0
  222. /package/dist/{chunk-QTDBO7R2.js.map → chunk-IYU4WLFM.js.map} +0 -0
  223. /package/dist/{chunk-5EUX3L76.js.map → chunk-JWWYAMGD.js.map} +0 -0
  224. /package/dist/{chunk-ZFT56QFR.js.map → chunk-L7CLUYZ6.js.map} +0 -0
  225. /package/dist/{chunk-IH4NXKVW.js.map → chunk-NEEFT7WH.js.map} +0 -0
  226. /package/dist/{chunk-VZXL5KBR.js.map → chunk-NLBUKXNV.js.map} +0 -0
  227. /package/dist/{chunk-4OSCSACF.js.map → chunk-OCND33TO.js.map} +0 -0
  228. /package/dist/{chunk-PMJG7PHU.js.map → chunk-PHPLZEFS.js.map} +0 -0
  229. /package/dist/{chunk-DACZE3HX.js.map → chunk-POZTXBSN.js.map} +0 -0
  230. /package/dist/{chunk-DNTN34M4.js.map → chunk-QI22FKBG.js.map} +0 -0
  231. /package/dist/{chunk-MNXWK7PA.js.map → chunk-R26GVRMI.js.map} +0 -0
  232. /package/dist/{chunk-I7PIDRMU.js.map → chunk-RAO35XDF.js.map} +0 -0
  233. /package/dist/{chunk-JYQE53FL.js.map → chunk-TMMGS6TC.js.map} +0 -0
  234. /package/dist/{chunk-ZAHNOQGG.js.map → chunk-UBYO7VZR.js.map} +0 -0
  235. /package/dist/{chunk-Z4GTTB7I.js.map → chunk-UXBCLFGU.js.map} +0 -0
  236. /package/dist/{chunk-RKLJ7EEE.js.map → chunk-UXFMVZAY.js.map} +0 -0
  237. /package/dist/{chunk-IJRKEODR.js.map → chunk-WNGQ3IAM.js.map} +0 -0
  238. /package/dist/{chunk-VARPO47V.js.map → chunk-XN6Q7LWU.js.map} +0 -0
  239. /package/dist/{chunk-KMFUCORC.js.map → chunk-Y6UZWNP4.js.map} +0 -0
@@ -0,0 +1 @@
1
+ import{buildModuleCatalogue}from"./chunk-E45EDCYH.js";var modules_internal_default=[{symbol:"Int_DockingComputer_Standard",name:"Standard Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.39,bootTime:3,cost:4500},{symbol:"Int_ShieldGenerator_Size1_Class1",kind:"shieldGenerators",name:"Shield Generator",class:1,rating:"E",exclusionGroup:"shieldGenerator",mass:1.3,integrity:32,powerDraw:.72,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:300},{symbol:"Int_ShieldGenerator_Size1_Class2",kind:"shieldGenerators",name:"Shield Generator",class:1,rating:"D",exclusionGroup:"shieldGenerator",mass:.5,integrity:24,powerDraw:.96,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1240},{symbol:"Int_ShieldGenerator_Size1_Class3",kind:"shieldGenerators",name:"Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5140},{symbol:"Int_ShieldGenerator_Size1_Class4",kind:"shieldGenerators",name:"Shield Generator",class:1,rating:"B",exclusionGroup:"shieldGenerator",mass:2,integrity:56,powerDraw:1.44,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_ShieldGenerator_Size1_Class5",kind:"shieldGenerators",name:"Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",mass:1.3,integrity:48,powerDraw:1.68,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:88075},{symbol:"Int_ShieldGenerator_Size2_Class1",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1978},{symbol:"Int_ShieldGenerator_Size2_Class2",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"D",exclusionGroup:"shieldGenerator",mass:1,integrity:31,powerDraw:1.2,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5934},{symbol:"Int_ShieldGenerator_Size2_Class3",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17803},{symbol:"Int_ShieldGenerator_Size2_Class4",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"B",exclusionGroup:"shieldGenerator",mass:4,integrity:71,powerDraw:1.8,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:53408},{symbol:"Int_ShieldGenerator_Size2_Class5",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",mass:2.5,integrity:61,powerDraw:2.1,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:160224},{symbol:"Int_ShieldGenerator_Size3_Class1",kind:"shieldGenerators",name:"Shield Generator",class:3,rating:"E",exclusionGroup:"shieldGenerator",mass:5,integrity:51,powerDraw:1.08,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6271},{symbol:"Int_ShieldGenerator_Size3_Class2",kind:"shieldGenerators",name:"Shield Generator",class:3,rating:"D",exclusionGroup:"shieldGenerator",mass:2,integrity:38,powerDraw:1.44,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18812},{symbol:"Int_ShieldGenerator_Size3_Class3",kind:"shieldGenerators",name:"Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:56435},{symbol:"Int_ShieldGenerator_Size3_Class4",kind:"shieldGenerators",name:"Shield Generator",class:3,rating:"B",exclusionGroup:"shieldGenerator",mass:8,integrity:90,powerDraw:2.16,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:169304},{symbol:"Int_ShieldGenerator_Size3_Class5",kind:"shieldGenerators",name:"Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",mass:5,integrity:77,powerDraw:2.52,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:1.87,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:507912},{symbol:"Int_ShieldGenerator_Size4_Class1",kind:"shieldGenerators",name:"Shield Generator",class:4,rating:"E",exclusionGroup:"shieldGenerator",mass:10,integrity:64,powerDraw:1.32,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:19878},{symbol:"Int_ShieldGenerator_Size4_Class2",kind:"shieldGenerators",name:"Shield Generator",class:4,rating:"D",exclusionGroup:"shieldGenerator",mass:4,integrity:48,powerDraw:1.76,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:59633},{symbol:"Int_ShieldGenerator_Size4_Class3",kind:"shieldGenerators",name:"Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:178898},{symbol:"Int_ShieldGenerator_Size4_Class4",kind:"shieldGenerators",name:"Shield Generator",class:4,rating:"B",exclusionGroup:"shieldGenerator",mass:16,integrity:112,powerDraw:2.64,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:536693},{symbol:"Int_ShieldGenerator_Size4_Class5",kind:"shieldGenerators",name:"Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",mass:10,integrity:96,powerDraw:3.08,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:2.53,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1610080},{symbol:"Int_ShieldGenerator_Size5_Class1",kind:"shieldGenerators",name:"Shield Generator",class:5,rating:"E",exclusionGroup:"shieldGenerator",mass:20,integrity:77,powerDraw:1.56,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:63012},{symbol:"Int_ShieldGenerator_Size5_Class2",kind:"shieldGenerators",name:"Shield Generator",class:5,rating:"D",exclusionGroup:"shieldGenerator",mass:8,integrity:58,powerDraw:2.08,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:189035},{symbol:"Int_ShieldGenerator_Size5_Class3",kind:"shieldGenerators",name:"Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:567106},{symbol:"Int_ShieldGenerator_Size5_Class4",kind:"shieldGenerators",name:"Shield Generator",class:5,rating:"B",exclusionGroup:"shieldGenerator",mass:32,integrity:134,powerDraw:3.12,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1701318},{symbol:"Int_ShieldGenerator_Size5_Class5",kind:"shieldGenerators",name:"Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",mass:20,integrity:115,powerDraw:3.64,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1,shieldBrokenRegenRate:3.75,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5103953},{symbol:"Int_ShieldGenerator_Size6_Class1",kind:"shieldGenerators",name:"Shield Generator",class:6,rating:"E",exclusionGroup:"shieldGenerator",mass:40,integrity:90,powerDraw:1.86,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.3,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:199747},{symbol:"Int_ShieldGenerator_Size6_Class2",kind:"shieldGenerators",name:"Shield Generator",class:6,rating:"D",exclusionGroup:"shieldGenerator",mass:16,integrity:68,powerDraw:2.48,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:599242},{symbol:"Int_ShieldGenerator_Size6_Class3",kind:"shieldGenerators",name:"Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1797726},{symbol:"Int_ShieldGenerator_Size6_Class4",kind:"shieldGenerators",name:"Shield Generator",class:6,rating:"B",exclusionGroup:"shieldGenerator",mass:64,integrity:158,powerDraw:3.72,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5393177},{symbol:"Int_ShieldGenerator_Size6_Class5",kind:"shieldGenerators",name:"Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",mass:40,integrity:136,powerDraw:4.34,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.33,shieldBrokenRegenRate:5.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:16179531},{symbol:"Int_ShieldGenerator_Size7_Class1",kind:"shieldGenerators",name:"Shield Generator",class:7,rating:"E",exclusionGroup:"shieldGenerator",mass:80,integrity:105,powerDraw:2.1,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:633199},{symbol:"Int_ShieldGenerator_Size7_Class2",kind:"shieldGenerators",name:"Shield Generator",class:7,rating:"D",exclusionGroup:"shieldGenerator",mass:32,integrity:79,powerDraw:2.8,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:1899597},{symbol:"Int_ShieldGenerator_Size7_Class3",kind:"shieldGenerators",name:"Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:5698790},{symbol:"Int_ShieldGenerator_Size7_Class4",kind:"shieldGenerators",name:"Shield Generator",class:7,rating:"B",exclusionGroup:"shieldGenerator",mass:128,integrity:183,powerDraw:4.2,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:17096371},{symbol:"Int_ShieldGenerator_Size7_Class5",kind:"shieldGenerators",name:"Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",mass:80,integrity:157,powerDraw:4.9,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:1.83,shieldBrokenRegenRate:7.33,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:51289112},{symbol:"Int_ShieldGenerator_Size8_Class1",kind:"shieldGenerators",name:"Shield Generator",class:8,rating:"E",exclusionGroup:"shieldGenerator",mass:160,integrity:120,powerDraw:2.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2007241},{symbol:"Int_ShieldGenerator_Size8_Class2",kind:"shieldGenerators",name:"Shield Generator",class:8,rating:"D",exclusionGroup:"shieldGenerator",mass:64,integrity:90,powerDraw:3.2,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:6021722},{symbol:"Int_ShieldGenerator_Size8_Class3",kind:"shieldGenerators",name:"Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1,minMultiplier:.5,maxMultiplier:1.5,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:18065165},{symbol:"Int_ShieldGenerator_Size8_Class4",kind:"shieldGenerators",name:"Shield Generator",class:8,rating:"B",exclusionGroup:"shieldGenerator",mass:256,integrity:210,powerDraw:4.8,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.1,minMultiplier:.6,maxMultiplier:1.6,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:54195495},{symbol:"Int_ShieldGenerator_Size8_Class5",kind:"shieldGenerators",name:"Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",mass:160,integrity:180,powerDraw:5.6,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.2,minMultiplier:.7,maxMultiplier:1.7,shieldRegenRate:2.4,shieldBrokenRegenRate:9.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:162586486},{symbol:"Int_ShieldCellBank_Size1_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.41,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:12,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:517},{symbol:"Int_ShieldCellBank_Size1_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.55,bootTime:25,clipSize:1,ammoMaximum:1,thermalLoad:170,shieldBankReinforcement:16,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:1293},{symbol:"Int_ShieldCellBank_Size1_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.69,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:20,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:3231},{symbol:"Int_ShieldCellBank_Size1_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"B",mass:2,integrity:56,powerDraw:.83,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:170,shieldBankReinforcement:24,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:8078},{symbol:"Int_ShieldCellBank_Size1_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.97,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:170,shieldBankReinforcement:28,shieldBankHeat:170,shieldBankSpinUp:5,shieldBankDuration:1,cost:20195},{symbol:"Int_ShieldCellBank_Size2_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"E",mass:2.5,integrity:41,powerDraw:.5,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:14,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:1448},{symbol:"Int_ShieldCellBank_Size2_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"D",mass:1,integrity:31,powerDraw:.67,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:240,shieldBankReinforcement:18,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:3619},{symbol:"Int_ShieldCellBank_Size2_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"C",mass:2.5,integrity:51,powerDraw:.84,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:23,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:9048},{symbol:"Int_ShieldCellBank_Size2_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"B",mass:4,integrity:71,powerDraw:1.01,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:240,shieldBankReinforcement:28,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:22619},{symbol:"Int_ShieldCellBank_Size2_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:2,rating:"A",mass:2.5,integrity:61,powerDraw:1.18,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:240,shieldBankReinforcement:32,shieldBankHeat:240,shieldBankSpinUp:5,shieldBankDuration:1.5,cost:56547},{symbol:"Int_ShieldCellBank_Size3_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"E",mass:5,integrity:51,powerDraw:.61,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:17,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:4053},{symbol:"Int_ShieldCellBank_Size3_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"D",mass:2,integrity:38,powerDraw:.82,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:340,shieldBankReinforcement:23,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:10133},{symbol:"Int_ShieldCellBank_Size3_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"C",mass:5,integrity:64,powerDraw:1.02,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:29,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:25333},{symbol:"Int_ShieldCellBank_Size3_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"B",mass:8,integrity:90,powerDraw:1.22,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:340,shieldBankReinforcement:35,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:63333},{symbol:"Int_ShieldCellBank_Size3_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:3,rating:"A",mass:5,integrity:77,powerDraw:1.43,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:340,shieldBankReinforcement:41,shieldBankHeat:340,shieldBankSpinUp:5,shieldBankDuration:2.3,cost:158331},{symbol:"Int_ShieldCellBank_Size4_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"E",mass:10,integrity:64,powerDraw:.74,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:20,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:11349},{symbol:"Int_ShieldCellBank_Size4_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"D",mass:4,integrity:48,powerDraw:.98,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:410,shieldBankReinforcement:26,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:28373},{symbol:"Int_ShieldCellBank_Size4_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"C",mass:10,integrity:80,powerDraw:1.23,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:33,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:70932},{symbol:"Int_ShieldCellBank_Size4_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"B",mass:16,integrity:112,powerDraw:1.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:410,shieldBankReinforcement:39,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:177331},{symbol:"Int_ShieldCellBank_Size4_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:4,rating:"A",mass:10,integrity:96,powerDraw:1.72,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:410,shieldBankReinforcement:46,shieldBankHeat:410,shieldBankSpinUp:5,shieldBankDuration:3.4,cost:443328},{symbol:"Int_ShieldCellBank_Size5_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"E",mass:20,integrity:77,powerDraw:.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:21,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:31778},{symbol:"Int_ShieldCellBank_Size5_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"D",mass:8,integrity:58,powerDraw:1.2,bootTime:25,clipSize:1,ammoMaximum:2,thermalLoad:540,shieldBankReinforcement:28,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:79444},{symbol:"Int_ShieldCellBank_Size5_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"C",mass:20,integrity:96,powerDraw:1.5,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:35,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:198611},{symbol:"Int_ShieldCellBank_Size5_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"B",mass:32,integrity:134,powerDraw:1.8,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:540,shieldBankReinforcement:41,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:496527},{symbol:"Int_ShieldCellBank_Size5_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:5,rating:"A",mass:20,integrity:115,powerDraw:2.1,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:540,shieldBankReinforcement:48,shieldBankHeat:540,shieldBankSpinUp:5,shieldBankDuration:5.1,cost:1241317},{symbol:"Int_ShieldCellBank_Size6_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"E",mass:40,integrity:90,powerDraw:1.06,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:20,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:88978},{symbol:"Int_ShieldCellBank_Size6_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"D",mass:16,integrity:68,powerDraw:1.42,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:640,shieldBankReinforcement:26,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:222444},{symbol:"Int_ShieldCellBank_Size6_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"C",mass:40,integrity:113,powerDraw:1.77,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:33,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:556110},{symbol:"Int_ShieldCellBank_Size6_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"B",mass:64,integrity:158,powerDraw:2.12,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:640,shieldBankReinforcement:39,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:1390275},{symbol:"Int_ShieldCellBank_Size6_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:6,rating:"A",mass:40,integrity:136,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:640,shieldBankReinforcement:46,shieldBankHeat:640,shieldBankSpinUp:5,shieldBankDuration:7.6,cost:3475688},{symbol:"Int_ShieldCellBank_Size7_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"E",mass:80,integrity:105,powerDraw:1.24,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:24,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:249137},{symbol:"Int_ShieldCellBank_Size7_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"D",mass:32,integrity:79,powerDraw:1.66,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:720,shieldBankReinforcement:32,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:622843},{symbol:"Int_ShieldCellBank_Size7_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"C",mass:80,integrity:131,powerDraw:2.07,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:41,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:1557108},{symbol:"Int_ShieldCellBank_Size7_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"B",mass:128,integrity:183,powerDraw:2.48,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:720,shieldBankReinforcement:49,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:3892770},{symbol:"Int_ShieldCellBank_Size7_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:7,rating:"A",mass:80,integrity:157,powerDraw:2.9,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:720,shieldBankReinforcement:57,shieldBankHeat:720,shieldBankSpinUp:5,shieldBankDuration:11.4,cost:9731925},{symbol:"Int_ShieldCellBank_Size8_Class1",kind:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"E",mass:160,integrity:120,powerDraw:1.44,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:28,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:697584},{symbol:"Int_ShieldCellBank_Size8_Class2",kind:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"D",mass:64,integrity:90,powerDraw:1.92,bootTime:25,clipSize:1,ammoMaximum:3,thermalLoad:800,shieldBankReinforcement:37,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:1743961},{symbol:"Int_ShieldCellBank_Size8_Class3",kind:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"C",mass:160,integrity:150,powerDraw:2.4,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:47,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:4359903},{symbol:"Int_ShieldCellBank_Size8_Class4",kind:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"B",mass:256,integrity:210,powerDraw:2.88,bootTime:25,clipSize:1,ammoMaximum:5,thermalLoad:800,shieldBankReinforcement:56,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:10899756},{symbol:"Int_ShieldCellBank_Size8_Class5",kind:"shieldCellBanks",name:"Shield Cell Bank",class:8,rating:"A",mass:160,integrity:180,powerDraw:3.36,bootTime:25,clipSize:1,ammoMaximum:4,thermalLoad:800,shieldBankReinforcement:65,shieldBankHeat:800,shieldBankSpinUp:5,shieldBankDuration:17.1,cost:27249391},{symbol:"Int_CargoRack_Size1_Class1",name:"Cargo Rack",class:1,rating:"E",mass:0,cargoCapacity:2,cost:1e3},{symbol:"Int_CargoRack_Size2_Class1",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4,cost:3250},{symbol:"Int_CargoRack_Size3_Class1",name:"Cargo Rack",class:3,rating:"E",mass:0,cargoCapacity:8,cost:10563},{symbol:"Int_CargoRack_Size4_Class1",name:"Cargo Rack",class:4,rating:"E",mass:0,cargoCapacity:16,cost:34328},{symbol:"Int_CargoRack_Size5_Class1",name:"Cargo Rack",class:5,rating:"E",mass:0,cargoCapacity:32,cost:111566},{symbol:"Int_CargoRack_Size6_Class1",name:"Cargo Rack",class:6,rating:"E",mass:0,cargoCapacity:64,cost:362591},{symbol:"Int_CargoRack_Size7_Class1",name:"Cargo Rack",class:7,rating:"E",mass:0,cargoCapacity:128,cost:1178420},{symbol:"Int_CargoRack_Size8_Class1",name:"Cargo Rack",class:8,rating:"E",mass:0,cargoCapacity:256,cost:3829866},{symbol:"Int_DroneControl_ResourceSiphon",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"I",mass:0,integrity:20,powerDraw:.4,bootTime:0,cost:18040},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class1",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"E",mass:1.3,integrity:32,powerDraw:.12,bootTime:3,cost:600},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class2",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"D",mass:.5,integrity:24,powerDraw:.16,bootTime:3,cost:1200},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class3",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.2,bootTime:3,cost:2400},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class4",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"B",mass:2,integrity:56,powerDraw:.24,bootTime:3,cost:4800},{symbol:"Int_DroneControl_ResourceSiphon_Size1_Class5",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:1,rating:"A",mass:1.3,integrity:48,powerDraw:.28,bootTime:3,cost:9600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class1",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"E",mass:5,integrity:51,powerDraw:.18,bootTime:3,cost:5400},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class2",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"D",mass:2,integrity:38,powerDraw:.24,bootTime:3,cost:10800},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class3",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.3,bootTime:3,cost:21600},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class4",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"B",mass:8,integrity:90,powerDraw:.36,bootTime:3,cost:43200},{symbol:"Int_DroneControl_ResourceSiphon_Size3_Class5",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:3,rating:"A",mass:5,integrity:77,powerDraw:.42,bootTime:3,cost:86400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class1",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"E",mass:20,integrity:77,powerDraw:.3,bootTime:3,cost:48600},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class2",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"D",mass:8,integrity:58,powerDraw:.4,bootTime:3,cost:97200},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class3",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:3,cost:194400},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class4",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"B",mass:32,integrity:134,powerDraw:.6,bootTime:3,cost:388800},{symbol:"Int_DroneControl_ResourceSiphon_Size5_Class5",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:5,rating:"A",mass:20,integrity:115,powerDraw:.7,bootTime:3,cost:777600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class1",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"E",mass:80,integrity:105,powerDraw:.42,bootTime:3,cost:437400},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class2",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"D",mass:32,integrity:79,powerDraw:.56,bootTime:3,cost:874800},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class3",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.7,bootTime:3,cost:1749600},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class4",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"B",mass:128,integrity:183,powerDraw:.84,bootTime:3,cost:3499200},{symbol:"Int_DroneControl_ResourceSiphon_Size7_Class5",kind:"hatchBreakerLimpets",name:"Hatch Breaker Limpet Controller",class:7,rating:"A",mass:80,integrity:157,powerDraw:.98,bootTime:3,cost:6998400},{symbol:"Int_DetailedSurfaceScanner_Tiny",kind:"surfaceScanners",name:"Detailed Surface Scanner",class:1,rating:"I",exclusionGroup:"detailedSurfaceScanner",mass:0,integrity:20,powerDraw:0,bootTime:0,probeRadius:20,cost:25e4},{symbol:"Int_ShieldGenerator_Size2_Class1_free",kind:"shieldGenerators",name:"Shield Generator",class:2,rating:"E",exclusionGroup:"shieldGenerator",mass:2.5,integrity:41,powerDraw:.9,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.8,minMultiplier:.3,maxMultiplier:1.3,shieldRegenRate:1,shieldBrokenRegenRate:1.6,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6},{symbol:"Int_CargoRack_Size2_Class1_free",name:"Cargo Rack",class:2,rating:"E",mass:0,cargoCapacity:4},{symbol:"Int_FuelScoop_Size1_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:1,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:32,powerDraw:.14,bootTime:4,refuelRate:.018,cost:309},{symbol:"Int_FuelScoop_Size2_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:2,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:41,powerDraw:.17,bootTime:4,refuelRate:.032,cost:1068},{symbol:"Int_FuelScoop_Size3_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:3,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.2,bootTime:4,refuelRate:.075,cost:3386},{symbol:"Int_FuelScoop_Size4_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:4,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.25,bootTime:4,refuelRate:.147,cost:10734},{symbol:"Int_FuelScoop_Size5_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:5,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.3,bootTime:4,refuelRate:.247,cost:34026},{symbol:"Int_FuelScoop_Size6_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:6,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.35,bootTime:4,refuelRate:.376,cost:107864},{symbol:"Int_FuelScoop_Size7_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:7,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:105,powerDraw:.41,bootTime:4,refuelRate:.534,cost:341927},{symbol:"Int_FuelScoop_Size8_Class1",kind:"fuelScoops",name:"Fuel Scoop",class:8,rating:"E",exclusionGroup:"fuelScoop",mass:0,integrity:120,powerDraw:.48,bootTime:4,refuelRate:.72,cost:1083910},{symbol:"Int_FuelScoop_Size1_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:1,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:24,powerDraw:.18,bootTime:4,refuelRate:.024,cost:1285},{symbol:"Int_FuelScoop_Size2_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:2,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:31,powerDraw:.22,bootTime:4,refuelRate:.043,cost:4451},{symbol:"Int_FuelScoop_Size3_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:3,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:38,powerDraw:.27,bootTime:4,refuelRate:.1,cost:14109},{symbol:"Int_FuelScoop_Size4_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:4,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.33,bootTime:4,refuelRate:.196,cost:44724},{symbol:"Int_FuelScoop_Size5_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:5,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:58,powerDraw:.4,bootTime:4,refuelRate:.33,cost:141776},{symbol:"Int_FuelScoop_Size6_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:6,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:68,powerDraw:.47,bootTime:4,refuelRate:.502,cost:449431},{symbol:"Int_FuelScoop_Size7_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:7,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:79,powerDraw:.55,bootTime:4,refuelRate:.712,cost:1424698},{symbol:"Int_FuelScoop_Size8_Class2",kind:"fuelScoops",name:"Fuel Scoop",class:8,rating:"D",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.64,bootTime:4,refuelRate:.96,cost:4516291},{symbol:"Int_FuelScoop_Size1_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:1,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:40,powerDraw:.23,bootTime:4,refuelRate:.03,cost:5142},{symbol:"Int_FuelScoop_Size2_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:2,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:51,powerDraw:.28,bootTime:4,refuelRate:.054,cost:17803},{symbol:"Int_FuelScoop_Size3_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:3,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:64,powerDraw:.34,bootTime:4,refuelRate:.126,cost:56435},{symbol:"Int_FuelScoop_Size4_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:4,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:80,powerDraw:.41,bootTime:4,refuelRate:.245,cost:178898},{symbol:"Int_FuelScoop_Size5_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:5,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.5,bootTime:4,refuelRate:.412,cost:567106},{symbol:"Int_FuelScoop_Size6_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:6,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:113,powerDraw:.59,bootTime:4,refuelRate:.627,cost:1797726},{symbol:"Int_FuelScoop_Size7_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:7,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:131,powerDraw:.69,bootTime:4,refuelRate:.89,cost:5698790},{symbol:"Int_FuelScoop_Size8_Class3",kind:"fuelScoops",name:"Fuel Scoop",class:8,rating:"C",exclusionGroup:"fuelScoop",mass:0,integrity:150,powerDraw:.8,bootTime:4,refuelRate:1.2,cost:18065165},{symbol:"Int_FuelScoop_Size1_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:1,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:56,powerDraw:.28,bootTime:4,refuelRate:.036,cost:20568},{symbol:"Int_FuelScoop_Size2_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:2,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:70,powerDraw:.34,bootTime:4,refuelRate:.065,cost:71211},{symbol:"Int_FuelScoop_Size3_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:3,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:90,powerDraw:.41,bootTime:4,refuelRate:.151,cost:225738},{symbol:"Int_FuelScoop_Size4_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:4,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:112,powerDraw:.49,bootTime:4,refuelRate:.294,cost:715591},{symbol:"Int_FuelScoop_Size5_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:5,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:134,powerDraw:.6,bootTime:4,refuelRate:.494,cost:2268424},{symbol:"Int_FuelScoop_Size6_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:6,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:158,powerDraw:.71,bootTime:4,refuelRate:.752,cost:7190903},{symbol:"Int_FuelScoop_Size7_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:7,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:183,powerDraw:.83,bootTime:4,refuelRate:1.068,cost:22795161},{symbol:"Int_FuelScoop_Size8_Class4",kind:"fuelScoops",name:"Fuel Scoop",class:8,rating:"B",exclusionGroup:"fuelScoop",mass:0,integrity:210,powerDraw:.96,bootTime:4,refuelRate:1.44,cost:72260660},{symbol:"Int_FuelScoop_Size1_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:1,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:48,powerDraw:.32,bootTime:4,refuelRate:.042,cost:82270},{symbol:"Int_FuelScoop_Size2_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:2,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:61,powerDraw:.39,bootTime:4,refuelRate:.075,cost:284844},{symbol:"Int_FuelScoop_Size3_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:3,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:77,powerDraw:.48,bootTime:4,refuelRate:.176,cost:902954},{symbol:"Int_FuelScoop_Size4_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:4,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:96,powerDraw:.57,bootTime:4,refuelRate:.343,cost:2862364},{symbol:"Int_FuelScoop_Size5_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:5,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:115,powerDraw:.7,bootTime:4,refuelRate:.577,cost:9073694},{symbol:"Int_FuelScoop_Size6_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:6,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:136,powerDraw:.83,bootTime:4,refuelRate:.878,cost:28763610},{symbol:"Int_FuelScoop_Size7_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:7,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:157,powerDraw:.97,bootTime:4,refuelRate:1.245,cost:91180644},{symbol:"Int_FuelScoop_Size8_Class5",kind:"fuelScoops",name:"Fuel Scoop",class:8,rating:"A",exclusionGroup:"fuelScoop",mass:0,integrity:180,powerDraw:1.12,bootTime:4,refuelRate:1.68,cost:289042641},{symbol:"Int_Refinery_Size1_Class1",kind:"refineries",name:"Refinery",class:1,rating:"E",exclusionGroup:"refinery",mass:0,integrity:32,powerDraw:.14,bootTime:10,cost:6e3},{symbol:"Int_Refinery_Size2_Class1",kind:"refineries",name:"Refinery",class:2,rating:"E",exclusionGroup:"refinery",mass:0,integrity:41,powerDraw:.17,bootTime:10,cost:12600},{symbol:"Int_Refinery_Size3_Class1",kind:"refineries",name:"Refinery",class:3,rating:"E",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.2,bootTime:10,cost:26460},{symbol:"Int_Refinery_Size4_Class1",kind:"refineries",name:"Refinery",class:4,rating:"E",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.25,bootTime:10,cost:55566},{symbol:"Int_Refinery_Size1_Class2",kind:"refineries",name:"Refinery",class:1,rating:"D",exclusionGroup:"refinery",mass:0,integrity:24,powerDraw:.18,bootTime:10,cost:18e3},{symbol:"Int_Refinery_Size2_Class2",kind:"refineries",name:"Refinery",class:2,rating:"D",exclusionGroup:"refinery",mass:0,integrity:31,powerDraw:.22,bootTime:10,cost:37800},{symbol:"Int_Refinery_Size3_Class2",kind:"refineries",name:"Refinery",class:3,rating:"D",exclusionGroup:"refinery",mass:0,integrity:38,powerDraw:.27,bootTime:10,cost:79380},{symbol:"Int_Refinery_Size4_Class2",kind:"refineries",name:"Refinery",class:4,rating:"D",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.33,bootTime:10,cost:166698},{symbol:"Int_Refinery_Size1_Class3",kind:"refineries",name:"Refinery",class:1,rating:"C",exclusionGroup:"refinery",mass:0,integrity:40,powerDraw:.23,bootTime:10,cost:54e3},{symbol:"Int_Refinery_Size2_Class3",kind:"refineries",name:"Refinery",class:2,rating:"C",exclusionGroup:"refinery",mass:0,integrity:51,powerDraw:.28,bootTime:10,cost:113400},{symbol:"Int_Refinery_Size3_Class3",kind:"refineries",name:"Refinery",class:3,rating:"C",exclusionGroup:"refinery",mass:0,integrity:64,powerDraw:.34,bootTime:10,cost:238140},{symbol:"Int_Refinery_Size4_Class3",kind:"refineries",name:"Refinery",class:4,rating:"C",exclusionGroup:"refinery",mass:0,integrity:80,powerDraw:.41,bootTime:10,cost:500094},{symbol:"Int_Refinery_Size1_Class4",kind:"refineries",name:"Refinery",class:1,rating:"B",exclusionGroup:"refinery",mass:0,integrity:56,powerDraw:.28,bootTime:10,cost:162e3},{symbol:"Int_Refinery_Size2_Class4",kind:"refineries",name:"Refinery",class:2,rating:"B",exclusionGroup:"refinery",mass:0,integrity:71,powerDraw:.34,bootTime:10,cost:340200},{symbol:"Int_Refinery_Size3_Class4",kind:"refineries",name:"Refinery",class:3,rating:"B",exclusionGroup:"refinery",mass:0,integrity:90,powerDraw:.41,bootTime:10,cost:714420},{symbol:"Int_Refinery_Size4_Class4",kind:"refineries",name:"Refinery",class:4,rating:"B",exclusionGroup:"refinery",mass:0,integrity:112,powerDraw:.49,bootTime:10,cost:1500282},{symbol:"Int_Refinery_Size1_Class5",kind:"refineries",name:"Refinery",class:1,rating:"A",exclusionGroup:"refinery",mass:0,integrity:48,powerDraw:.32,bootTime:10,cost:486e3},{symbol:"Int_Refinery_Size2_Class5",kind:"refineries",name:"Refinery",class:2,rating:"A",exclusionGroup:"refinery",mass:0,integrity:61,powerDraw:.39,bootTime:10,cost:1020600},{symbol:"Int_Refinery_Size3_Class5",kind:"refineries",name:"Refinery",class:3,rating:"A",exclusionGroup:"refinery",mass:0,integrity:77,powerDraw:.48,bootTime:10,cost:2143260},{symbol:"Int_Refinery_Size4_Class5",kind:"refineries",name:"Refinery",class:4,rating:"A",exclusionGroup:"refinery",mass:0,integrity:96,powerDraw:.57,bootTime:10,cost:4500846},{symbol:"Int_FSDInterdictor_Size1_Class1",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:32,powerDraw:.14,bootTime:15,interdictorFacingLimit:50,interdictorRange:3,cost:12e3},{symbol:"Int_FSDInterdictor_Size2_Class1",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:41,powerDraw:.17,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:33600},{symbol:"Int_FSDInterdictor_Size3_Class1",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:51,powerDraw:.2,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:94080},{symbol:"Int_FSDInterdictor_Size4_Class1",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"E",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:64,powerDraw:.25,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:263424},{symbol:"Int_FSDInterdictor_Size1_Class2",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:.5,integrity:24,powerDraw:.18,bootTime:15,interdictorFacingLimit:50,interdictorRange:4,cost:36e3},{symbol:"Int_FSDInterdictor_Size2_Class2",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:1,integrity:31,powerDraw:.22,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:100800},{symbol:"Int_FSDInterdictor_Size3_Class2",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:38,powerDraw:.27,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:282240},{symbol:"Int_FSDInterdictor_Size4_Class2",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"D",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:48,powerDraw:.33,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:790272},{symbol:"Int_FSDInterdictor_Size1_Class3",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:40,powerDraw:.23,bootTime:15,interdictorFacingLimit:50,interdictorRange:5,cost:108e3},{symbol:"Int_FSDInterdictor_Size2_Class3",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:51,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:8,cost:302400},{symbol:"Int_FSDInterdictor_Size3_Class3",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:64,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:11,cost:846720},{symbol:"Int_FSDInterdictor_Size4_Class3",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"C",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:80,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:14,cost:2370816},{symbol:"Int_FSDInterdictor_Size1_Class4",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:2,integrity:56,powerDraw:.28,bootTime:15,interdictorFacingLimit:50,interdictorRange:6,cost:324e3},{symbol:"Int_FSDInterdictor_Size2_Class4",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:4,integrity:71,powerDraw:.34,bootTime:15,interdictorFacingLimit:50,interdictorRange:9,cost:907200},{symbol:"Int_FSDInterdictor_Size3_Class4",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:8,integrity:90,powerDraw:.41,bootTime:15,interdictorFacingLimit:50,interdictorRange:12,cost:2540160},{symbol:"Int_FSDInterdictor_Size4_Class4",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"B",exclusionGroup:"frameShiftDriveInterdictor",mass:16,integrity:112,powerDraw:.49,bootTime:15,interdictorFacingLimit:50,interdictorRange:15,cost:7112448},{symbol:"Int_FSDInterdictor_Size1_Class5",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:1,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:1.3,integrity:48,powerDraw:.32,bootTime:15,interdictorFacingLimit:50,interdictorRange:7,cost:972e3},{symbol:"Int_FSDInterdictor_Size2_Class5",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:2,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:2.5,integrity:61,powerDraw:.39,bootTime:15,interdictorFacingLimit:50,interdictorRange:10,cost:2721600},{symbol:"Int_FSDInterdictor_Size3_Class5",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:3,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:5,integrity:77,powerDraw:.48,bootTime:15,interdictorFacingLimit:50,interdictorRange:13,cost:7620480},{symbol:"Int_FSDInterdictor_Size4_Class5",kind:"fsdInterdictors",name:"Frame Shift Drive Interdictor",class:4,rating:"A",exclusionGroup:"frameShiftDriveInterdictor",mass:10,integrity:96,powerDraw:.57,bootTime:15,interdictorFacingLimit:50,interdictorRange:16,cost:21337344},{symbol:"Int_Repairer_Size1_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:1,rating:"E",mass:0,integrity:32,powerDraw:.54,bootTime:9,ammoMaximum:1e3,cost:1e4},{symbol:"Int_Repairer_Size2_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:2,rating:"E",mass:0,integrity:41,powerDraw:.68,bootTime:9,ammoMaximum:2300,cost:18e3},{symbol:"Int_Repairer_Size3_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:3,rating:"E",mass:0,integrity:51,powerDraw:.81,bootTime:9,ammoMaximum:3600,cost:32400},{symbol:"Int_Repairer_Size4_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:4,rating:"E",mass:0,integrity:64,powerDraw:.99,bootTime:9,ammoMaximum:4900,cost:58320},{symbol:"Int_Repairer_Size5_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:5,rating:"E",mass:0,integrity:77,powerDraw:1.17,bootTime:9,ammoMaximum:6100,cost:104976},{symbol:"Int_Repairer_Size6_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:6,rating:"E",mass:0,integrity:90,powerDraw:1.4,bootTime:9,ammoMaximum:7400,cost:188957},{symbol:"Int_Repairer_Size7_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:7,rating:"E",mass:0,integrity:105,powerDraw:1.58,bootTime:9,ammoMaximum:8700,cost:340122},{symbol:"Int_Repairer_Size8_Class1",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:8,rating:"E",mass:0,integrity:120,powerDraw:1.8,bootTime:9,ammoMaximum:1e4,cost:612220},{symbol:"Int_Repairer_Size1_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:1,rating:"D",mass:0,integrity:24,powerDraw:.72,bootTime:9,ammoMaximum:900,cost:3e4},{symbol:"Int_Repairer_Size2_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:2,rating:"D",mass:0,integrity:31,powerDraw:.9,bootTime:9,ammoMaximum:2100,cost:54e3},{symbol:"Int_Repairer_Size3_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:3,rating:"D",mass:0,integrity:38,powerDraw:1.08,bootTime:9,ammoMaximum:3200,cost:97200},{symbol:"Int_Repairer_Size4_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:4,rating:"D",mass:0,integrity:48,powerDraw:1.32,bootTime:9,ammoMaximum:4400,cost:174960},{symbol:"Int_Repairer_Size5_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:5,rating:"D",mass:0,integrity:58,powerDraw:1.56,bootTime:9,ammoMaximum:5500,cost:314928},{symbol:"Int_Repairer_Size6_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:6,rating:"D",mass:0,integrity:68,powerDraw:1.86,bootTime:9,ammoMaximum:6700,cost:566870},{symbol:"Int_Repairer_Size7_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:7,rating:"D",mass:0,integrity:79,powerDraw:2.1,bootTime:9,ammoMaximum:7800,cost:1020367},{symbol:"Int_Repairer_Size8_Class2",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:8,rating:"D",mass:0,integrity:90,powerDraw:2.4,bootTime:9,ammoMaximum:9e3,cost:1836660},{symbol:"Int_Repairer_Size1_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:1,rating:"C",mass:0,integrity:40,powerDraw:.9,bootTime:9,ammoMaximum:1e3,cost:9e4},{symbol:"Int_Repairer_Size2_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:2,rating:"C",mass:0,integrity:51,powerDraw:1.13,bootTime:9,ammoMaximum:2300,cost:162e3},{symbol:"Int_Repairer_Size3_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:3,rating:"C",mass:0,integrity:64,powerDraw:1.35,bootTime:9,ammoMaximum:3600,cost:291600},{symbol:"Int_Repairer_Size4_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:4,rating:"C",mass:0,integrity:80,powerDraw:1.65,bootTime:9,ammoMaximum:4900,cost:524880},{symbol:"Int_Repairer_Size5_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:5,rating:"C",mass:0,integrity:96,powerDraw:1.95,bootTime:9,ammoMaximum:6100,cost:944784},{symbol:"Int_Repairer_Size6_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:6,rating:"C",mass:0,integrity:113,powerDraw:2.33,bootTime:9,ammoMaximum:7400,cost:1700611},{symbol:"Int_Repairer_Size7_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:7,rating:"C",mass:0,integrity:131,powerDraw:2.63,bootTime:9,ammoMaximum:8700,cost:3061100},{symbol:"Int_Repairer_Size8_Class3",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:8,rating:"C",mass:0,integrity:150,powerDraw:3,bootTime:9,ammoMaximum:1e4,cost:5509980},{symbol:"Int_Repairer_Size1_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:1,rating:"B",mass:0,integrity:56,powerDraw:1.04,bootTime:9,ammoMaximum:1200,cost:27e4},{symbol:"Int_Repairer_Size2_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:2,rating:"B",mass:0,integrity:71,powerDraw:1.29,bootTime:9,ammoMaximum:2800,cost:486e3},{symbol:"Int_Repairer_Size3_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:3,rating:"B",mass:0,integrity:90,powerDraw:1.55,bootTime:9,ammoMaximum:4300,cost:874800},{symbol:"Int_Repairer_Size4_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:4,rating:"B",mass:0,integrity:112,powerDraw:1.9,bootTime:9,ammoMaximum:5900,cost:1574640},{symbol:"Int_Repairer_Size5_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:5,rating:"B",mass:0,integrity:134,powerDraw:2.24,bootTime:9,ammoMaximum:7300,cost:2834352},{symbol:"Int_Repairer_Size6_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:6,rating:"B",mass:0,integrity:158,powerDraw:2.67,bootTime:9,ammoMaximum:8900,cost:5101834},{symbol:"Int_Repairer_Size7_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:7,rating:"B",mass:0,integrity:183,powerDraw:3.02,bootTime:9,ammoMaximum:10400,cost:9183300},{symbol:"Int_Repairer_Size8_Class4",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:8,rating:"B",mass:0,integrity:210,powerDraw:3.45,bootTime:9,ammoMaximum:12e3,cost:16529941},{symbol:"Int_Repairer_Size1_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:1,rating:"A",mass:0,integrity:46,powerDraw:1.26,bootTime:9,ammoMaximum:1100,cost:81e4},{symbol:"Int_Repairer_Size2_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:2,rating:"A",mass:0,integrity:59,powerDraw:1.58,bootTime:9,ammoMaximum:2500,cost:1458e3},{symbol:"Int_Repairer_Size3_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:3,rating:"A",mass:0,integrity:74,powerDraw:1.89,bootTime:9,ammoMaximum:4e3,cost:2624400},{symbol:"Int_Repairer_Size4_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:4,rating:"A",mass:0,integrity:92,powerDraw:2.31,bootTime:9,ammoMaximum:5400,cost:4723920},{symbol:"Int_Repairer_Size5_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:5,rating:"A",mass:0,integrity:110,powerDraw:2.73,bootTime:9,ammoMaximum:6700,cost:8503056},{symbol:"Int_Repairer_Size6_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:6,rating:"A",mass:0,integrity:130,powerDraw:3.26,bootTime:9,ammoMaximum:8100,cost:15305501},{symbol:"Int_Repairer_Size7_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:7,rating:"A",mass:0,integrity:151,powerDraw:3.68,bootTime:9,ammoMaximum:9600,cost:27549901},{symbol:"Int_Repairer_Size8_Class5",kind:"autoFieldMaintenanceUnits",name:"Auto Field-Maintenance Unit",class:8,rating:"A",mass:0,integrity:173,powerDraw:4.2,bootTime:9,ammoMaximum:11e3,cost:49589823},{symbol:"Int_HullReinforcement_Size1_Class1",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"E",mass:2,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:80,cost:5e3},{symbol:"Int_HullReinforcement_Size1_Class2",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:1,rating:"D",mass:1,kineticResistance:.005,thermalResistance:.005,explosiveResistance:.005,causticResistance:0,hullReinforcement:110,cost:15e3},{symbol:"Int_HullReinforcement_Size2_Class1",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"E",mass:4,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:150,cost:12e3},{symbol:"Int_HullReinforcement_Size2_Class2",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:2,rating:"D",mass:2,kineticResistance:.01,thermalResistance:.01,explosiveResistance:.01,causticResistance:0,hullReinforcement:190,cost:36e3},{symbol:"Int_HullReinforcement_Size3_Class1",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"E",mass:8,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:230,cost:28e3},{symbol:"Int_HullReinforcement_Size3_Class2",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:3,rating:"D",mass:4,kineticResistance:.015,thermalResistance:.015,explosiveResistance:.015,causticResistance:0,hullReinforcement:260,cost:84e3},{symbol:"Int_HullReinforcement_Size4_Class1",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"E",mass:16,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:300,cost:65e3},{symbol:"Int_HullReinforcement_Size4_Class2",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:4,rating:"D",mass:8,kineticResistance:.02,thermalResistance:.02,explosiveResistance:.02,causticResistance:0,hullReinforcement:330,cost:195e3},{symbol:"Int_HullReinforcement_Size5_Class1",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"E",mass:32,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:360,cost:15e4},{symbol:"Int_HullReinforcement_Size5_Class2",kind:"hullReinforcements",name:"Hull Reinforcement Package",class:5,rating:"D",mass:16,kineticResistance:.025,thermalResistance:.025,explosiveResistance:.025,causticResistance:0,hullReinforcement:390,cost:45e4},{symbol:"Int_DroneControl_Collection_Size1_Class1",kind:"collectionLimpets",name:"Collector Limpet Controller",class:1,rating:"E",mass:.5,integrity:24,powerDraw:.14,bootTime:6,cost:600},{symbol:"Int_DroneControl_Collection_Size1_Class2",kind:"collectionLimpets",name:"Collector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.18,bootTime:6,cost:1200},{symbol:"Int_DroneControl_Collection_Size1_Class3",kind:"collectionLimpets",name:"Collector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:6,cost:2400},{symbol:"Int_DroneControl_Collection_Size1_Class4",kind:"collectionLimpets",name:"Collector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.28,bootTime:6,cost:4800},{symbol:"Int_DroneControl_Collection_Size1_Class5",kind:"collectionLimpets",name:"Collector Limpet Controller",class:1,rating:"A",mass:2,integrity:56,powerDraw:.32,bootTime:6,cost:9600},{symbol:"Int_DroneControl_Collection_Size3_Class1",kind:"collectionLimpets",name:"Collector Limpet Controller",class:3,rating:"E",mass:2,integrity:38,powerDraw:.2,bootTime:6,cost:5400},{symbol:"Int_DroneControl_Collection_Size3_Class2",kind:"collectionLimpets",name:"Collector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.27,bootTime:6,cost:10800},{symbol:"Int_DroneControl_Collection_Size3_Class3",kind:"collectionLimpets",name:"Collector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:6,cost:21600},{symbol:"Int_DroneControl_Collection_Size3_Class4",kind:"collectionLimpets",name:"Collector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.41,bootTime:6,cost:43200},{symbol:"Int_DroneControl_Collection_Size3_Class5",kind:"collectionLimpets",name:"Collector Limpet Controller",class:3,rating:"A",mass:8,integrity:90,powerDraw:.48,bootTime:6,cost:86400},{symbol:"Int_DroneControl_Collection_Size5_Class1",kind:"collectionLimpets",name:"Collector Limpet Controller",class:5,rating:"E",mass:8,integrity:58,powerDraw:.3,bootTime:6,cost:48600},{symbol:"Int_DroneControl_Collection_Size5_Class2",kind:"collectionLimpets",name:"Collector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.4,bootTime:6,cost:97200},{symbol:"Int_DroneControl_Collection_Size5_Class3",kind:"collectionLimpets",name:"Collector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:6,cost:194400},{symbol:"Int_DroneControl_Collection_Size5_Class4",kind:"collectionLimpets",name:"Collector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.6,bootTime:6,cost:388800},{symbol:"Int_DroneControl_Collection_Size5_Class5",kind:"collectionLimpets",name:"Collector Limpet Controller",class:5,rating:"A",mass:32,integrity:134,powerDraw:.7,bootTime:6,cost:777600},{symbol:"Int_DroneControl_Collection_Size7_Class1",kind:"collectionLimpets",name:"Collector Limpet Controller",class:7,rating:"E",mass:32,integrity:79,powerDraw:.41,bootTime:6,cost:437400},{symbol:"Int_DroneControl_Collection_Size7_Class2",kind:"collectionLimpets",name:"Collector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.55,bootTime:6,cost:874800},{symbol:"Int_DroneControl_Collection_Size7_Class3",kind:"collectionLimpets",name:"Collector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:6,cost:1749600},{symbol:"Int_DroneControl_Collection_Size7_Class4",kind:"collectionLimpets",name:"Collector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.83,bootTime:6,cost:3499200},{symbol:"Int_DroneControl_Collection_Size7_Class5",kind:"collectionLimpets",name:"Collector Limpet Controller",class:7,rating:"A",mass:128,integrity:183,powerDraw:.97,bootTime:6,cost:6998400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class1",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class2",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class3",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class4",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_FuelTransfer_Size1_Class5",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class1",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class2",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class3",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class4",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_FuelTransfer_Size3_Class5",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class1",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class2",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class3",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class4",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_FuelTransfer_Size5_Class5",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class1",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class2",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class3",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class4",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_FuelTransfer_Size7_Class5",kind:"fuelTransferLimpets",name:"Fuel Transfer Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_Prospector_Size1_Class1",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:4,cost:600},{symbol:"Int_DroneControl_Prospector_Size1_Class2",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:4,cost:1200},{symbol:"Int_DroneControl_Prospector_Size1_Class3",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:4,cost:2400},{symbol:"Int_DroneControl_Prospector_Size1_Class4",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:4,cost:4800},{symbol:"Int_DroneControl_Prospector_Size1_Class5",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:4,cost:9600},{symbol:"Int_DroneControl_Prospector_Size3_Class1",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:4,cost:5400},{symbol:"Int_DroneControl_Prospector_Size3_Class2",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:4,cost:10800},{symbol:"Int_DroneControl_Prospector_Size3_Class3",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:4,cost:21600},{symbol:"Int_DroneControl_Prospector_Size3_Class4",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:4,cost:43200},{symbol:"Int_DroneControl_Prospector_Size3_Class5",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:4,cost:86400},{symbol:"Int_DroneControl_Prospector_Size5_Class1",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:4,cost:48600},{symbol:"Int_DroneControl_Prospector_Size5_Class2",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:4,cost:97200},{symbol:"Int_DroneControl_Prospector_Size5_Class3",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:4,cost:194400},{symbol:"Int_DroneControl_Prospector_Size5_Class4",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:4,cost:388800},{symbol:"Int_DroneControl_Prospector_Size5_Class5",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:4,cost:777600},{symbol:"Int_DroneControl_Prospector_Size7_Class1",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:4,cost:437400},{symbol:"Int_DroneControl_Prospector_Size7_Class2",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:4,cost:874800},{symbol:"Int_DroneControl_Prospector_Size7_Class3",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:4,cost:1749600},{symbol:"Int_DroneControl_Prospector_Size7_Class4",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:4,cost:3499200},{symbol:"Int_DroneControl_Prospector_Size7_Class5",kind:"prospectingLimpets",name:"Prospector Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:4,cost:6998400},{symbol:"Int_ShieldGenerator_Size1_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:1,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:2.6,integrity:48,powerDraw:2.52,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:132200},{symbol:"Int_ShieldGenerator_Size2_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:2,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:5,integrity:61,powerDraw:3.15,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:240340},{symbol:"Int_ShieldGenerator_Size3_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:3,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:10,integrity:77,powerDraw:3.78,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.3,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:761870},{symbol:"Int_ShieldGenerator_Size4_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:4,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:20,integrity:96,powerDraw:4.62,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:1.66,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2415120},{symbol:"Int_ShieldGenerator_Size5_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:5,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:40,integrity:115,powerDraw:5.46,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:2.34,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7655930},{symbol:"Int_ShieldGenerator_Size6_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:6,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:80,integrity:136,powerDraw:6.51,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1,shieldBrokenRegenRate:3.2,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:24269300},{symbol:"Int_ShieldGenerator_Size7_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:7,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:160,integrity:157,powerDraw:7.35,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.06,shieldBrokenRegenRate:4.25,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:76933670},{symbol:"Int_ShieldGenerator_Size8_Class5_Strong",kind:"shieldGenerators",name:"Prismatic Shield Generator",class:8,rating:"A",exclusionGroup:"shieldGenerator",entitlement:"ELITE_SPECIFIC_V_POWER_200020",mass:320,integrity:180,powerDraw:8.4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:1.5,minMultiplier:1,maxMultiplier:2,shieldRegenRate:1.35,shieldBrokenRegenRate:5.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:243879730},{symbol:"Int_ShieldGenerator_Size1_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:1,rating:"C",exclusionGroup:"shieldGenerator",mass:1.3,integrity:40,powerDraw:1.2,bootTime:1,optMass:25,minMass:13,maxMass:63,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:7713},{symbol:"Int_ShieldGenerator_Size2_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:2,rating:"C",exclusionGroup:"shieldGenerator",mass:2.5,integrity:51,powerDraw:1.5,bootTime:1,optMass:55,minMass:28,maxMass:138,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:26705},{symbol:"Int_ShieldGenerator_Size3_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:3,rating:"C",exclusionGroup:"shieldGenerator",mass:5,integrity:64,powerDraw:1.8,bootTime:1,optMass:165,minMass:83,maxMass:413,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:2.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:84653},{symbol:"Int_ShieldGenerator_Size4_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:4,rating:"C",exclusionGroup:"shieldGenerator",mass:10,integrity:80,powerDraw:2.2,bootTime:1,optMass:285,minMass:143,maxMass:713,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:1.8,shieldBrokenRegenRate:3.8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:268347},{symbol:"Int_ShieldGenerator_Size5_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:5,rating:"C",exclusionGroup:"shieldGenerator",mass:20,integrity:96,powerDraw:2.6,bootTime:1,optMass:405,minMass:203,maxMass:1013,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:2.25,shieldBrokenRegenRate:5.63,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:850659},{symbol:"Int_ShieldGenerator_Size6_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:6,rating:"C",exclusionGroup:"shieldGenerator",mass:40,integrity:113,powerDraw:3.1,bootTime:1,optMass:540,minMass:270,maxMass:1350,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:3.2,shieldBrokenRegenRate:8,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:2696589},{symbol:"Int_ShieldGenerator_Size7_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:7,rating:"C",exclusionGroup:"shieldGenerator",mass:80,integrity:131,powerDraw:3.5,bootTime:1,optMass:1060,minMass:530,maxMass:2650,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:4.4,shieldBrokenRegenRate:11,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:8548185},{symbol:"Int_ShieldGenerator_Size8_Class3_Fast",kind:"shieldGenerators",name:"Bi-Weave Shield Generator",class:8,rating:"C",exclusionGroup:"shieldGenerator",mass:160,integrity:150,powerDraw:4,bootTime:1,optMass:1800,minMass:900,maxMass:4500,optMultiplier:.9,minMultiplier:.4,maxMultiplier:1.4,shieldRegenRate:5.76,shieldBrokenRegenRate:14.4,kineticResistance:.4,thermalResistance:-.2,explosiveResistance:.5,distributorDraw:.6,cost:27097748},{symbol:"Int_BuggyBay_Size2_Class1",name:"Planetary Vehicle Hangar",class:2,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:12,integrity:30,powerDraw:.25,bootTime:5,cost:18e3},{symbol:"Int_BuggyBay_Size2_Class2",name:"Planetary Vehicle Hangar",class:2,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:6,integrity:30,powerDraw:.75,bootTime:5,cost:21600},{symbol:"Int_BuggyBay_Size4_Class1",name:"Planetary Vehicle Hangar",class:4,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:30,powerDraw:.4,bootTime:5,cost:72e3},{symbol:"Int_BuggyBay_Size4_Class2",name:"Planetary Vehicle Hangar",class:4,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:10,integrity:30,powerDraw:1.2,bootTime:5,cost:86400},{symbol:"Int_BuggyBay_Size6_Class1",name:"Planetary Vehicle Hangar",class:6,rating:"H",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:34,integrity:30,powerDraw:.6,bootTime:5,cost:576e3},{symbol:"Int_BuggyBay_Size6_Class2",name:"Planetary Vehicle Hangar",class:6,rating:"G",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:17,integrity:30,powerDraw:1.8,bootTime:5,cost:691200},{symbol:"Int_PlanetApproachSuite",name:"Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_CorrosionProofCargoRack_Size1_Class1",name:"Corrosion Resistant Cargo Rack",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:1,cost:6250},{symbol:"Int_CorrosionProofCargoRack_Size1_Class2",name:"Corrosion Resistant Cargo Rack",class:1,rating:"F",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:2,cost:12560},{symbol:"Int_CorrosionProofCargoRack_Size5_Class1",name:"Corrosion Resistant Cargo Rack",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:32},{symbol:"Int_CorrosionProofCargoRack_Size6_Class1",name:"Corrosion Resistant Cargo Rack",class:6,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,cargoCapacity:64},{symbol:"ModularCargoBayDoor",name:"Cargo Hatch",class:1,rating:"H",mass:0,integrity:20,powerDraw:.6,bootTime:2,cost:0},{symbol:"Int_PassengerCabin_Size4_Class1",name:"Economy Class Passenger Cabin",class:4,rating:"E",mass:10,cost:18954},{symbol:"Int_PassengerCabin_Size4_Class2",name:"Business Class Passenger Cabin",class:4,rating:"D",mass:10,cost:56862},{symbol:"Int_PassengerCabin_Size4_Class3",name:"First Class Passenger Cabin",class:4,rating:"C",mass:10,cost:170586},{symbol:"Int_PassengerCabin_Size5_Class4",name:"Luxury Class Passenger Cabin",class:5,rating:"B",mass:20,cost:1658095},{symbol:"Int_PassengerCabin_Size6_Class1",name:"Economy Class Passenger Cabin",class:6,rating:"E",mass:40,cost:61410},{symbol:"Int_PassengerCabin_Size6_Class2",name:"Business Class Passenger Cabin",class:6,rating:"D",mass:40,cost:184232},{symbol:"Int_PassengerCabin_Size6_Class3",name:"First Class Passenger Cabin",class:6,rating:"C",mass:40,cost:552698},{symbol:"Int_PassengerCabin_Size6_Class4",name:"Luxury Class Passenger Cabin",class:6,rating:"B",mass:40,cost:4974287},{symbol:"Int_FighterBay_Size5_Class1",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:60,powerDraw:.25,bootTime:5,cost:575643},{symbol:"Int_FighterBay_Size6_Class1",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:40,integrity:80,powerDraw:.35,bootTime:5,cost:1869340},{symbol:"Int_FighterBay_Size7_Class1",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:60,integrity:120,powerDraw:.35,bootTime:5,cost:2369320},{symbol:"Int_FighterBay_Size5_Class1_Free",name:"Mk I Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:20,integrity:60,powerDraw:.25,bootTime:5},{symbol:"Int_FighterBay_Size6_Class1_Free",name:"Mk I Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:40,integrity:80,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBay_Size7_Class1_Free",name:"Mk I Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIFIGHTERBAY_FREE",mass:60,integrity:120,powerDraw:.35,bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size5_Class1_Free",name:"Mk II Vessel Hangar",class:5,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:10,integrity:60,powerDraw:.25,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size6_Class1_Free",name:"Mk II Vessel Hangar",class:6,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:20,integrity:80,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_FighterBayMk2_Size7_Class1_Free",name:"Mk II Vessel Hangar",class:7,rating:"D",exclusionGroup:"fighterHangar",entitlement:"ELITE_V_MKIIFIGHTERBAY_FREE",mass:30,integrity:120,powerDraw:.35,restrictedToShips:["Explorer_NX","PantherMkII","LakonMiner"],bootTime:5},{symbol:"Int_PassengerCabin_Size2_Class1",name:"Economy Class Passenger Cabin",class:2,rating:"E",mass:2.5,cost:4312},{symbol:"Int_PassengerCabin_Size3_Class1",name:"Economy Class Passenger Cabin",class:3,rating:"E",mass:5,cost:8657},{symbol:"Int_PassengerCabin_Size3_Class2",name:"Business Class Passenger Cabin",class:3,rating:"D",mass:5,cost:26705},{symbol:"Int_PassengerCabin_Size5_Class1",name:"Economy Class Passenger Cabin",class:5,rating:"E",mass:20,cost:34954},{symbol:"Int_PassengerCabin_Size5_Class2",name:"Business Class Passenger Cabin",class:5,rating:"D",mass:20,cost:92362},{symbol:"Int_PassengerCabin_Size5_Class3",name:"First Class Passenger Cabin",class:5,rating:"C",mass:20,cost:340526},{symbol:"Int_ModuleReinforcement_Size1_Class1",name:"Module Reinforcement Package",class:1,rating:"E",mass:2,integrity:77,moduleProtection:.3,cost:5e3},{symbol:"Int_ModuleReinforcement_Size1_Class2",name:"Module Reinforcement Package",class:1,rating:"D",mass:1,integrity:70,moduleProtection:.6,cost:15e3},{symbol:"Int_ModuleReinforcement_Size2_Class1",name:"Module Reinforcement Package",class:2,rating:"E",mass:4,integrity:115,moduleProtection:.3,cost:12e3},{symbol:"Int_ModuleReinforcement_Size2_Class2",name:"Module Reinforcement Package",class:2,rating:"D",mass:2,integrity:105,moduleProtection:.6,cost:36e3},{symbol:"Int_ModuleReinforcement_Size3_Class1",name:"Module Reinforcement Package",class:3,rating:"E",mass:8,integrity:170,moduleProtection:.3,cost:28e3},{symbol:"Int_ModuleReinforcement_Size3_Class2",name:"Module Reinforcement Package",class:3,rating:"D",mass:4,integrity:155,moduleProtection:.6,cost:84e3},{symbol:"Int_ModuleReinforcement_Size4_Class1",name:"Module Reinforcement Package",class:4,rating:"E",mass:16,integrity:260,moduleProtection:.3,cost:65e3},{symbol:"Int_ModuleReinforcement_Size4_Class2",name:"Module Reinforcement Package",class:4,rating:"D",mass:8,integrity:235,moduleProtection:.6,cost:195e3},{symbol:"Int_ModuleReinforcement_Size5_Class1",name:"Module Reinforcement Package",class:5,rating:"E",mass:32,integrity:385,moduleProtection:.3,cost:15e4},{symbol:"Int_ModuleReinforcement_Size5_Class2",name:"Module Reinforcement Package",class:5,rating:"D",mass:16,integrity:350,moduleProtection:.6,cost:45e4},{symbol:"Int_DroneControl_Repair_Size1_Class1",name:"Repair Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:600},{symbol:"Int_DroneControl_Repair_Size1_Class2",name:"Repair Limpet Controller",class:1,rating:"D",mass:.5,integrity:32,powerDraw:.14,bootTime:10,cost:1200},{symbol:"Int_DroneControl_Repair_Size1_Class3",name:"Repair Limpet Controller",class:1,rating:"C",mass:1.3,integrity:40,powerDraw:.23,bootTime:10,cost:2400},{symbol:"Int_DroneControl_Repair_Size1_Class4",name:"Repair Limpet Controller",class:1,rating:"B",mass:2,integrity:48,powerDraw:.32,bootTime:10,cost:4800},{symbol:"Int_DroneControl_Repair_Size1_Class5",name:"Repair Limpet Controller",class:1,rating:"A",mass:1.3,integrity:56,powerDraw:.28,bootTime:10,cost:9600},{symbol:"Int_DroneControl_Repair_Size3_Class1",name:"Repair Limpet Controller",class:3,rating:"E",mass:5,integrity:38,powerDraw:.27,bootTime:10,cost:5400},{symbol:"Int_DroneControl_Repair_Size3_Class2",name:"Repair Limpet Controller",class:3,rating:"D",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:10800},{symbol:"Int_DroneControl_Repair_Size3_Class3",name:"Repair Limpet Controller",class:3,rating:"C",mass:5,integrity:64,powerDraw:.34,bootTime:10,cost:21600},{symbol:"Int_DroneControl_Repair_Size3_Class4",name:"Repair Limpet Controller",class:3,rating:"B",mass:8,integrity:77,powerDraw:.48,bootTime:10,cost:43200},{symbol:"Int_DroneControl_Repair_Size3_Class5",name:"Repair Limpet Controller",class:3,rating:"A",mass:5,integrity:90,powerDraw:.41,bootTime:10,cost:86400},{symbol:"Int_DroneControl_Repair_Size5_Class1",name:"Repair Limpet Controller",class:5,rating:"E",mass:20,integrity:58,powerDraw:.4,bootTime:10,cost:48600},{symbol:"Int_DroneControl_Repair_Size5_Class2",name:"Repair Limpet Controller",class:5,rating:"D",mass:8,integrity:77,powerDraw:.3,bootTime:10,cost:97200},{symbol:"Int_DroneControl_Repair_Size5_Class3",name:"Repair Limpet Controller",class:5,rating:"C",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:194400},{symbol:"Int_DroneControl_Repair_Size5_Class4",name:"Repair Limpet Controller",class:5,rating:"B",mass:32,integrity:115,powerDraw:.72,bootTime:10,cost:388800},{symbol:"Int_DroneControl_Repair_Size5_Class5",name:"Repair Limpet Controller",class:5,rating:"A",mass:20,integrity:134,powerDraw:.6,bootTime:10,cost:777600},{symbol:"Int_DroneControl_Repair_Size7_Class1",name:"Repair Limpet Controller",class:7,rating:"E",mass:80,integrity:79,powerDraw:.55,bootTime:10,cost:437400},{symbol:"Int_DroneControl_Repair_Size7_Class2",name:"Repair Limpet Controller",class:7,rating:"D",mass:32,integrity:105,powerDraw:.41,bootTime:10,cost:874800},{symbol:"Int_DroneControl_Repair_Size7_Class3",name:"Repair Limpet Controller",class:7,rating:"C",mass:80,integrity:131,powerDraw:.69,bootTime:10,cost:1749600},{symbol:"Int_DroneControl_Repair_Size7_Class4",name:"Repair Limpet Controller",class:7,rating:"B",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:3499200},{symbol:"Int_DroneControl_Repair_Size7_Class5",name:"Repair Limpet Controller",class:7,rating:"A",mass:80,integrity:183,powerDraw:.83,bootTime:10,cost:6998400},{symbol:"Int_DroneControl_UnkVesselResearch",name:"Research Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:20,powerDraw:.4,bootTime:0,cost:1749600},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class1",name:"Meta Alloy Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:72,cost:7501},{symbol:"Int_MetaAlloyHullReinforcement_Size1_Class2",name:"Meta Alloy Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:1,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:99,cost:22501},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class1",name:"Meta Alloy Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:135,cost:18e3},{symbol:"Int_MetaAlloyHullReinforcement_Size2_Class2",name:"Meta Alloy Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:2,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:171,cost:54e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class1",name:"Meta Alloy Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:207,cost:42e3},{symbol:"Int_MetaAlloyHullReinforcement_Size3_Class2",name:"Meta Alloy Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:4,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:234,cost:126e3},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class1",name:"Meta Alloy Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:270,cost:97501},{symbol:"Int_MetaAlloyHullReinforcement_Size4_Class2",name:"Meta Alloy Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:8,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:297,cost:292501},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class1",name:"Meta Alloy Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:32,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:324,cost:225001},{symbol:"Int_MetaAlloyHullReinforcement_Size5_Class2",name:"Meta Alloy Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_METAHULL",mass:16,kineticResistance:0,thermalResistance:0,explosiveResistance:0,causticResistance:.02,hullReinforcement:351,cost:675001},{symbol:"Int_DroneControl_Decontamination_Size1_Class1",name:"Decontamination Limpet Controller",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:3600},{symbol:"Int_DroneControl_Decontamination_Size3_Class1",name:"Decontamination Limpet Controller",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:16200},{symbol:"Int_DroneControl_Decontamination_Size5_Class1",name:"Decontamination Limpet Controller",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:20,integrity:96,powerDraw:.5,bootTime:10,cost:145800},{symbol:"Int_DroneControl_Decontamination_Size7_Class1",name:"Decontamination Limpet Controller",class:7,rating:"E",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:1312200},{symbol:"Int_CorrosionProofCargoRack_Size4_Class1",name:"Corrosion Resistant Cargo Rack",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_CORROSIONCARGO_SIZE4",mass:0,cargoCapacity:16,cost:94330},{symbol:"Int_GuardianHullReinforcement_Size1_Class1",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.45,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:100,cost:1e4},{symbol:"Int_GuardianHullReinforcement_Size1_Class2",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:1,powerDraw:.56,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:138,cost:3e4},{symbol:"Int_GuardianHullReinforcement_Size2_Class1",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:.68,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:188,cost:24e3},{symbol:"Int_GuardianHullReinforcement_Size2_Class2",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:2,powerDraw:.79,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:238,cost:72e3},{symbol:"Int_GuardianHullReinforcement_Size3_Class1",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:.9,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:288,cost:57600},{symbol:"Int_GuardianHullReinforcement_Size3_Class2",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:4,powerDraw:1.01,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:325,cost:172800},{symbol:"Int_GuardianHullReinforcement_Size4_Class1",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.13,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:375,cost:138240},{symbol:"Int_GuardianHullReinforcement_Size4_Class2",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:8,powerDraw:1.24,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:413,cost:414720},{symbol:"Int_GuardianHullReinforcement_Size5_Class1",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:32,powerDraw:1.35,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:450,cost:331778},{symbol:"Int_GuardianHullReinforcement_Size5_Class2",kind:"guardianHullReinforcements",name:"Guardian Hull Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_HULLREINFORCEMENT",mass:16,powerDraw:1.46,bootTime:0,kineticResistance:0,thermalResistance:.02,explosiveResistance:0,causticResistance:.05,hullReinforcement:488,cost:995330},{symbol:"Int_GuardianModuleReinforcement_Size1_Class1",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:85,powerDraw:.27,bootTime:0,moduleProtection:.3,cost:1e4},{symbol:"Int_GuardianModuleReinforcement_Size1_Class2",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:1,integrity:77,powerDraw:.34,bootTime:0,moduleProtection:.6,cost:3e4},{symbol:"Int_GuardianModuleReinforcement_Size2_Class1",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:127,powerDraw:.41,bootTime:0,moduleProtection:.3,cost:24e3},{symbol:"Int_GuardianModuleReinforcement_Size2_Class2",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:2,integrity:116,powerDraw:.47,bootTime:0,moduleProtection:.6,cost:72e3},{symbol:"Int_GuardianModuleReinforcement_Size3_Class1",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:187,powerDraw:.54,bootTime:0,moduleProtection:.3,cost:57600},{symbol:"Int_GuardianModuleReinforcement_Size3_Class2",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:4,integrity:171,powerDraw:.61,bootTime:0,moduleProtection:.6,cost:172800},{symbol:"Int_GuardianModuleReinforcement_Size4_Class1",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:286,powerDraw:.68,bootTime:0,moduleProtection:.3,cost:138240},{symbol:"Int_GuardianModuleReinforcement_Size4_Class2",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:8,integrity:259,powerDraw:.74,bootTime:0,moduleProtection:.6,cost:414720},{symbol:"Int_GuardianModuleReinforcement_Size5_Class1",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:32,integrity:424,powerDraw:.81,bootTime:0,moduleProtection:.3,cost:331778},{symbol:"Int_GuardianModuleReinforcement_Size5_Class2",kind:"moduleReinforcements",name:"Guardian Module Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_MODULEREINFORCEMENT",mass:16,integrity:385,powerDraw:.88,bootTime:0,moduleProtection:.6,cost:995330},{symbol:"Int_GuardianShieldReinforcement_Size1_Class1",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:1,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:36,powerDraw:.35,bootTime:0,shieldAddition:44,cost:1e4},{symbol:"Int_GuardianShieldReinforcement_Size1_Class2",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:1,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:1,integrity:42,powerDraw:.46,bootTime:0,shieldAddition:61,cost:3e4},{symbol:"Int_GuardianShieldReinforcement_Size2_Class1",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:2,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:40,powerDraw:.56,bootTime:0,shieldAddition:83,cost:24e3},{symbol:"Int_GuardianShieldReinforcement_Size2_Class2",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:2,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:2,integrity:48,powerDraw:.67,bootTime:0,shieldAddition:105,cost:72e3},{symbol:"Int_GuardianShieldReinforcement_Size3_Class1",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:3,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:45,powerDraw:.74,bootTime:0,shieldAddition:127,cost:57600},{symbol:"Int_GuardianShieldReinforcement_Size3_Class2",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:3,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:4,integrity:55,powerDraw:.84,bootTime:0,shieldAddition:143,cost:172800},{symbol:"Int_GuardianShieldReinforcement_Size4_Class1",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:4,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:51,powerDraw:.95,bootTime:0,shieldAddition:165,cost:138240},{symbol:"Int_GuardianShieldReinforcement_Size4_Class2",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:4,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:8,integrity:63,powerDraw:1.05,bootTime:0,shieldAddition:182,cost:414720},{symbol:"Int_GuardianShieldReinforcement_Size5_Class1",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:5,rating:"E",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:32,integrity:58,powerDraw:1.16,bootTime:0,shieldAddition:198,cost:331778},{symbol:"Int_GuardianShieldReinforcement_Size5_Class2",kind:"shieldReinforcements",name:"Guardian Shield Reinforcement",class:5,rating:"D",entitlement:"ELITE_HORIZONS_V_GUARDIAN_SHIELDREINFORCEMENT",mass:16,integrity:72,powerDraw:1.26,bootTime:0,shieldAddition:215,cost:995330},{symbol:"Int_GuardianFSDBooster_Size1",kind:"fsdBoosters",name:"Guardian FSD Booster",class:1,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.75,bootTime:15,jumpBoost:4,cost:405022},{symbol:"Int_GuardianFSDBooster_Size2",kind:"fsdBoosters",name:"Guardian FSD Booster",class:2,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:.98,bootTime:15,jumpBoost:6,cost:810521},{symbol:"Int_GuardianFSDBooster_Size3",kind:"fsdBoosters",name:"Guardian FSD Booster",class:3,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.27,bootTime:15,jumpBoost:7.75,cost:1620431},{symbol:"Int_GuardianFSDBooster_Size4",kind:"fsdBoosters",name:"Guardian FSD Booster",class:4,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:1.65,bootTime:15,jumpBoost:9.25,cost:3245013},{symbol:"Int_GuardianFSDBooster_Size5",kind:"fsdBoosters",name:"Guardian FSD Booster",class:5,rating:"H",exclusionGroup:"guardianFsdBooster",entitlement:"ELITE_HORIZONS_V_GUARDIAN_FSDBOOSTER",mass:1.3,integrity:32,powerDraw:2.14,bootTime:15,jumpBoost:10.5,cost:6483101},{symbol:"Int_GuardianPowerDistributor_Size1",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:1,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:1.4,integrity:35,powerDraw:.62,bootTime:5,weaponsCapacity:10,weaponsRecharge:2.5,enginesCapacity:9,enginesRecharge:.8,systemsCapacity:10,systemsRecharge:.8,cost:40957},{symbol:"Int_GuardianPowerDistributor_Size2",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:2.6,integrity:45,powerDraw:.73,bootTime:5,weaponsCapacity:13,weaponsRecharge:3.1,enginesCapacity:11,enginesRecharge:1,systemsCapacity:11,systemsRecharge:1,cost:111600},{symbol:"Int_GuardianPowerDistributor_Size3",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:5.25,integrity:56,powerDraw:.78,bootTime:5,weaponsCapacity:17,weaponsRecharge:3.9,enginesCapacity:14,enginesRecharge:1.7,systemsCapacity:14,systemsRecharge:1.7,cost:311365},{symbol:"Int_GuardianPowerDistributor_Size4",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:10.5,integrity:70,powerDraw:.87,bootTime:5,weaponsCapacity:22,weaponsRecharge:4.9,enginesCapacity:17,enginesRecharge:2.5,systemsCapacity:17,systemsRecharge:2.5,cost:868708},{symbol:"Int_GuardianPowerDistributor_Size5",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:21,integrity:99,powerDraw:.96,bootTime:5,weaponsCapacity:29,weaponsRecharge:6,enginesCapacity:22,enginesRecharge:3.3,systemsCapacity:22,systemsRecharge:3.3,cost:2423690},{symbol:"Int_GuardianPowerDistributor_Size6",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:42,integrity:99,powerDraw:1.07,bootTime:5,weaponsCapacity:35,weaponsRecharge:7.3,enginesCapacity:26,enginesRecharge:4.2,systemsCapacity:26,systemsRecharge:4.2,cost:6762091},{symbol:"Int_GuardianPowerDistributor_Size7",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:84,integrity:115,powerDraw:1.16,bootTime:5,weaponsCapacity:43,weaponsRecharge:8.5,enginesCapacity:31,enginesRecharge:5.2,systemsCapacity:31,systemsRecharge:5.2,cost:18866235},{symbol:"Int_GuardianPowerDistributor_Size8",kind:"guardianPowerDistributors",slot:"powerDistributor",name:"Guardian Hybrid Power Distributor",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERDISTRIBUTOR",mass:168,integrity:132,powerDraw:1.25,bootTime:5,weaponsCapacity:50,weaponsRecharge:10.1,enginesCapacity:36,enginesRecharge:6.2,systemsCapacity:36,systemsRecharge:6.2,cost:52636793},{symbol:"Int_GuardianPowerplant_Size2",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:2,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:1.5,integrity:56,powerCapacity:12.7,heatEfficiency:.5,cost:192165},{symbol:"Int_GuardianPowerplant_Size3",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:3,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:2.9,integrity:70,powerCapacity:15.8,heatEfficiency:.5,cost:576493},{symbol:"Int_GuardianPowerplant_Size4",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:4,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:5.9,integrity:88,powerCapacity:20.6,heatEfficiency:.5,cost:1729480},{symbol:"Int_GuardianPowerplant_Size5",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:5,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:11.7,integrity:106,powerCapacity:26.9,heatEfficiency:.5,cost:5188441},{symbol:"Int_GuardianPowerplant_Size6",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:6,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:23.4,integrity:124,powerCapacity:33.3,heatEfficiency:.5,cost:15565317},{symbol:"Int_GuardianPowerplant_Size7",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:7,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:46.8,integrity:144,powerCapacity:39.6,heatEfficiency:.5,cost:46695951},{symbol:"Int_GuardianPowerplant_Size8",kind:"guardianPowerPlants",slot:"powerPlant",name:"Guardian Hybrid Power Plant",class:8,rating:"A",entitlement:"ELITE_HORIZONS_V_GUARDIAN_POWERPLANT",mass:93.6,integrity:165,powerCapacity:47.5,heatEfficiency:.5,cost:140087850},{symbol:"Int_DroneControl_Recon_Size1_Class1",name:"Recon Limpet Controller",class:1,rating:"E",mass:1.3,integrity:24,powerDraw:.18,bootTime:10,cost:2600},{symbol:"Int_DroneControl_Recon_Size3_Class1",name:"Recon Limpet Controller",class:3,rating:"E",mass:2,integrity:51,powerDraw:.2,bootTime:10,cost:8200},{symbol:"Int_DroneControl_Recon_Size5_Class1",name:"Recon Limpet Controller",class:5,rating:"E",mass:20,integrity:96,powerDraw:.5,bootTime:9.85,cost:75800},{symbol:"Int_DroneControl_Recon_Size7_Class1",name:"Recon Limpet Controller",class:7,rating:"E",mass:128,integrity:157,powerDraw:.97,bootTime:10,cost:612200},{symbol:"Int_SupercruiseAssist",name:"Supercruise Assist",class:1,rating:"E",exclusionGroup:"supercruiseAssist",mass:0,integrity:10,powerDraw:.3,bootTime:3,cost:9121},{symbol:"Int_DockingComputer_Advanced",name:"Advanced Docking Computer",class:1,rating:"E",exclusionGroup:"dockingComputer",mass:0,integrity:10,powerDraw:.45,bootTime:3,cost:13507},{symbol:"Int_PlanetApproachSuite_Advanced",name:"Advanced Planetary Approach Suite",class:1,rating:"I",entitlement:"ELITE_HORIZONS_V_PLANETARY_LANDINGS",mass:0,powerDraw:0,restrictedToSlot:"planetaryApproachSuite",cost:500},{symbol:"Int_MultiDroneControl_Mining_Size3_Class1",name:"Mining Multi Limpet Controller",class:3,rating:"E",exclusionGroup:"multiLimpetController",mass:12,integrity:45,powerDraw:.5,bootTime:6,cost:15e3},{symbol:"Int_MultiDroneControl_Mining_Size3_Class3",name:"Mining Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class3",name:"Operations Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Operations_Size3_Class4",name:"Operations Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class2",name:"Rescue Multi Limpet Controller",class:3,rating:"D",exclusionGroup:"multiLimpetController",mass:8,integrity:58,powerDraw:.4,bootTime:6,cost:3e4},{symbol:"Int_MultiDroneControl_Rescue_Size3_Class3",name:"Rescue Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class3",name:"Xeno Multi Limpet Controller",class:3,rating:"C",exclusionGroup:"multiLimpetController",mass:10,integrity:68,powerDraw:.35,bootTime:6,cost:5e4},{symbol:"Int_MultiDroneControl_Xeno_Size3_Class4",name:"Xeno Multi Limpet Controller",class:3,rating:"B",exclusionGroup:"multiLimpetController",mass:15,integrity:80,powerDraw:.3,bootTime:6,cost:8e4},{symbol:"Int_MultiDroneControl_Universal_Size7_Class3",name:"Universal Multi Limpet Controller",class:7,rating:"C",exclusionGroup:"multiLimpetController",mass:125,integrity:150,powerDraw:.8,bootTime:6,cost:4e6},{symbol:"Int_MultiDroneControl_Universal_Size7_Class5",name:"Universal Multi Limpet Controller",class:7,rating:"A",exclusionGroup:"multiLimpetController",mass:140,integrity:200,powerDraw:1.1,bootTime:6,cost:8e6},{symbol:"Int_ExpModuleStabiliser_Size3_Class3",name:"Experimental Weapon Stabiliser",class:3,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:1},mass:8,powerDraw:0,cost:2e6},{symbol:"Int_ExpModuleStabiliser_Size5_Class3",name:"Experimental Weapon Stabiliser",class:5,rating:"F",exclusionGroup:"experimentalModuleStabiliser",limitIncrease:{group:"experimentalWeapon",amount:2},entitlement:"ELITE_HORIZONS_V_EXPERIMENTALSTABILISER_SIZE5",mass:20,powerDraw:0,cost:4e6},{symbol:"Int_LargeCargoRack_Size7_Class1",name:"Mk II Cargo Rack",class:7,rating:"D",mass:0,cargoCapacity:192,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:1958680},{symbol:"Int_LargeCargoRack_Size8_class1",name:"Mk II Cargo Rack",class:8,rating:"D",mass:0,cargoCapacity:384,restrictedToShips:["PantherMkII"],restrictedToSlot:"cargo",cost:4929317},{symbol:"Int_MultiDroneControl_MiningV2_Size5_Class5",name:"Mk II Mining Multi-Limpet Controller",class:5,rating:"A",exclusionGroup:"multiLimpetController",mass:64,integrity:105,powerDraw:1.4,restrictedToShips:["LakonMiner"],restrictedToSlot:"limpetController",bootTime:6,cost:2332800},{symbol:"Int_MkII_PassengerCabin_Size2_Class1",name:"MkII Economy Class Passenger Cabin",class:2,rating:"D",mass:2.5,cost:5750},{symbol:"Int_MkII_PassengerCabin_Size3_Class1",name:"MkII Economy Class Passenger Cabin",class:3,rating:"D",mass:5,cost:11540},{symbol:"Int_MkII_PassengerCabin_Size3_Class2",name:"MkII Business Class Passenger Cabin",class:3,rating:"C",mass:5,cost:35610},{symbol:"Int_MkII_PassengerCabin_Size4_Class1",name:"MkII Economy Class Passenger Cabin",class:4,rating:"D",mass:10,cost:25270},{symbol:"Int_MkII_PassengerCabin_Size4_Class2",name:"MkII Business Class Passenger Cabin",class:4,rating:"C",mass:10,cost:75820},{symbol:"Int_MkII_PassengerCabin_Size5_Class1",name:"MkII Economy Class Passenger Cabin",class:5,rating:"D",mass:20,cost:46610},{symbol:"Int_MkII_PassengerCabin_Size5_Class2",name:"MkII Business Class Passenger Cabin",class:5,rating:"C",mass:20,cost:123150},{symbol:"Int_MkII_PassengerCabin_Size6_Class1",name:"MkII Economy Class Passenger Cabin",class:6,rating:"D",mass:40,cost:81880},{symbol:"Int_MkII_PassengerCabin_Size6_Class2",name:"MkII Business Class Passenger Cabin",class:6,rating:"C",mass:40,cost:245640}];var INTERNAL_MODULES=buildModuleCatalogue(modules_internal_default,"internal");export{INTERNAL_MODULES};//# sourceMappingURL=chunk-CTJQPQRA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/modules-internal.ts"],"names":["buildModuleCatalogue","modules_internal_default","INTERNAL_MODULES"],"mappings":"O,wolHAqCO,IAAME,iBAAgDF,qBACzDC,yBACA,mBACJC"}
1
+ {"version":3,"sources":["../src/ships/modules-internal.ts"],"names":["buildModuleCatalogue","modules_internal_default","INTERNAL_MODULES"],"mappings":"O,w2kHAqCO,IAAME,iBAAgDF,qBACzDC,yBACA,mBACJC"}
@@ -0,0 +1 @@
1
+ import{COMPONENT_MICRO_RESOURCES}from"./chunk-HTB52N6S.js";import{CONSUMABLE_MICRO_RESOURCES}from"./chunk-K7L7SMIR.js";import{DATA_MICRO_RESOURCES}from"./chunk-GVLDFJEY.js";import{ITEM_MICRO_RESOURCES}from"./chunk-WHWFKHV3.js";var ALL_MICRO_RESOURCES=Object.freeze([...COMPONENT_MICRO_RESOURCES,...CONSUMABLE_MICRO_RESOURCES,...DATA_MICRO_RESOURCES,...ITEM_MICRO_RESOURCES]);export{ALL_MICRO_RESOURCES};//# sourceMappingURL=chunk-DAQ3PJ4R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/materials/micro-resources-all.ts"],"names":["COMPONENT_MICRO_RESOURCES","CONSUMABLE_MICRO_RESOURCES","DATA_MICRO_RESOURCES","ITEM_MICRO_RESOURCES","ALL_MICRO_RESOURCES","Object","freeze"],"mappings":"O,4NA6BO,IAAMI,oBAAgDC,OAAOC,OAAO,IACpEN,6BACAC,8BACAC,wBACAC,8BACNC"}
@@ -1 +1 @@
1
- import{toSystemAddress}from"./chunk-IH4NXKVW.js";import{describeValue,truncate}from"./chunk-B5TT26XE.js";var N1_STRIDE=26*26*26;var MAX_N1=Math.floor((Number.MAX_SAFE_INTEGER-(N1_STRIDE-1))/N1_STRIDE);var MAX_BOXEL_CODE=MAX_N1*N1_STRIDE+(N1_STRIDE-1);function packBoxelCode(l1,l2,l3,n1){for(const v of[l1,l2,l3]){if(!Number.isInteger(v)||v<0||v>25){throw new RangeError(`Boxel letters out of range (expected integer 0–25): ${describeValue({l1:l1,l2:l2,l3:l3})}`)}}if(!Number.isInteger(n1)||n1<0||n1>MAX_N1){throw new RangeError(`Boxel number N1 out of range (expected integer 0–${MAX_N1}): ${truncate(n1)}`)}return((n1*26+l3)*26+l2)*26+l1}function assertBoxelCode(boxelCode){if(!Number.isInteger(boxelCode)||boxelCode<0||boxelCode>MAX_BOXEL_CODE){throw new RangeError(`Boxel code out of range (expected integer 0–${MAX_BOXEL_CODE}): ${truncate(boxelCode)}`)}}var SECTOR_INTERNAL_SIZE=40960;function boxelInternalSize(sizeClass){if(!Number.isInteger(sizeClass)||sizeClass<0||sizeClass>7){throw new RangeError(`Invalid size class: ${truncate(sizeClass)}`)}return SECTOR_INTERNAL_SIZE>>7-sizeClass}function boxelCodeToAbsoluteBoxel(sizeClass,boxelCode,origin){const boxelSize=boxelInternalSize(sizeClass);if(origin.x0<0||origin.y0<0||origin.z0<0){throw new RangeError(`Region origin "${truncate(origin.name)}" has a negative coordinate`)}if(!Number.isInteger(boxelCode)||boxelCode<0||boxelCode>2097151){throw new RangeError(`System index N1 out of range in ${truncate(origin.name)}`)}const bx=boxelCode&127;const by=boxelCode>>7&127;const bz=boxelCode>>14&127;if(!boxelIsWithinRegion(bx,by,bz,boxelSize,origin)){throw new RangeError(`Boxel code out of range for size class ${truncate(sizeClass)} in ${truncate(origin.name)}`)}const x=bx+Math.floor(origin.x0/boxelSize);const y=by+Math.floor(origin.y0/boxelSize);const z=bz+Math.floor(origin.z0/boxelSize);if(x>=1<<14-sizeClass||y>=1<<13-sizeClass||z>=1<<14-sizeClass){throw new RangeError(`Sector position of ${truncate(origin.name)} does not fit a system address`)}return{x:x,y:y,z:z}}function absoluteBoxelToBoxelCode(sizeClass,absoluteBoxel,origin){const boxelSize=boxelInternalSize(sizeClass);if(origin.x0<0||origin.y0<0||origin.z0<0||!Number.isInteger(absoluteBoxel.x)||!Number.isInteger(absoluteBoxel.y)||!Number.isInteger(absoluteBoxel.z)){return null}const bx=absoluteBoxel.x-Math.floor(origin.x0/boxelSize);const by=absoluteBoxel.y-Math.floor(origin.y0/boxelSize);const bz=absoluteBoxel.z-Math.floor(origin.z0/boxelSize);if(bx<0||bx>127||by<0||by>127||bz<0||bz>127)return null;if(!boxelIsWithinRegion(bx,by,bz,boxelSize,origin))return null;return bx|by<<7|bz<<14}function boxelIsWithinRegion(bx,by,bz,boxelSize,origin){return bx*boxelSize<origin.x0%boxelSize+origin.sizeX&&by*boxelSize<origin.y0%boxelSize+origin.sizeY&&bz*boxelSize<origin.z0%boxelSize+origin.sizeZ}function assertAddressRange(id64){if(id64<0n||id64>=1n<<64n){throw new RangeError(`System address out of range (expected unsigned 64-bit): ${truncate(id64)}`)}}function decodeSystemAddress(id64){const addr=toSystemAddress(id64);assertAddressRange(addr);const sc=Number(addr&7n);const z0=Number(addr>>3n&BigInt(16383>>sc));const z1=Number(addr>>3n&BigInt(127>>sc));const z2=Number(addr>>BigInt(10-sc)&0x7fn);const y0=Number(addr>>BigInt(17-sc)&BigInt(8191>>sc));const y1=Number(addr>>BigInt(17-sc)&BigInt(127>>sc));const y2=Number(addr>>BigInt(24-sc*2)&0x3fn);const x0=Number(addr>>BigInt(30-sc*2)&BigInt(16383>>sc));const x1=Number(addr>>BigInt(30-sc*2)&BigInt(127>>sc));const x2=Number(addr>>BigInt(37-sc*3)&0x7fn);const seq=Number(addr>>BigInt(44-sc*3)&(1n<<BigInt(11+sc*3))-1n);return{sizeClass:sc,sectorGridPosition:{sectorX:x2,sectorY:y2,sectorZ:z2},boxelCode:x1|y1<<7|z1<<14,sequence:seq,absoluteBoxel:{x:x0,y:y0,z:z0}}}function decodeModSystemAddress(id64){const addr=toSystemAddress(id64);assertAddressRange(addr);const seq=Number(addr&0x7fffn);const boxelCode=Number(addr>>16n&0x1fffffn);const sc=Number(addr>>37n&7n);const x2=Number(addr>>40n&0x7fn);const y2=Number(addr>>47n&0x3fn);const z2=Number(addr>>53n&0x7fn);const bps=7-sc;const boxelMask=127>>sc;return{sizeClass:sc,sectorGridPosition:{sectorX:x2,sectorY:y2,sectorZ:z2},boxelCode:boxelCode,sequence:seq,absoluteBoxel:{x:x2<<bps|boxelCode&boxelMask,y:y2<<bps|boxelCode>>7&boxelMask,z:z2<<bps|boxelCode>>14&boxelMask}}}function encodeSystemAddress(parts,origin){const sc=parts.massCode;const boxelCode=packBoxelCode(parts.l1,parts.l2,parts.l3,parts.n1);const{x:x,y:y,z:z}=boxelCodeToAbsoluteBoxel(sc,boxelCode,origin);const seqWidth=11+sc*3;if(!Number.isInteger(parts.n2)||parts.n2<0||parts.n2>=2**seqWidth){throw new RangeError(`Sequence ${truncate(parts.n2)} does not fit in ${seqWidth} bits`)}return BigInt(sc)|BigInt(z)<<3n|BigInt(y)<<BigInt(17-sc)|BigInt(x)<<BigInt(30-sc*2)|BigInt(parts.n2)<<BigInt(44-sc*3)}function encodeModSystemAddress(parts,origin){const sc=parts.massCode;const bps=7-sc;const boxelMask=127>>sc;const boxelCode=packBoxelCode(parts.l1,parts.l2,parts.l3,parts.n1);const{x:x,y:y,z:z}=boxelCodeToAbsoluteBoxel(sc,boxelCode,origin);if(!Number.isInteger(parts.n2)||parts.n2<0||parts.n2>32767){throw new RangeError(`Sequence ${truncate(parts.n2)} does not fit in the 15-bit modulated field`)}const packedBoxel=x&boxelMask|(y&boxelMask)<<7|(z&boxelMask)<<14;return BigInt(parts.n2)|BigInt(packedBoxel)<<16n|BigInt(sc)<<37n|BigInt(x>>bps&127)<<40n|BigInt(y>>bps&63)<<47n|BigInt(z>>bps&127)<<53n}export{SECTOR_INTERNAL_SIZE,absoluteBoxelToBoxelCode,assertBoxelCode,boxelCodeToAbsoluteBoxel,boxelInternalSize,decodeModSystemAddress,decodeSystemAddress,encodeModSystemAddress,encodeSystemAddress,packBoxelCode};//# sourceMappingURL=chunk-BTPV5CIF.js.map
1
+ import{toSystemAddress}from"./chunk-NEEFT7WH.js";import{describeValue,truncate}from"./chunk-PKWVG2JY.js";var N1_STRIDE=26*26*26;var MAX_N1=Math.floor((Number.MAX_SAFE_INTEGER-(N1_STRIDE-1))/N1_STRIDE);var MAX_BOXEL_CODE=MAX_N1*N1_STRIDE+(N1_STRIDE-1);function packBoxelCode(l1,l2,l3,n1){for(const v of[l1,l2,l3]){if(!Number.isInteger(v)||v<0||v>25){throw new RangeError(`Boxel letters out of range (expected integer 0–25): ${describeValue({l1:l1,l2:l2,l3:l3})}`)}}if(!Number.isInteger(n1)||n1<0||n1>MAX_N1){throw new RangeError(`Boxel number N1 out of range (expected integer 0–${MAX_N1}): ${truncate(n1)}`)}return((n1*26+l3)*26+l2)*26+l1}function assertBoxelCode(boxelCode){if(!Number.isInteger(boxelCode)||boxelCode<0||boxelCode>MAX_BOXEL_CODE){throw new RangeError(`Boxel code out of range (expected integer 0–${MAX_BOXEL_CODE}): ${truncate(boxelCode)}`)}}var SECTOR_INTERNAL_SIZE=40960;function boxelInternalSize(sizeClass){if(!Number.isInteger(sizeClass)||sizeClass<0||sizeClass>7){throw new RangeError(`Invalid size class: ${truncate(sizeClass)}`)}return SECTOR_INTERNAL_SIZE>>7-sizeClass}function boxelCodeToAbsoluteBoxel(sizeClass,boxelCode,origin){const boxelSize=boxelInternalSize(sizeClass);if(origin.x0<0||origin.y0<0||origin.z0<0){throw new RangeError(`Region origin "${truncate(origin.name)}" has a negative coordinate`)}if(!Number.isInteger(boxelCode)||boxelCode<0||boxelCode>2097151){throw new RangeError(`System index N1 out of range in ${truncate(origin.name)}`)}const bx=boxelCode&127;const by=boxelCode>>7&127;const bz=boxelCode>>14&127;if(!boxelIsWithinRegion(bx,by,bz,boxelSize,origin)){throw new RangeError(`Boxel code out of range for size class ${truncate(sizeClass)} in ${truncate(origin.name)}`)}const x=bx+Math.floor(origin.x0/boxelSize);const y=by+Math.floor(origin.y0/boxelSize);const z=bz+Math.floor(origin.z0/boxelSize);if(x>=1<<14-sizeClass||y>=1<<13-sizeClass||z>=1<<14-sizeClass){throw new RangeError(`Sector position of ${truncate(origin.name)} does not fit a system address`)}return{x:x,y:y,z:z}}function absoluteBoxelToBoxelCode(sizeClass,absoluteBoxel,origin){const boxelSize=boxelInternalSize(sizeClass);if(origin.x0<0||origin.y0<0||origin.z0<0||!Number.isInteger(absoluteBoxel.x)||!Number.isInteger(absoluteBoxel.y)||!Number.isInteger(absoluteBoxel.z)){return null}const bx=absoluteBoxel.x-Math.floor(origin.x0/boxelSize);const by=absoluteBoxel.y-Math.floor(origin.y0/boxelSize);const bz=absoluteBoxel.z-Math.floor(origin.z0/boxelSize);if(bx<0||bx>127||by<0||by>127||bz<0||bz>127)return null;if(!boxelIsWithinRegion(bx,by,bz,boxelSize,origin))return null;return bx|by<<7|bz<<14}function boxelIsWithinRegion(bx,by,bz,boxelSize,origin){return bx*boxelSize<origin.x0%boxelSize+origin.sizeX&&by*boxelSize<origin.y0%boxelSize+origin.sizeY&&bz*boxelSize<origin.z0%boxelSize+origin.sizeZ}function assertAddressRange(id64){if(id64<0n||id64>=1n<<64n){throw new RangeError(`System address out of range (expected unsigned 64-bit): ${truncate(id64)}`)}}function decodeSystemAddress(id64){const addr=toSystemAddress(id64);assertAddressRange(addr);const sc=Number(addr&7n);const z0=Number(addr>>3n&BigInt(16383>>sc));const z1=Number(addr>>3n&BigInt(127>>sc));const z2=Number(addr>>BigInt(10-sc)&0x7fn);const y0=Number(addr>>BigInt(17-sc)&BigInt(8191>>sc));const y1=Number(addr>>BigInt(17-sc)&BigInt(127>>sc));const y2=Number(addr>>BigInt(24-sc*2)&0x3fn);const x0=Number(addr>>BigInt(30-sc*2)&BigInt(16383>>sc));const x1=Number(addr>>BigInt(30-sc*2)&BigInt(127>>sc));const x2=Number(addr>>BigInt(37-sc*3)&0x7fn);const seq=Number(addr>>BigInt(44-sc*3)&(1n<<BigInt(11+sc*3))-1n);return{sizeClass:sc,sectorGridPosition:{sectorX:x2,sectorY:y2,sectorZ:z2},boxelCode:x1|y1<<7|z1<<14,sequence:seq,absoluteBoxel:{x:x0,y:y0,z:z0}}}function decodeModSystemAddress(id64){const addr=toSystemAddress(id64);assertAddressRange(addr);const seq=Number(addr&0x7fffn);const boxelCode=Number(addr>>16n&0x1fffffn);const sc=Number(addr>>37n&7n);const x2=Number(addr>>40n&0x7fn);const y2=Number(addr>>47n&0x3fn);const z2=Number(addr>>53n&0x7fn);const bps=7-sc;const boxelMask=127>>sc;return{sizeClass:sc,sectorGridPosition:{sectorX:x2,sectorY:y2,sectorZ:z2},boxelCode:boxelCode,sequence:seq,absoluteBoxel:{x:x2<<bps|boxelCode&boxelMask,y:y2<<bps|boxelCode>>7&boxelMask,z:z2<<bps|boxelCode>>14&boxelMask}}}function encodeSystemAddress(parts,origin){const sc=parts.massCode;const boxelCode=packBoxelCode(parts.l1,parts.l2,parts.l3,parts.n1);const{x:x,y:y,z:z}=boxelCodeToAbsoluteBoxel(sc,boxelCode,origin);const seqWidth=11+sc*3;if(!Number.isInteger(parts.n2)||parts.n2<0||parts.n2>=2**seqWidth){throw new RangeError(`Sequence ${truncate(parts.n2)} does not fit in ${seqWidth} bits`)}return BigInt(sc)|BigInt(z)<<3n|BigInt(y)<<BigInt(17-sc)|BigInt(x)<<BigInt(30-sc*2)|BigInt(parts.n2)<<BigInt(44-sc*3)}function encodeModSystemAddress(parts,origin){const sc=parts.massCode;const bps=7-sc;const boxelMask=127>>sc;const boxelCode=packBoxelCode(parts.l1,parts.l2,parts.l3,parts.n1);const{x:x,y:y,z:z}=boxelCodeToAbsoluteBoxel(sc,boxelCode,origin);if(!Number.isInteger(parts.n2)||parts.n2<0||parts.n2>32767){throw new RangeError(`Sequence ${truncate(parts.n2)} does not fit in the 15-bit modulated field`)}const packedBoxel=x&boxelMask|(y&boxelMask)<<7|(z&boxelMask)<<14;return BigInt(parts.n2)|BigInt(packedBoxel)<<16n|BigInt(sc)<<37n|BigInt(x>>bps&127)<<40n|BigInt(y>>bps&63)<<47n|BigInt(z>>bps&127)<<53n}export{SECTOR_INTERNAL_SIZE,absoluteBoxelToBoxelCode,assertBoxelCode,boxelCodeToAbsoluteBoxel,boxelInternalSize,decodeModSystemAddress,decodeSystemAddress,encodeModSystemAddress,encodeSystemAddress,packBoxelCode};//# sourceMappingURL=chunk-DI5RXSJR.js.map
@@ -1 +1 @@
1
- import{ALL_MICRO_RESOURCES}from"./chunk-4WC5NHBJ.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-S4DBNX2B.js";var MICRO_RESOURCES_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"symbol");var MICRO_RESOURCES_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"name");function getMicroResourceBySymbol(symbol,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_SYMBOL,symbol,"getMicroResourceBySymbol: symbol"):findByKey(microResources,"symbol",symbol,"getMicroResourceBySymbol: symbol")}function getMicroResourceByName(name,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_NAME,name,"getMicroResourceByName: name"):findByKey(microResources,"name",name,"getMicroResourceByName: name")}function microResourcesInCategory(category,microResources=ALL_MICRO_RESOURCES){return filterByKey(microResources,"category",category,"microResourcesInCategory: category")}export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory};//# sourceMappingURL=chunk-YDBRGW4G.js.map
1
+ import{ALL_MICRO_RESOURCES}from"./chunk-DAQ3PJ4R.js";import{findInKeyIndex,findByKey,filterByKey,createKeyIndex}from"./chunk-BKWLI44T.js";var MICRO_RESOURCES_BY_SYMBOL=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"symbol");var MICRO_RESOURCES_BY_NAME=/* @__PURE__ */createKeyIndex(ALL_MICRO_RESOURCES,"name");function getMicroResourceBySymbol(symbol,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_SYMBOL,symbol,"getMicroResourceBySymbol: symbol"):findByKey(microResources,"symbol",symbol,"getMicroResourceBySymbol: symbol")}function getMicroResourceByName(name,microResources=ALL_MICRO_RESOURCES){return microResources===ALL_MICRO_RESOURCES?findInKeyIndex(MICRO_RESOURCES_BY_NAME,name,"getMicroResourceByName: name"):findByKey(microResources,"name",name,"getMicroResourceByName: name")}function microResourcesInCategory(category,microResources=ALL_MICRO_RESOURCES){return filterByKey(microResources,"category",category,"microResourcesInCategory: category")}export{getMicroResourceByName,getMicroResourceBySymbol,microResourcesInCategory};//# sourceMappingURL=chunk-DLLBARN5.js.map
@@ -1 +1 @@
1
- import{normalizeKey}from"./chunk-S4DBNX2B.js";import{describeValue,requireStringIfPresent}from"./chunk-B5TT26XE.js";var PREFIXES=["Th","Eo","Oo","Eu","Tr","Sly","Dry","Ou","Tz","Phl","Ae","Sch","Hyp","Syst","Ai","Kyl","Phr","Eae","Ph","Fl","Ao","Scr","Shr","Fly","Pl","Fr","Au","Pry","Pr","Hyph","Py","Chr","Phyl","Tyr","Bl","Cry","Gl","Br","Gr","By","Aae","Myc","Gyr","Ly","Myl","Lych","Myn","Ch","Myr","Cl","Rh","Wh","Pyr","Cr","Syn","Str","Syr","Cy","Wr","Hy","My","Sty","Sc","Sph","Spl","A","Sh","B","C","D","Sk","Io","Dr","E","Sl","F","Sm","G","H","I","Sp","J","Sq","K","L","Pyth","M","St","N","O","Ny","Lyr","P","Sw","Thr","Lys","Q","R","S","T","Ea","U","V","W","Schr","X","Ee","Y","Z","Ei","Oe"];var INFIXES1=["o","ai","a","oi","ea","ie","u","e","ee","oo","ue","i","oa","au","ae","oe"];var INFIXES2=["ll","ss","b","c","d","f","dg","g","ng","h","j","k","l","m","n","mb","p","q","gn","th","r","s","t","ch","tch","v","w","wh","ck","x","y","z","ph","sh","ct","wr"];var SUFFIXES1=["oe","io","oea","oi","aa","ua","eia","ae","ooe","oo","a","ue","ai","e","iae","oae","ou","uae","i","ao","au","o","eae","u","aea","ia","ie","eou","aei","ea","uia","oa","aae","eau","ee"];var SUFFIXES2=["b","scs","wsy","c","d","vsky","f","sms","dst","g","rb","h","nts","ch","rd","rld","k","lls","ck","rgh","l","rg","m","n","hm","p","hn","rk","q","rl","r","rm","s","cs","wyg","rn","ct","t","hs","rbs","rp","tts","v","wn","ms","w","rr","mt","x","rs","cy","y","rt","z","ws","lch","my","ry","nks","nd","sc","ng","sh","nk","sk","nn","ds","sm","sp","ns","nt","dy","ss","st","rrs","xt","nz","sy","xy","rsch","rphs","sts","sys","sty","th","tl","tls","rds","nch","rns","ts","wls","rnt","tt","rdy","rst","pps","tz","tch","sks","ppy","ff","sps","kh","sky","ph","lts","wnst","rth","ths","fs","pp","ft","ks","pr","ps","pt","fy","rts","ky","rshch","mly","py","bb","nds","wry","zz","nns","ld","lf","gh","lks","sly","lk","ll","rph","ln","bs","rsts","gs","ls","vvy","lt","rks","qs","rps","gy","wns","lz","nth","phs"];var C2_PREFIX_SUFFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae"].map(s=>s.toLowerCase()));var C1_PREFIX_INFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae","A","Io","E","I","O","Ea","U","Ee","Ei","Oe"].map(s=>s.toLowerCase()));var PREFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["eu",31],["sly",4],["tz",1],["phl",13],["ae",12],["hyp",25],["kyl",30],["phr",10],["eae",4],["ao",5],["scr",24],["shr",11],["fly",20],["pry",3],["hyph",14],["py",12],["phyl",8],["tyr",25],["cry",5],["aae",5],["myc",2],["gyr",10],["myl",12],["lych",3],["myn",10],["myr",4],["rh",15],["wr",31],["sty",4],["spl",16],["sk",27],["sq",7],["pyth",1],["lyr",10],["sw",24],["thr",32],["lys",10],["schr",3],["z",34]]);var INFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["oi",88],["ue",147],["oa",57],["au",119],["ae",12],["oe",39],["dg",31],["tch",20],["wr",31]]);var PREFIX_DEFAULT_RUN_LENGTH=35;function buildOffsets(items,runLengths,defaultLen){const offsets=/* @__PURE__ */new Map;let cnt=0;for(const item of items){const key=item.toLowerCase();const len=runLengths.get(key)??defaultLen;if(!runLengths.has(key))runLengths.set(key,len);offsets.set(key,cnt);cnt+=len}return{offsets:offsets,total:cnt}}var prefixTable=buildOffsets(PREFIXES,PREFIX_RUN_LENGTHS,PREFIX_DEFAULT_RUN_LENGTH);var prefixOffsets=prefixTable.offsets;var prefixTotalRunLength=prefixTable.total;var infix1Table=buildOffsets(INFIXES1,INFIX_RUN_LENGTHS,SUFFIXES2.length);var infix2Table=buildOffsets(INFIXES2,INFIX_RUN_LENGTHS,SUFFIXES1.length);var infixOffsets=new Map([...infix1Table.offsets,...infix2Table.offsets]);var infix1TotalRunLength=infix1Table.total;var infix2TotalRunLength=infix2Table.total;var prefixRunLength=key=>PREFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;var infixRunLength=key=>INFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;function emptyFragment(value){return{value:value,isPrefix:false,isC1VowelPrefix:false,isC2VowelPrefix:false,isInfix:false,isVowelInfix:false,isSuffix:false,isVowelSuffix:false,suffixIndex:0}}var FRAGMENTS=(()=>{const frags=/* @__PURE__ */new Map;const get=v=>{const key=v.toLowerCase();let f=frags.get(key);if(!f){f=emptyFragment(key);frags.set(key,f)}return f};for(const p of PREFIXES){const f=get(p);const key=p.toLowerCase();f.isPrefix=true;f.isC1VowelPrefix=C1_PREFIX_INFIX2.has(key);f.isC2VowelPrefix=C2_PREFIX_SUFFIX2.has(key)}for(const p of INFIXES1){const f=get(p);f.isInfix=true;f.isVowelInfix=true}for(const p of INFIXES2){const f=get(p);f.isInfix=true;f.isVowelInfix=false}for(let i=0;i<SUFFIXES1.length;i++){const f=get(SUFFIXES1[i]);f.isSuffix=true;f.isVowelSuffix=true;f.suffixIndex=i}for(let i=0;i<SUFFIXES2.length;i++){const f=get(SUFFIXES2[i]);f.isSuffix=true;f.isVowelSuffix=false;f.suffixIndex=i}return[...frags.values()].sort((a,b)=>b.value.length-a.value.length||a.value.localeCompare(b.value))})();function isC1Sector(offset){let key=offset>>>0;key=key+(key<<12)>>>0;key^=key>>>22;key=key+(key<<4)>>>0;key^=key>>>9;key=key+(key<<10)>>>0;key^=key>>>2;key=key+(key<<7)>>>0;key^=key>>>12;return(key&1)===0}function c1Name(offset){const frags=[];const prefixCnt=Math.floor(offset/prefixTotalRunLength);let curOffset=offset%prefixTotalRunLength;let prefix="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=curOffset)prefix=p}const prefixLower=prefix.toLowerCase();frags.push(prefix);curOffset-=prefixOffsets.get(prefixLower)??0;const infix1IsConsonant=C1_PREFIX_INFIX2.has(prefixLower);const infix1Total=infix1IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix1Table2=infix1IsConsonant?INFIXES2:INFIXES1;const scaled=prefixCnt*prefixRunLength(prefixLower)+curOffset;const infix1Cnt=Math.floor(scaled/infix1Total);curOffset=scaled%infix1Total;let infix1="";for(const p of infix1Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix1=key}frags.push(infix1);curOffset-=infixOffsets.get(infix1)??0;let suffixes=infix1IsConsonant?SUFFIXES1:SUFFIXES2;let nextIdx=infixRunLength(infix1)*infix1Cnt+curOffset;if(nextIdx>=suffixes.length){const infix2IsConsonant=!infix1IsConsonant;const infix2Total=infix2IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix2Cnt=Math.floor(nextIdx/infix2Total);curOffset=nextIdx%infix2Total;const infix2Table2=infix2IsConsonant?INFIXES2:INFIXES1;let infix2="";for(const p of infix2Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix2=key}frags.push(infix2);curOffset-=infixOffsets.get(infix2)??0;suffixes=infix2IsConsonant?SUFFIXES1:SUFFIXES2;nextIdx=infixRunLength(infix2)*infix2Cnt+curOffset}if(nextIdx>=suffixes.length)return null;frags.push(suffixes[nextIdx].toLowerCase());return frags.join("")}function c2Name(offset){const[idx0,idx1]=deinterleave2(offset);let p1="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx0)p1=p}let p2="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx1)p2=p}const p1Lower=p1.toLowerCase();const p2Lower=p2.toLowerCase();const s1s=C2_PREFIX_SUFFIX2.has(p1Lower)?SUFFIXES2:SUFFIXES1;const s2s=C2_PREFIX_SUFFIX2.has(p2Lower)?SUFFIXES2:SUFFIXES1;const s1=s1s[idx0-(prefixOffsets.get(p1Lower)??0)];const s2=s2s[idx1-(prefixOffsets.get(p2Lower)??0)];return`${p1}${s1.toLowerCase()} ${p2}${s2.toLowerCase()}`}function sectorNameFromGridPosition(position){for(const v of[position.sectorX,position.sectorY,position.sectorZ]){if(!Number.isInteger(v)||v<0||v>127){throw new RangeError(`Sector grid position out of range (expected integer 0–127): ${describeValue(position)}`)}}const offset=(position.sectorZ<<14)+(position.sectorY<<7)+position.sectorX;const name=isC1Sector(offset)?c1Name(offset):c2Name(offset);if(name===null){throw new RangeError(`Sector grid position has no procedural name: ${describeValue(position)}`)}return name}function splitFragmentCandidates(normalizedName){const candidates=[];const visit=(remaining,out)=>{if(remaining.length===0){candidates.push([...out]);return}if(out.length>=4)return;const spaceStart=remaining.startsWith(" ");const current=remaining.trimStart();if(current.length===0)return;for(const match of FRAGMENTS){if(!current.startsWith(match.value))continue;const frag={...match};if(spaceStart){frag.isSuffix=false;frag.isInfix=false}else if(out.length>0&&frag.isInfix&&frag.isVowelInfix!==out[out.length-1].isVowelInfix){frag.isPrefix=false}visit(current.substring(frag.value.length),[...out,frag])}};visit(normalizedName,[]);return candidates}function c1ProcessInfix(frag,offset){const runLen=infixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=frag.isVowelInfix?infix1TotalRunLength:infix2TotalRunLength;out+=rem;out+=infixOffsets.get(frag.value)??0;return out}function c1ProcessPrefix(frag,offset){const runLen=prefixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=prefixTotalRunLength;out+=rem;out+=prefixOffsets.get(frag.value)??0;return out}function coordsFromOffset(offset){return{sectorX:offset&127,sectorY:offset>>7&127,sectorZ:offset>>14&127}}function c2SectorGridPosition(f){if(f[0].isC2VowelPrefix===f[1].isVowelSuffix||f[2].isC2VowelPrefix===f[3].isVowelSuffix){return null}const idx0=(prefixOffsets.get(f[0].value)??0)+f[1].suffixIndex;const idx1=(prefixOffsets.get(f[2].value)??0)+f[3].suffixIndex;return coordsFromOffset(interleave2(idx0,idx1))}function c1SectorGridPosition3(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelSuffix){return null}let offset=f[2].suffixIndex;offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function c1SectorGridPosition4(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelInfix||f[2].isVowelInfix===f[3].isVowelSuffix){return null}let offset=f[3].suffixIndex;offset=c1ProcessInfix(f[2],offset);offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function sectorGridPositionFromName(name){if(name==null)return null;const normalized=normalizeKey(name,"sectorGridPositionFromName: name");const candidates=splitFragmentCandidates(normalized);const normalizedName=normalized.replace(/\s+/g," ");for(const f of candidates){let coords=null;if(f.length===4&&f[0].isPrefix&&f[1].isSuffix&&f[2].isPrefix&&f[3].isSuffix){coords=c2SectorGridPosition(f)}else if(f.length===3&&f[0].isPrefix&&f[1].isInfix&&f[2].isSuffix){coords=c1SectorGridPosition3(f)}else if(f.length===4&&f[0].isPrefix&&f[1].isInfix&&f[2].isInfix&&f[3].isSuffix){coords=c1SectorGridPosition4(f)}if(!coords)continue;try{const canonicalName=sectorNameFromGridPosition(coords);if(canonicalName.toLowerCase()===normalizedName)return coords}catch(error){if(!(error instanceof RangeError))throw error}}return null}function canonicalizeSectorName(name){requireStringIfPresent(name,"canonicalizeSectorName: name");const position=sectorGridPositionFromName(name);return position?sectorNameFromGridPosition(position):null}function interleave2(v1,v2){let x=BigInt(v1)|BigInt(v2)<<32n;x=(x|x<<8n)&0x00ff00ff00ff00ffn;x=(x|x<<4n)&0x0f0f0f0f0f0f0f0fn;x=(x|x<<2n)&0x3333333333333333n;x=(x|x<<1n)&0x5555555555555555n;return Number((x|x>>31n)&0xffffffffn)}function deinterleave2(val){const v=BigInt(val);let x=v&0x55555555n|(v&0xaaaaaaaan)<<31n;x=(x|x>>1n)&0x3333333333333333n;x=(x|x>>2n)&0x0f0f0f0f0f0f0f0fn;x=(x|x>>4n)&0x00ff00ff00ff00ffn;x=(x|x>>8n)&0x0000ffff0000ffffn;return[Number(x&0xffffn),Number(x>>32n&0xffffn)]}export{canonicalizeSectorName,sectorGridPositionFromName,sectorNameFromGridPosition};//# sourceMappingURL=chunk-J2PNZQY4.js.map
1
+ import{normalizeKey}from"./chunk-BKWLI44T.js";import{describeValue,requireStringIfPresent}from"./chunk-PKWVG2JY.js";var PREFIXES=["Th","Eo","Oo","Eu","Tr","Sly","Dry","Ou","Tz","Phl","Ae","Sch","Hyp","Syst","Ai","Kyl","Phr","Eae","Ph","Fl","Ao","Scr","Shr","Fly","Pl","Fr","Au","Pry","Pr","Hyph","Py","Chr","Phyl","Tyr","Bl","Cry","Gl","Br","Gr","By","Aae","Myc","Gyr","Ly","Myl","Lych","Myn","Ch","Myr","Cl","Rh","Wh","Pyr","Cr","Syn","Str","Syr","Cy","Wr","Hy","My","Sty","Sc","Sph","Spl","A","Sh","B","C","D","Sk","Io","Dr","E","Sl","F","Sm","G","H","I","Sp","J","Sq","K","L","Pyth","M","St","N","O","Ny","Lyr","P","Sw","Thr","Lys","Q","R","S","T","Ea","U","V","W","Schr","X","Ee","Y","Z","Ei","Oe"];var INFIXES1=["o","ai","a","oi","ea","ie","u","e","ee","oo","ue","i","oa","au","ae","oe"];var INFIXES2=["ll","ss","b","c","d","f","dg","g","ng","h","j","k","l","m","n","mb","p","q","gn","th","r","s","t","ch","tch","v","w","wh","ck","x","y","z","ph","sh","ct","wr"];var SUFFIXES1=["oe","io","oea","oi","aa","ua","eia","ae","ooe","oo","a","ue","ai","e","iae","oae","ou","uae","i","ao","au","o","eae","u","aea","ia","ie","eou","aei","ea","uia","oa","aae","eau","ee"];var SUFFIXES2=["b","scs","wsy","c","d","vsky","f","sms","dst","g","rb","h","nts","ch","rd","rld","k","lls","ck","rgh","l","rg","m","n","hm","p","hn","rk","q","rl","r","rm","s","cs","wyg","rn","ct","t","hs","rbs","rp","tts","v","wn","ms","w","rr","mt","x","rs","cy","y","rt","z","ws","lch","my","ry","nks","nd","sc","ng","sh","nk","sk","nn","ds","sm","sp","ns","nt","dy","ss","st","rrs","xt","nz","sy","xy","rsch","rphs","sts","sys","sty","th","tl","tls","rds","nch","rns","ts","wls","rnt","tt","rdy","rst","pps","tz","tch","sks","ppy","ff","sps","kh","sky","ph","lts","wnst","rth","ths","fs","pp","ft","ks","pr","ps","pt","fy","rts","ky","rshch","mly","py","bb","nds","wry","zz","nns","ld","lf","gh","lks","sly","lk","ll","rph","ln","bs","rsts","gs","ls","vvy","lt","rks","qs","rps","gy","wns","lz","nth","phs"];var C2_PREFIX_SUFFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae"].map(s=>s.toLowerCase()));var C1_PREFIX_INFIX2=new Set(["Eo","Oo","Eu","Ou","Ae","Ai","Eae","Ao","Au","Aae","A","Io","E","I","O","Ea","U","Ee","Ei","Oe"].map(s=>s.toLowerCase()));var PREFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["eu",31],["sly",4],["tz",1],["phl",13],["ae",12],["hyp",25],["kyl",30],["phr",10],["eae",4],["ao",5],["scr",24],["shr",11],["fly",20],["pry",3],["hyph",14],["py",12],["phyl",8],["tyr",25],["cry",5],["aae",5],["myc",2],["gyr",10],["myl",12],["lych",3],["myn",10],["myr",4],["rh",15],["wr",31],["sty",4],["spl",16],["sk",27],["sq",7],["pyth",1],["lyr",10],["sw",24],["thr",32],["lys",10],["schr",3],["z",34]]);var INFIX_RUN_LENGTHS=/* @__PURE__ */new Map([["oi",88],["ue",147],["oa",57],["au",119],["ae",12],["oe",39],["dg",31],["tch",20],["wr",31]]);var PREFIX_DEFAULT_RUN_LENGTH=35;function buildOffsets(items,runLengths,defaultLen){const offsets=/* @__PURE__ */new Map;let cnt=0;for(const item of items){const key=item.toLowerCase();const len=runLengths.get(key)??defaultLen;if(!runLengths.has(key))runLengths.set(key,len);offsets.set(key,cnt);cnt+=len}return{offsets:offsets,total:cnt}}var prefixTable=buildOffsets(PREFIXES,PREFIX_RUN_LENGTHS,PREFIX_DEFAULT_RUN_LENGTH);var prefixOffsets=prefixTable.offsets;var prefixTotalRunLength=prefixTable.total;var infix1Table=buildOffsets(INFIXES1,INFIX_RUN_LENGTHS,SUFFIXES2.length);var infix2Table=buildOffsets(INFIXES2,INFIX_RUN_LENGTHS,SUFFIXES1.length);var infixOffsets=new Map([...infix1Table.offsets,...infix2Table.offsets]);var infix1TotalRunLength=infix1Table.total;var infix2TotalRunLength=infix2Table.total;var prefixRunLength=key=>PREFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;var infixRunLength=key=>INFIX_RUN_LENGTHS.get(key)??PREFIX_DEFAULT_RUN_LENGTH;function emptyFragment(value){return{value:value,isPrefix:false,isC1VowelPrefix:false,isC2VowelPrefix:false,isInfix:false,isVowelInfix:false,isSuffix:false,isVowelSuffix:false,suffixIndex:0}}var FRAGMENTS=(()=>{const frags=/* @__PURE__ */new Map;const get=v=>{const key=v.toLowerCase();let f=frags.get(key);if(!f){f=emptyFragment(key);frags.set(key,f)}return f};for(const p of PREFIXES){const f=get(p);const key=p.toLowerCase();f.isPrefix=true;f.isC1VowelPrefix=C1_PREFIX_INFIX2.has(key);f.isC2VowelPrefix=C2_PREFIX_SUFFIX2.has(key)}for(const p of INFIXES1){const f=get(p);f.isInfix=true;f.isVowelInfix=true}for(const p of INFIXES2){const f=get(p);f.isInfix=true;f.isVowelInfix=false}for(let i=0;i<SUFFIXES1.length;i++){const f=get(SUFFIXES1[i]);f.isSuffix=true;f.isVowelSuffix=true;f.suffixIndex=i}for(let i=0;i<SUFFIXES2.length;i++){const f=get(SUFFIXES2[i]);f.isSuffix=true;f.isVowelSuffix=false;f.suffixIndex=i}return[...frags.values()].sort((a,b)=>b.value.length-a.value.length||a.value.localeCompare(b.value))})();function isC1Sector(offset){let key=offset>>>0;key=key+(key<<12)>>>0;key^=key>>>22;key=key+(key<<4)>>>0;key^=key>>>9;key=key+(key<<10)>>>0;key^=key>>>2;key=key+(key<<7)>>>0;key^=key>>>12;return(key&1)===0}function c1Name(offset){const frags=[];const prefixCnt=Math.floor(offset/prefixTotalRunLength);let curOffset=offset%prefixTotalRunLength;let prefix="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=curOffset)prefix=p}const prefixLower=prefix.toLowerCase();frags.push(prefix);curOffset-=prefixOffsets.get(prefixLower)??0;const infix1IsConsonant=C1_PREFIX_INFIX2.has(prefixLower);const infix1Total=infix1IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix1Table2=infix1IsConsonant?INFIXES2:INFIXES1;const scaled=prefixCnt*prefixRunLength(prefixLower)+curOffset;const infix1Cnt=Math.floor(scaled/infix1Total);curOffset=scaled%infix1Total;let infix1="";for(const p of infix1Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix1=key}frags.push(infix1);curOffset-=infixOffsets.get(infix1)??0;let suffixes=infix1IsConsonant?SUFFIXES1:SUFFIXES2;let nextIdx=infixRunLength(infix1)*infix1Cnt+curOffset;if(nextIdx>=suffixes.length){const infix2IsConsonant=!infix1IsConsonant;const infix2Total=infix2IsConsonant?infix2TotalRunLength:infix1TotalRunLength;const infix2Cnt=Math.floor(nextIdx/infix2Total);curOffset=nextIdx%infix2Total;const infix2Table2=infix2IsConsonant?INFIXES2:INFIXES1;let infix2="";for(const p of infix2Table2){const key=p.toLowerCase();if((infixOffsets.get(key)??0)<=curOffset)infix2=key}frags.push(infix2);curOffset-=infixOffsets.get(infix2)??0;suffixes=infix2IsConsonant?SUFFIXES1:SUFFIXES2;nextIdx=infixRunLength(infix2)*infix2Cnt+curOffset}if(nextIdx>=suffixes.length)return null;frags.push(suffixes[nextIdx].toLowerCase());return frags.join("")}function c2Name(offset){const[idx0,idx1]=deinterleave2(offset);let p1="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx0)p1=p}let p2="";for(const p of PREFIXES){if((prefixOffsets.get(p.toLowerCase())??0)<=idx1)p2=p}const p1Lower=p1.toLowerCase();const p2Lower=p2.toLowerCase();const s1s=C2_PREFIX_SUFFIX2.has(p1Lower)?SUFFIXES2:SUFFIXES1;const s2s=C2_PREFIX_SUFFIX2.has(p2Lower)?SUFFIXES2:SUFFIXES1;const s1=s1s[idx0-(prefixOffsets.get(p1Lower)??0)];const s2=s2s[idx1-(prefixOffsets.get(p2Lower)??0)];return`${p1}${s1.toLowerCase()} ${p2}${s2.toLowerCase()}`}function sectorNameFromGridPosition(position){for(const v of[position.sectorX,position.sectorY,position.sectorZ]){if(!Number.isInteger(v)||v<0||v>127){throw new RangeError(`Sector grid position out of range (expected integer 0–127): ${describeValue(position)}`)}}const offset=(position.sectorZ<<14)+(position.sectorY<<7)+position.sectorX;const name=isC1Sector(offset)?c1Name(offset):c2Name(offset);if(name===null){throw new RangeError(`Sector grid position has no procedural name: ${describeValue(position)}`)}return name}function splitFragmentCandidates(normalizedName){const candidates=[];const visit=(remaining,out)=>{if(remaining.length===0){candidates.push([...out]);return}if(out.length>=4)return;const spaceStart=remaining.startsWith(" ");const current=remaining.trimStart();if(current.length===0)return;for(const match of FRAGMENTS){if(!current.startsWith(match.value))continue;const frag={...match};if(spaceStart){frag.isSuffix=false;frag.isInfix=false}else if(out.length>0&&frag.isInfix&&frag.isVowelInfix!==out[out.length-1].isVowelInfix){frag.isPrefix=false}visit(current.substring(frag.value.length),[...out,frag])}};visit(normalizedName,[]);return candidates}function c1ProcessInfix(frag,offset){const runLen=infixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=frag.isVowelInfix?infix1TotalRunLength:infix2TotalRunLength;out+=rem;out+=infixOffsets.get(frag.value)??0;return out}function c1ProcessPrefix(frag,offset){const runLen=prefixRunLength(frag.value);const rem=offset%runLen;let out=Math.floor(offset/runLen);out*=prefixTotalRunLength;out+=rem;out+=prefixOffsets.get(frag.value)??0;return out}function coordsFromOffset(offset){return{sectorX:offset&127,sectorY:offset>>7&127,sectorZ:offset>>14&127}}function c2SectorGridPosition(f){if(f[0].isC2VowelPrefix===f[1].isVowelSuffix||f[2].isC2VowelPrefix===f[3].isVowelSuffix){return null}const idx0=(prefixOffsets.get(f[0].value)??0)+f[1].suffixIndex;const idx1=(prefixOffsets.get(f[2].value)??0)+f[3].suffixIndex;return coordsFromOffset(interleave2(idx0,idx1))}function c1SectorGridPosition3(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelSuffix){return null}let offset=f[2].suffixIndex;offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function c1SectorGridPosition4(f){if(f[0].isC1VowelPrefix===f[1].isVowelInfix||f[1].isVowelInfix===f[2].isVowelInfix||f[2].isVowelInfix===f[3].isVowelSuffix){return null}let offset=f[3].suffixIndex;offset=c1ProcessInfix(f[2],offset);offset=c1ProcessInfix(f[1],offset);offset=c1ProcessPrefix(f[0],offset);return coordsFromOffset(offset)}function sectorGridPositionFromName(name){if(name==null)return null;const normalized=normalizeKey(name,"sectorGridPositionFromName: name");const candidates=splitFragmentCandidates(normalized);const normalizedName=normalized.replace(/\s+/g," ");for(const f of candidates){let coords=null;if(f.length===4&&f[0].isPrefix&&f[1].isSuffix&&f[2].isPrefix&&f[3].isSuffix){coords=c2SectorGridPosition(f)}else if(f.length===3&&f[0].isPrefix&&f[1].isInfix&&f[2].isSuffix){coords=c1SectorGridPosition3(f)}else if(f.length===4&&f[0].isPrefix&&f[1].isInfix&&f[2].isInfix&&f[3].isSuffix){coords=c1SectorGridPosition4(f)}if(!coords)continue;try{const canonicalName=sectorNameFromGridPosition(coords);if(canonicalName.toLowerCase()===normalizedName)return coords}catch(error){if(!(error instanceof RangeError))throw error}}return null}function canonicalizeSectorName(name){requireStringIfPresent(name,"canonicalizeSectorName: name");const position=sectorGridPositionFromName(name);return position?sectorNameFromGridPosition(position):null}function interleave2(v1,v2){let x=BigInt(v1)|BigInt(v2)<<32n;x=(x|x<<8n)&0x00ff00ff00ff00ffn;x=(x|x<<4n)&0x0f0f0f0f0f0f0f0fn;x=(x|x<<2n)&0x3333333333333333n;x=(x|x<<1n)&0x5555555555555555n;return Number((x|x>>31n)&0xffffffffn)}function deinterleave2(val){const v=BigInt(val);let x=v&0x55555555n|(v&0xaaaaaaaan)<<31n;x=(x|x>>1n)&0x3333333333333333n;x=(x|x>>2n)&0x0f0f0f0f0f0f0f0fn;x=(x|x>>4n)&0x00ff00ff00ff00ffn;x=(x|x>>8n)&0x0000ffff0000ffffn;return[Number(x&0xffffn),Number(x>>32n&0xffffn)]}export{canonicalizeSectorName,sectorGridPositionFromName,sectorNameFromGridPosition};//# sourceMappingURL=chunk-DVL5RBKX.js.map
@@ -1 +1 @@
1
- import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-JWJ7RSZC.js";import{isPermitLockedRegionName}from"./chunk-VZXL5KBR.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";import{sizeClassToMassCode}from"./chunk-DACZE3HX.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-Z4GTTB7I.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-BTPV5CIF.js";import{toSystemAddress}from"./chunk-IH4NXKVW.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-J2PNZQY4.js";import{requireString,truncate}from"./chunk-B5TT26XE.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-VXVUEF5U.js.map
1
+ import{parseSystemName,boxelCodeToLetters,formatSystemName}from"./chunk-G3265B27.js";import{isPermitLockedRegionName}from"./chunk-NLBUKXNV.js";import{findHandAuthoredRegionAt}from"./chunk-AVZI6VKA.js";import{sizeClassToMassCode}from"./chunk-POZTXBSN.js";import{getHandAuthoredRegionOrigin,resolveNamingRegionOrigin}from"./chunk-UXBCLFGU.js";import{encodeSystemAddress,decodeSystemAddress,decodeModSystemAddress,encodeModSystemAddress,absoluteBoxelToBoxelCode}from"./chunk-DI5RXSJR.js";import{toSystemAddress}from"./chunk-NEEFT7WH.js";import{sectorGridPositionFromName,sectorNameFromGridPosition}from"./chunk-DVL5RBKX.js";import{requireString,truncate}from"./chunk-PKWVG2JY.js";function tryEncodeModAddress(parts){const origin=resolveNamingRegionOrigin(parts.regionName);if(!origin)return null;try{return encodeModSystemAddress(parts,origin)}catch(error){if(error instanceof RangeError)return null;throw error}}function applyHaOverride(parts,decoded,position){if(!position)return{parts:parts,handAuthored:false,requiresPermit:false};const region=findHandAuthoredRegionAt(position);if(!region)return{parts:parts,handAuthored:false,requiresPermit:false};const origin=resolveNamingRegionOrigin(region.name);if(!origin||origin.x0<0||origin.y0<0||origin.z0<0){return{parts:parts,handAuthored:false,requiresPermit:false}}const boxelCode=absoluteBoxelToBoxelCode(decoded.sizeClass,decoded.absoluteBoxel,origin);if(boxelCode===null)return{parts:parts,handAuthored:false,requiresPermit:false};const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(boxelCode);return{parts:{...parts,regionName:region.name,l1:l1,l2:l2,l3:l3,n1:n1},handAuthored:true,requiresPermit:isPermitLockedRegionName(region.name)}}var ProceduralSystem=class _ProceduralSystem{#parts;#position;#id64;#modId64;usesHandAuthoredRegion;requiresRegionPermit;constructor(parts,opts){this.#parts={...parts};this.#position=opts.position?{...opts.position}:void 0;this.#id64=opts.id64;this.#modId64=opts.modId64;this.usesHandAuthoredRegion=opts.handAuthored;this.requiresRegionPermit=opts.requiresPermit}static fromName(name){const parts=parseSystemName(requireString(name,"ProceduralSystem.fromName: name"));if(!parts)return null;const sectorPosition=sectorGridPositionFromName(parts.regionName);const namedOrigin=sectorPosition?null:getHandAuthoredRegionOrigin(parts.regionName);const named=namedOrigin!==null;const regionName=sectorPosition?sectorNameFromGridPosition(sectorPosition):namedOrigin?.name??parts.regionName;const canonicalParts={...parts,regionName:regionName};const origin=resolveNamingRegionOrigin(regionName);if(!origin)throw new RangeError(`Unknown sector: ${truncate(regionName)}`);return new _ProceduralSystem(canonicalParts,{id64:encodeSystemAddress(canonicalParts,origin),modId64:tryEncodeModAddress(canonicalParts),handAuthored:named,requiresPermit:named&&isPermitLockedRegionName(regionName)})}static fromSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeSystemAddress(address),address,position)}static fromModSystemAddress(id64,position){const address=toSystemAddress(id64);return _ProceduralSystem.#fromDecoded(decodeModSystemAddress(address),void 0,position,address)}static#fromDecoded(decoded,id64,position,modId64){const{l1:l1,l2:l2,l3:l3,n1:n1}=boxelCodeToLetters(decoded.boxelCode);const base={regionName:sectorNameFromGridPosition(decoded.sectorGridPosition),l1:l1,l2:l2,l3:l3,massCode:decoded.sizeClass,n1:n1,n2:decoded.sequence};const overridden=applyHaOverride(base,decoded,position);const origin=resolveNamingRegionOrigin(overridden.parts.regionName);if(!origin){throw new RangeError(`Unknown sector: ${truncate(overridden.parts.regionName)}`)}const normalAddress=id64??encodeSystemAddress(overridden.parts,origin);const opts={id64:normalAddress,modId64:modId64??tryEncodeModAddress(overridden.parts),handAuthored:overridden.handAuthored,requiresPermit:overridden.requiresPermit,...position?{position:position}:{}};return new _ProceduralSystem(overridden.parts,opts)}get name(){return formatSystemName(this.#parts)}get namingRegionName(){return this.#parts.regionName}get massCode(){return sizeClassToMassCode(this.#parts.massCode)}get sequence(){return this.#parts.n2}get position(){return this.#position?{...this.#position}:null}get parts(){return{...this.#parts}}get systemAddress(){return this.#id64}get modSystemAddress(){return this.#modId64}};export{ProceduralSystem};//# sourceMappingURL=chunk-E3BRVGJJ.js.map
@@ -1 +1 @@
1
- import{permitLockedSystemForName}from"./chunk-WV5YM7H5.js";import{permitLockedRegionForSystemName}from"./chunk-VZXL5KBR.js";import{requireStringIfPresent}from"./chunk-B5TT26XE.js";function permitLockForSystemName(name){requireStringIfPresent(name,"permitLockForSystemName: name");const system=permitLockedSystemForName(name);if(system!==null)return{kind:"system",name:system.name,id64:system.id64};const region=permitLockedRegionForSystemName(name);return region===null?null:{kind:"region",name:region}}function isPermitLockedSystemName(name){requireStringIfPresent(name,"isPermitLockedSystemName: name");return permitLockForSystemName(name)!==null}export{isPermitLockedSystemName,permitLockForSystemName};//# sourceMappingURL=chunk-MFV4VZFP.js.map
1
+ import{permitLockedSystemForName}from"./chunk-BMT3U46U.js";import{permitLockedRegionForSystemName}from"./chunk-NLBUKXNV.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";function permitLockForSystemName(name){requireStringIfPresent(name,"permitLockForSystemName: name");const system=permitLockedSystemForName(name);if(system!==null)return{kind:"system",name:system.name,id64:system.id64};const region=permitLockedRegionForSystemName(name);return region===null?null:{kind:"region",name:region}}function isPermitLockedSystemName(name){requireStringIfPresent(name,"isPermitLockedSystemName: name");return permitLockForSystemName(name)!==null}export{isPermitLockedSystemName,permitLockForSystemName};//# sourceMappingURL=chunk-EBAHNZ36.js.map