@shipload/sdk 1.0.0-next.3 → 1.0.0-next.30

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 (99) hide show
  1. package/lib/shipload.d.ts +1847 -962
  2. package/lib/shipload.js +9088 -4854
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +8957 -4805
  5. package/lib/shipload.m.js.map +1 -1
  6. package/lib/testing.d.ts +856 -0
  7. package/lib/testing.js +3739 -0
  8. package/lib/testing.js.map +1 -0
  9. package/lib/testing.m.js +3733 -0
  10. package/lib/testing.m.js.map +1 -0
  11. package/package.json +15 -2
  12. package/src/capabilities/craftable.ts +51 -0
  13. package/src/capabilities/crafting.test.ts +7 -0
  14. package/src/capabilities/crafting.ts +3 -3
  15. package/src/capabilities/gathering.ts +17 -7
  16. package/src/capabilities/index.ts +0 -1
  17. package/src/capabilities/modules.ts +6 -0
  18. package/src/capabilities/storage.ts +16 -1
  19. package/src/contracts/platform.ts +231 -3
  20. package/src/contracts/server.ts +816 -471
  21. package/src/data/capabilities.ts +14 -329
  22. package/src/data/capability-formulas.ts +76 -0
  23. package/src/data/catalog.ts +0 -5
  24. package/src/data/colors.ts +14 -47
  25. package/src/data/entities.json +46 -10
  26. package/src/data/item-ids.ts +15 -12
  27. package/src/data/items.json +302 -38
  28. package/src/data/kind-registry.json +85 -0
  29. package/src/data/kind-registry.ts +150 -0
  30. package/src/data/metadata.ts +100 -31
  31. package/src/data/recipes-runtime.ts +3 -23
  32. package/src/data/recipes.json +250 -113
  33. package/src/derivation/build-methods.ts +45 -0
  34. package/src/derivation/capabilities.ts +415 -0
  35. package/src/derivation/capability-mappings.ts +117 -0
  36. package/src/derivation/crafting.ts +23 -24
  37. package/src/derivation/index.ts +17 -2
  38. package/src/derivation/reserve-regen.ts +34 -0
  39. package/src/derivation/resources.ts +125 -38
  40. package/src/derivation/stars.test.ts +51 -0
  41. package/src/derivation/stars.ts +15 -0
  42. package/src/derivation/stats.ts +6 -6
  43. package/src/derivation/stratum.ts +15 -19
  44. package/src/derivation/tiers.ts +28 -7
  45. package/src/entities/entity.ts +98 -0
  46. package/src/entities/gamestate.ts +3 -28
  47. package/src/entities/makers.ts +91 -136
  48. package/src/entities/slot-multiplier.ts +39 -0
  49. package/src/errors.ts +10 -15
  50. package/src/format.ts +26 -4
  51. package/src/index-module.ts +189 -47
  52. package/src/managers/actions.ts +252 -83
  53. package/src/managers/base.ts +6 -2
  54. package/src/managers/construction-types.ts +79 -0
  55. package/src/managers/construction.ts +396 -0
  56. package/src/managers/context.ts +11 -1
  57. package/src/managers/entities.ts +18 -66
  58. package/src/managers/epochs.ts +40 -0
  59. package/src/managers/index.ts +17 -1
  60. package/src/managers/locations.ts +25 -29
  61. package/src/managers/nft.ts +28 -0
  62. package/src/managers/plot.ts +127 -0
  63. package/src/nft/atomicassets.abi.json +1342 -0
  64. package/src/nft/atomicassets.ts +237 -0
  65. package/src/nft/atomicdata.ts +130 -0
  66. package/src/nft/buildImmutableData.ts +321 -0
  67. package/src/nft/description.ts +37 -15
  68. package/src/nft/index.ts +3 -0
  69. package/src/resolution/describe-module.ts +5 -8
  70. package/src/resolution/display-name.ts +38 -10
  71. package/src/resolution/resolve-item.ts +22 -20
  72. package/src/scheduling/accessor.ts +68 -22
  73. package/src/scheduling/availability.ts +108 -0
  74. package/src/scheduling/energy.ts +48 -0
  75. package/src/scheduling/lane-core.ts +130 -0
  76. package/src/scheduling/lanes.ts +60 -0
  77. package/src/scheduling/projection.ts +121 -94
  78. package/src/scheduling/schedule.ts +237 -103
  79. package/src/scheduling/task-cargo.ts +46 -0
  80. package/src/shipload.ts +16 -1
  81. package/src/subscriptions/manager.ts +40 -6
  82. package/src/subscriptions/mappers.ts +3 -8
  83. package/src/subscriptions/types.ts +3 -2
  84. package/src/testing/catalog-hash.ts +19 -0
  85. package/src/testing/index.ts +2 -0
  86. package/src/testing/projection-parity.ts +143 -0
  87. package/src/travel/travel.ts +90 -13
  88. package/src/types/capabilities.ts +1 -0
  89. package/src/types/index.ts +0 -1
  90. package/src/types.ts +19 -12
  91. package/src/utils/cargo.ts +27 -0
  92. package/src/utils/display-name.ts +61 -0
  93. package/src/utils/system.ts +25 -24
  94. package/src/capabilities/loading.ts +0 -8
  95. package/src/entities/container.ts +0 -108
  96. package/src/entities/ship-deploy.ts +0 -258
  97. package/src/entities/ship.ts +0 -204
  98. package/src/entities/warehouse.ts +0 -119
  99. package/src/types/entity-traits.ts +0 -69
@@ -0,0 +1,3733 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { readFileSync } from 'node:fs';
3
+ import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, UInt16, UInt8, Int64, TimePoint, BlockTimestamp, Bytes, Int32 } from '@wharfkit/antelope';
4
+ import { __decorate } from 'tslib';
5
+ import '@wharfkit/contract';
6
+
7
+ const CATALOG_FILES_REL = [
8
+ 'items.json',
9
+ 'recipes.json',
10
+ 'entities.json',
11
+ 'kind-registry.json',
12
+ 'item-ids.ts',
13
+ ];
14
+ function computeCatalogHash(filePaths) {
15
+ const hash = createHash('sha256');
16
+ for (const p of filePaths) {
17
+ hash.update(readFileSync(p));
18
+ hash.update('\0');
19
+ }
20
+ return hash.digest('hex');
21
+ }
22
+
23
+ const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAB0LYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHJlbGdhdGVhc3NldAABCGFzc2V0X2lkBnVpbnQ2NAxyZWxnYXRlb3duZXIAAQVvd25lcgRuYW1lDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwADBW93bmVyBG5hbWUEZ2FtZQRuYW1lDWxhc3RfYXNzZXRfaWQGdWludDY0EwCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAIVpRAVjbG9zZeICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsb3NlCnN1bW1hcnk6ICdDbG9zZSBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpDbG9zZSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2Ugcm93IGZvciB0aGUgZ2l2ZW4gdG9rZW4gYW5kIGZyZWUgaXRzIFJBTS4gVGhlIGJhbGFuY2UgbXVzdCBiZSB6ZXJvIGJlZm9yZSBjbG9zaW5nLiBSZXF1aXJlcyB0aGUgb3duZXIncyBhdXRob3JpdHkukB2mVaXsjkoMZGViaXRkZXBvc2l0nQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGViaXRkZXBvc2l0CnN1bW1hcnk6ICdEZWJpdCBhIGRlcG9zaXQgYmFsYW5jZSBmb3IgYSB3cmFwIG9wZXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IGEgcmVnaXN0ZXJlZCwgZW5hYmxlZCBnYW1lIGNvbnRyYWN0IG9ubHkuIERlYml0cyB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UgYnkgdGhlIGxvY2tlZCBhbW91bnQgcGx1cyB0aGUgZmVlLCBhbmQgY3JlZGl0cyB0aGUgZmVlIHRvIHRoZSBjb25maWd1cmVkIGZlZSBhY2NvdW50LiBVc2VkIGJ5IGEgZ2FtZSdzIHdyYXAgZmxvdyB0byBjb2xsZWN0IHRoZSB3cmFwIGNvc3QuIENhbm5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgcGxheWVycyBvciB1bnJlZ2lzdGVyZWQgYWNjb3VudHMuAAAAAKh4zFQGZW5hYmxl8wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdFbmFibGUvZGlzYWJsZSBwbGF0Zm9ybScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBwbGF0Zm9ybSBjb250cmFjdC4AgJKGqXjMVAplbmFibGVnYW1l/AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlZ2FtZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2JhYmxlIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC7gp6mSojQ1XQxmb3VuZGNvbXBhbnmDAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3VuZGNvbXBhbnkKc3VtbWFyeTogJ0ZvdW5kIGEgbmV3IGNvbXBhbnknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpGb3VuZCBhIG5ldyBjb21wYW55IGluIHRoZSBTaGlwbG9hZCBwbGF0Zm9ybSBjb250cmFjdC4AAAAAADBVpQRvcGVumwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogb3BlbgpzdW1tYXJ5OiAnT3BlbiBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpPcGVuIGEgemVyby1iYWxhbmNlIGRlcG9zaXQgcm93IGZvciB0aGUgZ2l2ZW4gb3duZXIgYW5kIHRva2VuLCB3aXRoIFJBTSBwYWlkIGJ5IHRoZSBvd25lci4gSGFzIG5vIGVmZmVjdCBpZiB0aGUgcm93IGFscmVhZHkgZXhpc3RzLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIG93bmVyIGNhbiByZWNlaXZlIHRva2VuIGRlcG9zaXRzIG9yIHdyYXAgcmVmdW5kcy6QFcZGZcOiugxyZWxnYXRlYXNzZXQAcNXkVGXDoroMcmVsZ2F0ZW93bmVyAKCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
24
+ ABI.from(abiBlob$1);
25
+ var Types$1;
26
+ (function (Types) {
27
+ let balance_row = class balance_row extends Struct {
28
+ };
29
+ __decorate([
30
+ Struct.field(Name)
31
+ ], balance_row.prototype, "token_contract", void 0);
32
+ __decorate([
33
+ Struct.field(Asset)
34
+ ], balance_row.prototype, "balance", void 0);
35
+ balance_row = __decorate([
36
+ Struct.type('balance_row')
37
+ ], balance_row);
38
+ Types.balance_row = balance_row;
39
+ let cleartable = class cleartable extends Struct {
40
+ };
41
+ __decorate([
42
+ Struct.field(Name)
43
+ ], cleartable.prototype, "table_name", void 0);
44
+ __decorate([
45
+ Struct.field(Name, { optional: true })
46
+ ], cleartable.prototype, "scope", void 0);
47
+ __decorate([
48
+ Struct.field(UInt64, { optional: true })
49
+ ], cleartable.prototype, "max_rows", void 0);
50
+ cleartable = __decorate([
51
+ Struct.type('cleartable')
52
+ ], cleartable);
53
+ Types.cleartable = cleartable;
54
+ let close = class close extends Struct {
55
+ };
56
+ __decorate([
57
+ Struct.field(Name)
58
+ ], close.prototype, "owner", void 0);
59
+ __decorate([
60
+ Struct.field(Name)
61
+ ], close.prototype, "token_contract", void 0);
62
+ __decorate([
63
+ Struct.field(Asset.Symbol)
64
+ ], close.prototype, "token_symbol", void 0);
65
+ close = __decorate([
66
+ Struct.type('close')
67
+ ], close);
68
+ Types.close = close;
69
+ let company_row = class company_row extends Struct {
70
+ };
71
+ __decorate([
72
+ Struct.field(Name)
73
+ ], company_row.prototype, "account", void 0);
74
+ __decorate([
75
+ Struct.field('string')
76
+ ], company_row.prototype, "name", void 0);
77
+ company_row = __decorate([
78
+ Struct.type('company_row')
79
+ ], company_row);
80
+ Types.company_row = company_row;
81
+ let debitdeposit = class debitdeposit extends Struct {
82
+ };
83
+ __decorate([
84
+ Struct.field(Name)
85
+ ], debitdeposit.prototype, "owner", void 0);
86
+ __decorate([
87
+ Struct.field(Name)
88
+ ], debitdeposit.prototype, "token", void 0);
89
+ __decorate([
90
+ Struct.field(Asset)
91
+ ], debitdeposit.prototype, "locked", void 0);
92
+ __decorate([
93
+ Struct.field(Name)
94
+ ], debitdeposit.prototype, "fee_account", void 0);
95
+ __decorate([
96
+ Struct.field(Asset)
97
+ ], debitdeposit.prototype, "fee", void 0);
98
+ debitdeposit = __decorate([
99
+ Struct.type('debitdeposit')
100
+ ], debitdeposit);
101
+ Types.debitdeposit = debitdeposit;
102
+ let depositcfg_row = class depositcfg_row extends Struct {
103
+ };
104
+ __decorate([
105
+ Struct.field(Name)
106
+ ], depositcfg_row.prototype, "token_contract", void 0);
107
+ __decorate([
108
+ Struct.field(Asset.Symbol)
109
+ ], depositcfg_row.prototype, "token_symbol", void 0);
110
+ depositcfg_row = __decorate([
111
+ Struct.type('depositcfg_row')
112
+ ], depositcfg_row);
113
+ Types.depositcfg_row = depositcfg_row;
114
+ let enable = class enable extends Struct {
115
+ };
116
+ __decorate([
117
+ Struct.field('bool')
118
+ ], enable.prototype, "enabled", void 0);
119
+ enable = __decorate([
120
+ Struct.type('enable')
121
+ ], enable);
122
+ Types.enable = enable;
123
+ let enablegame = class enablegame extends Struct {
124
+ };
125
+ __decorate([
126
+ Struct.field(Name)
127
+ ], enablegame.prototype, "contract", void 0);
128
+ __decorate([
129
+ Struct.field('bool')
130
+ ], enablegame.prototype, "enabled", void 0);
131
+ enablegame = __decorate([
132
+ Struct.type('enablegame')
133
+ ], enablegame);
134
+ Types.enablegame = enablegame;
135
+ let foundcompany = class foundcompany extends Struct {
136
+ };
137
+ __decorate([
138
+ Struct.field(Name)
139
+ ], foundcompany.prototype, "account", void 0);
140
+ __decorate([
141
+ Struct.field('string')
142
+ ], foundcompany.prototype, "name", void 0);
143
+ foundcompany = __decorate([
144
+ Struct.type('foundcompany')
145
+ ], foundcompany);
146
+ Types.foundcompany = foundcompany;
147
+ let game_config = class game_config extends Struct {
148
+ };
149
+ __decorate([
150
+ Struct.field(Checksum256)
151
+ ], game_config.prototype, "seed", void 0);
152
+ __decorate([
153
+ Struct.field(UInt32)
154
+ ], game_config.prototype, "epochtime", void 0);
155
+ __decorate([
156
+ Struct.field(TimePointSec)
157
+ ], game_config.prototype, "start", void 0);
158
+ __decorate([
159
+ Struct.field(TimePointSec)
160
+ ], game_config.prototype, "end", void 0);
161
+ game_config = __decorate([
162
+ Struct.type('game_config')
163
+ ], game_config);
164
+ Types.game_config = game_config;
165
+ let game_meta = class game_meta extends Struct {
166
+ };
167
+ __decorate([
168
+ Struct.field('string')
169
+ ], game_meta.prototype, "name", void 0);
170
+ __decorate([
171
+ Struct.field('string')
172
+ ], game_meta.prototype, "description", void 0);
173
+ __decorate([
174
+ Struct.field('string')
175
+ ], game_meta.prototype, "url", void 0);
176
+ __decorate([
177
+ Struct.field('string')
178
+ ], game_meta.prototype, "version", void 0);
179
+ game_meta = __decorate([
180
+ Struct.type('game_meta')
181
+ ], game_meta);
182
+ Types.game_meta = game_meta;
183
+ let game_state = class game_state extends Struct {
184
+ };
185
+ __decorate([
186
+ Struct.field('bool')
187
+ ], game_state.prototype, "enabled", void 0);
188
+ game_state = __decorate([
189
+ Struct.type('game_state')
190
+ ], game_state);
191
+ Types.game_state = game_state;
192
+ let game_row = class game_row extends Struct {
193
+ };
194
+ __decorate([
195
+ Struct.field(Name)
196
+ ], game_row.prototype, "contract", void 0);
197
+ __decorate([
198
+ Struct.field(game_config)
199
+ ], game_row.prototype, "config", void 0);
200
+ __decorate([
201
+ Struct.field(game_meta)
202
+ ], game_row.prototype, "meta", void 0);
203
+ __decorate([
204
+ Struct.field(game_state)
205
+ ], game_row.prototype, "state", void 0);
206
+ game_row = __decorate([
207
+ Struct.type('game_row')
208
+ ], game_row);
209
+ Types.game_row = game_row;
210
+ let open = class open extends Struct {
211
+ };
212
+ __decorate([
213
+ Struct.field(Name)
214
+ ], open.prototype, "owner", void 0);
215
+ __decorate([
216
+ Struct.field(Name)
217
+ ], open.prototype, "token_contract", void 0);
218
+ __decorate([
219
+ Struct.field(Asset.Symbol)
220
+ ], open.prototype, "token_symbol", void 0);
221
+ open = __decorate([
222
+ Struct.type('open')
223
+ ], open);
224
+ Types.open = open;
225
+ let relgateasset = class relgateasset extends Struct {
226
+ };
227
+ __decorate([
228
+ Struct.field(UInt64)
229
+ ], relgateasset.prototype, "asset_id", void 0);
230
+ relgateasset = __decorate([
231
+ Struct.type('relgateasset')
232
+ ], relgateasset);
233
+ Types.relgateasset = relgateasset;
234
+ let relgateowner = class relgateowner extends Struct {
235
+ };
236
+ __decorate([
237
+ Struct.field(Name)
238
+ ], relgateowner.prototype, "owner", void 0);
239
+ relgateowner = __decorate([
240
+ Struct.type('relgateowner')
241
+ ], relgateowner);
242
+ Types.relgateowner = relgateowner;
243
+ let setepochtime = class setepochtime extends Struct {
244
+ };
245
+ __decorate([
246
+ Struct.field(Name)
247
+ ], setepochtime.prototype, "contract", void 0);
248
+ __decorate([
249
+ Struct.field(UInt32)
250
+ ], setepochtime.prototype, "epochtime", void 0);
251
+ setepochtime = __decorate([
252
+ Struct.type('setepochtime')
253
+ ], setepochtime);
254
+ Types.setepochtime = setepochtime;
255
+ let settoken = class settoken extends Struct {
256
+ };
257
+ __decorate([
258
+ Struct.field(Name)
259
+ ], settoken.prototype, "token_contract", void 0);
260
+ __decorate([
261
+ Struct.field(Asset.Symbol)
262
+ ], settoken.prototype, "token_symbol", void 0);
263
+ settoken = __decorate([
264
+ Struct.type('settoken')
265
+ ], settoken);
266
+ Types.settoken = settoken;
267
+ let startgame = class startgame extends Struct {
268
+ };
269
+ __decorate([
270
+ Struct.field(Name)
271
+ ], startgame.prototype, "contract", void 0);
272
+ __decorate([
273
+ Struct.field(game_config)
274
+ ], startgame.prototype, "config", void 0);
275
+ __decorate([
276
+ Struct.field(game_meta)
277
+ ], startgame.prototype, "meta", void 0);
278
+ __decorate([
279
+ Struct.field(game_state)
280
+ ], startgame.prototype, "state", void 0);
281
+ startgame = __decorate([
282
+ Struct.type('startgame')
283
+ ], startgame);
284
+ Types.startgame = startgame;
285
+ let state_row = class state_row extends Struct {
286
+ };
287
+ __decorate([
288
+ Struct.field('bool')
289
+ ], state_row.prototype, "enabled", void 0);
290
+ state_row = __decorate([
291
+ Struct.type('state_row')
292
+ ], state_row);
293
+ Types.state_row = state_row;
294
+ let unwrapcargo = class unwrapcargo extends Struct {
295
+ };
296
+ __decorate([
297
+ Struct.field(Name)
298
+ ], unwrapcargo.prototype, "game", void 0);
299
+ __decorate([
300
+ Struct.field(Name)
301
+ ], unwrapcargo.prototype, "owner", void 0);
302
+ __decorate([
303
+ Struct.field(UInt64)
304
+ ], unwrapcargo.prototype, "asset_id", void 0);
305
+ unwrapcargo = __decorate([
306
+ Struct.type('unwrapcargo')
307
+ ], unwrapcargo);
308
+ Types.unwrapcargo = unwrapcargo;
309
+ let unwrapcust_row = class unwrapcust_row extends Struct {
310
+ };
311
+ __decorate([
312
+ Struct.field(UInt64)
313
+ ], unwrapcust_row.prototype, "asset_id", void 0);
314
+ __decorate([
315
+ Struct.field(Name)
316
+ ], unwrapcust_row.prototype, "owner", void 0);
317
+ unwrapcust_row = __decorate([
318
+ Struct.type('unwrapcust_row')
319
+ ], unwrapcust_row);
320
+ Types.unwrapcust_row = unwrapcust_row;
321
+ let unwrapentity = class unwrapentity extends Struct {
322
+ };
323
+ __decorate([
324
+ Struct.field(Name)
325
+ ], unwrapentity.prototype, "game", void 0);
326
+ __decorate([
327
+ Struct.field(Name)
328
+ ], unwrapentity.prototype, "owner", void 0);
329
+ __decorate([
330
+ Struct.field(UInt64)
331
+ ], unwrapentity.prototype, "asset_id", void 0);
332
+ unwrapentity = __decorate([
333
+ Struct.type('unwrapentity')
334
+ ], unwrapentity);
335
+ Types.unwrapentity = unwrapentity;
336
+ let updategame = class updategame extends Struct {
337
+ };
338
+ __decorate([
339
+ Struct.field(Name)
340
+ ], updategame.prototype, "contract", void 0);
341
+ __decorate([
342
+ Struct.field(game_meta)
343
+ ], updategame.prototype, "meta", void 0);
344
+ updategame = __decorate([
345
+ Struct.type('updategame')
346
+ ], updategame);
347
+ Types.updategame = updategame;
348
+ let wipe = class wipe extends Struct {
349
+ };
350
+ wipe = __decorate([
351
+ Struct.type('wipe')
352
+ ], wipe);
353
+ Types.wipe = wipe;
354
+ let withdraw = class withdraw extends Struct {
355
+ };
356
+ __decorate([
357
+ Struct.field(Name)
358
+ ], withdraw.prototype, "owner", void 0);
359
+ __decorate([
360
+ Struct.field(ExtendedAsset)
361
+ ], withdraw.prototype, "quantity", void 0);
362
+ __decorate([
363
+ Struct.field('string')
364
+ ], withdraw.prototype, "memo", void 0);
365
+ withdraw = __decorate([
366
+ Struct.type('withdraw')
367
+ ], withdraw);
368
+ Types.withdraw = withdraw;
369
+ let wrapcargo = class wrapcargo extends Struct {
370
+ };
371
+ __decorate([
372
+ Struct.field(Name)
373
+ ], wrapcargo.prototype, "game", void 0);
374
+ __decorate([
375
+ Struct.field(Name)
376
+ ], wrapcargo.prototype, "owner", void 0);
377
+ __decorate([
378
+ Struct.field(UInt64)
379
+ ], wrapcargo.prototype, "entity_id", void 0);
380
+ __decorate([
381
+ Struct.field(UInt64)
382
+ ], wrapcargo.prototype, "nexus_id", void 0);
383
+ __decorate([
384
+ Struct.field(UInt64)
385
+ ], wrapcargo.prototype, "cargo_id", void 0);
386
+ __decorate([
387
+ Struct.field(UInt64)
388
+ ], wrapcargo.prototype, "quantity", void 0);
389
+ wrapcargo = __decorate([
390
+ Struct.type('wrapcargo')
391
+ ], wrapcargo);
392
+ Types.wrapcargo = wrapcargo;
393
+ let wrapentity = class wrapentity extends Struct {
394
+ };
395
+ __decorate([
396
+ Struct.field(Name)
397
+ ], wrapentity.prototype, "game", void 0);
398
+ __decorate([
399
+ Struct.field(Name)
400
+ ], wrapentity.prototype, "owner", void 0);
401
+ __decorate([
402
+ Struct.field(UInt64)
403
+ ], wrapentity.prototype, "entity_id", void 0);
404
+ __decorate([
405
+ Struct.field(UInt64)
406
+ ], wrapentity.prototype, "nexus_id", void 0);
407
+ wrapentity = __decorate([
408
+ Struct.type('wrapentity')
409
+ ], wrapentity);
410
+ Types.wrapentity = wrapentity;
411
+ let wrapgate_row = class wrapgate_row extends Struct {
412
+ };
413
+ __decorate([
414
+ Struct.field(Name)
415
+ ], wrapgate_row.prototype, "owner", void 0);
416
+ __decorate([
417
+ Struct.field(Name)
418
+ ], wrapgate_row.prototype, "game", void 0);
419
+ __decorate([
420
+ Struct.field(UInt64)
421
+ ], wrapgate_row.prototype, "last_asset_id", void 0);
422
+ wrapgate_row = __decorate([
423
+ Struct.type('wrapgate_row')
424
+ ], wrapgate_row);
425
+ Types.wrapgate_row = wrapgate_row;
426
+ })(Types$1 || (Types$1 = {}));
427
+ ({
428
+ balance: Types$1.balance_row,
429
+ company: Types$1.company_row,
430
+ depositcfg: Types$1.depositcfg_row,
431
+ games: Types$1.game_row,
432
+ state: Types$1.state_row,
433
+ unwrapcust: Types$1.unwrapcust_row,
434
+ wrapgate: Types$1.wrapgate_row,
435
+ });
436
+
437
+ const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDipAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGY29vcmRzC2Nvb3JkaW5hdGVzDGNsYWltc3RhcnRlcgABBW93bmVyBG5hbWUJY2xlYW5yc3ZwAAIFZXBvY2gGdWludDY0CG1heF9yb3dzBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BmNvbW1pdAtjaGVja3N1bTI1Ngpjb21taXRfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZjb21taXQLY2hlY2tzdW0yNTYJY29uZmlnbG9nAAEGY29uZmlnC2dhbWVfY29uZmlnC2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2PwVjcmFmdAAEAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdDWNyYWZ0ZXJfc3RhdHMAAgVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCGRlbW9saXNoAAEJZW50aXR5X2lkBnVpbnQ2NAZkZXBsb3kAAgJpZAZ1aW50NjQDcmVmCWNhcmdvX3JlZgpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAUBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhnYXRoZXJlcg9nYXRoZXJlcl9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8FbGFuZXMGbGFuZVtdDWVudGl0eV9sYXlvdXQAAg5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXRVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAsCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdDmVudGl0eV9zZXFfcm93AAEHbmV4dF9pZAZ1aW50NjQOZW50aXR5X3N1bW1hcnkACAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2lzX2lkbGUEYm9vbA5yZXNvbHZlZF9jb3VudAZ1aW50MzINcGVuZGluZ19jb3VudAZ1aW50MzIQZW50aXR5X3Rhc2tfaW5mbwAECWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQp0YXNrX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdCWVwb2NoX3JvdwAEBWVwb2NoBnVpbnQ2NApvcmFjbGVfaWRzBm5hbWVbXQl0aHJlc2hvbGQFdWludDgEc2VlZAtjaGVja3N1bTI1NgxmaXhjYXJnb21hc3MAAQllbnRpdHlfaWQGdWludDY0C2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAQJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyDmdhdGhlcmVyX3N0YXRzAAMFeWllbGQGdWludDE2BWRyYWluBnVpbnQzMgVkZXB0aAZ1aW50MTYMZ2VuZXNpc2ZsZWV0AAEIZW50aXRpZXMMZW50aXR5X3Jvd1tdCWdldGNvbmZpZwAACmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAMIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDMyC2ltcG9ydGNhcmdvAAEDcm93CWNhcmdvX3JvdwxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nBGxhbmUAAghsYW5lX2tleQV1aW50OAhzY2hlZHVsZQhzY2hlZHVsZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMgZ0aHJ1c3QGdWludDE2CHF1YW50aXR5BXVpbnQ4EGxvY2F0aW9uX2Rlcml2ZWQAAgxzdGF0aWNfcHJvcHMPbG9jYXRpb25fc3RhdGljBHNpemUGdWludDE2DWxvY2F0aW9uX2luZm8AAgZjb29yZHMLY29vcmRpbmF0ZXMJaXNfc3lzdGVtBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQzMgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfY2FyZ29faXRlbQAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMhBuZnRfaXRlbV9wYXlsb2FkAAIEaXRlbQ5uZnRfY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAMHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQt0ZW1wbGF0ZV9pZAVpbnQzMg1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQluZnRpbWd1cmwAAgRpdGVtCmNhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudBFvcmFjbGVfY29uZmlnX3JvdwABCXRocmVzaG9sZAV1aW50OApvcmFjbGVfcm93AAECaWQEbmFtZQ1wYWNrZWRfbW9kdWxlAAIHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0CnBsYWNlY2FyZ28AAwVvd25lcgRuYW1lB2hvc3RfaWQGdWludDY0CGFzc2V0X2lkBnVpbnQ2NAtwbGFjZWVudGl0eQADBW93bmVyBG5hbWUIYXNzZXRfaWQGdWludDY0D3RhcmdldF9uZXh1c19pZAZ1aW50NjQLcGxheWVyX2luZm8AAwVvd25lcgRuYW1lCWlzX3BsYXllcgRib29sDGNvbXBhbnlfbmFtZQZzdHJpbmcKcGxheWVyX3JvdwABBW93bmVyBG5hbWUPcHJvamVjdGVkX3N0YXRlAA4Fb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhnYXRoZXJlcg9nYXRoZXJlcl9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmhhdWxlcg1oYXVsZXJfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8IcmVjaGFyZ2UAAQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAIHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAcOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdDnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZwtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQFdWludDgUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10IcmV0YXJnZXQAAwlzb3VyY2VfaWQGdWludDY0CnRhc2tfaW5kZXgGdWludDY0C25ld19kZXN0X2lkBnVpbnQ2NAZyZXZlYWwAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGcmV2ZWFsC2NoZWNrc3VtMjU2CnJldmVhbF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBnJldmVhbAtjaGVja3N1bTI1NghybW1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwlzZXRuZnRjZmcAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDHNldHRocmVzaG9sZAABCXRocmVzaG9sZAV1aW50OAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUIc2xvdF9kZWYAAgR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAMHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgR0YXNrAAgEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQzMj8KdGFza19ldmVudAAKCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MzI/CGxhbmVfa2V5BXVpbnQ4DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXRF0ZW1wbGF0ZV9tZXRhX3JvdwADB2l0ZW1faWQGdWludDE2BGtpbmQEbmFtZQ1kaXNwbGF5X2xhYmVsBnN0cmluZwh0cmFuc2ZlcgADCXNvdXJjZV9pZAZ1aW50NjQHZGVzdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdBnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABQJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADndyYXBjb25maWdfcm93AAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQx3cmFwY29zdF9yb3cAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0VQAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1c6cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG5leHVzCnN1bW1hcnk6ICdBZGQgYSBuZXh1cyBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ3JlYXRlIGEgbmV3IG5leHVzIGVudGl0eSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuIE5leHVzZXMgYXJlIG93bmVkIGJ5IHRoZSBjb250cmFjdCBhbmQgc2VydmUgYXMgZml4ZWQgZ2F0aGVyaW5nIHBvaW50cyB3aGVyZSBwbGF5ZXJzIGNhbiB3cmFwLCB1bndyYXAsIGRlcGxveSwgYW5kIG90aGVyd2lzZSBpbnRlcmFjdCB3aXRoIE5GVC1iYWNrZWQgYXNzZXRzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABQEZlLUzIJYWRkb3JhY2xlAAAAAACANFU8BWJsZW5k/AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYmxlbmQKc3VtbWFyeTogJ0JsZW5kIGNhcmdvIHN0YWNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tYmluZSBtdWx0aXBsZSBjYXJnbyBzdGFja3Mgb2YgdGhlIHNhbWUgaXRlbSB0eXBlIGludG8gYSBzaW5nbGUgc3RhY2sgd2l0aCBuZXcgYmxlbmRlZCBzdGF0cy4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgAAyDTWFJ0+CWJ1aWxkcGxvdAAAAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4AAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24ukJWKCzuspmIMZ2VuZXNpc2ZsZWV0qQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2VuZXNpc2ZsZWV0CnN1bW1hcnk6ICdNaW50IHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbXBsYWNlIHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0OiBhIGNhbGxlci1zdXBwbGllZCBzZXQgb2YgZW50aXRpZXMgKHNoaXBzLCBzdHJ1Y3R1cmVzLCBhbmQgY29udGFpbmVycykgd3JpdHRlbiB0byB0aGUgd29ybGQgYXMtaXMuIFZhbGlkIG9ubHkgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZC4gVGhlIHN1cHBsaWVkIGVudGl0eSBpZHMgYXJlIGhvbm9yZWQgYW5kIHRoZSBpZCBzZXF1ZW5jZSBpcyBhZHZhbmNlZCBwYXN0IHRoZW07IGlkIDAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBHZW5lc2lzIE5leHVzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AQHaYVpWyYgpnZXRkZXBvc2l0AABUPI65qLJiC2dldGVsaWdpYmxlyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZWxpZ2libGUKc3VtbWFyeTogJ0dldCBlbGlnaWJsZSByZXNvdXJjZSBpdGVtIElEcyBhdCBhIGxvY2F0aW9uIGFuZCBzdHJhdHVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbGlzdCBvZiByZXNvdXJjZSBpdGVtIElEcyBlbGlnaWJsZSB0byBiZSBnYXRoZXJlZCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgYW5kIHN0cmF0dW0gZGVwdGguIEl0ZW1zIGFyZSBnYXRlZCBieSBib3RoIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIHByb2ZpbGUgYW5kIHRoZSBkZXB0aCB0aHJlc2hvbGQgZm9yIGVhY2ggdGllci4AAMAR5amyYglnZXRlbnRjbHOMAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRjbHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoT3JiaXRhbFZlc3NlbCwgUGxhbmV0YXJ5U3RydWN0dXJlKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgZW50aXR5IGNsYXNzIGlkZW50aWZpZXJzLgCwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgBMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AgMLm5DWzYgpnZXRuZnRiYXNlAAAAXdPlNbNiCmdldG5mdGluZm/wAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZnRpbmZvCnN1bW1hcnk6ICdHZXQgTkZUIHNjaGVtYSBhbmQgdGVtcGxhdGUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIEF0b21pY0Fzc2V0cyBzY2hlbWFzIGFuZCB0ZW1wbGF0ZXMgdGhlIGdhbWUgY29udHJhY3QgZXhwZWN0cywgcGx1cyB0aGUgY3VycmVudCBgaXRlbV9pZCDihpIgKHRlbXBsYXRlX2lkLCBzY2hlbWFfbmFtZSlgIG1hcHBpbmcgc3RvcmVkIGluIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBzeW5jIGF0b21pY2Fzc2V0cyBzdGF0ZSB3aXRoIHRoZSBjb250cmFjdC4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLqCyyfjRW7NiDGdldHByb2pzdGF0ZcsDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHByb2pzdGF0ZQpzdW1tYXJ5OiAnR2V0IHByb2plY3RlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBwcm9qZWN0ZWQgc3RhdGUgb2YgYW4gZW50aXR5IGFmdGVyIGFwcGx5aW5nIHRoZSBuZXh0IHRhc2tfY291bnQgc2NoZWR1bGVkIHRhc2tzIChvciBhbGwgdGFza3MgaWYgdGFza19jb3VudCBpcyBvbWl0dGVkKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBwcmV2aWV3IHRoZSByZXN1bHQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUgd2l0aG91dCByZXNvbHZpbmcgb24tY2hhaW4uAABQ1SF1s2IJZ2V0cmVjaXBlpgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlCnN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgY3JhZnRpbmcgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcmVjaXBlIHdob3NlIG91dHB1dCBtYXRjaGVzIHRoZSBnaXZlbiBpdGVtIGlkLCBpbmNsdWRpbmcgaXRzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRpc3BsYXkgY3JhZnRpbmcgcmVxdWlyZW1lbnRzLgAAVtUhdbNiCmdldHJlY2lwZXOsAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGVzCnN1bW1hcnk6ICdMaXN0IGNyYWZ0aW5nIHJlY2lwZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY3JhZnRpbmcgcmVjaXBlcyBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgbG93ZXIgYm91bmQgb3V0cHV0IGl0ZW0gaWQsIHVwIHRvIHRoZSBzcGVjaWZpZWQgbGltaXQuIEVhY2ggZW50cnkgaW5jbHVkZXMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uAADOBmF1s2IKZ2V0cmVzY2F0c54DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2NhdHMKc3VtbWFyeTogJ0dldCByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKG9yZSwgZ2FzLCByZWdvbGl0aCwgYmlvbWFzcywgY3J5c3RhbCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIHJlc291cmNlIHN1YnR5cGUgaWRlbnRpZmllcnMuALDaV2F1s2ILZ2V0cmVzZXJ2ZXP8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNlcnZlcwpzdW1tYXJ5OiAnR2V0IGN1cnJlbnQgcmVzZXJ2ZSBtb2RpZmljYXRpb25zIGF0IGEgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGNoYWluJ3MgbW9kaWZpY2F0aW9ucyB0byBkZXJpdmVkIHJlc2VydmVzIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlIGZvciB0aGUgY3VycmVudCBlcG9jaCBhcyBhIGxpc3Qgb2Yge3N0cmF0dW0sIHJlbWFpbmluZ30gcGFpcnMuIFN0cmF0YSBub3QgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgdXNlIHRoZWlyIGRlcml2ZWQgaW5pdGlhbCByZXNlcnZlLiBDb21wb3NlIHdpdGggU0RLIGRlcml2YXRpb24gdG8gZ2V0IHRoZSBmdWxsIHBlci1sb2NhdGlvbiBzdHJhdGEgdmlldy6AFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28A4LPLU+VLq3QMaW1wb3J0ZW50aXR5AACqppflS6t0C2ltcG9ydGdyb3VwAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAAAoaaa6BnJlbmFtZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgAAAFmxa7K6CHJldGFyZ2V0AAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAKDsGsRpxglzdG93Y2FyZ2/VBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93Y2FyZ28Kc3VtbWFyeTogJ1Jlc2VydmUgYSBjYXJnbyBzdGFjayBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhbmQgY29uc3VtZXMgYSBjYXJnbyBzdGFjayBvbiBhIGxpdmUgZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVmFsaWRhdGVzIGVudGl0eSBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCBwcmVzZW5jZSBhdCB0aGUgbmV4dXMsIGFuZCBjb25maXJtcyB0aGUgdGFyZ2V0IGNhcmdvIHN0YWNrIGlzIGF2YWlsYWJsZSBhbmQgbm90IHJlc2VydmVkIGJ5IGEgcGVuZGluZyB0YXNrLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBORlQncyBpbW11dGFibGUgZGF0YSwgYW5kIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0IGJlZm9yZSBjb25zdW1pbmcgdGhlIGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAIDPLk/FacYKc3Rvd2VudGl0eZkFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3dlbnRpdHkKc3VtbWFyeTogJ1Jlc2VydmUgYW4gZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGEgd2hvbGUgZW50aXR5IChzaGlwLCBjb250YWluZXIsIG9yIHBsYW5ldGFyeSBzdHJ1Y3R1cmUpIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnbyBhbmQgbm8gc2NoZWR1bGVkIHRhc2tzLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBlbnRpdHkgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0LCBhbmQgZXJhc2VzIHRoZSBlbnRpdHkgZnJvbSB0aGUgd29ybGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgIo6UVkNxwpzd2FwbW9kdWxlAAAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEQAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABg6UxEA2k2NAAACWNsYWltX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAADQAAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnAEB2mFaVsmIOZXh0ZW5kZWRfYXNzZXQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAAAAWbFrsroMdGFza19yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
438
+ ABI.from(abiBlob);
439
+ var Types;
440
+ (function (Types) {
441
+ let packed_module = class packed_module extends Struct {
442
+ };
443
+ __decorate([
444
+ Struct.field(UInt16)
445
+ ], packed_module.prototype, "item_id", void 0);
446
+ __decorate([
447
+ Struct.field(UInt64)
448
+ ], packed_module.prototype, "stats", void 0);
449
+ packed_module = __decorate([
450
+ Struct.type('packed_module')
451
+ ], packed_module);
452
+ Types.packed_module = packed_module;
453
+ let module_entry = class module_entry extends Struct {
454
+ };
455
+ __decorate([
456
+ Struct.field(UInt8)
457
+ ], module_entry.prototype, "type", void 0);
458
+ __decorate([
459
+ Struct.field(packed_module, { optional: true })
460
+ ], module_entry.prototype, "installed", void 0);
461
+ module_entry = __decorate([
462
+ Struct.type('module_entry')
463
+ ], module_entry);
464
+ Types.module_entry = module_entry;
465
+ let cargo_ref = class cargo_ref extends Struct {
466
+ };
467
+ __decorate([
468
+ Struct.field(UInt16)
469
+ ], cargo_ref.prototype, "item_id", void 0);
470
+ __decorate([
471
+ Struct.field(UInt64)
472
+ ], cargo_ref.prototype, "stats", void 0);
473
+ __decorate([
474
+ Struct.field(module_entry, { array: true })
475
+ ], cargo_ref.prototype, "modules", void 0);
476
+ __decorate([
477
+ Struct.field(UInt64, { optional: true })
478
+ ], cargo_ref.prototype, "entity_id", void 0);
479
+ cargo_ref = __decorate([
480
+ Struct.type('cargo_ref')
481
+ ], cargo_ref);
482
+ Types.cargo_ref = cargo_ref;
483
+ let addmodule = class addmodule extends Struct {
484
+ };
485
+ __decorate([
486
+ Struct.field(UInt64)
487
+ ], addmodule.prototype, "entity_id", void 0);
488
+ __decorate([
489
+ Struct.field(UInt8)
490
+ ], addmodule.prototype, "module_index", void 0);
491
+ __decorate([
492
+ Struct.field(cargo_ref)
493
+ ], addmodule.prototype, "module_ref", void 0);
494
+ __decorate([
495
+ Struct.field(cargo_ref, { optional: true })
496
+ ], addmodule.prototype, "target_ref", void 0);
497
+ addmodule = __decorate([
498
+ Struct.type('addmodule')
499
+ ], addmodule);
500
+ Types.addmodule = addmodule;
501
+ let addnexus = class addnexus extends Struct {
502
+ };
503
+ __decorate([
504
+ Struct.field('string')
505
+ ], addnexus.prototype, "nexus_name", void 0);
506
+ __decorate([
507
+ Struct.field(Int64)
508
+ ], addnexus.prototype, "x", void 0);
509
+ __decorate([
510
+ Struct.field(Int64)
511
+ ], addnexus.prototype, "y", void 0);
512
+ addnexus = __decorate([
513
+ Struct.type('addnexus')
514
+ ], addnexus);
515
+ Types.addnexus = addnexus;
516
+ let addoracle = class addoracle extends Struct {
517
+ };
518
+ __decorate([
519
+ Struct.field(Name)
520
+ ], addoracle.prototype, "oracle_id", void 0);
521
+ addoracle = __decorate([
522
+ Struct.type('addoracle')
523
+ ], addoracle);
524
+ Types.addoracle = addoracle;
525
+ let cargo_item = class cargo_item extends Struct {
526
+ };
527
+ __decorate([
528
+ Struct.field(UInt16)
529
+ ], cargo_item.prototype, "item_id", void 0);
530
+ __decorate([
531
+ Struct.field(UInt64)
532
+ ], cargo_item.prototype, "stats", void 0);
533
+ __decorate([
534
+ Struct.field(module_entry, { array: true })
535
+ ], cargo_item.prototype, "modules", void 0);
536
+ __decorate([
537
+ Struct.field(UInt32)
538
+ ], cargo_item.prototype, "quantity", void 0);
539
+ __decorate([
540
+ Struct.field(UInt64, { optional: true })
541
+ ], cargo_item.prototype, "entity_id", void 0);
542
+ cargo_item = __decorate([
543
+ Struct.type('cargo_item')
544
+ ], cargo_item);
545
+ Types.cargo_item = cargo_item;
546
+ let blend = class blend extends Struct {
547
+ };
548
+ __decorate([
549
+ Struct.field(UInt64)
550
+ ], blend.prototype, "id", void 0);
551
+ __decorate([
552
+ Struct.field(cargo_item, { array: true })
553
+ ], blend.prototype, "inputs", void 0);
554
+ blend = __decorate([
555
+ Struct.type('blend')
556
+ ], blend);
557
+ Types.blend = blend;
558
+ let buildplot = class buildplot extends Struct {
559
+ };
560
+ __decorate([
561
+ Struct.field(UInt64)
562
+ ], buildplot.prototype, "builder_id", void 0);
563
+ __decorate([
564
+ Struct.field(UInt64)
565
+ ], buildplot.prototype, "plot_id", void 0);
566
+ buildplot = __decorate([
567
+ Struct.type('buildplot')
568
+ ], buildplot);
569
+ Types.buildplot = buildplot;
570
+ let cancel = class cancel extends Struct {
571
+ };
572
+ __decorate([
573
+ Struct.field(UInt64)
574
+ ], cancel.prototype, "id", void 0);
575
+ __decorate([
576
+ Struct.field(UInt8)
577
+ ], cancel.prototype, "lane_key", void 0);
578
+ __decorate([
579
+ Struct.field(UInt64)
580
+ ], cancel.prototype, "count", void 0);
581
+ cancel = __decorate([
582
+ Struct.type('cancel')
583
+ ], cancel);
584
+ Types.cancel = cancel;
585
+ let entity_ref = class entity_ref extends Struct {
586
+ };
587
+ __decorate([
588
+ Struct.field(Name)
589
+ ], entity_ref.prototype, "entity_type", void 0);
590
+ __decorate([
591
+ Struct.field(UInt64)
592
+ ], entity_ref.prototype, "entity_id", void 0);
593
+ entity_ref = __decorate([
594
+ Struct.type('entity_ref')
595
+ ], entity_ref);
596
+ Types.entity_ref = entity_ref;
597
+ let cancel_results = class cancel_results extends Struct {
598
+ };
599
+ __decorate([
600
+ Struct.field(UInt64)
601
+ ], cancel_results.prototype, "entity_id", void 0);
602
+ __decorate([
603
+ Struct.field(Name)
604
+ ], cancel_results.prototype, "entity_type", void 0);
605
+ __decorate([
606
+ Struct.field(UInt8)
607
+ ], cancel_results.prototype, "cancelled_count", void 0);
608
+ __decorate([
609
+ Struct.field(TimePoint, { optional: true })
610
+ ], cancel_results.prototype, "schedule_started", void 0);
611
+ __decorate([
612
+ Struct.field(UInt64, { optional: true })
613
+ ], cancel_results.prototype, "entitygroup", void 0);
614
+ __decorate([
615
+ Struct.field(entity_ref, { array: true, optional: true })
616
+ ], cancel_results.prototype, "group_members", void 0);
617
+ cancel_results = __decorate([
618
+ Struct.type('cancel_results')
619
+ ], cancel_results);
620
+ Types.cancel_results = cancel_results;
621
+ let cargo_row = class cargo_row extends Struct {
622
+ };
623
+ __decorate([
624
+ Struct.field(UInt64)
625
+ ], cargo_row.prototype, "id", void 0);
626
+ __decorate([
627
+ Struct.field(UInt64)
628
+ ], cargo_row.prototype, "entity_id", void 0);
629
+ __decorate([
630
+ Struct.field(UInt64)
631
+ ], cargo_row.prototype, "item_id", void 0);
632
+ __decorate([
633
+ Struct.field(UInt64)
634
+ ], cargo_row.prototype, "quantity", void 0);
635
+ __decorate([
636
+ Struct.field(UInt64)
637
+ ], cargo_row.prototype, "stats", void 0);
638
+ __decorate([
639
+ Struct.field(module_entry, { array: true })
640
+ ], cargo_row.prototype, "modules", void 0);
641
+ __decorate([
642
+ Struct.field(UInt64, { optional: true })
643
+ ], cargo_row.prototype, "sequence_id", void 0);
644
+ cargo_row = __decorate([
645
+ Struct.type('cargo_row')
646
+ ], cargo_row);
647
+ Types.cargo_row = cargo_row;
648
+ let cargo_view = class cargo_view extends Struct {
649
+ };
650
+ __decorate([
651
+ Struct.field(UInt16)
652
+ ], cargo_view.prototype, "item_id", void 0);
653
+ __decorate([
654
+ Struct.field(UInt64)
655
+ ], cargo_view.prototype, "stats", void 0);
656
+ __decorate([
657
+ Struct.field(module_entry, { array: true })
658
+ ], cargo_view.prototype, "modules", void 0);
659
+ __decorate([
660
+ Struct.field(UInt32)
661
+ ], cargo_view.prototype, "quantity", void 0);
662
+ __decorate([
663
+ Struct.field(UInt64)
664
+ ], cargo_view.prototype, "id", void 0);
665
+ __decorate([
666
+ Struct.field(UInt64, { optional: true })
667
+ ], cargo_view.prototype, "entity_id", void 0);
668
+ cargo_view = __decorate([
669
+ Struct.type('cargo_view')
670
+ ], cargo_view);
671
+ Types.cargo_view = cargo_view;
672
+ let claim_row = class claim_row extends Struct {
673
+ };
674
+ __decorate([
675
+ Struct.field(Name)
676
+ ], claim_row.prototype, "owner", void 0);
677
+ claim_row = __decorate([
678
+ Struct.type('claim_row')
679
+ ], claim_row);
680
+ Types.claim_row = claim_row;
681
+ let coordinates = class coordinates extends Struct {
682
+ };
683
+ __decorate([
684
+ Struct.field(Int64)
685
+ ], coordinates.prototype, "x", void 0);
686
+ __decorate([
687
+ Struct.field(Int64)
688
+ ], coordinates.prototype, "y", void 0);
689
+ __decorate([
690
+ Struct.field(UInt16, { optional: true })
691
+ ], coordinates.prototype, "z", void 0);
692
+ coordinates = __decorate([
693
+ Struct.type('coordinates')
694
+ ], coordinates);
695
+ Types.coordinates = coordinates;
696
+ let claimplot = class claimplot extends Struct {
697
+ };
698
+ __decorate([
699
+ Struct.field(UInt64)
700
+ ], claimplot.prototype, "builder_id", void 0);
701
+ __decorate([
702
+ Struct.field(UInt16)
703
+ ], claimplot.prototype, "target_item_id", void 0);
704
+ __decorate([
705
+ Struct.field(coordinates)
706
+ ], claimplot.prototype, "coords", void 0);
707
+ claimplot = __decorate([
708
+ Struct.type('claimplot')
709
+ ], claimplot);
710
+ Types.claimplot = claimplot;
711
+ let claimstarter = class claimstarter extends Struct {
712
+ };
713
+ __decorate([
714
+ Struct.field(Name)
715
+ ], claimstarter.prototype, "owner", void 0);
716
+ claimstarter = __decorate([
717
+ Struct.type('claimstarter')
718
+ ], claimstarter);
719
+ Types.claimstarter = claimstarter;
720
+ let cleanrsvp = class cleanrsvp extends Struct {
721
+ };
722
+ __decorate([
723
+ Struct.field(UInt64)
724
+ ], cleanrsvp.prototype, "epoch", void 0);
725
+ __decorate([
726
+ Struct.field(UInt64)
727
+ ], cleanrsvp.prototype, "max_rows", void 0);
728
+ cleanrsvp = __decorate([
729
+ Struct.type('cleanrsvp')
730
+ ], cleanrsvp);
731
+ Types.cleanrsvp = cleanrsvp;
732
+ let cleartable = class cleartable extends Struct {
733
+ };
734
+ __decorate([
735
+ Struct.field(Name)
736
+ ], cleartable.prototype, "table_name", void 0);
737
+ __decorate([
738
+ Struct.field(Name, { optional: true })
739
+ ], cleartable.prototype, "scope", void 0);
740
+ __decorate([
741
+ Struct.field(UInt64, { optional: true })
742
+ ], cleartable.prototype, "max_rows", void 0);
743
+ cleartable = __decorate([
744
+ Struct.type('cleartable')
745
+ ], cleartable);
746
+ Types.cleartable = cleartable;
747
+ let commit = class commit extends Struct {
748
+ };
749
+ __decorate([
750
+ Struct.field(Name)
751
+ ], commit.prototype, "oracle_id", void 0);
752
+ __decorate([
753
+ Struct.field(UInt64)
754
+ ], commit.prototype, "epoch", void 0);
755
+ __decorate([
756
+ Struct.field(Checksum256)
757
+ ], commit.prototype, "commit", void 0);
758
+ commit = __decorate([
759
+ Struct.type('commit')
760
+ ], commit);
761
+ Types.commit = commit;
762
+ let commit_row = class commit_row extends Struct {
763
+ };
764
+ __decorate([
765
+ Struct.field(UInt64)
766
+ ], commit_row.prototype, "id", void 0);
767
+ __decorate([
768
+ Struct.field(UInt64)
769
+ ], commit_row.prototype, "epoch", void 0);
770
+ __decorate([
771
+ Struct.field(Name)
772
+ ], commit_row.prototype, "oracle_id", void 0);
773
+ __decorate([
774
+ Struct.field(Checksum256)
775
+ ], commit_row.prototype, "commit", void 0);
776
+ commit_row = __decorate([
777
+ Struct.type('commit_row')
778
+ ], commit_row);
779
+ Types.commit_row = commit_row;
780
+ let entity_defaults = class entity_defaults extends Struct {
781
+ };
782
+ __decorate([
783
+ Struct.field(UInt16)
784
+ ], entity_defaults.prototype, "warehouse_z", void 0);
785
+ __decorate([
786
+ Struct.field(UInt16)
787
+ ], entity_defaults.prototype, "container_z", void 0);
788
+ entity_defaults = __decorate([
789
+ Struct.type('entity_defaults')
790
+ ], entity_defaults);
791
+ Types.entity_defaults = entity_defaults;
792
+ let item_def = class item_def extends Struct {
793
+ };
794
+ __decorate([
795
+ Struct.field(UInt16)
796
+ ], item_def.prototype, "id", void 0);
797
+ __decorate([
798
+ Struct.field(UInt32)
799
+ ], item_def.prototype, "mass", void 0);
800
+ __decorate([
801
+ Struct.field(UInt8)
802
+ ], item_def.prototype, "type", void 0);
803
+ __decorate([
804
+ Struct.field(UInt8)
805
+ ], item_def.prototype, "subtype", void 0);
806
+ __decorate([
807
+ Struct.field(UInt8)
808
+ ], item_def.prototype, "tier", void 0);
809
+ item_def = __decorate([
810
+ Struct.type('item_def')
811
+ ], item_def);
812
+ Types.item_def = item_def;
813
+ let game_config = class game_config extends Struct {
814
+ };
815
+ __decorate([
816
+ Struct.field(UInt32)
817
+ ], game_config.prototype, "version", void 0);
818
+ __decorate([
819
+ Struct.field(entity_defaults)
820
+ ], game_config.prototype, "defaults", void 0);
821
+ __decorate([
822
+ Struct.field(item_def, { array: true })
823
+ ], game_config.prototype, "items", void 0);
824
+ game_config = __decorate([
825
+ Struct.type('game_config')
826
+ ], game_config);
827
+ Types.game_config = game_config;
828
+ let configlog = class configlog extends Struct {
829
+ };
830
+ __decorate([
831
+ Struct.field(game_config)
832
+ ], configlog.prototype, "config", void 0);
833
+ configlog = __decorate([
834
+ Struct.type('configlog')
835
+ ], configlog);
836
+ Types.configlog = configlog;
837
+ let craft = class craft extends Struct {
838
+ };
839
+ __decorate([
840
+ Struct.field(UInt64)
841
+ ], craft.prototype, "id", void 0);
842
+ __decorate([
843
+ Struct.field(UInt16)
844
+ ], craft.prototype, "recipe_id", void 0);
845
+ __decorate([
846
+ Struct.field(UInt32)
847
+ ], craft.prototype, "quantity", void 0);
848
+ __decorate([
849
+ Struct.field(cargo_item, { array: true })
850
+ ], craft.prototype, "inputs", void 0);
851
+ craft = __decorate([
852
+ Struct.type('craft')
853
+ ], craft);
854
+ Types.craft = craft;
855
+ let crafter_stats = class crafter_stats extends Struct {
856
+ };
857
+ __decorate([
858
+ Struct.field(UInt16)
859
+ ], crafter_stats.prototype, "speed", void 0);
860
+ __decorate([
861
+ Struct.field(UInt32)
862
+ ], crafter_stats.prototype, "drain", void 0);
863
+ crafter_stats = __decorate([
864
+ Struct.type('crafter_stats')
865
+ ], crafter_stats);
866
+ Types.crafter_stats = crafter_stats;
867
+ let demolish = class demolish extends Struct {
868
+ };
869
+ __decorate([
870
+ Struct.field(UInt64)
871
+ ], demolish.prototype, "entity_id", void 0);
872
+ demolish = __decorate([
873
+ Struct.type('demolish')
874
+ ], demolish);
875
+ Types.demolish = demolish;
876
+ let deploy = class deploy extends Struct {
877
+ };
878
+ __decorate([
879
+ Struct.field(UInt64)
880
+ ], deploy.prototype, "id", void 0);
881
+ __decorate([
882
+ Struct.field(cargo_ref)
883
+ ], deploy.prototype, "ref", void 0);
884
+ deploy = __decorate([
885
+ Struct.type('deploy')
886
+ ], deploy);
887
+ Types.deploy = deploy;
888
+ let descentity = class descentity extends Struct {
889
+ };
890
+ __decorate([
891
+ Struct.field(UInt16)
892
+ ], descentity.prototype, "item_id", void 0);
893
+ __decorate([
894
+ Struct.field(UInt64)
895
+ ], descentity.prototype, "hull_stats", void 0);
896
+ __decorate([
897
+ Struct.field(UInt16, { array: true })
898
+ ], descentity.prototype, "module_items", void 0);
899
+ __decorate([
900
+ Struct.field(UInt64, { array: true })
901
+ ], descentity.prototype, "module_stats", void 0);
902
+ descentity = __decorate([
903
+ Struct.type('descentity')
904
+ ], descentity);
905
+ Types.descentity = descentity;
906
+ let enable = class enable extends Struct {
907
+ };
908
+ __decorate([
909
+ Struct.field('bool')
910
+ ], enable.prototype, "enabled", void 0);
911
+ enable = __decorate([
912
+ Struct.type('enable')
913
+ ], enable);
914
+ Types.enable = enable;
915
+ let energy_stats = class energy_stats extends Struct {
916
+ };
917
+ __decorate([
918
+ Struct.field(UInt32)
919
+ ], energy_stats.prototype, "capacity", void 0);
920
+ __decorate([
921
+ Struct.field(UInt32)
922
+ ], energy_stats.prototype, "recharge", void 0);
923
+ energy_stats = __decorate([
924
+ Struct.type('energy_stats')
925
+ ], energy_stats);
926
+ Types.energy_stats = energy_stats;
927
+ let entity_current_state = class entity_current_state extends Struct {
928
+ };
929
+ __decorate([
930
+ Struct.field(coordinates)
931
+ ], entity_current_state.prototype, "coordinates", void 0);
932
+ __decorate([
933
+ Struct.field(UInt32)
934
+ ], entity_current_state.prototype, "energy", void 0);
935
+ entity_current_state = __decorate([
936
+ Struct.type('entity_current_state')
937
+ ], entity_current_state);
938
+ Types.entity_current_state = entity_current_state;
939
+ let movement_stats = class movement_stats extends Struct {
940
+ };
941
+ __decorate([
942
+ Struct.field(UInt32)
943
+ ], movement_stats.prototype, "thrust", void 0);
944
+ __decorate([
945
+ Struct.field(UInt32)
946
+ ], movement_stats.prototype, "drain", void 0);
947
+ movement_stats = __decorate([
948
+ Struct.type('movement_stats')
949
+ ], movement_stats);
950
+ Types.movement_stats = movement_stats;
951
+ let warp_stats = class warp_stats extends Struct {
952
+ };
953
+ __decorate([
954
+ Struct.field(UInt32)
955
+ ], warp_stats.prototype, "range", void 0);
956
+ warp_stats = __decorate([
957
+ Struct.type('warp_stats')
958
+ ], warp_stats);
959
+ Types.warp_stats = warp_stats;
960
+ let gatherer_stats = class gatherer_stats extends Struct {
961
+ };
962
+ __decorate([
963
+ Struct.field(UInt16)
964
+ ], gatherer_stats.prototype, "yield", void 0);
965
+ __decorate([
966
+ Struct.field(UInt32)
967
+ ], gatherer_stats.prototype, "drain", void 0);
968
+ __decorate([
969
+ Struct.field(UInt16)
970
+ ], gatherer_stats.prototype, "depth", void 0);
971
+ gatherer_stats = __decorate([
972
+ Struct.type('gatherer_stats')
973
+ ], gatherer_stats);
974
+ Types.gatherer_stats = gatherer_stats;
975
+ let loader_stats = class loader_stats extends Struct {
976
+ };
977
+ __decorate([
978
+ Struct.field(UInt32)
979
+ ], loader_stats.prototype, "mass", void 0);
980
+ __decorate([
981
+ Struct.field(UInt16)
982
+ ], loader_stats.prototype, "thrust", void 0);
983
+ __decorate([
984
+ Struct.field(UInt8)
985
+ ], loader_stats.prototype, "quantity", void 0);
986
+ loader_stats = __decorate([
987
+ Struct.type('loader_stats')
988
+ ], loader_stats);
989
+ Types.loader_stats = loader_stats;
990
+ let hauler_stats = class hauler_stats extends Struct {
991
+ };
992
+ __decorate([
993
+ Struct.field(UInt8)
994
+ ], hauler_stats.prototype, "capacity", void 0);
995
+ __decorate([
996
+ Struct.field(UInt16)
997
+ ], hauler_stats.prototype, "efficiency", void 0);
998
+ __decorate([
999
+ Struct.field(UInt32)
1000
+ ], hauler_stats.prototype, "drain", void 0);
1001
+ hauler_stats = __decorate([
1002
+ Struct.type('hauler_stats')
1003
+ ], hauler_stats);
1004
+ Types.hauler_stats = hauler_stats;
1005
+ let task = class task extends Struct {
1006
+ };
1007
+ __decorate([
1008
+ Struct.field(UInt8)
1009
+ ], task.prototype, "type", void 0);
1010
+ __decorate([
1011
+ Struct.field(UInt32)
1012
+ ], task.prototype, "duration", void 0);
1013
+ __decorate([
1014
+ Struct.field(UInt8)
1015
+ ], task.prototype, "cancelable", void 0);
1016
+ __decorate([
1017
+ Struct.field(coordinates, { optional: true })
1018
+ ], task.prototype, "coordinates", void 0);
1019
+ __decorate([
1020
+ Struct.field(cargo_item, { array: true })
1021
+ ], task.prototype, "cargo", void 0);
1022
+ __decorate([
1023
+ Struct.field(entity_ref, { optional: true })
1024
+ ], task.prototype, "entitytarget", void 0);
1025
+ __decorate([
1026
+ Struct.field(UInt64, { optional: true })
1027
+ ], task.prototype, "entitygroup", void 0);
1028
+ __decorate([
1029
+ Struct.field(UInt32, { optional: true })
1030
+ ], task.prototype, "energy_cost", void 0);
1031
+ task = __decorate([
1032
+ Struct.type('task')
1033
+ ], task);
1034
+ Types.task = task;
1035
+ let schedule = class schedule extends Struct {
1036
+ };
1037
+ __decorate([
1038
+ Struct.field(TimePoint)
1039
+ ], schedule.prototype, "started", void 0);
1040
+ __decorate([
1041
+ Struct.field(task, { array: true })
1042
+ ], schedule.prototype, "tasks", void 0);
1043
+ schedule = __decorate([
1044
+ Struct.type('schedule')
1045
+ ], schedule);
1046
+ Types.schedule = schedule;
1047
+ let lane = class lane extends Struct {
1048
+ };
1049
+ __decorate([
1050
+ Struct.field(UInt8)
1051
+ ], lane.prototype, "lane_key", void 0);
1052
+ __decorate([
1053
+ Struct.field(schedule)
1054
+ ], lane.prototype, "schedule", void 0);
1055
+ lane = __decorate([
1056
+ Struct.type('lane')
1057
+ ], lane);
1058
+ Types.lane = lane;
1059
+ let entity_info = class entity_info extends Struct {
1060
+ };
1061
+ __decorate([
1062
+ Struct.field(Name)
1063
+ ], entity_info.prototype, "type", void 0);
1064
+ __decorate([
1065
+ Struct.field(UInt64)
1066
+ ], entity_info.prototype, "id", void 0);
1067
+ __decorate([
1068
+ Struct.field(Name)
1069
+ ], entity_info.prototype, "owner", void 0);
1070
+ __decorate([
1071
+ Struct.field('string')
1072
+ ], entity_info.prototype, "entity_name", void 0);
1073
+ __decorate([
1074
+ Struct.field(coordinates)
1075
+ ], entity_info.prototype, "coordinates", void 0);
1076
+ __decorate([
1077
+ Struct.field(UInt16)
1078
+ ], entity_info.prototype, "item_id", void 0);
1079
+ __decorate([
1080
+ Struct.field(UInt32)
1081
+ ], entity_info.prototype, "cargomass", void 0);
1082
+ __decorate([
1083
+ Struct.field(cargo_view, { array: true })
1084
+ ], entity_info.prototype, "cargo", void 0);
1085
+ __decorate([
1086
+ Struct.field(module_entry, { array: true })
1087
+ ], entity_info.prototype, "modules", void 0);
1088
+ __decorate([
1089
+ Struct.field(UInt32, { optional: true })
1090
+ ], entity_info.prototype, "energy", void 0);
1091
+ __decorate([
1092
+ Struct.field(UInt32, { optional: true })
1093
+ ], entity_info.prototype, "hullmass", void 0);
1094
+ __decorate([
1095
+ Struct.field(UInt32, { optional: true })
1096
+ ], entity_info.prototype, "capacity", void 0);
1097
+ __decorate([
1098
+ Struct.field(movement_stats, { optional: true })
1099
+ ], entity_info.prototype, "engines", void 0);
1100
+ __decorate([
1101
+ Struct.field(warp_stats, { optional: true })
1102
+ ], entity_info.prototype, "warp", void 0);
1103
+ __decorate([
1104
+ Struct.field(energy_stats, { optional: true })
1105
+ ], entity_info.prototype, "generator", void 0);
1106
+ __decorate([
1107
+ Struct.field(gatherer_stats, { optional: true })
1108
+ ], entity_info.prototype, "gatherer", void 0);
1109
+ __decorate([
1110
+ Struct.field(loader_stats, { optional: true })
1111
+ ], entity_info.prototype, "loaders", void 0);
1112
+ __decorate([
1113
+ Struct.field(hauler_stats, { optional: true })
1114
+ ], entity_info.prototype, "hauler", void 0);
1115
+ __decorate([
1116
+ Struct.field(crafter_stats, { optional: true })
1117
+ ], entity_info.prototype, "crafter", void 0);
1118
+ __decorate([
1119
+ Struct.field(lane, { array: true })
1120
+ ], entity_info.prototype, "lanes", void 0);
1121
+ entity_info = __decorate([
1122
+ Struct.type('entity_info')
1123
+ ], entity_info);
1124
+ Types.entity_info = entity_info;
1125
+ let slot_def = class slot_def extends Struct {
1126
+ };
1127
+ __decorate([
1128
+ Struct.field(UInt8)
1129
+ ], slot_def.prototype, "type", void 0);
1130
+ __decorate([
1131
+ Struct.field(UInt16)
1132
+ ], slot_def.prototype, "output_pct", void 0);
1133
+ slot_def = __decorate([
1134
+ Struct.type('slot_def')
1135
+ ], slot_def);
1136
+ Types.slot_def = slot_def;
1137
+ let entity_layout = class entity_layout extends Struct {
1138
+ };
1139
+ __decorate([
1140
+ Struct.field(UInt16)
1141
+ ], entity_layout.prototype, "entity_item_id", void 0);
1142
+ __decorate([
1143
+ Struct.field(slot_def, { array: true })
1144
+ ], entity_layout.prototype, "slots", void 0);
1145
+ entity_layout = __decorate([
1146
+ Struct.type('entity_layout')
1147
+ ], entity_layout);
1148
+ Types.entity_layout = entity_layout;
1149
+ let entity_layouts_result = class entity_layouts_result extends Struct {
1150
+ };
1151
+ __decorate([
1152
+ Struct.field(entity_layout, { array: true })
1153
+ ], entity_layouts_result.prototype, "entities", void 0);
1154
+ entity_layouts_result = __decorate([
1155
+ Struct.type('entity_layouts_result')
1156
+ ], entity_layouts_result);
1157
+ Types.entity_layouts_result = entity_layouts_result;
1158
+ let entity_row = class entity_row extends Struct {
1159
+ };
1160
+ __decorate([
1161
+ Struct.field(UInt64)
1162
+ ], entity_row.prototype, "id", void 0);
1163
+ __decorate([
1164
+ Struct.field(Name)
1165
+ ], entity_row.prototype, "owner", void 0);
1166
+ __decorate([
1167
+ Struct.field(Name)
1168
+ ], entity_row.prototype, "kind", void 0);
1169
+ __decorate([
1170
+ Struct.field(UInt16)
1171
+ ], entity_row.prototype, "item_id", void 0);
1172
+ __decorate([
1173
+ Struct.field('string')
1174
+ ], entity_row.prototype, "name", void 0);
1175
+ __decorate([
1176
+ Struct.field(UInt64)
1177
+ ], entity_row.prototype, "stats", void 0);
1178
+ __decorate([
1179
+ Struct.field(coordinates)
1180
+ ], entity_row.prototype, "coordinates", void 0);
1181
+ __decorate([
1182
+ Struct.field(UInt32, { optional: true })
1183
+ ], entity_row.prototype, "energy", void 0);
1184
+ __decorate([
1185
+ Struct.field(UInt32)
1186
+ ], entity_row.prototype, "cargomass", void 0);
1187
+ __decorate([
1188
+ Struct.field(module_entry, { array: true })
1189
+ ], entity_row.prototype, "modules", void 0);
1190
+ __decorate([
1191
+ Struct.field(lane, { array: true })
1192
+ ], entity_row.prototype, "lanes", void 0);
1193
+ entity_row = __decorate([
1194
+ Struct.type('entity_row')
1195
+ ], entity_row);
1196
+ Types.entity_row = entity_row;
1197
+ let entity_seq_row = class entity_seq_row extends Struct {
1198
+ };
1199
+ __decorate([
1200
+ Struct.field(UInt64)
1201
+ ], entity_seq_row.prototype, "next_id", void 0);
1202
+ entity_seq_row = __decorate([
1203
+ Struct.type('entity_seq_row')
1204
+ ], entity_seq_row);
1205
+ Types.entity_seq_row = entity_seq_row;
1206
+ let entity_summary = class entity_summary extends Struct {
1207
+ };
1208
+ __decorate([
1209
+ Struct.field(Name)
1210
+ ], entity_summary.prototype, "type", void 0);
1211
+ __decorate([
1212
+ Struct.field(UInt64)
1213
+ ], entity_summary.prototype, "id", void 0);
1214
+ __decorate([
1215
+ Struct.field(Name)
1216
+ ], entity_summary.prototype, "owner", void 0);
1217
+ __decorate([
1218
+ Struct.field('string')
1219
+ ], entity_summary.prototype, "entity_name", void 0);
1220
+ __decorate([
1221
+ Struct.field(coordinates)
1222
+ ], entity_summary.prototype, "coordinates", void 0);
1223
+ __decorate([
1224
+ Struct.field('bool')
1225
+ ], entity_summary.prototype, "is_idle", void 0);
1226
+ __decorate([
1227
+ Struct.field(UInt32)
1228
+ ], entity_summary.prototype, "resolved_count", void 0);
1229
+ __decorate([
1230
+ Struct.field(UInt32)
1231
+ ], entity_summary.prototype, "pending_count", void 0);
1232
+ entity_summary = __decorate([
1233
+ Struct.type('entity_summary')
1234
+ ], entity_summary);
1235
+ Types.entity_summary = entity_summary;
1236
+ let entity_task_info = class entity_task_info extends Struct {
1237
+ };
1238
+ __decorate([
1239
+ Struct.field(UInt64)
1240
+ ], entity_task_info.prototype, "entity_id", void 0);
1241
+ __decorate([
1242
+ Struct.field(Name)
1243
+ ], entity_task_info.prototype, "entity_type", void 0);
1244
+ __decorate([
1245
+ Struct.field(UInt8)
1246
+ ], entity_task_info.prototype, "task_count", void 0);
1247
+ __decorate([
1248
+ Struct.field(TimePoint)
1249
+ ], entity_task_info.prototype, "schedule_started", void 0);
1250
+ entity_task_info = __decorate([
1251
+ Struct.type('entity_task_info')
1252
+ ], entity_task_info);
1253
+ Types.entity_task_info = entity_task_info;
1254
+ let entitygroup_row = class entitygroup_row extends Struct {
1255
+ };
1256
+ __decorate([
1257
+ Struct.field(UInt64)
1258
+ ], entitygroup_row.prototype, "id", void 0);
1259
+ __decorate([
1260
+ Struct.field(entity_ref, { array: true })
1261
+ ], entitygroup_row.prototype, "participants", void 0);
1262
+ entitygroup_row = __decorate([
1263
+ Struct.type('entitygroup_row')
1264
+ ], entitygroup_row);
1265
+ Types.entitygroup_row = entitygroup_row;
1266
+ let enum_member = class enum_member extends Struct {
1267
+ };
1268
+ __decorate([
1269
+ Struct.field(UInt8)
1270
+ ], enum_member.prototype, "value", void 0);
1271
+ __decorate([
1272
+ Struct.field('string')
1273
+ ], enum_member.prototype, "name", void 0);
1274
+ enum_member = __decorate([
1275
+ Struct.type('enum_member')
1276
+ ], enum_member);
1277
+ Types.enum_member = enum_member;
1278
+ let enum_result = class enum_result extends Struct {
1279
+ };
1280
+ __decorate([
1281
+ Struct.field(enum_member, { array: true })
1282
+ ], enum_result.prototype, "members", void 0);
1283
+ enum_result = __decorate([
1284
+ Struct.type('enum_result')
1285
+ ], enum_result);
1286
+ Types.enum_result = enum_result;
1287
+ let epoch_row = class epoch_row extends Struct {
1288
+ };
1289
+ __decorate([
1290
+ Struct.field(UInt64)
1291
+ ], epoch_row.prototype, "epoch", void 0);
1292
+ __decorate([
1293
+ Struct.field(Name, { array: true })
1294
+ ], epoch_row.prototype, "oracle_ids", void 0);
1295
+ __decorate([
1296
+ Struct.field(UInt8)
1297
+ ], epoch_row.prototype, "threshold", void 0);
1298
+ __decorate([
1299
+ Struct.field(Checksum256)
1300
+ ], epoch_row.prototype, "seed", void 0);
1301
+ epoch_row = __decorate([
1302
+ Struct.type('epoch_row')
1303
+ ], epoch_row);
1304
+ Types.epoch_row = epoch_row;
1305
+ let fixcargomass = class fixcargomass extends Struct {
1306
+ };
1307
+ __decorate([
1308
+ Struct.field(UInt64)
1309
+ ], fixcargomass.prototype, "entity_id", void 0);
1310
+ fixcargomass = __decorate([
1311
+ Struct.type('fixcargomass')
1312
+ ], fixcargomass);
1313
+ Types.fixcargomass = fixcargomass;
1314
+ let forcereveal = class forcereveal extends Struct {
1315
+ };
1316
+ __decorate([
1317
+ Struct.field(UInt64)
1318
+ ], forcereveal.prototype, "epoch", void 0);
1319
+ forcereveal = __decorate([
1320
+ Struct.type('forcereveal')
1321
+ ], forcereveal);
1322
+ Types.forcereveal = forcereveal;
1323
+ let gather = class gather extends Struct {
1324
+ };
1325
+ __decorate([
1326
+ Struct.field(UInt64)
1327
+ ], gather.prototype, "source_id", void 0);
1328
+ __decorate([
1329
+ Struct.field(UInt64)
1330
+ ], gather.prototype, "destination_id", void 0);
1331
+ __decorate([
1332
+ Struct.field(UInt16)
1333
+ ], gather.prototype, "stratum", void 0);
1334
+ __decorate([
1335
+ Struct.field(UInt32)
1336
+ ], gather.prototype, "quantity", void 0);
1337
+ gather = __decorate([
1338
+ Struct.type('gather')
1339
+ ], gather);
1340
+ Types.gather = gather;
1341
+ let genesisfleet = class genesisfleet extends Struct {
1342
+ };
1343
+ __decorate([
1344
+ Struct.field(entity_row, { array: true })
1345
+ ], genesisfleet.prototype, "entities", void 0);
1346
+ genesisfleet = __decorate([
1347
+ Struct.type('genesisfleet')
1348
+ ], genesisfleet);
1349
+ Types.genesisfleet = genesisfleet;
1350
+ let getconfig = class getconfig extends Struct {
1351
+ };
1352
+ getconfig = __decorate([
1353
+ Struct.type('getconfig')
1354
+ ], getconfig);
1355
+ Types.getconfig = getconfig;
1356
+ let getdeposit = class getdeposit extends Struct {
1357
+ };
1358
+ __decorate([
1359
+ Struct.field(Name)
1360
+ ], getdeposit.prototype, "owner", void 0);
1361
+ __decorate([
1362
+ Struct.field(UInt64)
1363
+ ], getdeposit.prototype, "asset_id", void 0);
1364
+ getdeposit = __decorate([
1365
+ Struct.type('getdeposit')
1366
+ ], getdeposit);
1367
+ Types.getdeposit = getdeposit;
1368
+ let geteligible = class geteligible extends Struct {
1369
+ };
1370
+ __decorate([
1371
+ Struct.field(coordinates)
1372
+ ], geteligible.prototype, "coords", void 0);
1373
+ __decorate([
1374
+ Struct.field(UInt16)
1375
+ ], geteligible.prototype, "stratum", void 0);
1376
+ geteligible = __decorate([
1377
+ Struct.type('geteligible')
1378
+ ], geteligible);
1379
+ Types.geteligible = geteligible;
1380
+ let getentcls = class getentcls extends Struct {
1381
+ };
1382
+ getentcls = __decorate([
1383
+ Struct.type('getentcls')
1384
+ ], getentcls);
1385
+ Types.getentcls = getentcls;
1386
+ let getentities = class getentities extends Struct {
1387
+ };
1388
+ __decorate([
1389
+ Struct.field(Name)
1390
+ ], getentities.prototype, "owner", void 0);
1391
+ __decorate([
1392
+ Struct.field(Name, { optional: true })
1393
+ ], getentities.prototype, "entity_type", void 0);
1394
+ getentities = __decorate([
1395
+ Struct.type('getentities')
1396
+ ], getentities);
1397
+ Types.getentities = getentities;
1398
+ let getentity = class getentity extends Struct {
1399
+ };
1400
+ __decorate([
1401
+ Struct.field(UInt64)
1402
+ ], getentity.prototype, "entity_id", void 0);
1403
+ getentity = __decorate([
1404
+ Struct.type('getentity')
1405
+ ], getentity);
1406
+ Types.getentity = getentity;
1407
+ let getitemdata = class getitemdata extends Struct {
1408
+ };
1409
+ getitemdata = __decorate([
1410
+ Struct.type('getitemdata')
1411
+ ], getitemdata);
1412
+ Types.getitemdata = getitemdata;
1413
+ let getitemids = class getitemids extends Struct {
1414
+ };
1415
+ getitemids = __decorate([
1416
+ Struct.type('getitemids')
1417
+ ], getitemids);
1418
+ Types.getitemids = getitemids;
1419
+ let getitems = class getitems extends Struct {
1420
+ };
1421
+ getitems = __decorate([
1422
+ Struct.type('getitems')
1423
+ ], getitems);
1424
+ Types.getitems = getitems;
1425
+ let getitemtype = class getitemtype extends Struct {
1426
+ };
1427
+ __decorate([
1428
+ Struct.field(UInt16)
1429
+ ], getitemtype.prototype, "item_id", void 0);
1430
+ getitemtype = __decorate([
1431
+ Struct.type('getitemtype')
1432
+ ], getitemtype);
1433
+ Types.getitemtype = getitemtype;
1434
+ let getitemtypes = class getitemtypes extends Struct {
1435
+ };
1436
+ getitemtypes = __decorate([
1437
+ Struct.type('getitemtypes')
1438
+ ], getitemtypes);
1439
+ Types.getitemtypes = getitemtypes;
1440
+ let getkindmeta = class getkindmeta extends Struct {
1441
+ };
1442
+ getkindmeta = __decorate([
1443
+ Struct.type('getkindmeta')
1444
+ ], getkindmeta);
1445
+ Types.getkindmeta = getkindmeta;
1446
+ let getlocation = class getlocation extends Struct {
1447
+ };
1448
+ __decorate([
1449
+ Struct.field(Int64)
1450
+ ], getlocation.prototype, "x", void 0);
1451
+ __decorate([
1452
+ Struct.field(Int64)
1453
+ ], getlocation.prototype, "y", void 0);
1454
+ getlocation = __decorate([
1455
+ Struct.type('getlocation')
1456
+ ], getlocation);
1457
+ Types.getlocation = getlocation;
1458
+ let getlocdata = class getlocdata extends Struct {
1459
+ };
1460
+ __decorate([
1461
+ Struct.field(Int64)
1462
+ ], getlocdata.prototype, "x", void 0);
1463
+ __decorate([
1464
+ Struct.field(Int64)
1465
+ ], getlocdata.prototype, "y", void 0);
1466
+ getlocdata = __decorate([
1467
+ Struct.type('getlocdata')
1468
+ ], getlocdata);
1469
+ Types.getlocdata = getlocdata;
1470
+ let getmodtypes = class getmodtypes extends Struct {
1471
+ };
1472
+ getmodtypes = __decorate([
1473
+ Struct.type('getmodtypes')
1474
+ ], getmodtypes);
1475
+ Types.getmodtypes = getmodtypes;
1476
+ let getmodules = class getmodules extends Struct {
1477
+ };
1478
+ getmodules = __decorate([
1479
+ Struct.type('getmodules')
1480
+ ], getmodules);
1481
+ Types.getmodules = getmodules;
1482
+ let getnearby = class getnearby extends Struct {
1483
+ };
1484
+ __decorate([
1485
+ Struct.field(UInt64)
1486
+ ], getnearby.prototype, "entity_id", void 0);
1487
+ __decorate([
1488
+ Struct.field('bool')
1489
+ ], getnearby.prototype, "recharge", void 0);
1490
+ getnearby = __decorate([
1491
+ Struct.type('getnearby')
1492
+ ], getnearby);
1493
+ Types.getnearby = getnearby;
1494
+ let getnftbase = class getnftbase extends Struct {
1495
+ };
1496
+ getnftbase = __decorate([
1497
+ Struct.type('getnftbase')
1498
+ ], getnftbase);
1499
+ Types.getnftbase = getnftbase;
1500
+ let getnftinfo = class getnftinfo extends Struct {
1501
+ };
1502
+ getnftinfo = __decorate([
1503
+ Struct.type('getnftinfo')
1504
+ ], getnftinfo);
1505
+ Types.getnftinfo = getnftinfo;
1506
+ let getplayer = class getplayer extends Struct {
1507
+ };
1508
+ __decorate([
1509
+ Struct.field(Name)
1510
+ ], getplayer.prototype, "account", void 0);
1511
+ getplayer = __decorate([
1512
+ Struct.type('getplayer')
1513
+ ], getplayer);
1514
+ Types.getplayer = getplayer;
1515
+ let getprojstate = class getprojstate extends Struct {
1516
+ };
1517
+ __decorate([
1518
+ Struct.field(UInt64)
1519
+ ], getprojstate.prototype, "entity_id", void 0);
1520
+ __decorate([
1521
+ Struct.field(UInt8, { optional: true })
1522
+ ], getprojstate.prototype, "task_count", void 0);
1523
+ getprojstate = __decorate([
1524
+ Struct.type('getprojstate')
1525
+ ], getprojstate);
1526
+ Types.getprojstate = getprojstate;
1527
+ let getrecipe = class getrecipe extends Struct {
1528
+ };
1529
+ __decorate([
1530
+ Struct.field(UInt16)
1531
+ ], getrecipe.prototype, "output_item_id", void 0);
1532
+ getrecipe = __decorate([
1533
+ Struct.type('getrecipe')
1534
+ ], getrecipe);
1535
+ Types.getrecipe = getrecipe;
1536
+ let getrecipes = class getrecipes extends Struct {
1537
+ };
1538
+ __decorate([
1539
+ Struct.field(UInt16)
1540
+ ], getrecipes.prototype, "lower_bound", void 0);
1541
+ __decorate([
1542
+ Struct.field(UInt8)
1543
+ ], getrecipes.prototype, "limit", void 0);
1544
+ getrecipes = __decorate([
1545
+ Struct.type('getrecipes')
1546
+ ], getrecipes);
1547
+ Types.getrecipes = getrecipes;
1548
+ let getrescats = class getrescats extends Struct {
1549
+ };
1550
+ getrescats = __decorate([
1551
+ Struct.type('getrescats')
1552
+ ], getrescats);
1553
+ Types.getrescats = getrescats;
1554
+ let getreserves = class getreserves extends Struct {
1555
+ };
1556
+ __decorate([
1557
+ Struct.field(Int64)
1558
+ ], getreserves.prototype, "x", void 0);
1559
+ __decorate([
1560
+ Struct.field(Int64)
1561
+ ], getreserves.prototype, "y", void 0);
1562
+ getreserves = __decorate([
1563
+ Struct.type('getreserves')
1564
+ ], getreserves);
1565
+ Types.getreserves = getreserves;
1566
+ let getresources = class getresources extends Struct {
1567
+ };
1568
+ getresources = __decorate([
1569
+ Struct.type('getresources')
1570
+ ], getresources);
1571
+ Types.getresources = getresources;
1572
+ let getslots = class getslots extends Struct {
1573
+ };
1574
+ getslots = __decorate([
1575
+ Struct.type('getslots')
1576
+ ], getslots);
1577
+ Types.getslots = getslots;
1578
+ let getstratum = class getstratum extends Struct {
1579
+ };
1580
+ __decorate([
1581
+ Struct.field(Int64)
1582
+ ], getstratum.prototype, "x", void 0);
1583
+ __decorate([
1584
+ Struct.field(Int64)
1585
+ ], getstratum.prototype, "y", void 0);
1586
+ __decorate([
1587
+ Struct.field(UInt16)
1588
+ ], getstratum.prototype, "stratum", void 0);
1589
+ getstratum = __decorate([
1590
+ Struct.type('getstratum')
1591
+ ], getstratum);
1592
+ Types.getstratum = getstratum;
1593
+ let getsummaries = class getsummaries extends Struct {
1594
+ };
1595
+ __decorate([
1596
+ Struct.field(Name)
1597
+ ], getsummaries.prototype, "owner", void 0);
1598
+ __decorate([
1599
+ Struct.field(Name, { optional: true })
1600
+ ], getsummaries.prototype, "entity_type", void 0);
1601
+ getsummaries = __decorate([
1602
+ Struct.type('getsummaries')
1603
+ ], getsummaries);
1604
+ Types.getsummaries = getsummaries;
1605
+ let grouptravel = class grouptravel extends Struct {
1606
+ };
1607
+ __decorate([
1608
+ Struct.field(entity_ref, { array: true })
1609
+ ], grouptravel.prototype, "entities", void 0);
1610
+ __decorate([
1611
+ Struct.field(Int64)
1612
+ ], grouptravel.prototype, "x", void 0);
1613
+ __decorate([
1614
+ Struct.field(Int64)
1615
+ ], grouptravel.prototype, "y", void 0);
1616
+ __decorate([
1617
+ Struct.field('bool')
1618
+ ], grouptravel.prototype, "recharge", void 0);
1619
+ grouptravel = __decorate([
1620
+ Struct.type('grouptravel')
1621
+ ], grouptravel);
1622
+ Types.grouptravel = grouptravel;
1623
+ let hash = class hash extends Struct {
1624
+ };
1625
+ __decorate([
1626
+ Struct.field('string')
1627
+ ], hash.prototype, "value", void 0);
1628
+ hash = __decorate([
1629
+ Struct.type('hash')
1630
+ ], hash);
1631
+ Types.hash = hash;
1632
+ let hash512 = class hash512 extends Struct {
1633
+ };
1634
+ __decorate([
1635
+ Struct.field('string')
1636
+ ], hash512.prototype, "value", void 0);
1637
+ hash512 = __decorate([
1638
+ Struct.type('hash512')
1639
+ ], hash512);
1640
+ Types.hash512 = hash512;
1641
+ let importcargo = class importcargo extends Struct {
1642
+ };
1643
+ __decorate([
1644
+ Struct.field(cargo_row)
1645
+ ], importcargo.prototype, "row", void 0);
1646
+ importcargo = __decorate([
1647
+ Struct.type('importcargo')
1648
+ ], importcargo);
1649
+ Types.importcargo = importcargo;
1650
+ let importentity = class importentity extends Struct {
1651
+ };
1652
+ __decorate([
1653
+ Struct.field(entity_row)
1654
+ ], importentity.prototype, "row", void 0);
1655
+ importentity = __decorate([
1656
+ Struct.type('importentity')
1657
+ ], importentity);
1658
+ Types.importentity = importentity;
1659
+ let importgroup = class importgroup extends Struct {
1660
+ };
1661
+ __decorate([
1662
+ Struct.field(entitygroup_row)
1663
+ ], importgroup.prototype, "row", void 0);
1664
+ importgroup = __decorate([
1665
+ Struct.type('importgroup')
1666
+ ], importgroup);
1667
+ Types.importgroup = importgroup;
1668
+ let importplayer = class importplayer extends Struct {
1669
+ };
1670
+ __decorate([
1671
+ Struct.field(Name)
1672
+ ], importplayer.prototype, "owner", void 0);
1673
+ importplayer = __decorate([
1674
+ Struct.type('importplayer')
1675
+ ], importplayer);
1676
+ Types.importplayer = importplayer;
1677
+ let reserve_row = class reserve_row extends Struct {
1678
+ };
1679
+ __decorate([
1680
+ Struct.field(UInt64)
1681
+ ], reserve_row.prototype, "id", void 0);
1682
+ __decorate([
1683
+ Struct.field(UInt64)
1684
+ ], reserve_row.prototype, "coord_id", void 0);
1685
+ __decorate([
1686
+ Struct.field(UInt16)
1687
+ ], reserve_row.prototype, "stratum", void 0);
1688
+ __decorate([
1689
+ Struct.field(UInt32)
1690
+ ], reserve_row.prototype, "remaining", void 0);
1691
+ __decorate([
1692
+ Struct.field(BlockTimestamp)
1693
+ ], reserve_row.prototype, "last_block", void 0);
1694
+ reserve_row = __decorate([
1695
+ Struct.type('reserve_row')
1696
+ ], reserve_row);
1697
+ Types.reserve_row = reserve_row;
1698
+ let importreserve = class importreserve extends Struct {
1699
+ };
1700
+ __decorate([
1701
+ Struct.field(UInt32)
1702
+ ], importreserve.prototype, "epoch_scope", void 0);
1703
+ __decorate([
1704
+ Struct.field(reserve_row)
1705
+ ], importreserve.prototype, "row", void 0);
1706
+ importreserve = __decorate([
1707
+ Struct.type('importreserve')
1708
+ ], importreserve);
1709
+ Types.importreserve = importreserve;
1710
+ let state_row = class state_row extends Struct {
1711
+ };
1712
+ __decorate([
1713
+ Struct.field('bool')
1714
+ ], state_row.prototype, "enabled", void 0);
1715
+ __decorate([
1716
+ Struct.field(UInt32)
1717
+ ], state_row.prototype, "epoch", void 0);
1718
+ __decorate([
1719
+ Struct.field(Checksum256)
1720
+ ], state_row.prototype, "seed", void 0);
1721
+ state_row = __decorate([
1722
+ Struct.type('state_row')
1723
+ ], state_row);
1724
+ Types.state_row = state_row;
1725
+ let importstate = class importstate extends Struct {
1726
+ };
1727
+ __decorate([
1728
+ Struct.field(state_row)
1729
+ ], importstate.prototype, "row", void 0);
1730
+ importstate = __decorate([
1731
+ Struct.type('importstate')
1732
+ ], importstate);
1733
+ Types.importstate = importstate;
1734
+ let item_id_pair = class item_id_pair extends Struct {
1735
+ };
1736
+ __decorate([
1737
+ Struct.field(UInt16)
1738
+ ], item_id_pair.prototype, "id", void 0);
1739
+ __decorate([
1740
+ Struct.field('string')
1741
+ ], item_id_pair.prototype, "name", void 0);
1742
+ item_id_pair = __decorate([
1743
+ Struct.type('item_id_pair')
1744
+ ], item_id_pair);
1745
+ Types.item_id_pair = item_id_pair;
1746
+ let item_ids_result = class item_ids_result extends Struct {
1747
+ };
1748
+ __decorate([
1749
+ Struct.field(item_id_pair, { array: true })
1750
+ ], item_ids_result.prototype, "items", void 0);
1751
+ item_ids_result = __decorate([
1752
+ Struct.type('item_ids_result')
1753
+ ], item_ids_result);
1754
+ Types.item_ids_result = item_ids_result;
1755
+ let recipe_input = class recipe_input extends Struct {
1756
+ };
1757
+ __decorate([
1758
+ Struct.field(UInt16)
1759
+ ], recipe_input.prototype, "item_id", void 0);
1760
+ __decorate([
1761
+ Struct.field(UInt32)
1762
+ ], recipe_input.prototype, "quantity", void 0);
1763
+ recipe_input = __decorate([
1764
+ Struct.type('recipe_input')
1765
+ ], recipe_input);
1766
+ Types.recipe_input = recipe_input;
1767
+ let stat_source = class stat_source extends Struct {
1768
+ };
1769
+ __decorate([
1770
+ Struct.field(UInt8)
1771
+ ], stat_source.prototype, "input_index", void 0);
1772
+ __decorate([
1773
+ Struct.field(UInt8)
1774
+ ], stat_source.prototype, "input_stat_index", void 0);
1775
+ stat_source = __decorate([
1776
+ Struct.type('stat_source')
1777
+ ], stat_source);
1778
+ Types.stat_source = stat_source;
1779
+ let stat_slot_response = class stat_slot_response extends Struct {
1780
+ };
1781
+ __decorate([
1782
+ Struct.field(stat_source, { array: true })
1783
+ ], stat_slot_response.prototype, "sources", void 0);
1784
+ stat_slot_response = __decorate([
1785
+ Struct.type('stat_slot_response')
1786
+ ], stat_slot_response);
1787
+ Types.stat_slot_response = stat_slot_response;
1788
+ let recipe_item_info = class recipe_item_info extends Struct {
1789
+ };
1790
+ __decorate([
1791
+ Struct.field(UInt16)
1792
+ ], recipe_item_info.prototype, "id", void 0);
1793
+ __decorate([
1794
+ Struct.field(UInt32)
1795
+ ], recipe_item_info.prototype, "mass", void 0);
1796
+ recipe_item_info = __decorate([
1797
+ Struct.type('recipe_item_info')
1798
+ ], recipe_item_info);
1799
+ Types.recipe_item_info = recipe_item_info;
1800
+ let recipe_response = class recipe_response extends Struct {
1801
+ };
1802
+ __decorate([
1803
+ Struct.field(UInt16)
1804
+ ], recipe_response.prototype, "output_item_id", void 0);
1805
+ __decorate([
1806
+ Struct.field(UInt32)
1807
+ ], recipe_response.prototype, "output_mass", void 0);
1808
+ __decorate([
1809
+ Struct.field(recipe_input, { array: true })
1810
+ ], recipe_response.prototype, "inputs", void 0);
1811
+ __decorate([
1812
+ Struct.field(stat_slot_response, { array: true })
1813
+ ], recipe_response.prototype, "stat_slots", void 0);
1814
+ __decorate([
1815
+ Struct.field(Bytes)
1816
+ ], recipe_response.prototype, "blend_weights", void 0);
1817
+ __decorate([
1818
+ Struct.field(recipe_item_info)
1819
+ ], recipe_response.prototype, "output_item", void 0);
1820
+ __decorate([
1821
+ Struct.field(recipe_item_info, { array: true })
1822
+ ], recipe_response.prototype, "input_items", void 0);
1823
+ recipe_response = __decorate([
1824
+ Struct.type('recipe_response')
1825
+ ], recipe_response);
1826
+ Types.recipe_response = recipe_response;
1827
+ let recipes_result = class recipes_result extends Struct {
1828
+ };
1829
+ __decorate([
1830
+ Struct.field(recipe_response, { array: true })
1831
+ ], recipes_result.prototype, "recipes", void 0);
1832
+ recipes_result = __decorate([
1833
+ Struct.type('recipes_result')
1834
+ ], recipes_result);
1835
+ Types.recipes_result = recipes_result;
1836
+ let itemdata_result = class itemdata_result extends Struct {
1837
+ };
1838
+ __decorate([
1839
+ Struct.field(item_def, { array: true })
1840
+ ], itemdata_result.prototype, "items", void 0);
1841
+ __decorate([
1842
+ Struct.field(recipes_result)
1843
+ ], itemdata_result.prototype, "recipes", void 0);
1844
+ itemdata_result = __decorate([
1845
+ Struct.type('itemdata_result')
1846
+ ], itemdata_result);
1847
+ Types.itemdata_result = itemdata_result;
1848
+ let items_info = class items_info extends Struct {
1849
+ };
1850
+ __decorate([
1851
+ Struct.field(item_def, { array: true })
1852
+ ], items_info.prototype, "items", void 0);
1853
+ items_info = __decorate([
1854
+ Struct.type('items_info')
1855
+ ], items_info);
1856
+ Types.items_info = items_info;
1857
+ let join = class join extends Struct {
1858
+ };
1859
+ __decorate([
1860
+ Struct.field(Name)
1861
+ ], join.prototype, "account", void 0);
1862
+ join = __decorate([
1863
+ Struct.type('join')
1864
+ ], join);
1865
+ Types.join = join;
1866
+ let kind_meta_row = class kind_meta_row extends Struct {
1867
+ };
1868
+ __decorate([
1869
+ Struct.field(Name)
1870
+ ], kind_meta_row.prototype, "kind", void 0);
1871
+ __decorate([
1872
+ Struct.field(UInt8)
1873
+ ], kind_meta_row.prototype, "classification", void 0);
1874
+ __decorate([
1875
+ Struct.field(UInt8)
1876
+ ], kind_meta_row.prototype, "capability_flags", void 0);
1877
+ __decorate([
1878
+ Struct.field(UInt32)
1879
+ ], kind_meta_row.prototype, "z_coord", void 0);
1880
+ __decorate([
1881
+ Struct.field('string')
1882
+ ], kind_meta_row.prototype, "default_label", void 0);
1883
+ kind_meta_row = __decorate([
1884
+ Struct.type('kind_meta_row')
1885
+ ], kind_meta_row);
1886
+ Types.kind_meta_row = kind_meta_row;
1887
+ let template_meta_row = class template_meta_row extends Struct {
1888
+ };
1889
+ __decorate([
1890
+ Struct.field(UInt16)
1891
+ ], template_meta_row.prototype, "item_id", void 0);
1892
+ __decorate([
1893
+ Struct.field(Name)
1894
+ ], template_meta_row.prototype, "kind", void 0);
1895
+ __decorate([
1896
+ Struct.field('string')
1897
+ ], template_meta_row.prototype, "display_label", void 0);
1898
+ template_meta_row = __decorate([
1899
+ Struct.type('template_meta_row')
1900
+ ], template_meta_row);
1901
+ Types.template_meta_row = template_meta_row;
1902
+ let kind_meta_result = class kind_meta_result extends Struct {
1903
+ };
1904
+ __decorate([
1905
+ Struct.field(kind_meta_row, { array: true })
1906
+ ], kind_meta_result.prototype, "kinds", void 0);
1907
+ __decorate([
1908
+ Struct.field(template_meta_row, { array: true })
1909
+ ], kind_meta_result.prototype, "templates", void 0);
1910
+ kind_meta_result = __decorate([
1911
+ Struct.type('kind_meta_result')
1912
+ ], kind_meta_result);
1913
+ Types.kind_meta_result = kind_meta_result;
1914
+ let location_static = class location_static extends Struct {
1915
+ };
1916
+ __decorate([
1917
+ Struct.field(coordinates)
1918
+ ], location_static.prototype, "coords", void 0);
1919
+ __decorate([
1920
+ Struct.field(UInt8)
1921
+ ], location_static.prototype, "type", void 0);
1922
+ __decorate([
1923
+ Struct.field(UInt8)
1924
+ ], location_static.prototype, "subtype", void 0);
1925
+ __decorate([
1926
+ Struct.field(UInt8)
1927
+ ], location_static.prototype, "seed0", void 0);
1928
+ __decorate([
1929
+ Struct.field(UInt8)
1930
+ ], location_static.prototype, "seed1", void 0);
1931
+ location_static = __decorate([
1932
+ Struct.type('location_static')
1933
+ ], location_static);
1934
+ Types.location_static = location_static;
1935
+ let location_derived = class location_derived extends Struct {
1936
+ };
1937
+ __decorate([
1938
+ Struct.field(location_static)
1939
+ ], location_derived.prototype, "static_props", void 0);
1940
+ __decorate([
1941
+ Struct.field(UInt16)
1942
+ ], location_derived.prototype, "size", void 0);
1943
+ location_derived = __decorate([
1944
+ Struct.type('location_derived')
1945
+ ], location_derived);
1946
+ Types.location_derived = location_derived;
1947
+ let location_info = class location_info extends Struct {
1948
+ };
1949
+ __decorate([
1950
+ Struct.field(coordinates)
1951
+ ], location_info.prototype, "coords", void 0);
1952
+ __decorate([
1953
+ Struct.field('bool')
1954
+ ], location_info.prototype, "is_system", void 0);
1955
+ location_info = __decorate([
1956
+ Struct.type('location_info')
1957
+ ], location_info);
1958
+ Types.location_info = location_info;
1959
+ let module_info = class module_info extends Struct {
1960
+ };
1961
+ __decorate([
1962
+ Struct.field(UInt16)
1963
+ ], module_info.prototype, "id", void 0);
1964
+ __decorate([
1965
+ Struct.field(UInt32)
1966
+ ], module_info.prototype, "mass", void 0);
1967
+ __decorate([
1968
+ Struct.field(UInt8)
1969
+ ], module_info.prototype, "module_type", void 0);
1970
+ __decorate([
1971
+ Struct.field(UInt8)
1972
+ ], module_info.prototype, "tier", void 0);
1973
+ module_info = __decorate([
1974
+ Struct.type('module_info')
1975
+ ], module_info);
1976
+ Types.module_info = module_info;
1977
+ let modules_result = class modules_result extends Struct {
1978
+ };
1979
+ __decorate([
1980
+ Struct.field(module_info, { array: true })
1981
+ ], modules_result.prototype, "modules", void 0);
1982
+ modules_result = __decorate([
1983
+ Struct.type('modules_result')
1984
+ ], modules_result);
1985
+ Types.modules_result = modules_result;
1986
+ let nearby_system = class nearby_system extends Struct {
1987
+ };
1988
+ __decorate([
1989
+ Struct.field(UInt64)
1990
+ ], nearby_system.prototype, "distance", void 0);
1991
+ __decorate([
1992
+ Struct.field(UInt64)
1993
+ ], nearby_system.prototype, "energy_cost", void 0);
1994
+ __decorate([
1995
+ Struct.field(UInt32)
1996
+ ], nearby_system.prototype, "flight_time", void 0);
1997
+ __decorate([
1998
+ Struct.field(location_info)
1999
+ ], nearby_system.prototype, "location", void 0);
2000
+ nearby_system = __decorate([
2001
+ Struct.type('nearby_system')
2002
+ ], nearby_system);
2003
+ Types.nearby_system = nearby_system;
2004
+ let nearby_info = class nearby_info extends Struct {
2005
+ };
2006
+ __decorate([
2007
+ Struct.field('bool')
2008
+ ], nearby_info.prototype, "can_travel", void 0);
2009
+ __decorate([
2010
+ Struct.field(entity_current_state)
2011
+ ], nearby_info.prototype, "current", void 0);
2012
+ __decorate([
2013
+ Struct.field(entity_current_state)
2014
+ ], nearby_info.prototype, "projected", void 0);
2015
+ __decorate([
2016
+ Struct.field(UInt32)
2017
+ ], nearby_info.prototype, "max_energy", void 0);
2018
+ __decorate([
2019
+ Struct.field(nearby_system, { array: true })
2020
+ ], nearby_info.prototype, "systems", void 0);
2021
+ nearby_info = __decorate([
2022
+ Struct.type('nearby_info')
2023
+ ], nearby_info);
2024
+ Types.nearby_info = nearby_info;
2025
+ let nft_cargo_item = class nft_cargo_item extends Struct {
2026
+ };
2027
+ __decorate([
2028
+ Struct.field(UInt16)
2029
+ ], nft_cargo_item.prototype, "item_id", void 0);
2030
+ __decorate([
2031
+ Struct.field(UInt64)
2032
+ ], nft_cargo_item.prototype, "stats", void 0);
2033
+ __decorate([
2034
+ Struct.field(module_entry, { array: true })
2035
+ ], nft_cargo_item.prototype, "modules", void 0);
2036
+ __decorate([
2037
+ Struct.field(UInt32)
2038
+ ], nft_cargo_item.prototype, "quantity", void 0);
2039
+ nft_cargo_item = __decorate([
2040
+ Struct.type('nft_cargo_item')
2041
+ ], nft_cargo_item);
2042
+ Types.nft_cargo_item = nft_cargo_item;
2043
+ let nft_item_payload = class nft_item_payload extends Struct {
2044
+ };
2045
+ __decorate([
2046
+ Struct.field(nft_cargo_item)
2047
+ ], nft_item_payload.prototype, "item", void 0);
2048
+ __decorate([
2049
+ Struct.field(coordinates, { optional: true })
2050
+ ], nft_item_payload.prototype, "location", void 0);
2051
+ nft_item_payload = __decorate([
2052
+ Struct.type('nft_item_payload')
2053
+ ], nft_item_payload);
2054
+ Types.nft_item_payload = nft_item_payload;
2055
+ let schema_field = class schema_field extends Struct {
2056
+ };
2057
+ __decorate([
2058
+ Struct.field('string')
2059
+ ], schema_field.prototype, "name", void 0);
2060
+ __decorate([
2061
+ Struct.field('string')
2062
+ ], schema_field.prototype, "field_type", void 0);
2063
+ schema_field = __decorate([
2064
+ Struct.type('schema_field')
2065
+ ], schema_field);
2066
+ Types.schema_field = schema_field;
2067
+ let nft_schema_def = class nft_schema_def extends Struct {
2068
+ };
2069
+ __decorate([
2070
+ Struct.field(Name)
2071
+ ], nft_schema_def.prototype, "schema_name", void 0);
2072
+ __decorate([
2073
+ Struct.field(schema_field, { array: true })
2074
+ ], nft_schema_def.prototype, "fields", void 0);
2075
+ nft_schema_def = __decorate([
2076
+ Struct.type('nft_schema_def')
2077
+ ], nft_schema_def);
2078
+ Types.nft_schema_def = nft_schema_def;
2079
+ let nft_template_def = class nft_template_def extends Struct {
2080
+ };
2081
+ __decorate([
2082
+ Struct.field(UInt16)
2083
+ ], nft_template_def.prototype, "item_id", void 0);
2084
+ __decorate([
2085
+ Struct.field(Name)
2086
+ ], nft_template_def.prototype, "schema_name", void 0);
2087
+ __decorate([
2088
+ Struct.field(Int32)
2089
+ ], nft_template_def.prototype, "template_id", void 0);
2090
+ nft_template_def = __decorate([
2091
+ Struct.type('nft_template_def')
2092
+ ], nft_template_def);
2093
+ Types.nft_template_def = nft_template_def;
2094
+ let nftconfig_row = class nftconfig_row extends Struct {
2095
+ };
2096
+ __decorate([
2097
+ Struct.field(UInt16)
2098
+ ], nftconfig_row.prototype, "item_id", void 0);
2099
+ __decorate([
2100
+ Struct.field(Int32)
2101
+ ], nftconfig_row.prototype, "template_id", void 0);
2102
+ __decorate([
2103
+ Struct.field(Name)
2104
+ ], nftconfig_row.prototype, "schema_name", void 0);
2105
+ nftconfig_row = __decorate([
2106
+ Struct.type('nftconfig_row')
2107
+ ], nftconfig_row);
2108
+ Types.nftconfig_row = nftconfig_row;
2109
+ let nftimgurl = class nftimgurl extends Struct {
2110
+ };
2111
+ __decorate([
2112
+ Struct.field(cargo_item)
2113
+ ], nftimgurl.prototype, "item", void 0);
2114
+ __decorate([
2115
+ Struct.field(coordinates, { optional: true })
2116
+ ], nftimgurl.prototype, "location", void 0);
2117
+ nftimgurl = __decorate([
2118
+ Struct.type('nftimgurl')
2119
+ ], nftimgurl);
2120
+ Types.nftimgurl = nftimgurl;
2121
+ let nftinfo_result = class nftinfo_result extends Struct {
2122
+ };
2123
+ __decorate([
2124
+ Struct.field(nft_schema_def, { array: true })
2125
+ ], nftinfo_result.prototype, "schemas", void 0);
2126
+ __decorate([
2127
+ Struct.field(nft_template_def, { array: true })
2128
+ ], nftinfo_result.prototype, "templates", void 0);
2129
+ nftinfo_result = __decorate([
2130
+ Struct.type('nftinfo_result')
2131
+ ], nftinfo_result);
2132
+ Types.nftinfo_result = nftinfo_result;
2133
+ let task_event = class task_event extends Struct {
2134
+ };
2135
+ __decorate([
2136
+ Struct.field(UInt8)
2137
+ ], task_event.prototype, "event_type", void 0);
2138
+ __decorate([
2139
+ Struct.field(Name)
2140
+ ], task_event.prototype, "owner", void 0);
2141
+ __decorate([
2142
+ Struct.field(Name)
2143
+ ], task_event.prototype, "entity_type", void 0);
2144
+ __decorate([
2145
+ Struct.field(UInt64)
2146
+ ], task_event.prototype, "entity_id", void 0);
2147
+ __decorate([
2148
+ Struct.field(UInt8)
2149
+ ], task_event.prototype, "task_index", void 0);
2150
+ __decorate([
2151
+ Struct.field(task)
2152
+ ], task_event.prototype, "task", void 0);
2153
+ __decorate([
2154
+ Struct.field(TimePoint)
2155
+ ], task_event.prototype, "starts_at", void 0);
2156
+ __decorate([
2157
+ Struct.field(TimePoint)
2158
+ ], task_event.prototype, "completes_at", void 0);
2159
+ __decorate([
2160
+ Struct.field(UInt32, { optional: true })
2161
+ ], task_event.prototype, "new_energy", void 0);
2162
+ __decorate([
2163
+ Struct.field(UInt8)
2164
+ ], task_event.prototype, "lane_key", void 0);
2165
+ task_event = __decorate([
2166
+ Struct.type('task_event')
2167
+ ], task_event);
2168
+ Types.task_event = task_event;
2169
+ let notify = class notify extends Struct {
2170
+ };
2171
+ __decorate([
2172
+ Struct.field(task_event)
2173
+ ], notify.prototype, "event", void 0);
2174
+ notify = __decorate([
2175
+ Struct.type('notify')
2176
+ ], notify);
2177
+ Types.notify = notify;
2178
+ let oracle_config_row = class oracle_config_row extends Struct {
2179
+ };
2180
+ __decorate([
2181
+ Struct.field(UInt8)
2182
+ ], oracle_config_row.prototype, "threshold", void 0);
2183
+ oracle_config_row = __decorate([
2184
+ Struct.type('oracle_config_row')
2185
+ ], oracle_config_row);
2186
+ Types.oracle_config_row = oracle_config_row;
2187
+ let oracle_row = class oracle_row extends Struct {
2188
+ };
2189
+ __decorate([
2190
+ Struct.field(Name)
2191
+ ], oracle_row.prototype, "id", void 0);
2192
+ oracle_row = __decorate([
2193
+ Struct.type('oracle_row')
2194
+ ], oracle_row);
2195
+ Types.oracle_row = oracle_row;
2196
+ let placecargo = class placecargo extends Struct {
2197
+ };
2198
+ __decorate([
2199
+ Struct.field(Name)
2200
+ ], placecargo.prototype, "owner", void 0);
2201
+ __decorate([
2202
+ Struct.field(UInt64)
2203
+ ], placecargo.prototype, "host_id", void 0);
2204
+ __decorate([
2205
+ Struct.field(UInt64)
2206
+ ], placecargo.prototype, "asset_id", void 0);
2207
+ placecargo = __decorate([
2208
+ Struct.type('placecargo')
2209
+ ], placecargo);
2210
+ Types.placecargo = placecargo;
2211
+ let placeentity = class placeentity extends Struct {
2212
+ };
2213
+ __decorate([
2214
+ Struct.field(Name)
2215
+ ], placeentity.prototype, "owner", void 0);
2216
+ __decorate([
2217
+ Struct.field(UInt64)
2218
+ ], placeentity.prototype, "asset_id", void 0);
2219
+ __decorate([
2220
+ Struct.field(UInt64)
2221
+ ], placeentity.prototype, "target_nexus_id", void 0);
2222
+ placeentity = __decorate([
2223
+ Struct.type('placeentity')
2224
+ ], placeentity);
2225
+ Types.placeentity = placeentity;
2226
+ let player_info = class player_info extends Struct {
2227
+ };
2228
+ __decorate([
2229
+ Struct.field(Name)
2230
+ ], player_info.prototype, "owner", void 0);
2231
+ __decorate([
2232
+ Struct.field('bool')
2233
+ ], player_info.prototype, "is_player", void 0);
2234
+ __decorate([
2235
+ Struct.field('string')
2236
+ ], player_info.prototype, "company_name", void 0);
2237
+ player_info = __decorate([
2238
+ Struct.type('player_info')
2239
+ ], player_info);
2240
+ Types.player_info = player_info;
2241
+ let player_row = class player_row extends Struct {
2242
+ };
2243
+ __decorate([
2244
+ Struct.field(Name)
2245
+ ], player_row.prototype, "owner", void 0);
2246
+ player_row = __decorate([
2247
+ Struct.type('player_row')
2248
+ ], player_row);
2249
+ Types.player_row = player_row;
2250
+ let projected_state = class projected_state extends Struct {
2251
+ };
2252
+ __decorate([
2253
+ Struct.field(Name)
2254
+ ], projected_state.prototype, "owner", void 0);
2255
+ __decorate([
2256
+ Struct.field(coordinates)
2257
+ ], projected_state.prototype, "coordinates", void 0);
2258
+ __decorate([
2259
+ Struct.field(UInt32, { optional: true })
2260
+ ], projected_state.prototype, "energy", void 0);
2261
+ __decorate([
2262
+ Struct.field(UInt32)
2263
+ ], projected_state.prototype, "cargomass", void 0);
2264
+ __decorate([
2265
+ Struct.field(cargo_view, { array: true })
2266
+ ], projected_state.prototype, "cargo", void 0);
2267
+ __decorate([
2268
+ Struct.field(UInt32, { optional: true })
2269
+ ], projected_state.prototype, "hullmass", void 0);
2270
+ __decorate([
2271
+ Struct.field(UInt32, { optional: true })
2272
+ ], projected_state.prototype, "capacity", void 0);
2273
+ __decorate([
2274
+ Struct.field(movement_stats, { optional: true })
2275
+ ], projected_state.prototype, "engines", void 0);
2276
+ __decorate([
2277
+ Struct.field(warp_stats, { optional: true })
2278
+ ], projected_state.prototype, "warp", void 0);
2279
+ __decorate([
2280
+ Struct.field(energy_stats, { optional: true })
2281
+ ], projected_state.prototype, "generator", void 0);
2282
+ __decorate([
2283
+ Struct.field(gatherer_stats, { optional: true })
2284
+ ], projected_state.prototype, "gatherer", void 0);
2285
+ __decorate([
2286
+ Struct.field(loader_stats, { optional: true })
2287
+ ], projected_state.prototype, "loaders", void 0);
2288
+ __decorate([
2289
+ Struct.field(hauler_stats, { optional: true })
2290
+ ], projected_state.prototype, "hauler", void 0);
2291
+ __decorate([
2292
+ Struct.field(crafter_stats, { optional: true })
2293
+ ], projected_state.prototype, "crafter", void 0);
2294
+ projected_state = __decorate([
2295
+ Struct.type('projected_state')
2296
+ ], projected_state);
2297
+ Types.projected_state = projected_state;
2298
+ let recharge = class recharge extends Struct {
2299
+ };
2300
+ __decorate([
2301
+ Struct.field(UInt64)
2302
+ ], recharge.prototype, "id", void 0);
2303
+ recharge = __decorate([
2304
+ Struct.type('recharge')
2305
+ ], recharge);
2306
+ Types.recharge = recharge;
2307
+ let refrshentity = class refrshentity extends Struct {
2308
+ };
2309
+ __decorate([
2310
+ Struct.field(UInt64)
2311
+ ], refrshentity.prototype, "entity_id", void 0);
2312
+ refrshentity = __decorate([
2313
+ Struct.type('refrshentity')
2314
+ ], refrshentity);
2315
+ Types.refrshentity = refrshentity;
2316
+ let removeoracle = class removeoracle extends Struct {
2317
+ };
2318
+ __decorate([
2319
+ Struct.field(Name)
2320
+ ], removeoracle.prototype, "oracle_id", void 0);
2321
+ removeoracle = __decorate([
2322
+ Struct.type('removeoracle')
2323
+ ], removeoracle);
2324
+ Types.removeoracle = removeoracle;
2325
+ let rename = class rename extends Struct {
2326
+ };
2327
+ __decorate([
2328
+ Struct.field(UInt64)
2329
+ ], rename.prototype, "id", void 0);
2330
+ __decorate([
2331
+ Struct.field('string')
2332
+ ], rename.prototype, "name", void 0);
2333
+ rename = __decorate([
2334
+ Struct.type('rename')
2335
+ ], rename);
2336
+ Types.rename = rename;
2337
+ let resolve = class resolve extends Struct {
2338
+ };
2339
+ __decorate([
2340
+ Struct.field(UInt64)
2341
+ ], resolve.prototype, "id", void 0);
2342
+ __decorate([
2343
+ Struct.field(UInt64, { optional: true })
2344
+ ], resolve.prototype, "count", void 0);
2345
+ resolve = __decorate([
2346
+ Struct.type('resolve')
2347
+ ], resolve);
2348
+ Types.resolve = resolve;
2349
+ let resolve_results = class resolve_results extends Struct {
2350
+ };
2351
+ __decorate([
2352
+ Struct.field(UInt64)
2353
+ ], resolve_results.prototype, "entity_id", void 0);
2354
+ __decorate([
2355
+ Struct.field(Name)
2356
+ ], resolve_results.prototype, "entity_type", void 0);
2357
+ __decorate([
2358
+ Struct.field(UInt8)
2359
+ ], resolve_results.prototype, "resolved_count", void 0);
2360
+ __decorate([
2361
+ Struct.field(TimePoint, { optional: true })
2362
+ ], resolve_results.prototype, "new_schedule_started", void 0);
2363
+ __decorate([
2364
+ Struct.field(UInt64, { optional: true })
2365
+ ], resolve_results.prototype, "entitygroup", void 0);
2366
+ __decorate([
2367
+ Struct.field(entity_ref, { array: true, optional: true })
2368
+ ], resolve_results.prototype, "group_members", void 0);
2369
+ resolve_results = __decorate([
2370
+ Struct.type('resolve_results')
2371
+ ], resolve_results);
2372
+ Types.resolve_results = resolve_results;
2373
+ let resource_info = class resource_info extends Struct {
2374
+ };
2375
+ __decorate([
2376
+ Struct.field(UInt16)
2377
+ ], resource_info.prototype, "id", void 0);
2378
+ __decorate([
2379
+ Struct.field(UInt32)
2380
+ ], resource_info.prototype, "mass", void 0);
2381
+ __decorate([
2382
+ Struct.field(UInt8)
2383
+ ], resource_info.prototype, "category", void 0);
2384
+ __decorate([
2385
+ Struct.field(UInt8)
2386
+ ], resource_info.prototype, "tier", void 0);
2387
+ resource_info = __decorate([
2388
+ Struct.type('resource_info')
2389
+ ], resource_info);
2390
+ Types.resource_info = resource_info;
2391
+ let resource_stats = class resource_stats extends Struct {
2392
+ };
2393
+ __decorate([
2394
+ Struct.field(UInt16)
2395
+ ], resource_stats.prototype, "stat1", void 0);
2396
+ __decorate([
2397
+ Struct.field(UInt16)
2398
+ ], resource_stats.prototype, "stat2", void 0);
2399
+ __decorate([
2400
+ Struct.field(UInt16)
2401
+ ], resource_stats.prototype, "stat3", void 0);
2402
+ resource_stats = __decorate([
2403
+ Struct.type('resource_stats')
2404
+ ], resource_stats);
2405
+ Types.resource_stats = resource_stats;
2406
+ let resources_result = class resources_result extends Struct {
2407
+ };
2408
+ __decorate([
2409
+ Struct.field(resource_info, { array: true })
2410
+ ], resources_result.prototype, "resources", void 0);
2411
+ resources_result = __decorate([
2412
+ Struct.type('resources_result')
2413
+ ], resources_result);
2414
+ Types.resources_result = resources_result;
2415
+ let retarget = class retarget extends Struct {
2416
+ };
2417
+ __decorate([
2418
+ Struct.field(UInt64)
2419
+ ], retarget.prototype, "source_id", void 0);
2420
+ __decorate([
2421
+ Struct.field(UInt64)
2422
+ ], retarget.prototype, "task_index", void 0);
2423
+ __decorate([
2424
+ Struct.field(UInt64)
2425
+ ], retarget.prototype, "new_dest_id", void 0);
2426
+ retarget = __decorate([
2427
+ Struct.type('retarget')
2428
+ ], retarget);
2429
+ Types.retarget = retarget;
2430
+ let reveal = class reveal extends Struct {
2431
+ };
2432
+ __decorate([
2433
+ Struct.field(Name)
2434
+ ], reveal.prototype, "oracle_id", void 0);
2435
+ __decorate([
2436
+ Struct.field(UInt64)
2437
+ ], reveal.prototype, "epoch", void 0);
2438
+ __decorate([
2439
+ Struct.field(Checksum256)
2440
+ ], reveal.prototype, "reveal", void 0);
2441
+ reveal = __decorate([
2442
+ Struct.type('reveal')
2443
+ ], reveal);
2444
+ Types.reveal = reveal;
2445
+ let reveal_row = class reveal_row extends Struct {
2446
+ };
2447
+ __decorate([
2448
+ Struct.field(UInt64)
2449
+ ], reveal_row.prototype, "id", void 0);
2450
+ __decorate([
2451
+ Struct.field(UInt64)
2452
+ ], reveal_row.prototype, "epoch", void 0);
2453
+ __decorate([
2454
+ Struct.field(Name)
2455
+ ], reveal_row.prototype, "oracle_id", void 0);
2456
+ __decorate([
2457
+ Struct.field(Checksum256)
2458
+ ], reveal_row.prototype, "reveal", void 0);
2459
+ reveal_row = __decorate([
2460
+ Struct.type('reveal_row')
2461
+ ], reveal_row);
2462
+ Types.reveal_row = reveal_row;
2463
+ let rmmodule = class rmmodule extends Struct {
2464
+ };
2465
+ __decorate([
2466
+ Struct.field(UInt64)
2467
+ ], rmmodule.prototype, "entity_id", void 0);
2468
+ __decorate([
2469
+ Struct.field(UInt8)
2470
+ ], rmmodule.prototype, "module_index", void 0);
2471
+ __decorate([
2472
+ Struct.field(cargo_ref, { optional: true })
2473
+ ], rmmodule.prototype, "target_ref", void 0);
2474
+ rmmodule = __decorate([
2475
+ Struct.type('rmmodule')
2476
+ ], rmmodule);
2477
+ Types.rmmodule = rmmodule;
2478
+ let rmnftcfg = class rmnftcfg extends Struct {
2479
+ };
2480
+ __decorate([
2481
+ Struct.field(UInt16)
2482
+ ], rmnftcfg.prototype, "item_id", void 0);
2483
+ rmnftcfg = __decorate([
2484
+ Struct.type('rmnftcfg')
2485
+ ], rmnftcfg);
2486
+ Types.rmnftcfg = rmnftcfg;
2487
+ let setnftcfg = class setnftcfg extends Struct {
2488
+ };
2489
+ __decorate([
2490
+ Struct.field(UInt16)
2491
+ ], setnftcfg.prototype, "item_id", void 0);
2492
+ __decorate([
2493
+ Struct.field(Int32)
2494
+ ], setnftcfg.prototype, "template_id", void 0);
2495
+ __decorate([
2496
+ Struct.field(Name)
2497
+ ], setnftcfg.prototype, "schema_name", void 0);
2498
+ setnftcfg = __decorate([
2499
+ Struct.type('setnftcfg')
2500
+ ], setnftcfg);
2501
+ Types.setnftcfg = setnftcfg;
2502
+ let setthreshold = class setthreshold extends Struct {
2503
+ };
2504
+ __decorate([
2505
+ Struct.field(UInt8)
2506
+ ], setthreshold.prototype, "threshold", void 0);
2507
+ setthreshold = __decorate([
2508
+ Struct.type('setthreshold')
2509
+ ], setthreshold);
2510
+ Types.setthreshold = setthreshold;
2511
+ let setwrapcost = class setwrapcost extends Struct {
2512
+ };
2513
+ __decorate([
2514
+ Struct.field(UInt8)
2515
+ ], setwrapcost.prototype, "item_type", void 0);
2516
+ __decorate([
2517
+ Struct.field(UInt8)
2518
+ ], setwrapcost.prototype, "tier", void 0);
2519
+ __decorate([
2520
+ Struct.field(UInt64)
2521
+ ], setwrapcost.prototype, "amount", void 0);
2522
+ setwrapcost = __decorate([
2523
+ Struct.type('setwrapcost')
2524
+ ], setwrapcost);
2525
+ Types.setwrapcost = setwrapcost;
2526
+ let setwrapfee = class setwrapfee extends Struct {
2527
+ };
2528
+ __decorate([
2529
+ Struct.field(UInt16)
2530
+ ], setwrapfee.prototype, "fee_pct", void 0);
2531
+ __decorate([
2532
+ Struct.field(Name)
2533
+ ], setwrapfee.prototype, "fee_account", void 0);
2534
+ setwrapfee = __decorate([
2535
+ Struct.type('setwrapfee')
2536
+ ], setwrapfee);
2537
+ Types.setwrapfee = setwrapfee;
2538
+ let stowcargo = class stowcargo extends Struct {
2539
+ };
2540
+ __decorate([
2541
+ Struct.field(Name)
2542
+ ], stowcargo.prototype, "owner", void 0);
2543
+ __decorate([
2544
+ Struct.field(UInt64)
2545
+ ], stowcargo.prototype, "entity_id", void 0);
2546
+ __decorate([
2547
+ Struct.field(UInt64)
2548
+ ], stowcargo.prototype, "nexus_id", void 0);
2549
+ __decorate([
2550
+ Struct.field(UInt64)
2551
+ ], stowcargo.prototype, "cargo_id", void 0);
2552
+ __decorate([
2553
+ Struct.field(UInt64)
2554
+ ], stowcargo.prototype, "quantity", void 0);
2555
+ stowcargo = __decorate([
2556
+ Struct.type('stowcargo')
2557
+ ], stowcargo);
2558
+ Types.stowcargo = stowcargo;
2559
+ let stowentity = class stowentity extends Struct {
2560
+ };
2561
+ __decorate([
2562
+ Struct.field(Name)
2563
+ ], stowentity.prototype, "owner", void 0);
2564
+ __decorate([
2565
+ Struct.field(UInt64)
2566
+ ], stowentity.prototype, "entity_id", void 0);
2567
+ __decorate([
2568
+ Struct.field(UInt64)
2569
+ ], stowentity.prototype, "nexus_id", void 0);
2570
+ stowentity = __decorate([
2571
+ Struct.type('stowentity')
2572
+ ], stowentity);
2573
+ Types.stowentity = stowentity;
2574
+ let stratum_info = class stratum_info extends Struct {
2575
+ };
2576
+ __decorate([
2577
+ Struct.field(UInt16)
2578
+ ], stratum_info.prototype, "item_id", void 0);
2579
+ __decorate([
2580
+ Struct.field(UInt64)
2581
+ ], stratum_info.prototype, "seed", void 0);
2582
+ __decorate([
2583
+ Struct.field(UInt16)
2584
+ ], stratum_info.prototype, "richness", void 0);
2585
+ __decorate([
2586
+ Struct.field(UInt32)
2587
+ ], stratum_info.prototype, "reserve", void 0);
2588
+ __decorate([
2589
+ Struct.field(UInt32)
2590
+ ], stratum_info.prototype, "reserve_max", void 0);
2591
+ stratum_info = __decorate([
2592
+ Struct.type('stratum_info')
2593
+ ], stratum_info);
2594
+ Types.stratum_info = stratum_info;
2595
+ let stratum_data = class stratum_data extends Struct {
2596
+ };
2597
+ __decorate([
2598
+ Struct.field(stratum_info)
2599
+ ], stratum_data.prototype, "stratum", void 0);
2600
+ __decorate([
2601
+ Struct.field(resource_stats)
2602
+ ], stratum_data.prototype, "stats", void 0);
2603
+ stratum_data = __decorate([
2604
+ Struct.type('stratum_data')
2605
+ ], stratum_data);
2606
+ Types.stratum_data = stratum_data;
2607
+ let stratum_remaining = class stratum_remaining extends Struct {
2608
+ };
2609
+ __decorate([
2610
+ Struct.field(UInt16)
2611
+ ], stratum_remaining.prototype, "stratum", void 0);
2612
+ __decorate([
2613
+ Struct.field(UInt32)
2614
+ ], stratum_remaining.prototype, "remaining", void 0);
2615
+ __decorate([
2616
+ Struct.field(BlockTimestamp)
2617
+ ], stratum_remaining.prototype, "last_block", void 0);
2618
+ stratum_remaining = __decorate([
2619
+ Struct.type('stratum_remaining')
2620
+ ], stratum_remaining);
2621
+ Types.stratum_remaining = stratum_remaining;
2622
+ let swapmodule = class swapmodule extends Struct {
2623
+ };
2624
+ __decorate([
2625
+ Struct.field(UInt64)
2626
+ ], swapmodule.prototype, "entity_id", void 0);
2627
+ __decorate([
2628
+ Struct.field(UInt8)
2629
+ ], swapmodule.prototype, "module_index", void 0);
2630
+ __decorate([
2631
+ Struct.field(cargo_ref)
2632
+ ], swapmodule.prototype, "module_ref", void 0);
2633
+ swapmodule = __decorate([
2634
+ Struct.type('swapmodule')
2635
+ ], swapmodule);
2636
+ Types.swapmodule = swapmodule;
2637
+ let task_results = class task_results extends Struct {
2638
+ };
2639
+ __decorate([
2640
+ Struct.field(entity_task_info, { array: true })
2641
+ ], task_results.prototype, "entities", void 0);
2642
+ task_results = __decorate([
2643
+ Struct.type('task_results')
2644
+ ], task_results);
2645
+ Types.task_results = task_results;
2646
+ let transfer = class transfer extends Struct {
2647
+ };
2648
+ __decorate([
2649
+ Struct.field(UInt64)
2650
+ ], transfer.prototype, "source_id", void 0);
2651
+ __decorate([
2652
+ Struct.field(UInt64)
2653
+ ], transfer.prototype, "dest_id", void 0);
2654
+ __decorate([
2655
+ Struct.field(cargo_item, { array: true })
2656
+ ], transfer.prototype, "items", void 0);
2657
+ transfer = __decorate([
2658
+ Struct.type('transfer')
2659
+ ], transfer);
2660
+ Types.transfer = transfer;
2661
+ let travel = class travel extends Struct {
2662
+ };
2663
+ __decorate([
2664
+ Struct.field(UInt64)
2665
+ ], travel.prototype, "id", void 0);
2666
+ __decorate([
2667
+ Struct.field(Int64)
2668
+ ], travel.prototype, "x", void 0);
2669
+ __decorate([
2670
+ Struct.field(Int64)
2671
+ ], travel.prototype, "y", void 0);
2672
+ __decorate([
2673
+ Struct.field('bool')
2674
+ ], travel.prototype, "recharge", void 0);
2675
+ travel = __decorate([
2676
+ Struct.type('travel')
2677
+ ], travel);
2678
+ Types.travel = travel;
2679
+ let types_row = class types_row extends Struct {
2680
+ };
2681
+ __decorate([
2682
+ Struct.field(UInt64)
2683
+ ], types_row.prototype, "id", void 0);
2684
+ __decorate([
2685
+ Struct.field(entity_summary)
2686
+ ], types_row.prototype, "entity_summary_type", void 0);
2687
+ __decorate([
2688
+ Struct.field(game_config)
2689
+ ], types_row.prototype, "game_config_type", void 0);
2690
+ __decorate([
2691
+ Struct.field(stratum_remaining)
2692
+ ], types_row.prototype, "stratum_remaining_type", void 0);
2693
+ __decorate([
2694
+ Struct.field(nft_item_payload)
2695
+ ], types_row.prototype, "nft_item_payload_type", void 0);
2696
+ types_row = __decorate([
2697
+ Struct.type('types_row')
2698
+ ], types_row);
2699
+ Types.types_row = types_row;
2700
+ let undeploy = class undeploy extends Struct {
2701
+ };
2702
+ __decorate([
2703
+ Struct.field(UInt64)
2704
+ ], undeploy.prototype, "host_id", void 0);
2705
+ __decorate([
2706
+ Struct.field(UInt64)
2707
+ ], undeploy.prototype, "target_id", void 0);
2708
+ undeploy = __decorate([
2709
+ Struct.type('undeploy')
2710
+ ], undeploy);
2711
+ Types.undeploy = undeploy;
2712
+ let warp = class warp extends Struct {
2713
+ };
2714
+ __decorate([
2715
+ Struct.field(UInt64)
2716
+ ], warp.prototype, "id", void 0);
2717
+ __decorate([
2718
+ Struct.field(Int64)
2719
+ ], warp.prototype, "x", void 0);
2720
+ __decorate([
2721
+ Struct.field(Int64)
2722
+ ], warp.prototype, "y", void 0);
2723
+ warp = __decorate([
2724
+ Struct.type('warp')
2725
+ ], warp);
2726
+ Types.warp = warp;
2727
+ let wipe = class wipe extends Struct {
2728
+ };
2729
+ wipe = __decorate([
2730
+ Struct.type('wipe')
2731
+ ], wipe);
2732
+ Types.wipe = wipe;
2733
+ let wrapconfig_row = class wrapconfig_row extends Struct {
2734
+ };
2735
+ __decorate([
2736
+ Struct.field(UInt16)
2737
+ ], wrapconfig_row.prototype, "fee_pct", void 0);
2738
+ __decorate([
2739
+ Struct.field(Name)
2740
+ ], wrapconfig_row.prototype, "fee_account", void 0);
2741
+ wrapconfig_row = __decorate([
2742
+ Struct.type('wrapconfig_row')
2743
+ ], wrapconfig_row);
2744
+ Types.wrapconfig_row = wrapconfig_row;
2745
+ let wrapcost_row = class wrapcost_row extends Struct {
2746
+ };
2747
+ __decorate([
2748
+ Struct.field(UInt8)
2749
+ ], wrapcost_row.prototype, "item_type", void 0);
2750
+ __decorate([
2751
+ Struct.field(UInt8)
2752
+ ], wrapcost_row.prototype, "tier", void 0);
2753
+ __decorate([
2754
+ Struct.field(UInt64)
2755
+ ], wrapcost_row.prototype, "amount", void 0);
2756
+ wrapcost_row = __decorate([
2757
+ Struct.type('wrapcost_row')
2758
+ ], wrapcost_row);
2759
+ Types.wrapcost_row = wrapcost_row;
2760
+ })(Types || (Types = {}));
2761
+ ({
2762
+ cargo: Types.cargo_row,
2763
+ claims: Types.claim_row,
2764
+ commit: Types.commit_row,
2765
+ entity: Types.entity_row,
2766
+ entitygroup: Types.entitygroup_row,
2767
+ entityseq: Types.entity_seq_row,
2768
+ epoch: Types.epoch_row,
2769
+ nftconfig: Types.nftconfig_row,
2770
+ oraclecfg: Types.oracle_config_row,
2771
+ oracles: Types.oracle_row,
2772
+ player: Types.player_row,
2773
+ reserve: Types.reserve_row,
2774
+ reveal: Types.reveal_row,
2775
+ state: Types.state_row,
2776
+ types: Types.types_row,
2777
+ wrapconfig: Types.wrapconfig_row,
2778
+ wrapcost: Types.wrapcost_row,
2779
+ });
2780
+
2781
+ var items = [
2782
+ {
2783
+ id: 101,
2784
+ mass: 1000,
2785
+ type: "resource",
2786
+ tier: 1,
2787
+ category: "ore"
2788
+ },
2789
+ {
2790
+ id: 102,
2791
+ mass: 1000,
2792
+ type: "resource",
2793
+ tier: 2,
2794
+ category: "ore"
2795
+ },
2796
+ {
2797
+ id: 103,
2798
+ mass: 1000,
2799
+ type: "resource",
2800
+ tier: 3,
2801
+ category: "ore"
2802
+ },
2803
+ {
2804
+ id: 104,
2805
+ mass: 1000,
2806
+ type: "resource",
2807
+ tier: 4,
2808
+ category: "ore"
2809
+ },
2810
+ {
2811
+ id: 105,
2812
+ mass: 1000,
2813
+ type: "resource",
2814
+ tier: 5,
2815
+ category: "ore"
2816
+ },
2817
+ {
2818
+ id: 106,
2819
+ mass: 1000,
2820
+ type: "resource",
2821
+ tier: 6,
2822
+ category: "ore"
2823
+ },
2824
+ {
2825
+ id: 107,
2826
+ mass: 1000,
2827
+ type: "resource",
2828
+ tier: 7,
2829
+ category: "ore"
2830
+ },
2831
+ {
2832
+ id: 108,
2833
+ mass: 1000,
2834
+ type: "resource",
2835
+ tier: 8,
2836
+ category: "ore"
2837
+ },
2838
+ {
2839
+ id: 109,
2840
+ mass: 1000,
2841
+ type: "resource",
2842
+ tier: 9,
2843
+ category: "ore"
2844
+ },
2845
+ {
2846
+ id: 110,
2847
+ mass: 1000,
2848
+ type: "resource",
2849
+ tier: 10,
2850
+ category: "ore"
2851
+ },
2852
+ {
2853
+ id: 201,
2854
+ mass: 1000,
2855
+ type: "resource",
2856
+ tier: 1,
2857
+ category: "crystal"
2858
+ },
2859
+ {
2860
+ id: 202,
2861
+ mass: 1000,
2862
+ type: "resource",
2863
+ tier: 2,
2864
+ category: "crystal"
2865
+ },
2866
+ {
2867
+ id: 203,
2868
+ mass: 1000,
2869
+ type: "resource",
2870
+ tier: 3,
2871
+ category: "crystal"
2872
+ },
2873
+ {
2874
+ id: 204,
2875
+ mass: 1000,
2876
+ type: "resource",
2877
+ tier: 4,
2878
+ category: "crystal"
2879
+ },
2880
+ {
2881
+ id: 205,
2882
+ mass: 1000,
2883
+ type: "resource",
2884
+ tier: 5,
2885
+ category: "crystal"
2886
+ },
2887
+ {
2888
+ id: 206,
2889
+ mass: 1000,
2890
+ type: "resource",
2891
+ tier: 6,
2892
+ category: "crystal"
2893
+ },
2894
+ {
2895
+ id: 207,
2896
+ mass: 1000,
2897
+ type: "resource",
2898
+ tier: 7,
2899
+ category: "crystal"
2900
+ },
2901
+ {
2902
+ id: 208,
2903
+ mass: 1000,
2904
+ type: "resource",
2905
+ tier: 8,
2906
+ category: "crystal"
2907
+ },
2908
+ {
2909
+ id: 209,
2910
+ mass: 1000,
2911
+ type: "resource",
2912
+ tier: 9,
2913
+ category: "crystal"
2914
+ },
2915
+ {
2916
+ id: 210,
2917
+ mass: 1000,
2918
+ type: "resource",
2919
+ tier: 10,
2920
+ category: "crystal"
2921
+ },
2922
+ {
2923
+ id: 301,
2924
+ mass: 1000,
2925
+ type: "resource",
2926
+ tier: 1,
2927
+ category: "gas"
2928
+ },
2929
+ {
2930
+ id: 302,
2931
+ mass: 1000,
2932
+ type: "resource",
2933
+ tier: 2,
2934
+ category: "gas"
2935
+ },
2936
+ {
2937
+ id: 303,
2938
+ mass: 1000,
2939
+ type: "resource",
2940
+ tier: 3,
2941
+ category: "gas"
2942
+ },
2943
+ {
2944
+ id: 304,
2945
+ mass: 1000,
2946
+ type: "resource",
2947
+ tier: 4,
2948
+ category: "gas"
2949
+ },
2950
+ {
2951
+ id: 305,
2952
+ mass: 1000,
2953
+ type: "resource",
2954
+ tier: 5,
2955
+ category: "gas"
2956
+ },
2957
+ {
2958
+ id: 306,
2959
+ mass: 1000,
2960
+ type: "resource",
2961
+ tier: 6,
2962
+ category: "gas"
2963
+ },
2964
+ {
2965
+ id: 307,
2966
+ mass: 1000,
2967
+ type: "resource",
2968
+ tier: 7,
2969
+ category: "gas"
2970
+ },
2971
+ {
2972
+ id: 308,
2973
+ mass: 1000,
2974
+ type: "resource",
2975
+ tier: 8,
2976
+ category: "gas"
2977
+ },
2978
+ {
2979
+ id: 309,
2980
+ mass: 1000,
2981
+ type: "resource",
2982
+ tier: 9,
2983
+ category: "gas"
2984
+ },
2985
+ {
2986
+ id: 310,
2987
+ mass: 1000,
2988
+ type: "resource",
2989
+ tier: 10,
2990
+ category: "gas"
2991
+ },
2992
+ {
2993
+ id: 401,
2994
+ mass: 1000,
2995
+ type: "resource",
2996
+ tier: 1,
2997
+ category: "regolith"
2998
+ },
2999
+ {
3000
+ id: 402,
3001
+ mass: 1000,
3002
+ type: "resource",
3003
+ tier: 2,
3004
+ category: "regolith"
3005
+ },
3006
+ {
3007
+ id: 403,
3008
+ mass: 1000,
3009
+ type: "resource",
3010
+ tier: 3,
3011
+ category: "regolith"
3012
+ },
3013
+ {
3014
+ id: 404,
3015
+ mass: 1000,
3016
+ type: "resource",
3017
+ tier: 4,
3018
+ category: "regolith"
3019
+ },
3020
+ {
3021
+ id: 405,
3022
+ mass: 1000,
3023
+ type: "resource",
3024
+ tier: 5,
3025
+ category: "regolith"
3026
+ },
3027
+ {
3028
+ id: 406,
3029
+ mass: 1000,
3030
+ type: "resource",
3031
+ tier: 6,
3032
+ category: "regolith"
3033
+ },
3034
+ {
3035
+ id: 407,
3036
+ mass: 1000,
3037
+ type: "resource",
3038
+ tier: 7,
3039
+ category: "regolith"
3040
+ },
3041
+ {
3042
+ id: 408,
3043
+ mass: 1000,
3044
+ type: "resource",
3045
+ tier: 8,
3046
+ category: "regolith"
3047
+ },
3048
+ {
3049
+ id: 409,
3050
+ mass: 1000,
3051
+ type: "resource",
3052
+ tier: 9,
3053
+ category: "regolith"
3054
+ },
3055
+ {
3056
+ id: 410,
3057
+ mass: 1000,
3058
+ type: "resource",
3059
+ tier: 10,
3060
+ category: "regolith"
3061
+ },
3062
+ {
3063
+ id: 501,
3064
+ mass: 1000,
3065
+ type: "resource",
3066
+ tier: 1,
3067
+ category: "biomass"
3068
+ },
3069
+ {
3070
+ id: 502,
3071
+ mass: 1000,
3072
+ type: "resource",
3073
+ tier: 2,
3074
+ category: "biomass"
3075
+ },
3076
+ {
3077
+ id: 503,
3078
+ mass: 1000,
3079
+ type: "resource",
3080
+ tier: 3,
3081
+ category: "biomass"
3082
+ },
3083
+ {
3084
+ id: 504,
3085
+ mass: 1000,
3086
+ type: "resource",
3087
+ tier: 4,
3088
+ category: "biomass"
3089
+ },
3090
+ {
3091
+ id: 505,
3092
+ mass: 1000,
3093
+ type: "resource",
3094
+ tier: 5,
3095
+ category: "biomass"
3096
+ },
3097
+ {
3098
+ id: 506,
3099
+ mass: 1000,
3100
+ type: "resource",
3101
+ tier: 6,
3102
+ category: "biomass"
3103
+ },
3104
+ {
3105
+ id: 507,
3106
+ mass: 1000,
3107
+ type: "resource",
3108
+ tier: 7,
3109
+ category: "biomass"
3110
+ },
3111
+ {
3112
+ id: 508,
3113
+ mass: 1000,
3114
+ type: "resource",
3115
+ tier: 8,
3116
+ category: "biomass"
3117
+ },
3118
+ {
3119
+ id: 509,
3120
+ mass: 1000,
3121
+ type: "resource",
3122
+ tier: 9,
3123
+ category: "biomass"
3124
+ },
3125
+ {
3126
+ id: 510,
3127
+ mass: 1000,
3128
+ type: "resource",
3129
+ tier: 10,
3130
+ category: "biomass"
3131
+ },
3132
+ {
3133
+ id: 10001,
3134
+ mass: 4000,
3135
+ type: "component",
3136
+ tier: 1
3137
+ },
3138
+ {
3139
+ id: 10002,
3140
+ mass: 6000,
3141
+ type: "component",
3142
+ tier: 1
3143
+ },
3144
+ {
3145
+ id: 10003,
3146
+ mass: 4000,
3147
+ type: "component",
3148
+ tier: 1
3149
+ },
3150
+ {
3151
+ id: 10004,
3152
+ mass: 6000,
3153
+ type: "component",
3154
+ tier: 1
3155
+ },
3156
+ {
3157
+ id: 10005,
3158
+ mass: 6000,
3159
+ type: "component",
3160
+ tier: 1
3161
+ },
3162
+ {
3163
+ id: 10006,
3164
+ mass: 4000,
3165
+ type: "component",
3166
+ tier: 1
3167
+ },
3168
+ {
3169
+ id: 10007,
3170
+ mass: 4000,
3171
+ type: "component",
3172
+ tier: 1
3173
+ },
3174
+ {
3175
+ id: 10008,
3176
+ mass: 4000,
3177
+ type: "component",
3178
+ tier: 1
3179
+ },
3180
+ {
3181
+ id: 10009,
3182
+ mass: 6000,
3183
+ type: "component",
3184
+ tier: 1
3185
+ },
3186
+ {
3187
+ id: 10010,
3188
+ mass: 6000,
3189
+ type: "component",
3190
+ tier: 1
3191
+ },
3192
+ {
3193
+ id: 10100,
3194
+ mass: 900000,
3195
+ type: "module",
3196
+ tier: 1,
3197
+ subtype: "engine"
3198
+ },
3199
+ {
3200
+ id: 10101,
3201
+ mass: 1400000,
3202
+ type: "module",
3203
+ tier: 1,
3204
+ subtype: "generator"
3205
+ },
3206
+ {
3207
+ id: 10102,
3208
+ mass: 1200000,
3209
+ type: "module",
3210
+ tier: 1,
3211
+ subtype: "gatherer"
3212
+ },
3213
+ {
3214
+ id: 10103,
3215
+ mass: 1000000,
3216
+ type: "module",
3217
+ tier: 1,
3218
+ subtype: "loader"
3219
+ },
3220
+ {
3221
+ id: 10104,
3222
+ mass: 1200000,
3223
+ type: "module",
3224
+ tier: 1,
3225
+ subtype: "crafter"
3226
+ },
3227
+ {
3228
+ id: 10105,
3229
+ mass: 1200000,
3230
+ type: "module",
3231
+ tier: 1,
3232
+ subtype: "storage"
3233
+ },
3234
+ {
3235
+ id: 10106,
3236
+ mass: 1400000,
3237
+ type: "module",
3238
+ tier: 1,
3239
+ subtype: "hauler"
3240
+ },
3241
+ {
3242
+ id: 10107,
3243
+ mass: 1400000,
3244
+ type: "module",
3245
+ tier: 1,
3246
+ subtype: "warp"
3247
+ },
3248
+ {
3249
+ id: 10108,
3250
+ mass: 1000000,
3251
+ type: "module",
3252
+ tier: 1,
3253
+ subtype: "battery"
3254
+ },
3255
+ {
3256
+ id: 10200,
3257
+ mass: 1500000,
3258
+ type: "entity",
3259
+ tier: 1
3260
+ },
3261
+ {
3262
+ id: 10201,
3263
+ mass: 2300000,
3264
+ type: "entity",
3265
+ tier: 1
3266
+ },
3267
+ {
3268
+ id: 10202,
3269
+ mass: 5800000,
3270
+ type: "entity",
3271
+ tier: 1
3272
+ },
3273
+ {
3274
+ id: 10203,
3275
+ mass: 4400000,
3276
+ type: "entity",
3277
+ tier: 1
3278
+ },
3279
+ {
3280
+ id: 10204,
3281
+ mass: 5500000,
3282
+ type: "entity",
3283
+ tier: 1
3284
+ },
3285
+ {
3286
+ id: 20001,
3287
+ mass: 500,
3288
+ type: "component",
3289
+ tier: 2
3290
+ },
3291
+ {
3292
+ id: 20002,
3293
+ mass: 300,
3294
+ type: "component",
3295
+ tier: 2
3296
+ },
3297
+ {
3298
+ id: 20200,
3299
+ mass: 80000,
3300
+ type: "entity",
3301
+ tier: 2
3302
+ }
3303
+ ];
3304
+
3305
+ const itemMetadata = {
3306
+ 101: { name: 'Ore', description: 'Crude metallic ore.', color: '#C26D3F' },
3307
+ 102: { name: 'Ore', description: 'Refined metallic ore with improved purity.', color: '#C26D3F' },
3308
+ 103: {
3309
+ name: 'Ore',
3310
+ description: 'High-grade metallic ore with exceptional density.',
3311
+ color: '#C26D3F',
3312
+ },
3313
+ 104: { name: 'Ore', description: '', color: '#C26D3F' },
3314
+ 105: { name: 'Ore', description: '', color: '#C26D3F' },
3315
+ 106: { name: 'Ore', description: '', color: '#C26D3F' },
3316
+ 107: { name: 'Ore', description: '', color: '#C26D3F' },
3317
+ 108: { name: 'Ore', description: '', color: '#C26D3F' },
3318
+ 109: { name: 'Ore', description: '', color: '#C26D3F' },
3319
+ 110: { name: 'Ore', description: '', color: '#C26D3F' },
3320
+ 201: { name: 'Crystal', description: 'Raw resonant crystal.', color: '#4ADBFF' },
3321
+ 202: {
3322
+ name: 'Crystal',
3323
+ description: 'Refined resonant crystal with improved clarity.',
3324
+ color: '#4ADBFF',
3325
+ },
3326
+ 203: {
3327
+ name: 'Crystal',
3328
+ description: 'High-grade resonant crystal with exceptional purity.',
3329
+ color: '#4ADBFF',
3330
+ },
3331
+ 204: { name: 'Crystal', description: '', color: '#4ADBFF' },
3332
+ 205: { name: 'Crystal', description: '', color: '#4ADBFF' },
3333
+ 206: { name: 'Crystal', description: '', color: '#4ADBFF' },
3334
+ 207: { name: 'Crystal', description: '', color: '#4ADBFF' },
3335
+ 208: { name: 'Crystal', description: '', color: '#4ADBFF' },
3336
+ 209: { name: 'Crystal', description: '', color: '#4ADBFF' },
3337
+ 210: { name: 'Crystal', description: '', color: '#4ADBFF' },
3338
+ 301: { name: 'Gas', description: 'Raw volatile gas.', color: '#B877FF' },
3339
+ 302: {
3340
+ name: 'Gas',
3341
+ description: 'Refined volatile gas with improved reactivity.',
3342
+ color: '#B877FF',
3343
+ },
3344
+ 303: {
3345
+ name: 'Gas',
3346
+ description: 'High-grade volatile gas with exceptional energy density.',
3347
+ color: '#B877FF',
3348
+ },
3349
+ 304: { name: 'Gas', description: '', color: '#B877FF' },
3350
+ 305: { name: 'Gas', description: '', color: '#B877FF' },
3351
+ 306: { name: 'Gas', description: '', color: '#B877FF' },
3352
+ 307: { name: 'Gas', description: '', color: '#B877FF' },
3353
+ 308: { name: 'Gas', description: '', color: '#B877FF' },
3354
+ 309: { name: 'Gas', description: '', color: '#B877FF' },
3355
+ 310: { name: 'Gas', description: '', color: '#B877FF' },
3356
+ 401: { name: 'Regolith', description: 'Crude regolith dust.', color: '#C4A57B' },
3357
+ 402: {
3358
+ name: 'Regolith',
3359
+ description: 'Refined regolith with improved fineness.',
3360
+ color: '#C4A57B',
3361
+ },
3362
+ 403: {
3363
+ name: 'Regolith',
3364
+ description: 'High-grade regolith with exceptional uniformity.',
3365
+ color: '#C4A57B',
3366
+ },
3367
+ 404: { name: 'Regolith', description: '', color: '#C4A57B' },
3368
+ 405: { name: 'Regolith', description: '', color: '#C4A57B' },
3369
+ 406: { name: 'Regolith', description: '', color: '#C4A57B' },
3370
+ 407: { name: 'Regolith', description: '', color: '#C4A57B' },
3371
+ 408: { name: 'Regolith', description: '', color: '#C4A57B' },
3372
+ 409: { name: 'Regolith', description: '', color: '#C4A57B' },
3373
+ 410: { name: 'Regolith', description: '', color: '#C4A57B' },
3374
+ 501: { name: 'Biomass', description: 'Crude organic biomass.', color: '#5A8B3E' },
3375
+ 502: {
3376
+ name: 'Biomass',
3377
+ description: 'Refined biomass with improved plasticity.',
3378
+ color: '#5A8B3E',
3379
+ },
3380
+ 503: {
3381
+ name: 'Biomass',
3382
+ description: 'High-grade biomass with exceptional saturation.',
3383
+ color: '#5A8B3E',
3384
+ },
3385
+ 504: { name: 'Biomass', description: '', color: '#5A8B3E' },
3386
+ 505: { name: 'Biomass', description: '', color: '#5A8B3E' },
3387
+ 506: { name: 'Biomass', description: '', color: '#5A8B3E' },
3388
+ 507: { name: 'Biomass', description: '', color: '#5A8B3E' },
3389
+ 508: { name: 'Biomass', description: '', color: '#5A8B3E' },
3390
+ 509: { name: 'Biomass', description: '', color: '#5A8B3E' },
3391
+ 510: { name: 'Biomass', description: '', color: '#5A8B3E' },
3392
+ 10001: {
3393
+ name: 'Plate',
3394
+ description: 'Structural plating formed from ore. Used in hulls, containers, and storage modules.',
3395
+ color: '#7B8D9E',
3396
+ },
3397
+ 10002: {
3398
+ name: 'Frame',
3399
+ description: 'Composite framing formed from fine regolith bound in biomass polymer. Dense enough to seal cargo holds, flexible enough to absorb vibration.',
3400
+ color: '#C4A57B',
3401
+ },
3402
+ 10003: {
3403
+ name: 'Plasma Cell',
3404
+ description: 'High-energy gaseous storage cell. Volatile gas held under controlled thermal conditions.',
3405
+ color: '#E86344',
3406
+ },
3407
+ 10004: {
3408
+ name: 'Resonator',
3409
+ description: 'Crystalline resonance lattice. Stores and releases charge through coherent oscillation.',
3410
+ color: '#4ADBFF',
3411
+ },
3412
+ 10005: {
3413
+ name: 'Beam',
3414
+ description: 'Heavy-duty structural beam machined from refined ore. Strong enough to bear load, tolerant enough to survive harsh environments.',
3415
+ color: '#7B8D9E',
3416
+ },
3417
+ 10006: {
3418
+ name: 'Sensor',
3419
+ description: 'Crystal-lattice sensing element with conductive and reflective properties. Reads signal and surface alike.',
3420
+ color: '#4ADBFF',
3421
+ },
3422
+ 10007: {
3423
+ name: 'Polymer',
3424
+ description: 'Pliable biomass-derived polymer with high insulation. Flexible, durable, electrically inert.',
3425
+ color: '#5A8B3E',
3426
+ },
3427
+ 10008: {
3428
+ name: 'Ceramic',
3429
+ description: 'Hardened fine-grained ceramic refined from regolith. Hard enough to cut, fine enough to finish.',
3430
+ color: '#C4A57B',
3431
+ },
3432
+ 10009: {
3433
+ name: 'Reactor',
3434
+ description: 'Gas-pressurized vessel for controlled reactions. Vents heat and contains volatility.',
3435
+ color: '#B877FF',
3436
+ },
3437
+ 10010: {
3438
+ name: 'Resin',
3439
+ description: 'Saturated organic binder cured from biomass. A pliable matrix for haulage and field components.',
3440
+ color: '#5A8B3E',
3441
+ },
3442
+ 10100: {
3443
+ name: 'Engine',
3444
+ description: 'Basic propulsion system. Converts volatile gases into thrust.',
3445
+ color: '#E86344',
3446
+ },
3447
+ 10101: {
3448
+ name: 'Generator',
3449
+ description: 'Basic energy system. Stores and recharges energy from resonant crystals.',
3450
+ color: '#4ADBFF',
3451
+ },
3452
+ 10102: {
3453
+ name: 'Gatherer',
3454
+ description: 'Basic gathering system. Probes and conduits for raw resources.',
3455
+ color: '#7B8D9E',
3456
+ },
3457
+ 10103: {
3458
+ name: 'Loader',
3459
+ description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
3460
+ color: '#5A8B3E',
3461
+ },
3462
+ 10104: {
3463
+ name: 'Crafter',
3464
+ description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
3465
+ color: '#B877FF',
3466
+ },
3467
+ 10105: {
3468
+ name: 'Storage',
3469
+ description: 'Expands cargo capacity based on hull material quality.',
3470
+ color: '#8B7355',
3471
+ },
3472
+ 10106: {
3473
+ name: 'Hauler',
3474
+ description: 'Projects a haul beam to lock onto and transport containers or warehouses through group travel.',
3475
+ color: '#4ADBFF',
3476
+ },
3477
+ 10107: {
3478
+ name: 'Warp',
3479
+ description: 'Folds local space-time around the hull, projecting the ship across vast distances in a single discharge of the entire energy reserve.',
3480
+ color: '#9be4ff',
3481
+ },
3482
+ 10108: {
3483
+ name: 'Battery',
3484
+ description: 'Extends energy capacity. Stores additional charge produced by generators, letting builds chain more high-drain actions between recharges.',
3485
+ color: '#4ADBFF',
3486
+ },
3487
+ 10200: {
3488
+ name: 'Container',
3489
+ description: 'Passive floating cargo storage in space. Towed by ships.',
3490
+ color: '#7B8D9E',
3491
+ },
3492
+ 10201: {
3493
+ name: 'Ship',
3494
+ description: 'General-purpose vessel with 5 module slots.',
3495
+ color: '#4AE898',
3496
+ },
3497
+ 10202: {
3498
+ name: 'Warehouse',
3499
+ description: 'Massive stationary storage facility with a single loader module slot.',
3500
+ color: '#EAB308',
3501
+ },
3502
+ 10203: {
3503
+ name: 'Extractor',
3504
+ description: 'Planetary resource extraction facility with generator and gatherer module slots.',
3505
+ color: '#D4726F',
3506
+ },
3507
+ 10204: {
3508
+ name: 'Factory',
3509
+ description: 'Planetary fabrication facility with generator and crafter module slots.',
3510
+ color: '#7BA7D4',
3511
+ },
3512
+ 20001: {
3513
+ name: 'Plate',
3514
+ description: 'Advanced structural plating reinforced with tier 2 ore.',
3515
+ color: '#9BADB8',
3516
+ },
3517
+ 20002: {
3518
+ name: 'Frame',
3519
+ description: 'Advanced composite framing reinforced with tier 2 regolith and biomass polymer.',
3520
+ color: '#C4A57B',
3521
+ },
3522
+ 20200: {
3523
+ name: 'Container',
3524
+ description: 'Advanced cargo container with improved capacity formulas.',
3525
+ color: '#9BADB8',
3526
+ },
3527
+ };
3528
+ for (const item of items) {
3529
+ if (!itemMetadata[item.id]) {
3530
+ throw new Error(`Missing metadata for item ${item.id}. Add an entry to metadata.ts.`);
3531
+ }
3532
+ }
3533
+
3534
+ var TaskType;
3535
+ (function (TaskType) {
3536
+ TaskType[TaskType["IDLE"] = 0] = "IDLE";
3537
+ TaskType[TaskType["TRAVEL"] = 1] = "TRAVEL";
3538
+ TaskType[TaskType["RECHARGE"] = 2] = "RECHARGE";
3539
+ TaskType[TaskType["LOAD"] = 3] = "LOAD";
3540
+ TaskType[TaskType["UNLOAD"] = 4] = "UNLOAD";
3541
+ TaskType[TaskType["GATHER"] = 5] = "GATHER";
3542
+ TaskType[TaskType["WARP"] = 6] = "WARP";
3543
+ TaskType[TaskType["CRAFT"] = 7] = "CRAFT";
3544
+ TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
3545
+ TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
3546
+ TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
3547
+ TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
3548
+ TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
3549
+ TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
3550
+ TaskType[TaskType["RESERVED"] = 16] = "RESERVED";
3551
+ })(TaskType || (TaskType = {}));
3552
+ var LocationType;
3553
+ (function (LocationType) {
3554
+ LocationType[LocationType["EMPTY"] = 0] = "EMPTY";
3555
+ LocationType[LocationType["PLANET"] = 1] = "PLANET";
3556
+ LocationType[LocationType["ASTEROID"] = 2] = "ASTEROID";
3557
+ LocationType[LocationType["NEBULA"] = 3] = "NEBULA";
3558
+ LocationType[LocationType["ICE_FIELD"] = 4] = "ICE_FIELD";
3559
+ })(LocationType || (LocationType = {}));
3560
+ var TaskCancelable;
3561
+ (function (TaskCancelable) {
3562
+ TaskCancelable[TaskCancelable["NEVER"] = 0] = "NEVER";
3563
+ TaskCancelable[TaskCancelable["BEFORE_START"] = 1] = "BEFORE_START";
3564
+ TaskCancelable[TaskCancelable["ALWAYS"] = 2] = "ALWAYS";
3565
+ })(TaskCancelable || (TaskCancelable = {}));
3566
+ class Coordinates extends Types.coordinates {
3567
+ static from(value) {
3568
+ return super.from(value);
3569
+ }
3570
+ equals(other) {
3571
+ const coords = Coordinates.from(other);
3572
+ return this.x.equals(coords.x) && this.y.equals(coords.y);
3573
+ }
3574
+ toLocationId() {
3575
+ return coordsToLocationId(this);
3576
+ }
3577
+ }
3578
+ function coordsToLocationId(coords) {
3579
+ const c = Coordinates.from(coords);
3580
+ const mask = BigInt(0xffffffff);
3581
+ const x = BigInt(c.x.toNumber()) & mask;
3582
+ const y = BigInt(c.y.toNumber()) & mask;
3583
+ const id = (x << BigInt(32)) | y;
3584
+ return UInt64.from(id);
3585
+ }
3586
+
3587
+ const itemsById = new Map();
3588
+ for (const raw of items) {
3589
+ const meta = itemMetadata[raw.id];
3590
+ if (!meta) {
3591
+ throw new Error(`Missing metadata for item ${raw.id}. Add an entry to metadata.ts.`);
3592
+ }
3593
+ itemsById.set(raw.id, {
3594
+ id: raw.id,
3595
+ name: meta.name,
3596
+ description: meta.description,
3597
+ color: meta.color,
3598
+ mass: raw.mass,
3599
+ type: raw.type,
3600
+ tier: raw.tier,
3601
+ category: raw.category,
3602
+ moduleType: raw.type === 'module' ? raw.subtype : undefined,
3603
+ });
3604
+ }
3605
+ Array.from(itemsById.keys());
3606
+
3607
+ function cargoItemToStack(item) {
3608
+ return {
3609
+ item_id: UInt16.from(item.item_id),
3610
+ quantity: UInt32.from(item.quantity),
3611
+ stats: UInt64.from(item.stats),
3612
+ modules: item.modules ?? [],
3613
+ };
3614
+ }
3615
+ function statsEquals(a, b) {
3616
+ return a.equals(b);
3617
+ }
3618
+ function stackIdentityEqual(a, b) {
3619
+ return a.item_id.equals(b.item_id) && statsEquals(a.stats, b.stats);
3620
+ }
3621
+ function mergeStacks(stacks, add) {
3622
+ const idx = stacks.findIndex((s) => stackIdentityEqual(s, add));
3623
+ if (idx === -1) {
3624
+ return [...stacks, { ...add }];
3625
+ }
3626
+ const result = stacks.slice();
3627
+ result[idx] = {
3628
+ ...result[idx],
3629
+ quantity: UInt32.from(result[idx].quantity.adding(add.quantity)),
3630
+ };
3631
+ return result;
3632
+ }
3633
+
3634
+ function assertProjectionEquals(contract, sdk, options = {}) {
3635
+ const mismatches = [];
3636
+ const record = (name, c, s) => {
3637
+ if (c !== s)
3638
+ mismatches.push(` ${name}: contract=${fmt(c)} sdk=${fmt(s)}`);
3639
+ };
3640
+ const recordStatBlock = (name, c, s) => {
3641
+ const cPresent = c !== undefined && c !== null;
3642
+ const sPresent = s !== undefined && s !== null;
3643
+ if (cPresent !== sPresent) {
3644
+ mismatches.push(` ${name}: contract=${cPresent ? 'present' : 'absent'} sdk=${sPresent ? 'present' : 'absent'}`);
3645
+ return;
3646
+ }
3647
+ if (!cPresent)
3648
+ return;
3649
+ const cn = JSON.stringify(normaliseStatBlock(c));
3650
+ const sn = JSON.stringify(normaliseStatBlock(s));
3651
+ if (cn !== sn)
3652
+ mismatches.push(` ${name}: contract=${cn} sdk=${sn}`);
3653
+ };
3654
+ record('coordinates.x', toNum(contract.coordinates.x), Number(sdk.location.x));
3655
+ record('coordinates.y', toNum(contract.coordinates.y), Number(sdk.location.y));
3656
+ record('energy', toNum(contract.energy), Number(sdk.energy));
3657
+ record('cargomass', toNum(contract.cargomass), Number(sdk.cargoMass));
3658
+ record('hullmass', toNum(contract.hullmass), Number(sdk.shipMass));
3659
+ record('capacity', toNum(contract.capacity), sdk.capacity ? Number(sdk.capacity) : undefined);
3660
+ recordStatBlock('engines', contract.engines, sdk.engines);
3661
+ recordStatBlock('loaders', contract.loaders, sdk.loaders);
3662
+ recordStatBlock('generator', contract.generator, sdk.generator);
3663
+ recordStatBlock('hauler', contract.hauler, sdk.hauler);
3664
+ if (contract.cargo.length > 0 || sdk.cargo.length > 0) {
3665
+ const contractCargo = normaliseCargo(mergeContractCargo(contract.cargo));
3666
+ const sdkCargo = normaliseCargo(sdk.cargo);
3667
+ if (contractCargo.length !== sdkCargo.length) {
3668
+ mismatches.push(` cargo.length: contract=${contractCargo.length} sdk=${sdkCargo.length}`);
3669
+ }
3670
+ else {
3671
+ for (let i = 0; i < contractCargo.length; i++) {
3672
+ const c = contractCargo[i];
3673
+ const s = sdkCargo[i];
3674
+ if (c.itemId !== s.itemId || c.stats !== s.stats || c.quantity !== s.quantity) {
3675
+ mismatches.push(` cargo[${i}]: contract={item:${c.itemId},stats:${c.stats},qty:${c.quantity}} sdk={item:${s.itemId},stats:${s.stats},qty:${s.quantity}}`);
3676
+ }
3677
+ }
3678
+ }
3679
+ }
3680
+ if (mismatches.length > 0) {
3681
+ const header = options.step !== undefined
3682
+ ? `projection divergence at step ${options.step}:`
3683
+ : 'projection divergence:';
3684
+ throw new Error([header, ...mismatches].join('\n'));
3685
+ }
3686
+ }
3687
+ function mergeContractCargo(cargo) {
3688
+ return cargo.reduce((acc, row) => mergeStacks(acc, cargoItemToStack(row)), []);
3689
+ }
3690
+ function normaliseCargo(cargo) {
3691
+ return cargo
3692
+ .map((s) => ({
3693
+ itemId: Number(s.item_id),
3694
+ stats: BigInt(s.stats.toString()).toString(),
3695
+ quantity: BigInt(s.quantity.toString()).toString(),
3696
+ }))
3697
+ .sort(stackSort);
3698
+ }
3699
+ function stackSort(a, b) {
3700
+ if (a.itemId !== b.itemId)
3701
+ return a.itemId - b.itemId;
3702
+ return a.stats < b.stats ? -1 : a.stats > b.stats ? 1 : 0;
3703
+ }
3704
+ function toNum(v) {
3705
+ if (v === undefined || v === null)
3706
+ return undefined;
3707
+ if (typeof v === 'number')
3708
+ return v;
3709
+ if (typeof v === 'bigint')
3710
+ return Number(v);
3711
+ if (typeof v.toNumber === 'function') {
3712
+ return v.toNumber();
3713
+ }
3714
+ return Number(v);
3715
+ }
3716
+ function fmt(v) {
3717
+ if (v === undefined)
3718
+ return 'undefined';
3719
+ if (v === null)
3720
+ return 'null';
3721
+ return String(v);
3722
+ }
3723
+ function normaliseStatBlock(block) {
3724
+ const out = {};
3725
+ const obj = block;
3726
+ for (const k of Object.keys(obj).sort()) {
3727
+ out[k] = toNum(obj[k]) ?? 0;
3728
+ }
3729
+ return out;
3730
+ }
3731
+
3732
+ export { CATALOG_FILES_REL, assertProjectionEquals, computeCatalogHash };
3733
+ //# sourceMappingURL=testing.m.js.map