@shipload/sdk 1.0.0-next.7 → 1.0.0-next.70

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 (203) hide show
  1. package/lib/scan.d.ts +52 -0
  2. package/lib/scan.js +162 -0
  3. package/lib/scan.js.map +1 -0
  4. package/lib/scan.m.js +152 -0
  5. package/lib/scan.m.js.map +1 -0
  6. package/lib/shipload.d.ts +5696 -1503
  7. package/lib/shipload.js +20294 -5200
  8. package/lib/shipload.js.map +1 -1
  9. package/lib/shipload.m.js +20371 -5683
  10. package/lib/shipload.m.js.map +1 -1
  11. package/lib/testing.d.ts +1648 -0
  12. package/lib/testing.js +6980 -0
  13. package/lib/testing.js.map +1 -0
  14. package/lib/testing.m.js +6974 -0
  15. package/lib/testing.m.js.map +1 -0
  16. package/package.json +20 -2
  17. package/src/capabilities/craftable.test.ts +82 -0
  18. package/src/capabilities/craftable.ts +82 -0
  19. package/src/capabilities/crafting.test.ts +80 -0
  20. package/src/capabilities/crafting.ts +50 -8
  21. package/src/capabilities/gathering.test.ts +29 -0
  22. package/src/capabilities/gathering.ts +38 -20
  23. package/src/capabilities/hauling.ts +0 -5
  24. package/src/capabilities/index.ts +0 -1
  25. package/src/capabilities/modules.ts +27 -30
  26. package/src/capabilities/movement.ts +1 -1
  27. package/src/capabilities/storage.test.ts +26 -0
  28. package/src/capabilities/storage.ts +22 -7
  29. package/src/contracts/fund.ts +306 -0
  30. package/src/contracts/platform.ts +312 -3
  31. package/src/contracts/server.ts +2661 -466
  32. package/src/contracts/token.ts +170 -0
  33. package/src/contracts.ts +2 -0
  34. package/src/coordinates/address.ts +88 -0
  35. package/src/coordinates/constants.test.ts +15 -0
  36. package/src/coordinates/constants.ts +23 -0
  37. package/src/coordinates/index.ts +15 -0
  38. package/src/coordinates/memo.test.ts +47 -0
  39. package/src/coordinates/memo.ts +20 -0
  40. package/src/coordinates/permutation.ts +77 -0
  41. package/src/coordinates/regions.ts +48 -0
  42. package/src/coordinates/sectors.ts +115 -0
  43. package/src/data/capabilities.ts +49 -18
  44. package/src/data/capability-formulas.ts +26 -14
  45. package/src/data/catalog.test.ts +19 -0
  46. package/src/data/catalog.ts +13 -3
  47. package/src/data/charters.json +396 -0
  48. package/src/data/citizenry-adjectives.json +42 -0
  49. package/src/data/citizenry-nouns.json +50 -0
  50. package/src/data/colors.ts +14 -32
  51. package/src/data/entities.json +421 -15
  52. package/src/data/item-ids.ts +53 -13
  53. package/src/data/items.json +330 -77
  54. package/src/data/kind-registry.json +212 -0
  55. package/src/data/kind-registry.ts +192 -0
  56. package/src/data/metadata.ts +312 -51
  57. package/src/data/recipes-runtime.ts +6 -23
  58. package/src/data/recipes.json +2173 -173
  59. package/src/data/tiers.ts +9 -6
  60. package/src/derivation/build-methods.test.ts +71 -0
  61. package/src/derivation/build-methods.ts +50 -0
  62. package/src/derivation/capabilities.test.ts +348 -0
  63. package/src/derivation/capabilities.ts +707 -0
  64. package/src/derivation/capability-mappings.ts +60 -16
  65. package/src/derivation/crafting.test.ts +17 -0
  66. package/src/derivation/crafting.ts +57 -34
  67. package/src/derivation/index.ts +27 -2
  68. package/src/derivation/recipe-usage.test.ts +88 -0
  69. package/src/derivation/recipe-usage.ts +141 -0
  70. package/src/derivation/reserve-regen.ts +34 -0
  71. package/src/derivation/resources.ts +9 -1
  72. package/src/derivation/rollups.test.ts +55 -0
  73. package/src/derivation/rollups.ts +72 -0
  74. package/src/derivation/stars.test.ts +67 -0
  75. package/src/derivation/stars.ts +25 -0
  76. package/src/derivation/stat-scaling.ts +12 -0
  77. package/src/derivation/stats.ts +6 -6
  78. package/src/derivation/strata.ts +5 -3
  79. package/src/derivation/stratum.ts +26 -22
  80. package/src/derivation/tiers.ts +40 -7
  81. package/src/derivation/upgrades.ts +14 -0
  82. package/src/derivation/wormhole.ts +154 -0
  83. package/src/entities/entity.ts +102 -0
  84. package/src/entities/gamestate.ts +3 -28
  85. package/src/entities/makers.ts +144 -136
  86. package/src/entities/slot-multiplier.ts +43 -0
  87. package/src/entity/hydrate.test.ts +156 -0
  88. package/src/entity/hydrate.ts +86 -0
  89. package/src/errors.ts +21 -16
  90. package/src/format.ts +42 -9
  91. package/src/index-module.ts +411 -32
  92. package/src/influence/ballot.test.ts +103 -0
  93. package/src/influence/ballot.ts +98 -0
  94. package/src/influence/categories.ts +32 -0
  95. package/src/influence/charter-metadata.test.ts +136 -0
  96. package/src/influence/charter-metadata.ts +236 -0
  97. package/src/influence/charters.test.ts +112 -0
  98. package/src/influence/charters.ts +150 -0
  99. package/src/influence/citizenry.ts +38 -0
  100. package/src/influence/civic-shuttle.test.ts +202 -0
  101. package/src/influence/civic-shuttle.ts +142 -0
  102. package/src/influence/civic.test.ts +287 -0
  103. package/src/influence/civic.ts +269 -0
  104. package/src/influence/constants.ts +84 -0
  105. package/src/influence/decay.ts +20 -0
  106. package/src/influence/decomp.ts +95 -0
  107. package/src/influence/demand.ts +106 -0
  108. package/src/influence/duration.ts +101 -0
  109. package/src/influence/index.ts +118 -0
  110. package/src/influence/influence.test.ts +450 -0
  111. package/src/influence/quality.ts +25 -0
  112. package/src/influence/valuation.ts +154 -0
  113. package/src/managers/actions.ts +940 -93
  114. package/src/managers/balances.test.ts +161 -0
  115. package/src/managers/balances.ts +93 -0
  116. package/src/managers/base.ts +10 -2
  117. package/src/managers/cluster.test.ts +39 -0
  118. package/src/managers/cluster.ts +53 -0
  119. package/src/managers/construction-types.ts +80 -0
  120. package/src/managers/construction.ts +453 -0
  121. package/src/managers/context.ts +58 -1
  122. package/src/managers/coordinates.ts +14 -0
  123. package/src/managers/entities.ts +35 -63
  124. package/src/managers/epochs.ts +72 -1
  125. package/src/managers/index.ts +38 -1
  126. package/src/managers/influence.test.ts +56 -0
  127. package/src/managers/influence.ts +425 -0
  128. package/src/managers/jobs.test.ts +80 -0
  129. package/src/managers/jobs.ts +54 -0
  130. package/src/managers/locations.ts +25 -29
  131. package/src/managers/nft.test.ts +21 -0
  132. package/src/managers/nft.ts +110 -0
  133. package/src/managers/players.ts +25 -0
  134. package/src/managers/plot.ts +122 -0
  135. package/src/nft/atomicassets.abi.json +1342 -0
  136. package/src/nft/atomicassets.ts +237 -0
  137. package/src/nft/atomicdata.ts +130 -0
  138. package/src/nft/buildImmutableData.ts +388 -0
  139. package/src/nft/description.ts +222 -100
  140. package/src/nft/index.ts +3 -0
  141. package/src/planner/index.ts +296 -0
  142. package/src/planner/planner.test.ts +459 -0
  143. package/src/receipts.ts +22 -0
  144. package/src/resolution/describe-module.ts +43 -25
  145. package/src/resolution/display-name.ts +39 -11
  146. package/src/resolution/resolve-item.test.ts +48 -0
  147. package/src/resolution/resolve-item.ts +112 -58
  148. package/src/scan/index.ts +244 -0
  149. package/src/scan/scan-wasm.base64.ts +2 -0
  150. package/src/scheduling/accessor.ts +65 -23
  151. package/src/scheduling/availability.test.ts +320 -0
  152. package/src/scheduling/availability.ts +251 -0
  153. package/src/scheduling/cancel.test.ts +550 -0
  154. package/src/scheduling/cancel.ts +254 -0
  155. package/src/scheduling/cluster-stock.test.ts +31 -0
  156. package/src/scheduling/cluster-stock.ts +15 -0
  157. package/src/scheduling/energy.ts +47 -0
  158. package/src/scheduling/epoch.ts +1 -0
  159. package/src/scheduling/idle-resolve.ts +45 -0
  160. package/src/scheduling/jobs.test.ts +49 -0
  161. package/src/scheduling/jobs.ts +137 -0
  162. package/src/scheduling/lane-core.ts +128 -0
  163. package/src/scheduling/lanes.test.ts +250 -0
  164. package/src/scheduling/lanes.ts +227 -0
  165. package/src/scheduling/projection.ts +265 -149
  166. package/src/scheduling/schedule.test.ts +163 -0
  167. package/src/scheduling/schedule.ts +282 -116
  168. package/src/scheduling/task-cargo.test.ts +110 -0
  169. package/src/scheduling/task-cargo.ts +62 -0
  170. package/src/scheduling/task-effects.test.ts +35 -0
  171. package/src/scheduling/task-effects.ts +34 -0
  172. package/src/scheduling/unwrap.test.ts +86 -0
  173. package/src/scheduling/unwrap.ts +190 -0
  174. package/src/shipload.ts +63 -4
  175. package/src/subscriptions/manager.cluster.test.ts +51 -0
  176. package/src/subscriptions/manager.ts +245 -172
  177. package/src/subscriptions/mappers.ts +5 -8
  178. package/src/subscriptions/types.ts +28 -3
  179. package/src/testing/catalog-hash.ts +19 -0
  180. package/src/testing/index.ts +2 -0
  181. package/src/testing/projection-parity.ts +167 -0
  182. package/src/travel/reach.test.ts +86 -0
  183. package/src/travel/reach.ts +34 -0
  184. package/src/travel/route-build.test.ts +63 -0
  185. package/src/travel/route-build.ts +60 -0
  186. package/src/travel/route-planner.ts +288 -0
  187. package/src/travel/route-simulator.ts +170 -0
  188. package/src/travel/travel.ts +190 -123
  189. package/src/types/capabilities.ts +37 -8
  190. package/src/types/entity.ts +3 -3
  191. package/src/types/index.ts +0 -1
  192. package/src/types.ts +81 -23
  193. package/src/utils/cargo.test.ts +14 -0
  194. package/src/utils/cargo.ts +2 -0
  195. package/src/utils/display-name.ts +70 -0
  196. package/src/utils/hash.ts +22 -2
  197. package/src/utils/system.ts +24 -5
  198. package/src/capabilities/loading.ts +0 -8
  199. package/src/entities/container.ts +0 -123
  200. package/src/entities/ship-deploy.ts +0 -295
  201. package/src/entities/ship.ts +0 -221
  202. package/src/entities/warehouse.ts +0 -127
  203. package/src/types/entity-traits.ts +0 -69
@@ -1,8 +1,10 @@
1
1
  import type {
2
2
  Action,
3
+ BytesType,
3
4
  Checksum256Type,
4
5
  Int32Type,
5
6
  Int64Type,
7
+ Int8Type,
6
8
  NameType,
7
9
  TimePointType,
8
10
  UInt16Type,
@@ -13,11 +15,14 @@ import type {
13
15
  import {
14
16
  ABI,
15
17
  Blob,
18
+ BlockTimestamp,
16
19
  Bytes,
17
20
  Checksum256,
18
21
  Checksum512,
22
+ ExtendedAsset,
19
23
  Int32,
20
24
  Int64,
25
+ Int8,
21
26
  Name,
22
27
  Struct,
23
28
  TimePoint,
@@ -29,10 +34,15 @@ import {
29
34
  import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
30
35
  import {Contract as BaseContract} from '@wharfkit/contract'
31
36
  export const abiBlob = Blob.from(
32
- 'DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiIAQlhZGRtb2R1bGUABQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAdhZHZhbmNlAAIGcmV2ZWFsBnN0cmluZwZjb21taXQLY2hlY2tzdW0yNTYFYmxlbmQAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAZpbnB1dHMMY2FyZ29faXRlbVtdBmNhbmNlbAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpjYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyCWNhcmdvX3JlZgADB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQpjYXJnb192aWV3AAUHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyAmlkBnVpbnQ2NAxjbGFpbXN0YXJ0ZXIAAwdhY2NvdW50BG5hbWUBeAVpbnQ2NAF5BWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8Fc3RhdHMGdWludDY0B2l0ZW1faWQGdWludDE2C2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2PwVjcmFmdAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYMY3JlYXRlZW50aXR5AAUFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQIZGVtb2xpc2gAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQGZGVwbG95AAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQDcmVmCWNhcmdvX3JlZgpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDE2CHJlY2hhcmdlBnVpbnQxNhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MTYPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAZBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbG9hZGVycw1sb2FkZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8NZW50aXR5X2xheW91dAACDmVudGl0eV9pdGVtX2lkBnVpbnQxNgVzbG90cwpzbG90X2RlZltdFWVudGl0eV9sYXlvdXRzX3Jlc3VsdAABCGVudGl0aWVzD2VudGl0eV9sYXlvdXRbXQplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAEBnNvdXJjZQplbnRpdHlfcmVmC2Rlc3RpbmF0aW9uCmVudGl0eV9yZWYHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyDmdhdGhlcmVyX3N0YXRzAAQFeWllbGQGdWludDE2BWRyYWluBnVpbnQxNgVkZXB0aAZ1aW50MTYFc3BlZWQGdWludDE2CWdldGNvbmZpZwAAC2dldGVsaWdpYmxlAAIGY29vcmRzC2Nvb3JkaW5hdGVzB3N0cmF0dW0GdWludDE2C2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAxnZXRpdGVtdHlwZXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUJZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgKZ2V0cmVzY2F0cwAAC2dldHJlc2VydmVzAAIBeAVpbnQ2NAF5BWludDY0DGdldHJlc291cmNlcwAACGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMAAwhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MTYEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwACBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbAxsb2NhdGlvbl9yb3cABgJpZAZ1aW50NjQFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQhzY2hlZHVsZQlzY2hlZHVsZT8PbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwluZXh1c19yb3cABAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAgdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudA1wYWNrZWRfbW9kdWxlAAIHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0DHJlY2lwZV9pbnB1dAAEB2l0ZW1faWQGdWludDE2CGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAcOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdDnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQtyZXNlcnZlX3JvdwAEAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgdyZXNvbHZlAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQFdWludDgUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10Icm1tb2R1bGUABAtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2BHNhbHQAAQRzYWx0BnVpbnQ2NAhzY2hlZHVsZQACB3N0YXJ0ZWQKdGltZV9wb2ludAV0YXNrcwZ0YXNrW10Mc2NoZW1hX2ZpZWxkAAIEbmFtZQZzdHJpbmcKZmllbGRfdHlwZQZzdHJpbmcMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUIc2hpcF9yb3cAEwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/BmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIHZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8HbG9hZGVycw1sb2FkZXJfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8HaXRlbV9pZAZ1aW50MTYIc2xvdF9kZWYAAQR0eXBlBXVpbnQ4CnNwYXduY2FyZ28AAwllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAtzcGF3bnBhY2tlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQJaW5zdGFsbGVkD3BhY2tlZF9tb2R1bGVbXQtzcGF3bnNlZWRlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NBJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAgdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyBHRhc2sACAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDE2Pwp0YXNrX2V2ZW50AAkKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BXVpbnQ4BHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQxNj8MdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdCHRyYW5zZmVyAAULc291cmNlX3R5cGUEbmFtZQlzb3VyY2VfaWQGdWludDY0CWRlc3RfdHlwZQRuYW1lB2Rlc3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQZ0cmF2ZWwABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABAJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcIdW5kZXBsb3kABAlob3N0X3R5cGUEbmFtZQdob3N0X2lkBnVpbnQ2NAt0YXJnZXRfdHlwZQRuYW1lCXRhcmdldF9pZAZ1aW50NjQNd2FyZWhvdXNlX3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDWxvYWRlcl9zdGF0cz8HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhzY2hlZHVsZQlzY2hlZHVsZT8HaXRlbV9pZAZ1aW50MTYEd2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAAAR3cmFwAAQFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCndyYXBlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQ/AABQUScqUzIJYWRkbW9kdWxlxwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbW9kdWxlCnN1bW1hcnk6ICdJbnN0YWxsIGEgbW9kdWxlIGludG8gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YWxsIGEgbW9kdWxlIGZyb20gY2FyZ28gaW50byBhIG1vZHVsZSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSB0eXBlIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSB0YXJnZXQgc2xvdCB0eXBlLiBUaGUgbW9kdWxlIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIGNhcmdvIHVwb24gaW5zdGFsbGF0aW9uLgAAAFh3NVMyCGFkZG5leHVzpwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbmV4dXMKc3VtbWFyeTogJ0FkZCBhIG5leHVzIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDcmVhdGUgYSBuZXcgbmV4dXMgZW50aXR5IGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcy4gTmV4dXNlcyBhcmUgb3duZWQgYnkgdGhlIGNvbnRyYWN0IGFuZCBzZXJ2ZSBhcyBmaXhlZCBnYXRoZXJpbmcgcG9pbnRzIHdoZXJlIHBsYXllcnMgY2FuIHdyYXAsIHVud3JhcCwgZGVwbG95LCBhbmQgb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggTkZULWJhY2tlZCBhc3NldHMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAIA0VTwFYmxlbmT8Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIG5ldyBibGVuZGVkIHN0YXRzLiBBbGwgaW5wdXQgc3RhY2tzIG11c3Qgc2hhcmUgdGhlIHNhbWUgaXRlbSBpZC4gVGhlIG91dHB1dCBzdGFjayBoYXMgdGhlIGNvbWJpbmVkIHF1YW50aXR5IG9mIGFsbCBpbnB1dHMuAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQucFW+JmPpTEQMY2xhaW1zdGFydGVyhQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xhaW1zdGFydGVyCnN1bW1hcnk6ICdERUJVRzogY2xhaW0gYSBzdGFydGVyIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNwYXduIGEgcHJlLWtpdHRlZCBUMSBzdGFydGVyIHNoaXAgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGZvciBhIHJlZ2lzdGVyZWQgcGxheWVyLiBBdmFpbGFibGUgb25seSBvbiB0ZXN0IGRlcGxveW1lbnRzIHdoZXJlIG5vIGluLWdhbWUgc2hpcCBlY29ub215IHlldCBleGlzdHMuIFJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gYmUgYSBqb2luZWQgcGxheWVyIHdpdGggbm8gZXhpc3Rpbmcgc2hpcHM7IHRoZSByZXN1bHRpbmcgc2hpcCBpcyBmaXR0ZWQgd2l0aCBhIGdlbmVyYXRvciwgZW5naW5lLCBnYXRoZXJlciwgY3JhZnRlciwgYW5kIGhhdWxlciBtb2R1bGUuAACoG99pVEQJY2xlYW5yc3Zw7AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYW5yc3ZwCnN1bW1hcnk6ICdDbGVhbiB1cCBwYXN0IGVwb2NoIHJlc2VydmVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFcmFzZSByZXNlcnZlIHRhYmxlIHJvd3MgZnJvbSBhIHBhc3QgZXBvY2guIENhbm5vdCBjbGVhbiB0aGUgY3VycmVudCBvciBmdXR1cmUgZXBvY2hzLiBUaGUgbWF4X3Jvd3MgcGFyYW1ldGVyIGNhcHMgdGhlIG51bWJlciBvZiByb3dzIGVyYXNlZCBwZXIgY2FsbCB0byBsaW1pdCBDUFUgdXNhZ2UuAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdOwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4AAGA0MrcmRQljb25maWdsb2fdAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb25maWdsb2cKc3VtbWFyeTogJ0xvZyBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IGxvZ3MgdGhlIGN1cnJlbnQgZ2FtZSBjb25maWd1cmF0aW9uLiBDYWxsZWQgaW5saW5lIGFmdGVyIGluaXRpYWxpemF0aW9uIHRvIGJyb2FkY2FzdCBjb25maWcgdmlhIGFjdGlvbiB0cmFjZXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAgLzMRQVjcmFmdMgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyYWZ0CnN1bW1hcnk6ICdDcmFmdCBpdGVtcyBmcm9tIGEgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2Zvcm0gY2FyZ28gaXRlbXMgaW50byBhIG5ldyBpdGVtIHVzaW5nIGEgcmVjaXBlLiBUaGUgZW50aXR5IG11c3QgaGF2ZSBhIGNyYWZ0ZXIgbW9kdWxlIGluc3RhbGxlZC4gQ29uc3VtZXMgZW5lcmd5IGFuZCBzY2hlZHVsZXMgYSBjcmFmdGluZyB0YXNrIHdpdGggZHVyYXRpb24gYmFzZWQgb24gdG90YWwgaW5wdXQgbWFzcyBhbmQgY3JhZnRlciBzcGVlZC4gSW5wdXQgcXVhbnRpdGllcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIHJlY2lwZSByZXF1aXJlbWVudHMu4LPLU6ls1EUMY3JlYXRlZW50aXR5vwEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JlYXRlZW50aXR5CnN1bW1hcnk6ICdERUJVRzogY3JlYXRlIGFuIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQuAAAAAFzVsmEGZ2F0aGVylwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2F0aGVyCnN1bW1hcnk6ICdHYXRoZXIgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpHYXRoZXIgcmVzb3VyY2VzIGF0IHRoZSBzaGlwJ3MgY3VycmVudCBsb2NhdGlvbi4gT25seSB3b3JrcyBhdCBnYXRoZXJhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYSBnYXRoZXIgdGFzayB0aGF0IGNvbnN1bWVzIGVuZXJneSBhbmQgeWllbGRzIGNhcmdvIGJhc2VkIG9uIHRoZSBzaGlwJ3MgZ2F0aGVyZXIgc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgCwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgBMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLoBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4AJnXZIBqzYgtnZXRsb2NhdGlvbuICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2F0aW9uCnN1bW1hcnk6ICdHZXQgbG9jYXRpb24gaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiBpbmNsdWRpbmcgd2hldGhlciBhIHN5c3RlbSBleGlzdHMsIGFuZCBmb3IgZWFjaCBpdGVtOiBwcmljZSwgc3VwcGx5LCByYXJpdHkgbXVsdGlwbGllciwgYW5kIGxvY2F0aW9uIG11bHRpcGxpZXIuAIDJJiEas2IKZ2V0bG9jZGF0Yf4CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2RhdGEKc3VtbWFyeTogJ0dldCBkZXJpdmVkIGxvY2F0aW9uIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgZGVyaXZlZCBsb2NhdGlvbiBkYXRhIGluY2x1ZGluZyBzdGF0aWMgcHJvcGVydGllcyAodHlwZSwgZGlmZmljdWx0eSwgc2VlZHMpIGZyb20gdGhlIGdhbWUgc2VlZCBhbmQgZXBvY2gtc3BlY2lmaWMgcHJvcGVydGllcyAoYWN0aXZlLCBzZWVkcykgZnJvbSB0aGUgY3VycmVudCBlcG9jaCBzZWVkLgCwqj4nKrNiC2dldG1vZHR5cGVz1gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdHlwZXMKc3VtbWFyeTogJ0dldCBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKGFueSwgZW5naW5lLCBnZW5lcmF0b3IsIGdhdGhlcmVyLCBsb2FkZXIsIHdhcnAsIGNyYWZ0ZXIsIGxhdW5jaGVyLCBzdG9yYWdlLCBoYXVsZXIpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBtb2R1bGUgc3VidHlwZSBpZGVudGlmaWVycyBhbmQgc2xvdCBjb21wYXRpYmlsaXR5LgAAVlEnKrNiCmdldG1vZHVsZXOAAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R1bGVzCnN1bW1hcnk6ICdHZXQgYWxsIG1vZHVsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIG1vZHVsZXMsIGluY2x1ZGluZyBlYWNoIG1vZHVsZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgaW5zdGFsbGFibGUgZXF1aXBtZW50LgAA8OcaNbNiCWdldG5lYXJied4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5lYXJieQpzdW1tYXJ5OiAnR2V0IG5lYXJieSByZWFjaGFibGUgc3lzdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBuZWFyYnkgc3lzdGVtcyByZWFjaGFibGUgYnkgYW4gZW50aXR5IGZyb20gaXRzIHByb2plY3RlZCBsb2NhdGlvbi4gUmV0dXJucyBjdXJyZW50IHN0YXRlICh3aXRoIGNvbXBsZXRlZCB0YXNrcyByZXNvbHZlZCksIHByb2plY3RlZCBzdGF0ZSAoYWZ0ZXIgYWxsIHNjaGVkdWxlZCB0YXNrcyksIGFuZCBhIGxpc3Qgb2YgcmVhY2hhYmxlIHN5c3RlbXMgd2l0aCBkaXN0YW5jZSwgZW5lcmd5IGNvc3QsIGZsaWdodCB0aW1lLCBhbmQgbWFya2V0IGluZm9ybWF0aW9uLgAAXdPlNbNiCmdldG5mdGluZm/wAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZnRpbmZvCnN1bW1hcnk6ICdHZXQgTkZUIHNjaGVtYSBhbmQgdGVtcGxhdGUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIEF0b21pY0Fzc2V0cyBzY2hlbWFzIGFuZCB0ZW1wbGF0ZXMgdGhlIGdhbWUgY29udHJhY3QgZXhwZWN0cywgcGx1cyB0aGUgY3VycmVudCBgaXRlbV9pZCDihpIgKHRlbXBsYXRlX2lkLCBzY2hlbWFfbmFtZSlgIG1hcHBpbmcgc3RvcmVkIGluIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBzeW5jIGF0b21pY2Fzc2V0cyBzdGF0ZSB3aXRoIHRoZSBjb250cmFjdC4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaPgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLgAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAAAAKupEpbwIcm1tb2R1bGW8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW1vZHVsZQpzdW1tYXJ5OiAnUmVtb3ZlIGEgbW9kdWxlIGZyb20gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgYW4gaW5zdGFsbGVkIG1vZHVsZSBmcm9tIGEgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgaXMgcmV0dXJuZWQgdG8gY2FyZ28uIEZhaWxzIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FyZ28gY2FwYWNpdHkgdG8gaG9sZCB0aGUgcmV0dXJuZWQgbW9kdWxlLgAAAGyhvKa8CHJtbmZ0Y2ZnoQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1uZnRjZmcKc3VtbWFyeTogJ1JlbW92ZSBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIHRoZSBBdG9taWNBc3NldHMgdGVtcGxhdGUgbWFwcGluZyBmb3IgdGhlIHNwZWNpZmllZCBpdGVtIGlkIGZyb20gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBBZnRlciByZW1vdmFsIHRoZSBpdGVtIGNhbiBubyBsb25nZXIgYmUgd3JhcHBlZCBvciB1bndyYXBwZWQgdW50aWwgYSBuZXcgbWFwcGluZyBpcyBzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAAJCjwQRzYWx02AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4AAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABl16DJTcUKc3Bhd25jYXJnb8UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNwYXduY2FyZ28Kc3VtbWFyeTogJ0RFQlVHOiBzcGF3biBjYXJnbyBvbiBhbiBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AkoLI1MlNxQtzcGF3bnBhY2tlZOcBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNwYXducGFja2VkCnN1bW1hcnk6ICdERUJVRzogc3Bhd24gYSBwYWNrZWQgZW50aXR5IHdpdGggaW5zdGFsbGVkIG1vZHVsZXMgb24gYW4gZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAJJKSuHJTcULc3Bhd25zZWVkZWTNAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzcGF3bnNlZWRlZApzdW1tYXJ5OiAnREVCVUc6IHNwYXduIHNlZWRlZCBjYXJnbyBvbiBhbiBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAABXLTzNzQh0cmFuc2ZlcsgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYW5zZmVyCnN1bW1hcnk6ICdUcmFuc2ZlciBjYXJnbyBiZXR3ZWVuIGVudGl0aWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2ZlciBjYXJnbyBiZXR3ZWVuIHR3byBlbnRpdGllcyBhdCB0aGUgc2FtZSBsb2NhdGlvbi4gQm90aCBlbnRpdGllcyBtdXN0IGJlIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIGF0IGxlYXN0IG9uZSBtdXN0IGhhdmUgbG9hZGVycy4gQ3JlYXRlcyBsb2FkIGFuZCB1bmxvYWQgdGFza3Mgb24gYm90aCBlbnRpdGllcyB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIGNvbWJpbmVkIGxvYWRlciBjYXBhY2l0eSBhbmQgWi1kaXN0YW5jZSBiZXR3ZWVuIHRoZW0uAAAAAES1zc0GdHJhdmVs+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIGEgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgdHJhdmVsIG9mIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGxvY2F0aW9uIHRvIGEgbmV3IGRlc3RpbmF0aW9uLgAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAFDN5QR3cmFw/gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcApzdW1tYXJ5OiAnV3JhcCBjYXJnbyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhIHF1YW50aXR5IG9mIGNhcmdvIGZyb20gYW4gZW50aXR5IGludG8gYW4gQXRvbWljQXNzZXRzIE5GVCBtaW50ZWQgdG8gdGhlIHNwZWNpZmllZCBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGhhdmUgbG9hZGVycywgYW5kIGNvbnRhaW4gZW5vdWdoIG9mIHRoZSByZXF1ZXN0ZWQgY2FyZ28uIFNjaGVkdWxlcyBhIHdyYXAgdGFzayB0aGF0LCBvbiByZXNvbHV0aW9uLCByZW1vdmVzIHRoZSBjYXJnbyBmcm9tIHRoZSBlbnRpdHkgYW5kIG1pbnRzIHRoZSBORlQgdXNpbmcgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyZWQgZm9yIHRoYXQgaXRlbSBpZC4AgM8uT1XN5Qp3cmFwZW50aXR55gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd3JhcGVudGl0eQpzdW1tYXJ5OiAnV3JhcCBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKV3JhcCBhbiBlbnRpdHkgaW50byBhbiBBdG9taWNBc3NldHMgTkZUIG1pbnRlZCB0byBpdHMgb3duZXIuIFRoZSBlbnRpdHkgbXVzdCBiZSBhdCBhIG5leHVzLCBpZGxlIHdpdGggZW1wdHkgY2FyZ28sIGFuZCBoYXZlIGFuIG5mdGNvbmZpZyBtYXBwaW5nIGZvciBpdHMgaXRlbSBpZC4gU2NoZWR1bGVzIGEgd3JhcCB0YXNrIHRoYXQsIG9uIHJlc29sdXRpb24sIGVyYXNlcyB0aGUgZW50aXR5IGFuZCBtaW50cyB0aGUgTkZUIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlcy4NAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAAAArLuaA2k2NAAACW5leHVzX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAUFjTpq7hA2k2NAAADXdhcmVob3VzZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAKAAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAADbtIpUoMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAABgbk2KsmILZ2FtZV9jb25maWcAVDyOuaiyYgh1aW50MTZbXQCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwBMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm+AVfVZquyyYgtlbnVtX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkALCqPicqs2ILZW51bV9yZXN1bHQAAFZRJyqzYg5tb2R1bGVzX3Jlc3VsdAAA8OcaNbNiC25lYXJieV9pbmZvAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mbwAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAAABXLTzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHMAAAAAAFDN5Qx0YXNrX3Jlc3VsdHMAgM8uT1XN5Qx0YXNrX3Jlc3VsdHM='
37
+ 'DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDi1AgthYmFuZG9ucGxvdAABB3Bsb3RfaWQGdWludDY0CmFkZGNvbnRyaWIABQZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAZidW5kbGUMY2FyZ29faXRlbVtdCWFkZG1vZHVsZQAECWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAlhZGRvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQ1iYWxsb3RfY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQKYmFsbG90X3JvdwAHCWJhbGxvdF9pZAZ1aW50NjQEa2luZAV1aW50OAdzdWJqZWN0BnVpbnQ2NAVzZWF0cwZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFcXVldWUIdWludDMyW10GcGFya2VkD2JhbGxvdF9jcmVkaXRbXQ5iYWxsb3Rfc2VxX3JvdwADB25leHRfaWQGdWludDY0BmN1cnNvcgZ1aW50NjQJcGFnZV9yb3dzBnVpbnQzMgxiYWxsb3RfdGFsbHkAAgZvcHRpb24GdWludDMyBndlaWdodAZ1aW50NjQPYmFsbG90cGlja3Nfcm93AAIHYWNjb3VudARuYW1lBXBpY2tzCHVpbnQzMltdEGJhbGxvdHNldHRsZV9yb3cABgliYWxsb3RfaWQGdWludDY0BXJvdW5kBnVpbnQzMgZjdXJzb3IGdWludDY0DHRhcmdldF9lcG9jaAZ1aW50MzIHdGFsbGllcw5iYWxsb3RfdGFsbHlbXQZzZWF0ZWQIdWludDMyW10FYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQ9ib29raW5nX3JlY2VpcHQAAwZqb2JfaWQGdWludDY0CGxhbmRzX2F0CnRpbWVfcG9pbnQHcnVudGltZQZ1aW50MzIMYnVpbGRlcl9sYW5lAAQKc2xvdF9pbmRleAV1aW50OAVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCm91dHB1dF9wY3QGdWludDE2DWJ1aWxkaW5nc19yb3cAAgllbnRpdHlfaWQGdWludDY0CGJ1aWxkaW5nBXVpbnQ4CGJ1aWxkam9iAAUJdGFyZ2V0X2lkBnVpbnQ2NAdkb2NrX2lkBnVpbnQ2NARzbG90BXVpbnQ4DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdDGJ1aWxkam9iX3JvdwALAmlkBnVpbnQ2NAhidWlsZGluZwZ1aW50NjQGc29ja2V0BXVpbnQ4BnRhcmdldAZ1aW50NjQFb3duZXIEbmFtZQZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbBBidWlsZGpvYnNfcmVzdWx0AAEEam9icw5idWlsZGpvYl9yb3dbXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/C2NhbmNlbGJ1aWxkAAEGam9iX2lkBnVpbnQ2NAtjYW5jZWxjaXZpYwADCGJ1aWxkaW5nBnVpbnQ2NAhsYW5lX2tleQV1aW50OAdmcm9tX2lkBnVpbnQ2NApjYXJnb19pdGVtAAUHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyCWVudGl0eV9pZAd1aW50NjQ/CWNhcmdvX3JlZgAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWVudGl0eV9pZAd1aW50NjQ/CWNhcmdvX3JvdwAHAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CmNhcmdvX3ZpZXcABgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzICaWQGdWludDY0CWVudGl0eV9pZAd1aW50NjQ/CmNhc3RiYWxsb3QAAwZwbGF5ZXIEbmFtZQliYWxsb3RfaWQGdWludDY0BXBpY2tzCHVpbnQzMltdEGNoYXJ0ZXJfbm9kZV9kZWYABgdub2RlX2lkBnVpbnQzMgRjb3N0BnVpbnQ2NAdwcmVyZXFzCHVpbnQzMltdBmdyYW50cw1jaXZpY19ncmFudFtdD2V4Y2x1c2lvbl9ncm91cAZ1aW50MTYKcmVwZWF0X2NhcAV1aW50OBJjaGFydGVyX3JlYWR5X3ZpZXcAAwF4BWludDY0AXkFaW50NjQHbWFuZGF0ZQZ1aW50MzIOY2hhcnRlcl9yZXN1bHQADgtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BXNwZW50BnVpbnQ2NAp1bmFzc2lnbmVkBnVpbnQ2NAdtYW5kYXRlBnVpbnQzMgluZXh0X2Nvc3QGdWludDY0C3ByZXJlcXNfbWV0BGJvb2wJYnVpbGRhYmxlBGJvb2wFZXBvY2gGdWludDMyBWJ1aWx0DmNoYXJ0ZXJfdmlld1tdCWJhbGxvdF9pZAZ1aW50NjQIc2V0dGxpbmcEYm9vbAVxdWV1ZQtzZWF0X3ZpZXdbXQhwcm9ncmVzcw9wcm9ncmVzc192aWV3W10TY2hhcnRlcl90cmVlX3Jlc3VsdAABBW5vZGVzEmNoYXJ0ZXJfbm9kZV9kZWZbXQxjaGFydGVyX3ZpZXcAAgdub2RlX2lkBnVpbnQzMgdyZXBlYXRzBnVpbnQxNgxjaGFydGVycmVhZHkAAgF4BWludDY0AXkFaW50NjQTY2hhcnRlcnJlYWR5X3Jlc3VsdAABBndvcmxkcxRjaGFydGVyX3JlYWR5X3ZpZXdbXQ9jaXRpemVuc2hpcF9yb3cABAtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMgtjaXZpY19ncmFudAAEBGtpbmQFdWludDgIYnVpbGRpbmcFdWludDgEc3RhdAV1aW50OAV2YWx1ZQZ1aW50MTYPY2l2aWNjb25maWdfcm93AAELY2l2aWNfb3duZXIEbmFtZQxjaXZpY3NodXR0bGUABAhidWlsZGluZwZ1aW50NjQHZnJvbV9pZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQljbGFpbV9yb3cAAQVvd25lcgRuYW1lCmNsYWltYnVpbGQAAQZqb2JfaWQGdWludDY0CmNsYWltY3JhZnQAAgZqb2JfaWQGdWludDY0B3NoaXBfaWQGdWludDY0CWNsYWltcGxvdAADCmJ1aWxkZXJfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgRzbG90DGNsdXN0ZXJfc2xvdAxjbGFpbXN0YXJ0ZXIAAQVvd25lcgRuYW1lCWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/CmNsb3NlZXBvY2gAAQVlcG9jaAZ1aW50NjQMY2x1c3Rlcl9jZWxsAAMCZ3gEaW50OAJneQRpbnQ4BmVudGl0eQZ1aW50NjQLY2x1c3Rlcl9yb3cAAgRyb290BnVpbnQ2NAVjZWxscw5jbHVzdGVyX2NlbGxbXQxjbHVzdGVyX3Nsb3QAAwNodWIGdWludDY0Amd4BGludDgCZ3kEaW50OA5jbHVzdGVyX3NvdXJjZQACCXNvdXJjZV9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDGNsdXN0ZXJjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgdzb3VyY2VzEGNsdXN0ZXJfc291cmNlW10GdGFyZ2V0B3VpbnQ2ND8Ec2xvdAZ1aW50OD8GY29tbWl0AAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BmNvbW1pdAtjaGVja3N1bTI1Ngpjb21taXRfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZjb21taXQLY2hlY2tzdW0yNTYJY29uZmlnbG9nAAEGY29uZmlnC2dhbWVfY29uZmlnC2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2Pwhjb3VwbGluZwADC2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYEaG9sZAZ1aW50NjQEa2luZAV1aW50OAVjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdBnRhcmdldAd1aW50NjQ/BHNsb3QGdWludDg/DGNyYWZ0ZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgFc3BlZWQGdWludDE2BWRyYWluBnVpbnQzMgpvdXRwdXRfcGN0BnVpbnQxNghjcmFmdGpvYgAGB3NoaXBfaWQGdWludDY0C3dvcmtzaG9wX2lkBnVpbnQ2NARzbG90BXVpbnQ4CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10MY3JhZnRqb2Jfcm93AA0CaWQGdWludDY0CGJ1aWxkaW5nBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbBBjcmFmdGpvYnNfcmVzdWx0AAEEam9icw5jcmFmdGpvYl9yb3dbXQlkYmdjcmVkaXQABQVvd25lcgRuYW1lAXgFaW50NjQBeQVpbnQ2NA1hbW91bnRfYXRvbWljBnVpbnQ2NARub2RlB3VpbnQzMj8KZGJnbWFuZGF0ZQADAXgFaW50NjQBeQVpbnQ2NAdub2RlX2lkBnVpbnQzMgpkYmdvbGRqb2JzAAIGY3JhZnRzDmNyYWZ0am9iX3Jvd1tdBmJ1aWxkcw5idWlsZGpvYl9yb3dbXQtkYmdwYWdlcm93cwABBHJvd3MGdWludDMyCGRiZ3B1cmdlAAIKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CGRiZ3NlYXRzAAMBeAVpbnQ2NAF5BWludDY0BXNlYXRzBnVpbnQzMg1kZWNvbXBfYnVja2V0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhyYXdfbWFzcwZ1aW50MzINZGVjb21wX3Jlc3VsdAADB2l0ZW1faWQGdWludDE2DnByb2Nlc3NlZF9tYXNzBnVpbnQ2NAdidWNrZXRzD2RlY29tcF9idWNrZXRbXQlkZWxlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DWRlbWFuZF9yZXN1bHQABQ1hYnVuZGFudF9tYXNrBXVpbnQ4DGxhY2tpbmdfbWFzawV1aW50OAVhY3V0ZQV1aW50OAduZWVkX2ZwCHVpbnQ2NFtdBWVwb2NoBnVpbnQzMghkZW1vbGlzaAABCWVudGl0eV9pZAZ1aW50NjQGZGVwbG95AAMCaWQGdWludDY0A3JlZgljYXJnb19yZWYEc2xvdA1jbHVzdGVyX3Nsb3Q/CmRlcG90X3ZpZXcABApwbGF5ZXJfY2FwBnVpbnQ2NAtzdG9yZWRfbWFzcwZ1aW50NjQNcmVzZXJ2ZWRfbWFzcwZ1aW50NjQEcm93cw1zdG9yYWdlX3Jvd1tdCmRlcG90c3RvcmUAAwdzaGlwX2lkBnVpbnQ2NAhkZXBvdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCWRlcG90dGFrZQADB3NoaXBfaWQGdWludDY0CGRlcG90X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10KZGVzY2VudGl0eQAEB2l0ZW1faWQGdWludDE2Cmh1bGxfc3RhdHMGdWludDY0DG1vZHVsZV9pdGVtcwh1aW50MTZbXQxtb2R1bGVfc3RhdHMIdWludDY0W10GZW5hYmxlAAEHZW5hYmxlZARib29sDGVuZXJneV9zdGF0cwACCGNhcGFjaXR5BnVpbnQzMghyZWNoYXJnZQZ1aW50MzIUZW50aXR5X2N1cnJlbnRfc3RhdGUAAgtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kGdWludDMyD2VudGl0eV9kZWZhdWx0cwACC3dhcmVob3VzZV96BnVpbnQxNgtjb250YWluZXJfegZ1aW50MTYLZW50aXR5X2luZm8AGAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2l0ZW1faWQGdWludDE2CWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29fdmlld1tdB21vZHVsZXMObW9kdWxlX2VudHJ5W10GZW5lcmd5B3VpbnQzMj8IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQxwcm9qZWN0ZWRfYXQKdGltZV9wb2ludA1lbnRpdHlfbGF5b3V0AAMOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10NYmFzZV9odWxsbWFzcwZ1aW50MzIVZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQGdWludDMyEHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdCWVwb2NoX3JvdwAEBWVwb2NoBnVpbnQ2NApvcmFjbGVfaWRzBm5hbWVbXQl0aHJlc2hvbGQFdWludDgEc2VlZAtjaGVja3N1bTI1NgxmaXhjYXJnb21hc3MAAQllbnRpdHlfaWQGdWludDY0CmZpeGl0ZW1pZHMAABBmb290cHJpbnRfcmVzdWx0AAEFY2VsbHMLZ3JpZF9jZWxsW10LZm9yY2VyZXZlYWwAAQVlcG9jaAZ1aW50NjQFZm91bmQABAZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAFCXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMgRzbG90BnVpbnQ4Pw1nYXRoZXJlcl9sYW5lAAUKc2xvdF9pbmRleAV1aW50OAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDMyBWRlcHRoBnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNgpnYXRoZXJwbGFuAAYJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyCHJlY2hhcmdlBGJvb2wFc2xvdHMFYnl0ZXMMZ2VuZXNpc2ZsZWV0AAEIZW50aXRpZXMMZW50aXR5X3Jvd1tdDGdlbmVzaXN3b3JsZAAEB2ZvdW5kZXIEbmFtZQF4BWludDY0AXkFaW50NjQIbm9kZV9pZHMIdWludDMyW10MZ2V0YnVpbGRqb2JzAAELYnVpbGRpbmdfaWQGdWludDY0CmdldGNoYXJ0ZXIAAgF4BWludDY0AXkFaW50NjQMZ2V0Y2hhcnR0cmVlAAAMZ2V0Y2hydHJlYWR5AAAKZ2V0Y2x1c3RlcgABBmh1Yl9pZAZ1aW50NjQJZ2V0Y29uZmlnAAAMZ2V0Y3JhZnRqb2JzAAELYnVpbGRpbmdfaWQGdWludDY0CWdldGRlY29tcAABB2l0ZW1faWQGdWludDE2CWdldGRlbWFuZAACAXgFaW50NjQBeQVpbnQ2NApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQIZ2V0ZGVwb3QAAghkZXBvdF9pZAZ1aW50NjQFb3duZXIEbmFtZQtnZXRkaXN0YW5jZQAEAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dldGVsaWdpYmxlAAIGY29vcmRzC2Nvb3JkaW5hdGVzB3N0cmF0dW0GdWludDE2CWdldGVudGNscwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DGdldGZvb3RwcmludAABB2l0ZW1faWQGdWludDE2C2dldGluZmRlY2F5AAIGYWN0aXZlBnVpbnQ2NAZlcG9jaHMGdWludDMyDGdldGluZmx1ZW5jZQADBW93bmVyBG5hbWUBeAVpbnQ2NAF5BWludDY0C2dldGluZnZhbHVlAAMFaXRlbXMMY2FyZ29faXRlbVtdAXgFaW50NjQBeQVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CmdldG1pbnRjZmcAAAxnZXRtaW50cmVhZHkAAAtnZXRtb2R0eXBlcwAACmdldG1vZHVsZXMAAAlnZXRuZWFyYnkAAgllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wKZ2V0bmZ0YmFzZQAACmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUHZ2V0cG9vbAACCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgIZ2V0cG9vbHMAAAxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwxnZXR2b3RlcmVhZHkAAAhnZXR2b3RlcwADAXgFaW50NjQBeQVpbnQ2NAZwbGF5ZXIEbmFtZQtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93CmltcG9ydGNlbGwABARyb290BnVpbnQ2NAJneARpbnQ4Amd5BGludDgJZW50aXR5X2lkBnVpbnQ2NAxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRlcG9jaAABA3JvdwllcG9jaF9yb3cLaW1wb3J0Z3JvdXAAAQNyb3cPZW50aXR5Z3JvdXBfcm93DGltcG9ydG5mdGNmZwABA3Jvdw1uZnRjb25maWdfcm93DGltcG9ydHBsYXllcgABBW93bmVyBG5hbWUNaW1wb3J0cmVzZXJ2ZQACC2Vwb2NoX3Njb3BlBnVpbnQzMgNyb3cLcmVzZXJ2ZV9yb3cLaW1wb3J0c3RhdGUAAQNyb3cJc3RhdGVfcm93C2luZmJ1cm5fcm93AAEDYnBzBnVpbnQxNg1pbmZkZW1hbmRfcm93AAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0EGluZmx1ZW5jZV90b3RhbHMACxFzdGFuZGluZ19saWZldGltZQZ1aW50NjQPc3RhbmRpbmdfYWN0aXZlBnVpbnQ2NBRjaXRpemVuc2hpcF9saWZldGltZQZ1aW50NjQSY2l0aXplbnNoaXBfYWN0aXZlBnVpbnQ2NBFsb2NhdGlvbl9saWZldGltZQZ1aW50NjQPbG9jYXRpb25fYWN0aXZlBnVpbnQ2NAVzcGVudAZ1aW50NjQHbWFuZGF0ZQZ1aW50MzIHZm91bmRlcgRuYW1lB2ZvdW5kZWQGdWludDMyBWVwb2NoBnVpbnQzMgtpbmZtaW50X3JvdwADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJdGhyZXNob2xkBnVpbnQ2NAtpbmZwb29sX3JvdwAGCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DmluZnF1YWxpdHlfcm93AAECZDEGdWludDMyD2luZnZhbHVlX3Jlc3VsdAACDHRvdGFsX2F0b21pYwZ1aW50NjQPcGVyX2l0ZW1fYXRvbWljCHVpbnQ2NFtdDWluZndlaWdodF9yb3cAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXdlaWdodF9mcAZ1aW50NjQIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nBGxhbmUAAghsYW5lX2tleQV1aW50OAhzY2hlZHVsZQhzY2hlZHVsZQZsYXVuY2gAAwtsYXVuY2hlcl9pZAZ1aW50NjQKY2F0Y2hlcl9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDmxhdW5jaGVyX3N0YXRzAAMLY2hhcmdlX3JhdGUGdWludDE2CHZlbG9jaXR5BnVpbnQxNgVkcmFpbgZ1aW50MTYEbG9hZAADAmlkBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10LbG9hZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYKb3V0cHV0X3BjdAZ1aW50MTYQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbAtpc193b3JtaG9sZQRib29sD2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OApsb2NrZXJfcm93AAMIZGVwb3RfaWQGdWludDY0C3N0b3JlZF9tYXNzBnVpbnQ2NA1yZXNlcnZlZF9tYXNzBnVpbnQ2NAxtYW5kYXRlc19yb3cAAgdub2RlX2lkBnVpbnQzMgdyZXBlYXRzBnVpbnQxNgttaWdyYXRlam9icwAAE21pbnRfdGhyZXNob2xkX3ZpZXcAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQObWludGNmZ19yZXN1bHQAAgp0aHJlc2hvbGRzFW1pbnRfdGhyZXNob2xkX3ZpZXdbXQhidXJuX2JwcwZ1aW50MTYJbWludHFfcm93AAICaWQGdWludDY0BWdyYWRlBXVpbnQ4CW1pbnRyZWFkeQABCW1heF9taW50cwd1aW50MzI/DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgKbmF0dXJhbGl6ZQADBnBsYXllcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQzMgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfY2FyZ29faXRlbQAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMhBuZnRfaXRlbV9wYXlsb2FkAAIEaXRlbQ5uZnRfY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAMHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQt0ZW1wbGF0ZV9pZAVpbnQzMg1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQluZnRpbWd1cmwAAgRpdGVtCmNhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudBFvcmFjbGVfY29uZmlnX3JvdwACCXRocmVzaG9sZAV1aW50OAhkZWFkbGluZQZ1aW50MzIKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lEHBvb2xfcGFpcl9yZXN1bHQACQhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4B2l0ZW1faWQGdWludDE2EXN0YW5kYXJkX3F1YW50aXR5BnVpbnQ2NA5zdGFuZGFyZF9zdGF0cwZ1aW50NjQQcHJlbWl1bV9xdWFudGl0eQZ1aW50NjQNcHJlbWl1bV9zdGF0cwZ1aW50NjQDYmFyBnVpbnQ2NAl0aHJlc2hvbGQGdWludDY0CXBvb2xfdmlldwAHCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DHBvb2xzX3Jlc3VsdAABBXBvb2xzC3Bvb2xfdmlld1tdDHByb2dyZXNzX3JvdwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQNcHJvZ3Jlc3NfdmlldwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQPcHJvamVjdGVkX3N0YXRlABEFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwR0aWVyBXVpbnQ4CHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAACB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAIDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ9zb3VyY2Vfc3ViY2xhc3MHdWludDE2Pw5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10IcmVmaXRfb3AAAgJvcAV1aW50OARzbG90BXVpbnQ4DHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDHJlc29sdmVlYXJseQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNlYXRfdmlldwAEB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0CHByb2dyZXNzBnVpbnQ2NANnYXAGdWludDY0CHNldGNpdmljAAEHYWNjb3VudARuYW1lCnNldGNsdXN0ZXIAAQNyb3cLY2x1c3Rlcl9yb3cJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQLc2V0ZGVhZGxpbmUAAQhkZWFkbGluZQZ1aW50MzIKc2V0aW5mYnVybgABA2JwcwZ1aW50MTYIc2V0aW5mZDEAAQJkMQZ1aW50MzIMc2V0aW5mZGVtYW5kAAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0CnNldGluZm1pbnQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQMc2V0aW5md2VpZ2h0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl3ZWlnaHRfZnAGdWludDY0CXNldG5leHRpZAABB25leHRfaWQGdWludDY0CXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4DHNldHRsZWJhbGxvdAACCWJhbGxvdF9pZAZ1aW50NjQJbWF4X3BhZ2VzBnVpbnQzMgxzZXR1bndyYXBtaW4AAQhhc3NldF9pZAZ1aW50NjQLc2V0d3JhcGNvc3QAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0CnNldHdyYXBmZWUAAgdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lB3NodXR0bGUABAdjYXJyaWVyBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCHNsb3RfZGVmAAMEdHlwZQV1aW50OApvdXRwdXRfcGN0BnVpbnQxNghtYXhfdGllcgV1aW50OAxzdGFuZGluZ19yb3cABAdhY2NvdW50BG5hbWUIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMhJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwADB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgtzdG9yYWdlX3JvdwAHAmlkBnVpbnQ2NAVvd25lcgRuYW1lB2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sADAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10JY291cGxpbmdzCmNvdXBsaW5nW10Hc3ViamVjdAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQzMj8OdGFyZ2V0X2l0ZW1faWQHdWludDE2PwVyZWZpdAlyZWZpdF9vcD8MY2hhcnRlcl9ub2RlB3VpbnQzMj8KdGFza19ldmVudAAKCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAZ1aW50MzIEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDMyPwhsYW5lX2tleQV1aW50OAx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cAAwdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcHdHJhbnNpdAAFAmlkBnVpbnQ2NAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wKdHJhdmVscGxhbgADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAQAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZBJkZWNvbXBfcmVzdWx0X3R5cGUNZGVjb21wX3Jlc3VsdBJkZW1hbmRfcmVzdWx0X3R5cGUNZGVtYW5kX3Jlc3VsdBRpbmZ2YWx1ZV9yZXN1bHRfdHlwZQ9pbmZ2YWx1ZV9yZXN1bHQVaW5mbHVlbmNlX3RvdGFsc190eXBlEGluZmx1ZW5jZV90b3RhbHMRcG9vbHNfcmVzdWx0X3R5cGUMcG9vbHNfcmVzdWx0FXBvb2xfcGFpcl9yZXN1bHRfdHlwZRBwb29sX3BhaXJfcmVzdWx0E21pbnRjZmdfcmVzdWx0X3R5cGUObWludGNmZ19yZXN1bHQTY2hhcnRlcl9yZXN1bHRfdHlwZQ5jaGFydGVyX3Jlc3VsdBhjaGFydGVycmVhZHlfcmVzdWx0X3R5cGUTY2hhcnRlcnJlYWR5X3Jlc3VsdBB2b3RlX3Jlc3VsdF90eXBlC3ZvdGVfcmVzdWx0D2RlcG90X3ZpZXdfdHlwZQpkZXBvdF92aWV3CHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAZ1bmxvYWQAAwJpZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQd1cGdyYWRlAAUKYnVpbGRlcl9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGaW5wdXRzDGNhcmdvX2l0ZW1bXQRzbG90BnVpbnQ4Pwt2b3RlX29wdGlvbgAFB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0BHNlYXQGdWludDMyBndlaWdodAZ1aW50NjQEcmFuawZ1aW50MzILdm90ZV9yZXN1bHQACQtsb2NhdGlvbl9pZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAVlcG9jaAZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFc2VhdHMGdWludDMyCHNldHRsaW5nBGJvb2wFcXVldWUIdWludDMyW10Hb3B0aW9ucw12b3RlX29wdGlvbltdBXBpY2tzCHVpbnQzMltdCXZvdGVyZWFkeQABCW1heF9wYWdlcwZ1aW50MzIEd2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAKd29ybGRzX3JvdwAJC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQGYWN0aXZlBnVpbnQ2NAxhY3RpdmVfZXBvY2gGdWludDMyBXNwZW50BnVpbnQ2NAp1bmFzc2lnbmVkBnVpbnQ2NAliYWxsb3RfaWQGdWludDY0B2ZvdW5kZXIEbmFtZQdmb3VuZGVkBnVpbnQzMg13b3JtaG9sZV9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzC2lzX3dvcm1ob2xlBGJvb2wLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMOd3JhcGNvbmZpZ19yb3cAAwdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lDG1pbl9hc3NldF9pZAZ1aW50NjQMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NKEBADKNddI0zTELYWJhbmRvbnBsb3QAAMBxN0+KUjIKYWRkY29udHJpYgAAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAACHvhSdPghidWlsZGpvYgAAAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAFJ0+kSFpkELY2FuY2VsYnVpbGQAAJDbDkWFpkELY2FuY2VsY2l2aWMAAECmMZqTsUEKY2FzdGJhbGxvdADgk1H3qnxNQwxjaGFydGVycmVhZHkAoGLOumHktkMMY2l2aWNzaHV0dGxlAABAik4f6UxECmNsYWltYnVpbGQAAEBe5iLpTEQKY2xhaW1jcmFmdAAAAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AQEO0KoVpRApjbG9zZWVwb2NoAJCXueiqjHVEDGNsdXN0ZXJjcmFmdAAAAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAIe+vMxFCGNyYWZ0am9iAAAAyC6pi9hJCWRiZ2NyZWRpdAAAgMomTSPZSQpkYmdtYW5kYXRlAAAAPvSlSNlJCmRiZ29sZGpvYnMAADCnVzFT2UkLZGJncGFnZXJvd3MAAAAAil1d2UkIZGJncHVyZ2UAAAAAOBuF2UkIZGJnc2VhdHMAAADw2eWpokoJZGVsZW50aXR5AAAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAujTjTKtKCmRlcG90c3RvcmUAAABQ0ORMq0oJZGVwb3R0YWtlAACAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAABOTqrsulsKZml4aXRlbWlkcwAAolFbXYUuXQtmb3JjZXJldmVhbL4ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvcmNlcmV2ZWFsCnN1bW1hcnk6ICdERUJVRzogZm9yY2UtZmluYWxpemUgYW4gZXBvY2ggZnJvbSBleGlzdGluZyByZXZlYWxzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpGaW5hbGl6ZSBhIHN0dWNrIGVwb2NoIGJ5IGNvbXB1dGluZyBpdHMgc2VlZCBmcm9tIHRoZSByZXZlYWxzIGFscmVhZHkgc3VibWl0dGVkLCB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBUaGUgc2VlZCBpcyBkZXJpdmVkIHNvbGVseSBmcm9tIHRoZSBwcmUtaW1hZ2UtbG9ja2VkIHJldmVhbHMgYWxyZWFkeSBvbiBjaGFpbjsgbm8gYWRtaW4tc3VwcGxpZWQgZW50cm9weSBpcyBpbnRyb2R1Y2VkLiBVc2VkIHRvIHVuYmxvY2sgZXBvY2ggcHJvZ3Jlc3Npb24gd2hlbiB0aGUgdGhyZXNob2xkIGNhbm5vdCBvdGhlcndpc2UgYmUgbWV0LgAAAACANDVdBWZvdW5kAAAAAABc1bJhBmdhdGhlcpcDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdhdGhlcgpzdW1tYXJ5OiAnR2F0aGVyIHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKR2F0aGVyIHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZ2F0aGVyYWJsZSBsb2NhdGlvbiB0eXBlcy4gU2NoZWR1bGVzIGEgZ2F0aGVyIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGdhdGhlcmVyIHN0YXRzIGFuZCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBjb21wb3NpdGlvbi4AwDSxXtWyYQpnYXRoZXJwbGFuAJCVigs7rKZiDGdlbmVzaXNmbGVldKkELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXNmbGVldApzdW1tYXJ5OiAnTWludCB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW1wbGFjZSB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldDogYSBjYWxsZXItc3VwcGxpZWQgc2V0IG9mIGVudGl0aWVzIChzaGlwcywgc3RydWN0dXJlcywgYW5kIGNvbnRhaW5lcnMpIHdyaXR0ZW4gdG8gdGhlIHdvcmxkIGFzLWlzLiBWYWxpZCBvbmx5IGR1cmluZyB0aGUgcHJlLWdlbmVzaXMgd2luZG93LCBiZWZvcmUgZXBvY2ggMSBpcyBmaW5hbGl6ZWQuIFRoZSBzdXBwbGllZCBlbnRpdHkgaWRzIGFyZSBob25vcmVkIGFuZCB0aGUgaWQgc2VxdWVuY2UgaXMgYWR2YW5jZWQgcGFzdCB0aGVtOyBpZCAwIGlzIHJlc2VydmVkIGZvciB0aGUgR2VuZXNpcyBOZXh1cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpDipRw7rKZiDGdlbmVzaXN3b3JsZOcHLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXN3b3JsZApzdW1tYXJ5OiAnRm91bmQgYSB3b3JsZCBhdCBnYW1lIGxhdW5jaCB3aXRoIGl0cyBjaXZpYyBjaGFydGVycyBhbHJlYWR5IGNvbXBsZXRlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRm91bmQgYSBwbGFuZXQgYXMgYSB3b3JsZCBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLCB3aXRoIHRoZSBsaXN0ZWQgY2hhcnRlciBub2RlcyBjb21wbGV0ZWQgaW4gb3JkZXIuIFRoZSBmb3VuZGVyIG11c3QgaG9sZCBhIGNvbXBhbnkgb24gdGhlIHBsYXRmb3JtOyB0aGUgZm91bmRlciBpcyBjcmVkaXRlZCB3aXRoIGxpZmV0aW1lIGluZmx1ZW5jZSBlcXVhbCB0byB0aGUgc3VtbWVkIGNvc3Qgb2YgdGhlIGxpc3RlZCBub2RlcywgYW5kIGVhY2ggbm9kZSBpcyB0aGVuIGNvbXBsZXRlZCB0aHJvdWdoIHRoZSBzYW1lIHJ1bGVzIGEgY2hhcnRlciBjcmFuayBhcHBsaWVzOiBwcmVyZXF1aXNpdGVzIG11c3QgYmUgc2F0aXNmaWVkIGJ5IGVhcmxpZXIgbm9kZXMgaW4gdGhlIGxpc3QsIGEgc3Bhd24gbm9kZSBhZG9wdHMgYSBjaXZpYyBlbnRpdHkgb2YgaXRzIGtpbmQgYWxyZWFkeSBzdGFuZGluZyBhdCB0aGUgbG9jYXRpb24gb3Igc3Bhd25zIG9uZSwgYW5kIGEgcmVmaXQgbm9kZSByZWZpdHMgdGhlIGVudGl0eSByZWNvcmRlZCBmb3IgaXRzIHRhcmdldC4gU3BlbnQgYWR2YW5jZXMgYnkgZXZlcnkgbm9kZSdzIGNvc3QsIHNvIHRoZSByZXN1bHRpbmcgd29ybGQgaXMgb25lIGEgc2luZ2xlIGZvdW5kZXIgY291bGQgaGF2ZSBhZHZhbmNlZCBhbG9uZS4gRWFjaCBsb2NhdGlvbiBjYW4gYmUgZm91bmRlZCB0aGlzIHdheSBvbmNlLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkugA99KTp9smIMZ2V0YnVpbGRqb2JzAADAVfmahrJiCmdldGNoYXJ0ZXIAoNTN+ZqGsmIMZ2V0Y2hhcnR0cmVlAOCTUTffhrJiDGdldGNocnRyZWFkeQAAwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUugA99eZmLsmIMZ2V0Y3JhZnRqb2JzAAAAqJIilbJiCWdldGRlY29tcAAAAEjTSJWyYglnZXRkZW1hbmQAAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAAACZVpWyYghnZXRkZXBvdAAAFJomY5eyYgtnZXRkaXN0YW5jZQAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy6Qp7s1U7qyYgxnZXRmb290cHJpbnQAALxBKq3psmILZ2V0aW5mZGVjYXkAoNBUOq7psmIMZ2V0aW5mbHVlbmNlAACUjmav6bJiC2dldGluZnZhbHVlAABMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAFsoTyezYgpnZXRtaW50Y2ZnAOCTUTdPJ7NiDGdldG1pbnRyZWFkeQAAsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnnKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBhbmQgZmxpZ2h0IHRpbWUuAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAAAgUlqzYgdnZXRwb29sAAAAADhSWrNiCGdldHBvb2xzAKCyyfjRW7NiDGdldHByb2pzdGF0ZcsDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHByb2pzdGF0ZQpzdW1tYXJ5OiAnR2V0IHByb2plY3RlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBwcm9qZWN0ZWQgc3RhdGUgb2YgYW4gZW50aXR5IGFmdGVyIGFwcGx5aW5nIHRoZSBuZXh0IHRhc2tfY291bnQgc2NoZWR1bGVkIHRhc2tzIChvciBhbGwgdGFza3MgaWYgdGFza19jb3VudCBpcyBvbWl0dGVkKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBwcmV2aWV3IHRoZSByZXN1bHQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUgd2l0aG91dCByZXNvbHZpbmcgb24tY2hhaW4uAABQ1SF1s2IJZ2V0cmVjaXBlpgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlCnN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgY3JhZnRpbmcgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcmVjaXBlIHdob3NlIG91dHB1dCBtYXRjaGVzIHRoZSBnaXZlbiBpdGVtIGlkLCBpbmNsdWRpbmcgaXRzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRpc3BsYXkgY3JhZnRpbmcgcmVxdWlyZW1lbnRzLgAAVtUhdbNiCmdldHJlY2lwZXOsAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGVzCnN1bW1hcnk6ICdMaXN0IGNyYWZ0aW5nIHJlY2lwZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY3JhZnRpbmcgcmVjaXBlcyBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgbG93ZXIgYm91bmQgb3V0cHV0IGl0ZW0gaWQsIHVwIHRvIHRoZSBzcGVjaWZpZWQgbGltaXQuIEVhY2ggZW50cnkgaW5jbHVkZXMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uAADOBmF1s2IKZ2V0cmVzY2F0c54DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2NhdHMKc3VtbWFyeTogJ0dldCByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKG9yZSwgZ2FzLCByZWdvbGl0aCwgYmlvbWFzcywgY3J5c3RhbCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIHJlc291cmNlIHN1YnR5cGUgaWRlbnRpZmllcnMuALDaV2F1s2ILZ2V0cmVzZXJ2ZXP8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNlcnZlcwpzdW1tYXJ5OiAnR2V0IGN1cnJlbnQgcmVzZXJ2ZSBtb2RpZmljYXRpb25zIGF0IGEgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGNoYWluJ3MgbW9kaWZpY2F0aW9ucyB0byBkZXJpdmVkIHJlc2VydmVzIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlIGZvciB0aGUgY3VycmVudCBlcG9jaCBhcyBhIGxpc3Qgb2Yge3N0cmF0dW0sIHJlbWFpbmluZ30gcGFpcnMuIFN0cmF0YSBub3QgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgdXNlIHRoZWlyIGRlcml2ZWQgaW5pdGlhbCByZXNlcnZlLiBDb21wb3NlIHdpdGggU0RLIGRlcml2YXRpb24gdG8gZ2V0IHRoZSBmdWxsIHBlci1sb2NhdGlvbiBzdHJhdGEgdmlldy6AFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUu4JNRV2W6s2IMZ2V0dm90ZXJlYWR5AAAAAFhlurNiCGdldHZvdGVzAABUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAGqJV5UurdAtpbXBvcnRlcG9jaAAAqqaX5UurdAtpbXBvcnRncm91cADAFspr5kurdAxpbXBvcnRuZnRjZmcAcJU3seZLq3QMaW1wb3J0cGxheWVyALqvwurmS6t0DWltcG9ydHJlc2VydmUAAFQ2GedLq3QLaW1wb3J0c3RhdGUAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAADwoU9lc5mTC21pZ3JhdGVqb2JzAAAA8Mmom6eTCW1pbnRyZWFkeQAAAAAquqw2lQhtb3ZldGlsZQAAgPoumquzmQpuYXR1cmFsaXplAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbADg4zVK7UixugxyZXNvbHZlZWFybHkAAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAyG2HssIIc2V0Y2l2aWMAAMBVGeuIssIKc2V0Y2x1c3RlcgAAAMDpUoqywglzZXRjb29yZHMAANR0MRmVssILc2V0ZGVhZGxpbmUAAMC8+qzpssIKc2V0aW5mYnVybgAAAAAhremywghzZXRpbmZkMQCQppEqremywgxzZXRpbmZkZW1hbmQAAECeTq7pssIKc2V0aW5mbWludACQG3OKr+mywgxzZXRpbmZ3ZWlnaHQAAABILnc1s8IJc2V0bmV4dGlkAAAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAkGmM5qiYs8IMc2V0dGxlYmFsbG90ADCdrObyqbPCDHNldHVud3JhcG1pbgAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAPDJqKsy3Ql2b3RlcmVhZHkAAAAAAABQr+EEd2FycJ8DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdhcnAKc3VtbWFyeTogJ1dhcnAgdG8gYSBkZXN0aW5hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFudGx5IHRlbGVwb3J0IGFuIGVudGl0eSB0byBhIGRlc3RpbmF0aW9uIHN5c3RlbS4gUmVxdWlyZXMgd2FycCBjYXBhYmlsaXR5LCBmdWxsIGVuZXJneSwgZW1wdHkgY2FyZ28sIGFuZCBhbiBlbXB0eSBzY2hlZHVsZS4gVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgYSB2YWxpZCBzeXN0ZW0gd2l0aGluIHdhcnAgcmFuZ2UuIFJlc29sdmVzIGltbWVkaWF0ZWx5IGFzIGEgemVyby1kdXJhdGlvbiB0YXNrLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0oAAAAAGQaozkDaTY0AAAKYmFsbG90X3JvdwAwRK5mGqM5A2k2NAAAD2JhbGxvdHBpY2tzX3JvdwAAsApnGqM5A2k2NAAADmJhbGxvdF9zZXFfcm93oGLOCmcaozkDaTY0AAAQYmFsbG90c2V0dGxlX3JvdwAAwGy6FJ0+A2k2NAAADWJ1aWxkaW5nc19yb3cAAMCHvhSdPgNpNjQAAAxidWlsZGpvYl9yb3cAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAqmt4qu+yQwNpNjQAAA9jaXRpemVuc2hpcF9yb3cAmFuTIuS2QwNpNjQAAA9jaXZpY2NvbmZpZ19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAMCHvrzMRQNpNjQAAAxjcmFmdGpvYl9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAABgXn3WdANpNjQAAAtpbmZidXJuX3JvdwAASNNIldZ0A2k2NAAADWluZmRlbWFuZF9yb3cAAAAgTyfXdANpNjQAAAtpbmZtaW50X3JvdwAAACBSWtd0A2k2NAAAC2luZnBvb2xfcm93AIDPLhpt13QDaTY0AAAOaW5mcXVhbGl0eV9yb3cAAMiNOcXXdANpNjQAAA1pbmZ3ZWlnaHRfcm93AAAAAF8FEY0DaTY0AAAKbG9ja2VyX3JvdwAAAFhlk6aRA2k2NAAADG1hbmRhdGVzX3JvdwAAAAAAm6eTA2k2NAAACW1pbnRxX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAGKvL6K0DaTY0AAAMcHJvZ3Jlc3Nfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAbLo0TcYDaTY0AAAMc3RhbmRpbmdfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAQDFzacYDaTY0AAALc3RvcmFnZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAAAA4BQv5QNpNjQAAAp3b3JsZHNfcm93AABza1JUzeUDaTY0AAAOd3JhcGNvbmZpZ19yb3cAAAAZU1TN5QNpNjQAAAx3cmFwY29zdF9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAXwAyjXXSNM0xDHRhc2tfcmVzdWx0cwDAcTdPilIyDHRhc2tfcmVzdWx0cwAAAIe+FJ0+D2Jvb2tpbmdfcmVjZWlwdAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAFJ0+kSFpkEMdGFza19yZXN1bHRzAJDbDkWFpkEOY2FuY2VsX3Jlc3VsdHOgYs66YeS2Qwx0YXNrX3Jlc3VsdHMAQF7mIulMRAx0YXNrX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHOQl7noqox1RAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQ9ib29raW5nX3JlY2VpcHQAAAANu0ilSgx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAgLo040yrSgx0YXNrX3Jlc3VsdHMAAFDQ5EyrSgx0YXNrX3Jlc3VsdHMAgM8uT4WwSgZzdHJpbmcAAAAAXNWyYQx0YXNrX3Jlc3VsdHMAwDSxXtWyYQx0YXNrX3Jlc3VsdHOAD30pOn2yYhBidWlsZGpvYnNfcmVzdWx0AMBV+ZqGsmIOY2hhcnRlcl9yZXN1bHSg1M35moayYhNjaGFydGVyX3RyZWVfcmVzdWx04JNRN9+GsmITY2hhcnRlcnJlYWR5X3Jlc3VsdADAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWeAD315mYuyYhBjcmFmdGpvYnNfcmVzdWx0AACokiKVsmINZGVjb21wX3Jlc3VsdAAASNNIlbJiDWRlbWFuZF9yZXN1bHQAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAAAJlWlbJiCmRlcG90X3ZpZXcAFJomY5eyYgZ1aW50NjQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvkKe7NVO6smIQZm9vdHByaW50X3Jlc3VsdAC8QSqt6bJiBnVpbnQ2NKDQVDqu6bJiEGluZmx1ZW5jZV90b3RhbHMAlI5mr+myYg9pbmZ2YWx1ZV9yZXN1bHQATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvAFT1WarssmIFdWludDiAVfVZquyyYgtlbnVtX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAAWyhPJ7NiDm1pbnRjZmdfcmVzdWx04JNRN08ns2IGdWludDMyALCqPicqs2ILZW51bV9yZXN1bHQAAFZRJyqzYg5tb2R1bGVzX3Jlc3VsdAAA8OcaNbNiC25lYXJieV9pbmZvAIDC5uQ1s2IIc3RyaW5nW10AAF3T5TWzYg5uZnRpbmZvX3Jlc3VsdAAAuMqbWLNiC3BsYXllcl9pbmZvAAAAIFJas2IQcG9vbF9wYWlyX3Jlc3VsdAAAADhSWrNiDHBvb2xzX3Jlc3VsdKCyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXeCTUVdlurNiBnVpbnQzMgAAAFhlurNiC3ZvdGVfcmVzdWx0AFSkTV7Ks2INd29ybWhvbGVfaW5mb5AdnubmqullDHRhc2tfcmVzdWx0cwCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAAAANDS1iQx0YXNrX3Jlc3VsdHMAAAAAAJAMjQx0YXNrX3Jlc3VsdHMAAAAquqw2lQx0YXNrX3Jlc3VsdHMAAIhXM+nymgZzdHJpbmcAAGXXIIVMrAx0YXNrX3Jlc3VsdHMAfHZ5KoVMrAx0YXNrX3Jlc3VsdHMAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAQIxG7UixuhJyZXNvbHZlYWxsX3Jlc3VsdHPg4zVK7Uixug9yZXNvbHZlX3Jlc3VsdHMAAABAxZx1wwx0YXNrX3Jlc3VsdHMAAKDsGsRpxgx0YXNrX3Jlc3VsdHMAgM8uT8Vpxgx0YXNrX3Jlc3VsdHMAAAAqulwNxwx0YXNrX3Jlc3VsdHMAAAAgOzzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAwDSxRrXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAJEPj1Ax0YXNrX3Jlc3VsdHMAAABAJXNZ1Qx0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHM='
33
38
  )
34
39
  export const abi = ABI.from(abiBlob)
35
40
  export namespace Types {
41
+ @Struct.type('abandonplot')
42
+ export class abandonplot extends Struct {
43
+ @Struct.field(UInt64)
44
+ declare plot_id: UInt64
45
+ }
36
46
  @Struct.type('packed_module')
37
47
  export class packed_module extends Struct {
38
48
  @Struct.field(UInt16)
@@ -47,6 +57,32 @@ export namespace Types {
47
57
  @Struct.field(packed_module, {optional: true})
48
58
  declare installed?: packed_module
49
59
  }
60
+ @Struct.type('cargo_item')
61
+ export class cargo_item extends Struct {
62
+ @Struct.field(UInt16)
63
+ declare item_id: UInt16
64
+ @Struct.field(UInt64)
65
+ declare stats: UInt64
66
+ @Struct.field(module_entry, {array: true})
67
+ declare modules: module_entry[]
68
+ @Struct.field(UInt32)
69
+ declare quantity: UInt32
70
+ @Struct.field(UInt64, {optional: true})
71
+ declare entity_id?: UInt64
72
+ }
73
+ @Struct.type('addcontrib')
74
+ export class addcontrib extends Struct {
75
+ @Struct.field(Name)
76
+ declare player: Name
77
+ @Struct.field(UInt64)
78
+ declare entity_id: UInt64
79
+ @Struct.field(Int64)
80
+ declare x: Int64
81
+ @Struct.field(Int64)
82
+ declare y: Int64
83
+ @Struct.field(cargo_item, {array: true})
84
+ declare bundle: cargo_item[]
85
+ }
50
86
  @Struct.type('cargo_ref')
51
87
  export class cargo_ref extends Struct {
52
88
  @Struct.field(UInt16)
@@ -55,11 +91,11 @@ export namespace Types {
55
91
  declare stats: UInt64
56
92
  @Struct.field(module_entry, {array: true})
57
93
  declare modules: module_entry[]
94
+ @Struct.field(UInt64, {optional: true})
95
+ declare entity_id?: UInt64
58
96
  }
59
97
  @Struct.type('addmodule')
60
98
  export class addmodule extends Struct {
61
- @Struct.field(Name)
62
- declare entity_type: Name
63
99
  @Struct.field(UInt64)
64
100
  declare entity_id: UInt64
65
101
  @Struct.field(UInt8)
@@ -78,39 +114,172 @@ export namespace Types {
78
114
  @Struct.field(Int64)
79
115
  declare y: Int64
80
116
  }
81
- @Struct.type('advance')
82
- export class advance extends Struct {
83
- @Struct.field('string')
84
- declare reveal: string
85
- @Struct.field(Checksum256)
86
- declare commit: Checksum256
117
+ @Struct.type('addoracle')
118
+ export class addoracle extends Struct {
119
+ @Struct.field(Name)
120
+ declare oracle_id: Name
87
121
  }
88
- @Struct.type('cargo_item')
89
- export class cargo_item extends Struct {
90
- @Struct.field(UInt16)
91
- declare item_id: UInt16
122
+ @Struct.type('ballot_credit')
123
+ export class ballot_credit extends Struct {
124
+ @Struct.field(Name)
125
+ declare account: Name
92
126
  @Struct.field(UInt64)
93
- declare stats: UInt64
94
- @Struct.field(module_entry, {array: true})
95
- declare modules: module_entry[]
127
+ declare amount: UInt64
128
+ }
129
+ @Struct.type('ballot_row')
130
+ export class ballot_row extends Struct {
131
+ @Struct.field(UInt64)
132
+ declare ballot_id: UInt64
133
+ @Struct.field(UInt8)
134
+ declare kind: UInt8
135
+ @Struct.field(UInt64)
136
+ declare subject: UInt64
96
137
  @Struct.field(UInt32)
97
- declare quantity: UInt32
138
+ declare seats: UInt32
139
+ @Struct.field(UInt32)
140
+ declare settled_epoch: UInt32
141
+ @Struct.field(UInt32, {array: true})
142
+ declare queue: UInt32[]
143
+ @Struct.field(ballot_credit, {array: true})
144
+ declare parked: ballot_credit[]
145
+ }
146
+ @Struct.type('ballot_seq_row')
147
+ export class ballot_seq_row extends Struct {
148
+ @Struct.field(UInt64)
149
+ declare next_id: UInt64
150
+ @Struct.field(UInt64)
151
+ declare cursor: UInt64
152
+ @Struct.field(UInt32)
153
+ declare page_rows: UInt32
154
+ }
155
+ @Struct.type('ballot_tally')
156
+ export class ballot_tally extends Struct {
157
+ @Struct.field(UInt32)
158
+ declare option: UInt32
159
+ @Struct.field(UInt64)
160
+ declare weight: UInt64
161
+ }
162
+ @Struct.type('ballotpicks_row')
163
+ export class ballotpicks_row extends Struct {
164
+ @Struct.field(Name)
165
+ declare account: Name
166
+ @Struct.field(UInt32, {array: true})
167
+ declare picks: UInt32[]
168
+ }
169
+ @Struct.type('ballotsettle_row')
170
+ export class ballotsettle_row extends Struct {
171
+ @Struct.field(UInt64)
172
+ declare ballot_id: UInt64
173
+ @Struct.field(UInt32)
174
+ declare round: UInt32
175
+ @Struct.field(UInt64)
176
+ declare cursor: UInt64
177
+ @Struct.field(UInt32)
178
+ declare target_epoch: UInt32
179
+ @Struct.field(ballot_tally, {array: true})
180
+ declare tallies: ballot_tally[]
181
+ @Struct.field(UInt32, {array: true})
182
+ declare seated: UInt32[]
98
183
  }
99
184
  @Struct.type('blend')
100
185
  export class blend extends Struct {
101
- @Struct.field(Name)
102
- declare entity_type: Name
103
186
  @Struct.field(UInt64)
104
187
  declare id: UInt64
105
188
  @Struct.field(cargo_item, {array: true})
106
189
  declare inputs: cargo_item[]
107
190
  }
191
+ @Struct.type('booking_receipt')
192
+ export class booking_receipt extends Struct {
193
+ @Struct.field(UInt64)
194
+ declare job_id: UInt64
195
+ @Struct.field(TimePoint)
196
+ declare lands_at: TimePoint
197
+ @Struct.field(UInt32)
198
+ declare runtime: UInt32
199
+ }
200
+ @Struct.type('builder_lane')
201
+ export class builder_lane extends Struct {
202
+ @Struct.field(UInt8)
203
+ declare slot_index: UInt8
204
+ @Struct.field(UInt16)
205
+ declare speed: UInt16
206
+ @Struct.field(UInt32)
207
+ declare drain: UInt32
208
+ @Struct.field(UInt16)
209
+ declare output_pct: UInt16
210
+ }
211
+ @Struct.type('buildings_row')
212
+ export class buildings_row extends Struct {
213
+ @Struct.field(UInt64)
214
+ declare entity_id: UInt64
215
+ @Struct.field(UInt8)
216
+ declare building: UInt8
217
+ }
218
+ @Struct.type('buildjob')
219
+ export class buildjob extends Struct {
220
+ @Struct.field(UInt64)
221
+ declare target_id: UInt64
222
+ @Struct.field(UInt64)
223
+ declare dock_id: UInt64
224
+ @Struct.field(UInt8)
225
+ declare slot: UInt8
226
+ @Struct.field(UInt16)
227
+ declare target_item_id: UInt16
228
+ @Struct.field(cargo_item, {array: true})
229
+ declare inputs: cargo_item[]
230
+ }
231
+ @Struct.type('coordinates')
232
+ export class coordinates extends Struct {
233
+ @Struct.field(Int64)
234
+ declare x: Int64
235
+ @Struct.field(Int64)
236
+ declare y: Int64
237
+ @Struct.field(UInt16, {optional: true})
238
+ declare z?: UInt16
239
+ }
240
+ @Struct.type('buildjob_row')
241
+ export class buildjob_row extends Struct {
242
+ @Struct.field(UInt64)
243
+ declare id: UInt64
244
+ @Struct.field(UInt64)
245
+ declare building: UInt64
246
+ @Struct.field(UInt8)
247
+ declare socket: UInt8
248
+ @Struct.field(UInt64)
249
+ declare target: UInt64
250
+ @Struct.field(Name)
251
+ declare owner: Name
252
+ @Struct.field(coordinates)
253
+ declare coords: coordinates
254
+ @Struct.field(TimePoint)
255
+ declare starts_at: TimePoint
256
+ @Struct.field(TimePoint)
257
+ declare completes_at: TimePoint
258
+ @Struct.field(UInt16)
259
+ declare target_item_id: UInt16
260
+ @Struct.field(cargo_item, {array: true})
261
+ declare cargo: cargo_item[]
262
+ @Struct.field('bool')
263
+ declare deposited: boolean
264
+ }
265
+ @Struct.type('buildjobs_result')
266
+ export class buildjobs_result extends Struct {
267
+ @Struct.field(buildjob_row, {array: true})
268
+ declare jobs: buildjob_row[]
269
+ }
270
+ @Struct.type('buildplot')
271
+ export class buildplot extends Struct {
272
+ @Struct.field(UInt64)
273
+ declare builder_id: UInt64
274
+ @Struct.field(UInt64)
275
+ declare plot_id: UInt64
276
+ }
108
277
  @Struct.type('cancel')
109
278
  export class cancel extends Struct {
110
- @Struct.field(Name)
111
- declare entity_type: Name
112
279
  @Struct.field(UInt64)
113
280
  declare id: UInt64
281
+ @Struct.field(UInt8)
282
+ declare lane_key: UInt8
114
283
  @Struct.field(UInt64)
115
284
  declare count: UInt64
116
285
  }
@@ -136,6 +305,20 @@ export namespace Types {
136
305
  @Struct.field(entity_ref, {array: true, optional: true})
137
306
  declare group_members?: entity_ref[]
138
307
  }
308
+ @Struct.type('cancelbuild')
309
+ export class cancelbuild extends Struct {
310
+ @Struct.field(UInt64)
311
+ declare job_id: UInt64
312
+ }
313
+ @Struct.type('cancelcivic')
314
+ export class cancelcivic extends Struct {
315
+ @Struct.field(UInt64)
316
+ declare building: UInt64
317
+ @Struct.field(UInt8)
318
+ declare lane_key: UInt8
319
+ @Struct.field(UInt64)
320
+ declare from_id: UInt64
321
+ }
139
322
  @Struct.type('cargo_row')
140
323
  export class cargo_row extends Struct {
141
324
  @Struct.field(UInt64)
@@ -150,6 +333,8 @@ export namespace Types {
150
333
  declare stats: UInt64
151
334
  @Struct.field(module_entry, {array: true})
152
335
  declare modules: module_entry[]
336
+ @Struct.field(UInt64, {optional: true})
337
+ declare sequence_id?: UInt64
153
338
  }
154
339
  @Struct.type('cargo_view')
155
340
  export class cargo_view extends Struct {
@@ -163,15 +348,192 @@ export namespace Types {
163
348
  declare quantity: UInt32
164
349
  @Struct.field(UInt64)
165
350
  declare id: UInt64
351
+ @Struct.field(UInt64, {optional: true})
352
+ declare entity_id?: UInt64
166
353
  }
167
- @Struct.type('claimstarter')
168
- export class claimstarter extends Struct {
354
+ @Struct.type('castballot')
355
+ export class castballot extends Struct {
169
356
  @Struct.field(Name)
170
- declare account: Name
357
+ declare player: Name
358
+ @Struct.field(UInt64)
359
+ declare ballot_id: UInt64
360
+ @Struct.field(UInt32, {array: true})
361
+ declare picks: UInt32[]
362
+ }
363
+ @Struct.type('civic_grant')
364
+ export class civic_grant extends Struct {
365
+ @Struct.field(UInt8)
366
+ declare kind: UInt8
367
+ @Struct.field(UInt8)
368
+ declare building: UInt8
369
+ @Struct.field(UInt8)
370
+ declare stat: UInt8
371
+ @Struct.field(UInt16)
372
+ declare value: UInt16
373
+ }
374
+ @Struct.type('charter_node_def')
375
+ export class charter_node_def extends Struct {
376
+ @Struct.field(UInt32)
377
+ declare node_id: UInt32
378
+ @Struct.field(UInt64)
379
+ declare cost: UInt64
380
+ @Struct.field(UInt32, {array: true})
381
+ declare prereqs: UInt32[]
382
+ @Struct.field(civic_grant, {array: true})
383
+ declare grants: civic_grant[]
384
+ @Struct.field(UInt16)
385
+ declare exclusion_group: UInt16
386
+ @Struct.field(UInt8)
387
+ declare repeat_cap: UInt8
388
+ }
389
+ @Struct.type('charter_ready_view')
390
+ export class charter_ready_view extends Struct {
171
391
  @Struct.field(Int64)
172
392
  declare x: Int64
173
393
  @Struct.field(Int64)
174
394
  declare y: Int64
395
+ @Struct.field(UInt32)
396
+ declare mandate: UInt32
397
+ }
398
+ @Struct.type('charter_view')
399
+ export class charter_view extends Struct {
400
+ @Struct.field(UInt32)
401
+ declare node_id: UInt32
402
+ @Struct.field(UInt16)
403
+ declare repeats: UInt16
404
+ }
405
+ @Struct.type('seat_view')
406
+ export class seat_view extends Struct {
407
+ @Struct.field(UInt32)
408
+ declare node_id: UInt32
409
+ @Struct.field(UInt64)
410
+ declare cost: UInt64
411
+ @Struct.field(UInt64)
412
+ declare progress: UInt64
413
+ @Struct.field(UInt64)
414
+ declare gap: UInt64
415
+ }
416
+ @Struct.type('progress_view')
417
+ export class progress_view extends Struct {
418
+ @Struct.field(UInt32)
419
+ declare node_id: UInt32
420
+ @Struct.field(UInt64)
421
+ declare amount: UInt64
422
+ }
423
+ @Struct.type('charter_result')
424
+ export class charter_result extends Struct {
425
+ @Struct.field(UInt64)
426
+ declare location_id: UInt64
427
+ @Struct.field(UInt64)
428
+ declare lifetime: UInt64
429
+ @Struct.field(UInt64)
430
+ declare spent: UInt64
431
+ @Struct.field(UInt64)
432
+ declare unassigned: UInt64
433
+ @Struct.field(UInt32)
434
+ declare mandate: UInt32
435
+ @Struct.field(UInt64)
436
+ declare next_cost: UInt64
437
+ @Struct.field('bool')
438
+ declare prereqs_met: boolean
439
+ @Struct.field('bool')
440
+ declare buildable: boolean
441
+ @Struct.field(UInt32)
442
+ declare epoch: UInt32
443
+ @Struct.field(charter_view, {array: true})
444
+ declare built: charter_view[]
445
+ @Struct.field(UInt64)
446
+ declare ballot_id: UInt64
447
+ @Struct.field('bool')
448
+ declare settling: boolean
449
+ @Struct.field(seat_view, {array: true})
450
+ declare queue: seat_view[]
451
+ @Struct.field(progress_view, {array: true})
452
+ declare progress: progress_view[]
453
+ }
454
+ @Struct.type('charter_tree_result')
455
+ export class charter_tree_result extends Struct {
456
+ @Struct.field(charter_node_def, {array: true})
457
+ declare nodes: charter_node_def[]
458
+ }
459
+ @Struct.type('charterready')
460
+ export class charterready extends Struct {
461
+ @Struct.field(Int64)
462
+ declare x: Int64
463
+ @Struct.field(Int64)
464
+ declare y: Int64
465
+ }
466
+ @Struct.type('charterready_result')
467
+ export class charterready_result extends Struct {
468
+ @Struct.field(charter_ready_view, {array: true})
469
+ declare worlds: charter_ready_view[]
470
+ }
471
+ @Struct.type('citizenship_row')
472
+ export class citizenship_row extends Struct {
473
+ @Struct.field(UInt64)
474
+ declare location_id: UInt64
475
+ @Struct.field(UInt64)
476
+ declare lifetime: UInt64
477
+ @Struct.field(UInt64)
478
+ declare active: UInt64
479
+ @Struct.field(UInt32)
480
+ declare active_epoch: UInt32
481
+ }
482
+ @Struct.type('civicconfig_row')
483
+ export class civicconfig_row extends Struct {
484
+ @Struct.field(Name)
485
+ declare civic_owner: Name
486
+ }
487
+ @Struct.type('civicshuttle')
488
+ export class civicshuttle extends Struct {
489
+ @Struct.field(UInt64)
490
+ declare building: UInt64
491
+ @Struct.field(UInt64)
492
+ declare from_id: UInt64
493
+ @Struct.field(UInt64)
494
+ declare to_id: UInt64
495
+ @Struct.field(cargo_item, {array: true})
496
+ declare items: cargo_item[]
497
+ }
498
+ @Struct.type('claim_row')
499
+ export class claim_row extends Struct {
500
+ @Struct.field(Name)
501
+ declare owner: Name
502
+ }
503
+ @Struct.type('claimbuild')
504
+ export class claimbuild extends Struct {
505
+ @Struct.field(UInt64)
506
+ declare job_id: UInt64
507
+ }
508
+ @Struct.type('claimcraft')
509
+ export class claimcraft extends Struct {
510
+ @Struct.field(UInt64)
511
+ declare job_id: UInt64
512
+ @Struct.field(UInt64)
513
+ declare ship_id: UInt64
514
+ }
515
+ @Struct.type('cluster_slot')
516
+ export class cluster_slot extends Struct {
517
+ @Struct.field(UInt64)
518
+ declare hub: UInt64
519
+ @Struct.field(Int8)
520
+ declare gx: Int8
521
+ @Struct.field(Int8)
522
+ declare gy: Int8
523
+ }
524
+ @Struct.type('claimplot')
525
+ export class claimplot extends Struct {
526
+ @Struct.field(UInt64)
527
+ declare builder_id: UInt64
528
+ @Struct.field(UInt16)
529
+ declare target_item_id: UInt16
530
+ @Struct.field(cluster_slot)
531
+ declare slot: cluster_slot
532
+ }
533
+ @Struct.type('claimstarter')
534
+ export class claimstarter extends Struct {
535
+ @Struct.field(Name)
536
+ declare owner: Name
175
537
  }
176
538
  @Struct.type('cleanrsvp')
177
539
  export class cleanrsvp extends Struct {
@@ -189,8 +551,66 @@ export namespace Types {
189
551
  @Struct.field(UInt64, {optional: true})
190
552
  declare max_rows?: UInt64
191
553
  }
554
+ @Struct.type('closeepoch')
555
+ export class closeepoch extends Struct {
556
+ @Struct.field(UInt64)
557
+ declare epoch: UInt64
558
+ }
559
+ @Struct.type('cluster_cell')
560
+ export class cluster_cell extends Struct {
561
+ @Struct.field(Int8)
562
+ declare gx: Int8
563
+ @Struct.field(Int8)
564
+ declare gy: Int8
565
+ @Struct.field(UInt64)
566
+ declare entity: UInt64
567
+ }
568
+ @Struct.type('cluster_row')
569
+ export class cluster_row extends Struct {
570
+ @Struct.field(UInt64)
571
+ declare root: UInt64
572
+ @Struct.field(cluster_cell, {array: true})
573
+ declare cells: cluster_cell[]
574
+ }
575
+ @Struct.type('cluster_source')
576
+ export class cluster_source extends Struct {
577
+ @Struct.field(UInt64)
578
+ declare source_id: UInt64
579
+ @Struct.field(cargo_item, {array: true})
580
+ declare items: cargo_item[]
581
+ }
582
+ @Struct.type('clustercraft')
583
+ export class clustercraft extends Struct {
584
+ @Struct.field(UInt64)
585
+ declare id: UInt64
586
+ @Struct.field(UInt16)
587
+ declare recipe_id: UInt16
588
+ @Struct.field(UInt32)
589
+ declare quantity: UInt32
590
+ @Struct.field(cluster_source, {array: true})
591
+ declare sources: cluster_source[]
592
+ @Struct.field(UInt64, {optional: true})
593
+ declare target?: UInt64
594
+ @Struct.field(UInt8, {optional: true})
595
+ declare slot?: UInt8
596
+ }
192
597
  @Struct.type('commit')
193
598
  export class commit extends Struct {
599
+ @Struct.field(Name)
600
+ declare oracle_id: Name
601
+ @Struct.field(UInt64)
602
+ declare epoch: UInt64
603
+ @Struct.field(Checksum256)
604
+ declare commit: Checksum256
605
+ }
606
+ @Struct.type('commit_row')
607
+ export class commit_row extends Struct {
608
+ @Struct.field(UInt64)
609
+ declare id: UInt64
610
+ @Struct.field(UInt64)
611
+ declare epoch: UInt64
612
+ @Struct.field(Name)
613
+ declare oracle_id: Name
194
614
  @Struct.field(Checksum256)
195
615
  declare commit: Checksum256
196
616
  }
@@ -228,112 +648,235 @@ export namespace Types {
228
648
  @Struct.field(game_config)
229
649
  declare config: game_config
230
650
  }
231
- @Struct.type('coordinates')
232
- export class coordinates extends Struct {
233
- @Struct.field(Int64)
234
- declare x: Int64
235
- @Struct.field(Int64)
236
- declare y: Int64
237
- @Struct.field(UInt16, {optional: true})
238
- declare z?: UInt16
239
- }
240
- @Struct.type('task')
241
- export class task extends Struct {
651
+ @Struct.type('coupling')
652
+ export class coupling extends Struct {
653
+ @Struct.field(entity_ref)
654
+ declare counterpart: entity_ref
655
+ @Struct.field(UInt64)
656
+ declare hold: UInt64
242
657
  @Struct.field(UInt8)
243
- declare type: UInt8
658
+ declare kind: UInt8
659
+ }
660
+ @Struct.type('craft')
661
+ export class craft extends Struct {
662
+ @Struct.field(UInt64)
663
+ declare id: UInt64
664
+ @Struct.field(UInt16)
665
+ declare recipe_id: UInt16
244
666
  @Struct.field(UInt32)
245
- declare duration: UInt32
246
- @Struct.field(UInt8)
247
- declare cancelable: UInt8
248
- @Struct.field(coordinates, {optional: true})
249
- declare coordinates?: coordinates
667
+ declare quantity: UInt32
250
668
  @Struct.field(cargo_item, {array: true})
251
- declare cargo: cargo_item[]
252
- @Struct.field(entity_ref, {optional: true})
253
- declare entitytarget?: entity_ref
669
+ declare inputs: cargo_item[]
254
670
  @Struct.field(UInt64, {optional: true})
255
- declare entitygroup?: UInt64
256
- @Struct.field(UInt16, {optional: true})
257
- declare energy_cost?: UInt16
671
+ declare target?: UInt64
672
+ @Struct.field(UInt8, {optional: true})
673
+ declare slot?: UInt8
258
674
  }
259
- @Struct.type('schedule')
260
- export class schedule extends Struct {
261
- @Struct.field(TimePoint)
262
- declare started: TimePoint
263
- @Struct.field(task, {array: true})
264
- declare tasks: task[]
675
+ @Struct.type('crafter_lane')
676
+ export class crafter_lane extends Struct {
677
+ @Struct.field(UInt8)
678
+ declare slot_index: UInt8
679
+ @Struct.field(UInt16)
680
+ declare speed: UInt16
681
+ @Struct.field(UInt32)
682
+ declare drain: UInt32
683
+ @Struct.field(UInt16)
684
+ declare output_pct: UInt16
265
685
  }
266
- @Struct.type('container_row')
267
- export class container_row extends Struct {
686
+ @Struct.type('craftjob')
687
+ export class craftjob extends Struct {
268
688
  @Struct.field(UInt64)
269
- declare id: UInt64
270
- @Struct.field(Name)
271
- declare owner: Name
272
- @Struct.field('string')
273
- declare name: string
274
- @Struct.field(coordinates)
275
- declare coordinates: coordinates
276
- @Struct.field(UInt32)
277
- declare hullmass: UInt32
278
- @Struct.field(UInt32)
279
- declare capacity: UInt32
280
- @Struct.field(UInt32)
281
- declare cargomass: UInt32
282
- @Struct.field(schedule, {optional: true})
283
- declare schedule?: schedule
689
+ declare ship_id: UInt64
284
690
  @Struct.field(UInt64)
285
- declare stats: UInt64
691
+ declare workshop_id: UInt64
692
+ @Struct.field(UInt8)
693
+ declare slot: UInt8
286
694
  @Struct.field(UInt16)
287
- declare item_id: UInt16
695
+ declare recipe_id: UInt16
696
+ @Struct.field(UInt32)
697
+ declare quantity: UInt32
698
+ @Struct.field(cargo_item, {array: true})
699
+ declare inputs: cargo_item[]
288
700
  }
289
- @Struct.type('craft')
290
- export class craft extends Struct {
291
- @Struct.field(Name)
292
- declare entity_type: Name
701
+ @Struct.type('craftjob_row')
702
+ export class craftjob_row extends Struct {
293
703
  @Struct.field(UInt64)
294
704
  declare id: UInt64
705
+ @Struct.field(UInt64)
706
+ declare building: UInt64
707
+ @Struct.field(UInt8)
708
+ declare socket: UInt8
709
+ @Struct.field(Name)
710
+ declare owner: Name
711
+ @Struct.field(UInt64)
712
+ declare ship_id: UInt64
713
+ @Struct.field(coordinates)
714
+ declare coords: coordinates
715
+ @Struct.field(TimePoint)
716
+ declare starts_at: TimePoint
717
+ @Struct.field(TimePoint)
718
+ declare completes_at: TimePoint
295
719
  @Struct.field(UInt16)
296
720
  declare recipe_id: UInt16
297
721
  @Struct.field(UInt32)
298
722
  declare quantity: UInt32
723
+ @Struct.field(UInt32)
724
+ declare energy_paid: UInt32
299
725
  @Struct.field(cargo_item, {array: true})
300
- declare inputs: cargo_item[]
726
+ declare cargo: cargo_item[]
727
+ @Struct.field('bool')
728
+ declare deposited: boolean
301
729
  }
302
- @Struct.type('crafter_stats')
303
- export class crafter_stats extends Struct {
304
- @Struct.field(UInt16)
305
- declare speed: UInt16
306
- @Struct.field(UInt16)
307
- declare drain: UInt16
730
+ @Struct.type('craftjobs_result')
731
+ export class craftjobs_result extends Struct {
732
+ @Struct.field(craftjob_row, {array: true})
733
+ declare jobs: craftjob_row[]
308
734
  }
309
- @Struct.type('createentity')
310
- export class createentity extends Struct {
735
+ @Struct.type('dbgcredit')
736
+ export class dbgcredit extends Struct {
311
737
  @Struct.field(Name)
312
738
  declare owner: Name
739
+ @Struct.field(Int64)
740
+ declare x: Int64
741
+ @Struct.field(Int64)
742
+ declare y: Int64
743
+ @Struct.field(UInt64)
744
+ declare amount_atomic: UInt64
745
+ @Struct.field(UInt32, {optional: true})
746
+ declare node?: UInt32
747
+ }
748
+ @Struct.type('dbgmandate')
749
+ export class dbgmandate extends Struct {
750
+ @Struct.field(Int64)
751
+ declare x: Int64
752
+ @Struct.field(Int64)
753
+ declare y: Int64
754
+ @Struct.field(UInt32)
755
+ declare node_id: UInt32
756
+ }
757
+ @Struct.type('dbgoldjobs')
758
+ export class dbgoldjobs extends Struct {
759
+ @Struct.field(craftjob_row, {array: true})
760
+ declare crafts: craftjob_row[]
761
+ @Struct.field(buildjob_row, {array: true})
762
+ declare builds: buildjob_row[]
763
+ }
764
+ @Struct.type('dbgpagerows')
765
+ export class dbgpagerows extends Struct {
766
+ @Struct.field(UInt32)
767
+ declare rows: UInt32
768
+ }
769
+ @Struct.type('dbgpurge')
770
+ export class dbgpurge extends Struct {
313
771
  @Struct.field(Name)
314
- declare entity_type: Name
315
- @Struct.field('string')
316
- declare entity_name: string
772
+ declare table_name: Name
773
+ @Struct.field(Name, {optional: true})
774
+ declare scope?: Name
775
+ }
776
+ @Struct.type('dbgseats')
777
+ export class dbgseats extends Struct {
317
778
  @Struct.field(Int64)
318
779
  declare x: Int64
319
780
  @Struct.field(Int64)
320
781
  declare y: Int64
782
+ @Struct.field(UInt32)
783
+ declare seats: UInt32
784
+ }
785
+ @Struct.type('decomp_bucket')
786
+ export class decomp_bucket extends Struct {
787
+ @Struct.field(UInt8)
788
+ declare category: UInt8
789
+ @Struct.field(UInt8)
790
+ declare tier: UInt8
791
+ @Struct.field(UInt32)
792
+ declare raw_mass: UInt32
793
+ }
794
+ @Struct.type('decomp_result')
795
+ export class decomp_result extends Struct {
796
+ @Struct.field(UInt16)
797
+ declare item_id: UInt16
798
+ @Struct.field(UInt64)
799
+ declare processed_mass: UInt64
800
+ @Struct.field(decomp_bucket, {array: true})
801
+ declare buckets: decomp_bucket[]
802
+ }
803
+ @Struct.type('delentity')
804
+ export class delentity extends Struct {
805
+ @Struct.field(UInt64)
806
+ declare entity_id: UInt64
807
+ }
808
+ @Struct.type('demand_result')
809
+ export class demand_result extends Struct {
810
+ @Struct.field(UInt8)
811
+ declare abundant_mask: UInt8
812
+ @Struct.field(UInt8)
813
+ declare lacking_mask: UInt8
814
+ @Struct.field(UInt8)
815
+ declare acute: UInt8
816
+ @Struct.field(UInt64, {array: true})
817
+ declare need_fp: UInt64[]
818
+ @Struct.field(UInt32)
819
+ declare epoch: UInt32
321
820
  }
322
821
  @Struct.type('demolish')
323
822
  export class demolish extends Struct {
324
- @Struct.field(Name)
325
- declare entity_type: Name
326
823
  @Struct.field(UInt64)
327
824
  declare entity_id: UInt64
328
825
  }
329
826
  @Struct.type('deploy')
330
827
  export class deploy extends Struct {
331
- @Struct.field(Name)
332
- declare entity_type: Name
333
828
  @Struct.field(UInt64)
334
829
  declare id: UInt64
335
830
  @Struct.field(cargo_ref)
336
831
  declare ref: cargo_ref
832
+ @Struct.field(cluster_slot, {optional: true})
833
+ declare slot?: cluster_slot
834
+ }
835
+ @Struct.type('storage_row')
836
+ export class storage_row extends Struct {
837
+ @Struct.field(UInt64)
838
+ declare id: UInt64
839
+ @Struct.field(Name)
840
+ declare owner: Name
841
+ @Struct.field(UInt64)
842
+ declare item_id: UInt64
843
+ @Struct.field(UInt64)
844
+ declare quantity: UInt64
845
+ @Struct.field(UInt64)
846
+ declare stats: UInt64
847
+ @Struct.field(module_entry, {array: true})
848
+ declare modules: module_entry[]
849
+ @Struct.field(UInt64, {optional: true})
850
+ declare sequence_id?: UInt64
851
+ }
852
+ @Struct.type('depot_view')
853
+ export class depot_view extends Struct {
854
+ @Struct.field(UInt64)
855
+ declare player_cap: UInt64
856
+ @Struct.field(UInt64)
857
+ declare stored_mass: UInt64
858
+ @Struct.field(UInt64)
859
+ declare reserved_mass: UInt64
860
+ @Struct.field(storage_row, {array: true})
861
+ declare rows: storage_row[]
862
+ }
863
+ @Struct.type('depotstore')
864
+ export class depotstore extends Struct {
865
+ @Struct.field(UInt64)
866
+ declare ship_id: UInt64
867
+ @Struct.field(UInt64)
868
+ declare depot_id: UInt64
869
+ @Struct.field(cargo_item, {array: true})
870
+ declare items: cargo_item[]
871
+ }
872
+ @Struct.type('depottake')
873
+ export class depottake extends Struct {
874
+ @Struct.field(UInt64)
875
+ declare ship_id: UInt64
876
+ @Struct.field(UInt64)
877
+ declare depot_id: UInt64
878
+ @Struct.field(cargo_item, {array: true})
879
+ declare items: cargo_item[]
337
880
  }
338
881
  @Struct.type('descentity')
339
882
  export class descentity extends Struct {
@@ -351,60 +894,143 @@ export namespace Types {
351
894
  @Struct.field('bool')
352
895
  declare enabled: boolean
353
896
  }
354
- @Struct.type('energy_stats')
355
- export class energy_stats extends Struct {
897
+ @Struct.type('energy_stats')
898
+ export class energy_stats extends Struct {
899
+ @Struct.field(UInt32)
900
+ declare capacity: UInt32
901
+ @Struct.field(UInt32)
902
+ declare recharge: UInt32
903
+ }
904
+ @Struct.type('entity_current_state')
905
+ export class entity_current_state extends Struct {
906
+ @Struct.field(coordinates)
907
+ declare coordinates: coordinates
908
+ @Struct.field(UInt32)
909
+ declare energy: UInt32
910
+ }
911
+ @Struct.type('movement_stats')
912
+ export class movement_stats extends Struct {
913
+ @Struct.field(UInt32)
914
+ declare thrust: UInt32
915
+ @Struct.field(UInt32)
916
+ declare drain: UInt32
917
+ }
918
+ @Struct.type('warp_stats')
919
+ export class warp_stats extends Struct {
920
+ @Struct.field(UInt32)
921
+ declare range: UInt32
922
+ }
923
+ @Struct.type('hauler_tier_cap')
924
+ export class hauler_tier_cap extends Struct {
925
+ @Struct.field(UInt8)
926
+ declare tier: UInt8
927
+ @Struct.field(UInt8)
928
+ declare capacity: UInt8
929
+ }
930
+ @Struct.type('hauler_stats')
931
+ export class hauler_stats extends Struct {
932
+ @Struct.field(UInt8)
933
+ declare capacity: UInt8
934
+ @Struct.field(UInt16)
935
+ declare efficiency: UInt16
936
+ @Struct.field(UInt32)
937
+ declare drain: UInt32
938
+ @Struct.field(hauler_tier_cap, {array: true})
939
+ declare capacity_by_tier: hauler_tier_cap[]
940
+ }
941
+ @Struct.type('gatherer_lane')
942
+ export class gatherer_lane extends Struct {
943
+ @Struct.field(UInt8)
944
+ declare slot_index: UInt8
356
945
  @Struct.field(UInt16)
357
- declare capacity: UInt16
946
+ declare yield: UInt16
947
+ @Struct.field(UInt32)
948
+ declare drain: UInt32
358
949
  @Struct.field(UInt16)
359
- declare recharge: UInt16
360
- }
361
- @Struct.type('entity_current_state')
362
- export class entity_current_state extends Struct {
363
- @Struct.field(coordinates)
364
- declare coordinates: coordinates
950
+ declare depth: UInt16
365
951
  @Struct.field(UInt16)
366
- declare energy: UInt16
952
+ declare output_pct: UInt16
367
953
  }
368
- @Struct.type('loader_stats')
369
- export class loader_stats extends Struct {
954
+ @Struct.type('loader_lane')
955
+ export class loader_lane extends Struct {
956
+ @Struct.field(UInt8)
957
+ declare slot_index: UInt8
370
958
  @Struct.field(UInt32)
371
959
  declare mass: UInt32
372
960
  @Struct.field(UInt16)
373
961
  declare thrust: UInt16
374
- @Struct.field(UInt8)
375
- declare quantity: UInt8
376
- }
377
- @Struct.type('movement_stats')
378
- export class movement_stats extends Struct {
379
- @Struct.field(UInt32)
380
- declare thrust: UInt32
381
962
  @Struct.field(UInt16)
382
- declare drain: UInt16
963
+ declare output_pct: UInt16
383
964
  }
384
- @Struct.type('gatherer_stats')
385
- export class gatherer_stats extends Struct {
965
+ @Struct.type('launcher_stats')
966
+ export class launcher_stats extends Struct {
386
967
  @Struct.field(UInt16)
387
- declare yield: UInt16
388
- @Struct.field(UInt16)
389
- declare drain: UInt16
968
+ declare charge_rate: UInt16
390
969
  @Struct.field(UInt16)
391
- declare depth: UInt16
970
+ declare velocity: UInt16
392
971
  @Struct.field(UInt16)
393
- declare speed: UInt16
972
+ declare drain: UInt16
394
973
  }
395
- @Struct.type('hauler_stats')
396
- export class hauler_stats extends Struct {
974
+ @Struct.type('refit_op')
975
+ export class refit_op extends Struct {
397
976
  @Struct.field(UInt8)
398
- declare capacity: UInt8
399
- @Struct.field(UInt16)
400
- declare efficiency: UInt16
401
- @Struct.field(UInt16)
402
- declare drain: UInt16
977
+ declare op: UInt8
978
+ @Struct.field(UInt8)
979
+ declare slot: UInt8
403
980
  }
404
- @Struct.type('warp_stats')
405
- export class warp_stats extends Struct {
981
+ @Struct.type('task')
982
+ export class task extends Struct {
983
+ @Struct.field(UInt8)
984
+ declare type: UInt8
406
985
  @Struct.field(UInt32)
407
- declare range: UInt32
986
+ declare duration: UInt32
987
+ @Struct.field(UInt8)
988
+ declare cancelable: UInt8
989
+ @Struct.field(coordinates, {optional: true})
990
+ declare coordinates?: coordinates
991
+ @Struct.field(cargo_item, {array: true})
992
+ declare cargo: cargo_item[]
993
+ @Struct.field(coupling, {array: true})
994
+ declare couplings: coupling[]
995
+ @Struct.field(entity_ref, {optional: true})
996
+ declare subject?: entity_ref
997
+ @Struct.field(UInt64, {optional: true})
998
+ declare entitygroup?: UInt64
999
+ @Struct.field(UInt32, {optional: true})
1000
+ declare energy_cost?: UInt32
1001
+ @Struct.field(UInt16, {optional: true})
1002
+ declare target_item_id?: UInt16
1003
+ @Struct.field(refit_op, {optional: true})
1004
+ declare refit?: refit_op
1005
+ @Struct.field(UInt32, {optional: true})
1006
+ declare charter_node?: UInt32
1007
+ }
1008
+ @Struct.type('schedule')
1009
+ export class schedule extends Struct {
1010
+ @Struct.field(TimePoint)
1011
+ declare started: TimePoint
1012
+ @Struct.field(task, {array: true})
1013
+ declare tasks: task[]
1014
+ }
1015
+ @Struct.type('lane')
1016
+ export class lane extends Struct {
1017
+ @Struct.field(UInt8)
1018
+ declare lane_key: UInt8
1019
+ @Struct.field(schedule)
1020
+ declare schedule: schedule
1021
+ }
1022
+ @Struct.type('hold')
1023
+ export class hold extends Struct {
1024
+ @Struct.field(UInt64)
1025
+ declare id: UInt64
1026
+ @Struct.field(UInt8)
1027
+ declare kind: UInt8
1028
+ @Struct.field(entity_ref)
1029
+ declare counterpart: entity_ref
1030
+ @Struct.field(TimePoint)
1031
+ declare until: TimePoint
1032
+ @Struct.field(UInt32)
1033
+ declare incoming_mass: UInt32
408
1034
  }
409
1035
  @Struct.type('entity_info')
410
1036
  export class entity_info extends Struct {
@@ -418,51 +1044,53 @@ export namespace Types {
418
1044
  declare entity_name: string
419
1045
  @Struct.field(coordinates)
420
1046
  declare coordinates: coordinates
1047
+ @Struct.field(UInt16)
1048
+ declare item_id: UInt16
421
1049
  @Struct.field(UInt32)
422
1050
  declare cargomass: UInt32
423
1051
  @Struct.field(cargo_view, {array: true})
424
1052
  declare cargo: cargo_view[]
425
- @Struct.field(loader_stats, {optional: true})
426
- declare loaders?: loader_stats
427
1053
  @Struct.field(module_entry, {array: true})
428
1054
  declare modules: module_entry[]
429
- @Struct.field(UInt16, {optional: true})
430
- declare energy?: UInt16
1055
+ @Struct.field(UInt32, {optional: true})
1056
+ declare energy?: UInt32
431
1057
  @Struct.field(UInt32, {optional: true})
432
1058
  declare hullmass?: UInt32
1059
+ @Struct.field(UInt32, {optional: true})
1060
+ declare capacity?: UInt32
433
1061
  @Struct.field(movement_stats, {optional: true})
434
1062
  declare engines?: movement_stats
1063
+ @Struct.field(warp_stats, {optional: true})
1064
+ declare warp?: warp_stats
435
1065
  @Struct.field(energy_stats, {optional: true})
436
1066
  declare generator?: energy_stats
437
- @Struct.field(UInt32, {optional: true})
438
- declare capacity?: UInt32
439
- @Struct.field(gatherer_stats, {optional: true})
440
- declare gatherer?: gatherer_stats
441
1067
  @Struct.field(hauler_stats, {optional: true})
442
1068
  declare hauler?: hauler_stats
443
- @Struct.field(warp_stats, {optional: true})
444
- declare warp?: warp_stats
445
- @Struct.field(crafter_stats, {optional: true})
446
- declare crafter?: crafter_stats
447
- @Struct.field('bool')
448
- declare is_idle: boolean
449
- @Struct.field(task, {optional: true})
450
- declare current_task?: task
451
- @Struct.field(UInt32)
452
- declare current_task_elapsed: UInt32
453
- @Struct.field(UInt32)
454
- declare current_task_remaining: UInt32
455
- @Struct.field(task, {array: true})
456
- declare pending_tasks: task[]
457
- @Struct.field(TimePoint, {optional: true})
458
- declare idle_at?: TimePoint
459
- @Struct.field(schedule, {optional: true})
460
- declare schedule?: schedule
1069
+ @Struct.field(gatherer_lane, {array: true})
1070
+ declare gatherer_lanes: gatherer_lane[]
1071
+ @Struct.field(crafter_lane, {array: true})
1072
+ declare crafter_lanes: crafter_lane[]
1073
+ @Struct.field(builder_lane, {array: true})
1074
+ declare builder_lanes: builder_lane[]
1075
+ @Struct.field(loader_lane, {array: true})
1076
+ declare loader_lanes: loader_lane[]
1077
+ @Struct.field(launcher_stats, {optional: true})
1078
+ declare launcher?: launcher_stats
1079
+ @Struct.field(lane, {array: true})
1080
+ declare lanes: lane[]
1081
+ @Struct.field(hold, {array: true})
1082
+ declare holds: hold[]
1083
+ @Struct.field(TimePoint)
1084
+ declare projected_at: TimePoint
461
1085
  }
462
1086
  @Struct.type('slot_def')
463
1087
  export class slot_def extends Struct {
464
1088
  @Struct.field(UInt8)
465
1089
  declare type: UInt8
1090
+ @Struct.field(UInt16)
1091
+ declare output_pct: UInt16
1092
+ @Struct.field(UInt8)
1093
+ declare max_tier: UInt8
466
1094
  }
467
1095
  @Struct.type('entity_layout')
468
1096
  export class entity_layout extends Struct {
@@ -470,12 +1098,46 @@ export namespace Types {
470
1098
  declare entity_item_id: UInt16
471
1099
  @Struct.field(slot_def, {array: true})
472
1100
  declare slots: slot_def[]
1101
+ @Struct.field(UInt32)
1102
+ declare base_hullmass: UInt32
473
1103
  }
474
1104
  @Struct.type('entity_layouts_result')
475
1105
  export class entity_layouts_result extends Struct {
476
1106
  @Struct.field(entity_layout, {array: true})
477
1107
  declare entities: entity_layout[]
478
1108
  }
1109
+ @Struct.type('entity_row')
1110
+ export class entity_row extends Struct {
1111
+ @Struct.field(UInt64)
1112
+ declare id: UInt64
1113
+ @Struct.field(Name)
1114
+ declare owner: Name
1115
+ @Struct.field(Name)
1116
+ declare kind: Name
1117
+ @Struct.field(UInt16)
1118
+ declare item_id: UInt16
1119
+ @Struct.field('string')
1120
+ declare name: string
1121
+ @Struct.field(UInt64)
1122
+ declare stats: UInt64
1123
+ @Struct.field(coordinates)
1124
+ declare coordinates: coordinates
1125
+ @Struct.field(UInt32, {optional: true})
1126
+ declare energy?: UInt32
1127
+ @Struct.field(UInt32)
1128
+ declare cargomass: UInt32
1129
+ @Struct.field(module_entry, {array: true})
1130
+ declare modules: module_entry[]
1131
+ @Struct.field(lane, {array: true})
1132
+ declare lanes: lane[]
1133
+ @Struct.field(hold, {array: true})
1134
+ declare holds: hold[]
1135
+ }
1136
+ @Struct.type('entity_seq_row')
1137
+ export class entity_seq_row extends Struct {
1138
+ @Struct.field(UInt64)
1139
+ declare next_id: UInt64
1140
+ }
479
1141
  @Struct.type('entity_summary')
480
1142
  export class entity_summary extends Struct {
481
1143
  @Struct.field(Name)
@@ -501,8 +1163,8 @@ export namespace Types {
501
1163
  declare entity_id: UInt64
502
1164
  @Struct.field(Name)
503
1165
  declare entity_type: Name
504
- @Struct.field(UInt8)
505
- declare task_count: UInt8
1166
+ @Struct.field(UInt32)
1167
+ declare task_count: UInt32
506
1168
  @Struct.field(TimePoint)
507
1169
  declare schedule_started: TimePoint
508
1170
  }
@@ -525,19 +1187,161 @@ export namespace Types {
525
1187
  @Struct.field(enum_member, {array: true})
526
1188
  declare members: enum_member[]
527
1189
  }
1190
+ @Struct.type('epoch_row')
1191
+ export class epoch_row extends Struct {
1192
+ @Struct.field(UInt64)
1193
+ declare epoch: UInt64
1194
+ @Struct.field(Name, {array: true})
1195
+ declare oracle_ids: Name[]
1196
+ @Struct.field(UInt8)
1197
+ declare threshold: UInt8
1198
+ @Struct.field(Checksum256)
1199
+ declare seed: Checksum256
1200
+ }
1201
+ @Struct.type('fixcargomass')
1202
+ export class fixcargomass extends Struct {
1203
+ @Struct.field(UInt64)
1204
+ declare entity_id: UInt64
1205
+ }
1206
+ @Struct.type('fixitemids')
1207
+ export class fixitemids extends Struct {}
1208
+ @Struct.type('grid_cell')
1209
+ export class grid_cell extends Struct {
1210
+ @Struct.field(Int8)
1211
+ declare gx: Int8
1212
+ @Struct.field(Int8)
1213
+ declare gy: Int8
1214
+ }
1215
+ @Struct.type('footprint_result')
1216
+ export class footprint_result extends Struct {
1217
+ @Struct.field(grid_cell, {array: true})
1218
+ declare cells: grid_cell[]
1219
+ }
1220
+ @Struct.type('forcereveal')
1221
+ export class forcereveal extends Struct {
1222
+ @Struct.field(UInt64)
1223
+ declare epoch: UInt64
1224
+ }
1225
+ @Struct.type('found')
1226
+ export class found extends Struct {
1227
+ @Struct.field(Name)
1228
+ declare player: Name
1229
+ @Struct.field(UInt64)
1230
+ declare entity_id: UInt64
1231
+ @Struct.field(Int64)
1232
+ declare x: Int64
1233
+ @Struct.field(Int64)
1234
+ declare y: Int64
1235
+ }
528
1236
  @Struct.type('gather')
529
1237
  export class gather extends Struct {
530
- @Struct.field(entity_ref)
531
- declare source: entity_ref
532
- @Struct.field(entity_ref)
533
- declare destination: entity_ref
1238
+ @Struct.field(UInt64)
1239
+ declare source_id: UInt64
1240
+ @Struct.field(UInt64)
1241
+ declare destination_id: UInt64
1242
+ @Struct.field(UInt16)
1243
+ declare stratum: UInt16
1244
+ @Struct.field(UInt32)
1245
+ declare quantity: UInt32
1246
+ @Struct.field(UInt8, {optional: true})
1247
+ declare slot?: UInt8
1248
+ }
1249
+ @Struct.type('gatherplan')
1250
+ export class gatherplan extends Struct {
1251
+ @Struct.field(UInt64)
1252
+ declare source_id: UInt64
1253
+ @Struct.field(UInt64)
1254
+ declare destination_id: UInt64
534
1255
  @Struct.field(UInt16)
535
1256
  declare stratum: UInt16
536
1257
  @Struct.field(UInt32)
537
1258
  declare quantity: UInt32
1259
+ @Struct.field('bool')
1260
+ declare recharge: boolean
1261
+ @Struct.field(Bytes)
1262
+ declare slots: Bytes
1263
+ }
1264
+ @Struct.type('genesisfleet')
1265
+ export class genesisfleet extends Struct {
1266
+ @Struct.field(entity_row, {array: true})
1267
+ declare entities: entity_row[]
1268
+ }
1269
+ @Struct.type('genesisworld')
1270
+ export class genesisworld extends Struct {
1271
+ @Struct.field(Name)
1272
+ declare founder: Name
1273
+ @Struct.field(Int64)
1274
+ declare x: Int64
1275
+ @Struct.field(Int64)
1276
+ declare y: Int64
1277
+ @Struct.field(UInt32, {array: true})
1278
+ declare node_ids: UInt32[]
1279
+ }
1280
+ @Struct.type('getbuildjobs')
1281
+ export class getbuildjobs extends Struct {
1282
+ @Struct.field(UInt64)
1283
+ declare building_id: UInt64
1284
+ }
1285
+ @Struct.type('getcharter')
1286
+ export class getcharter extends Struct {
1287
+ @Struct.field(Int64)
1288
+ declare x: Int64
1289
+ @Struct.field(Int64)
1290
+ declare y: Int64
1291
+ }
1292
+ @Struct.type('getcharttree')
1293
+ export class getcharttree extends Struct {}
1294
+ @Struct.type('getchrtready')
1295
+ export class getchrtready extends Struct {}
1296
+ @Struct.type('getcluster')
1297
+ export class getcluster extends Struct {
1298
+ @Struct.field(UInt64)
1299
+ declare hub_id: UInt64
538
1300
  }
539
1301
  @Struct.type('getconfig')
540
1302
  export class getconfig extends Struct {}
1303
+ @Struct.type('getcraftjobs')
1304
+ export class getcraftjobs extends Struct {
1305
+ @Struct.field(UInt64)
1306
+ declare building_id: UInt64
1307
+ }
1308
+ @Struct.type('getdecomp')
1309
+ export class getdecomp extends Struct {
1310
+ @Struct.field(UInt16)
1311
+ declare item_id: UInt16
1312
+ }
1313
+ @Struct.type('getdemand')
1314
+ export class getdemand extends Struct {
1315
+ @Struct.field(Int64)
1316
+ declare x: Int64
1317
+ @Struct.field(Int64)
1318
+ declare y: Int64
1319
+ }
1320
+ @Struct.type('getdeposit')
1321
+ export class getdeposit extends Struct {
1322
+ @Struct.field(Name)
1323
+ declare owner: Name
1324
+ @Struct.field(UInt64)
1325
+ declare asset_id: UInt64
1326
+ }
1327
+ @Struct.type('getdepot')
1328
+ export class getdepot extends Struct {
1329
+ @Struct.field(UInt64)
1330
+ declare depot_id: UInt64
1331
+ @Struct.field(Name)
1332
+ declare owner: Name
1333
+ }
1334
+ @Struct.type('getdistance')
1335
+ export class getdistance extends Struct {
1336
+ @Struct.field(Int64)
1337
+ declare ax: Int64
1338
+ @Struct.field(Int64)
1339
+ declare ay: Int64
1340
+ @Struct.field(Int64)
1341
+ declare bx: Int64
1342
+ @Struct.field(Int64)
1343
+ declare by: Int64
1344
+ }
541
1345
  @Struct.type('geteligible')
542
1346
  export class geteligible extends Struct {
543
1347
  @Struct.field(coordinates)
@@ -545,6 +1349,8 @@ export namespace Types {
545
1349
  @Struct.field(UInt16)
546
1350
  declare stratum: UInt16
547
1351
  }
1352
+ @Struct.type('getentcls')
1353
+ export class getentcls extends Struct {}
548
1354
  @Struct.type('getentities')
549
1355
  export class getentities extends Struct {
550
1356
  @Struct.field(Name)
@@ -554,19 +1360,54 @@ export namespace Types {
554
1360
  }
555
1361
  @Struct.type('getentity')
556
1362
  export class getentity extends Struct {
557
- @Struct.field(Name)
558
- declare entity_type: Name
559
1363
  @Struct.field(UInt64)
560
1364
  declare entity_id: UInt64
561
1365
  }
1366
+ @Struct.type('getfootprint')
1367
+ export class getfootprint extends Struct {
1368
+ @Struct.field(UInt16)
1369
+ declare item_id: UInt16
1370
+ }
1371
+ @Struct.type('getinfdecay')
1372
+ export class getinfdecay extends Struct {
1373
+ @Struct.field(UInt64)
1374
+ declare active: UInt64
1375
+ @Struct.field(UInt32)
1376
+ declare epochs: UInt32
1377
+ }
1378
+ @Struct.type('getinfluence')
1379
+ export class getinfluence extends Struct {
1380
+ @Struct.field(Name)
1381
+ declare owner: Name
1382
+ @Struct.field(Int64)
1383
+ declare x: Int64
1384
+ @Struct.field(Int64)
1385
+ declare y: Int64
1386
+ }
1387
+ @Struct.type('getinfvalue')
1388
+ export class getinfvalue extends Struct {
1389
+ @Struct.field(cargo_item, {array: true})
1390
+ declare items: cargo_item[]
1391
+ @Struct.field(Int64)
1392
+ declare x: Int64
1393
+ @Struct.field(Int64)
1394
+ declare y: Int64
1395
+ }
562
1396
  @Struct.type('getitemdata')
563
1397
  export class getitemdata extends Struct {}
564
1398
  @Struct.type('getitemids')
565
1399
  export class getitemids extends Struct {}
566
1400
  @Struct.type('getitems')
567
1401
  export class getitems extends Struct {}
1402
+ @Struct.type('getitemtype')
1403
+ export class getitemtype extends Struct {
1404
+ @Struct.field(UInt16)
1405
+ declare item_id: UInt16
1406
+ }
568
1407
  @Struct.type('getitemtypes')
569
1408
  export class getitemtypes extends Struct {}
1409
+ @Struct.type('getkindmeta')
1410
+ export class getkindmeta extends Struct {}
570
1411
  @Struct.type('getlocation')
571
1412
  export class getlocation extends Struct {
572
1413
  @Struct.field(Int64)
@@ -581,19 +1422,23 @@ export namespace Types {
581
1422
  @Struct.field(Int64)
582
1423
  declare y: Int64
583
1424
  }
1425
+ @Struct.type('getmintcfg')
1426
+ export class getmintcfg extends Struct {}
1427
+ @Struct.type('getmintready')
1428
+ export class getmintready extends Struct {}
584
1429
  @Struct.type('getmodtypes')
585
1430
  export class getmodtypes extends Struct {}
586
1431
  @Struct.type('getmodules')
587
1432
  export class getmodules extends Struct {}
588
1433
  @Struct.type('getnearby')
589
1434
  export class getnearby extends Struct {
590
- @Struct.field(Name)
591
- declare entity_type: Name
592
1435
  @Struct.field(UInt64)
593
1436
  declare entity_id: UInt64
594
1437
  @Struct.field('bool')
595
1438
  declare recharge: boolean
596
1439
  }
1440
+ @Struct.type('getnftbase')
1441
+ export class getnftbase extends Struct {}
597
1442
  @Struct.type('getnftinfo')
598
1443
  export class getnftinfo extends Struct {}
599
1444
  @Struct.type('getplayer')
@@ -601,6 +1446,22 @@ export namespace Types {
601
1446
  @Struct.field(Name)
602
1447
  declare account: Name
603
1448
  }
1449
+ @Struct.type('getpool')
1450
+ export class getpool extends Struct {
1451
+ @Struct.field(UInt8)
1452
+ declare category: UInt8
1453
+ @Struct.field(UInt8)
1454
+ declare tier: UInt8
1455
+ }
1456
+ @Struct.type('getpools')
1457
+ export class getpools extends Struct {}
1458
+ @Struct.type('getprojstate')
1459
+ export class getprojstate extends Struct {
1460
+ @Struct.field(UInt64)
1461
+ declare entity_id: UInt64
1462
+ @Struct.field(UInt8, {optional: true})
1463
+ declare task_count?: UInt8
1464
+ }
604
1465
  @Struct.type('getrecipe')
605
1466
  export class getrecipe extends Struct {
606
1467
  @Struct.field(UInt16)
@@ -629,18 +1490,49 @@ export namespace Types {
629
1490
  @Struct.type('getstratum')
630
1491
  export class getstratum extends Struct {
631
1492
  @Struct.field(Int64)
632
- declare x: Int64
1493
+ declare x: Int64
1494
+ @Struct.field(Int64)
1495
+ declare y: Int64
1496
+ @Struct.field(UInt16)
1497
+ declare stratum: UInt16
1498
+ }
1499
+ @Struct.type('getsummaries')
1500
+ export class getsummaries extends Struct {
1501
+ @Struct.field(Name)
1502
+ declare owner: Name
1503
+ @Struct.field(Name, {optional: true})
1504
+ declare entity_type?: Name
1505
+ }
1506
+ @Struct.type('getvoteready')
1507
+ export class getvoteready extends Struct {}
1508
+ @Struct.type('getvotes')
1509
+ export class getvotes extends Struct {
1510
+ @Struct.field(Int64)
1511
+ declare x: Int64
1512
+ @Struct.field(Int64)
1513
+ declare y: Int64
1514
+ @Struct.field(Name)
1515
+ declare player: Name
1516
+ }
1517
+ @Struct.type('getwormhole')
1518
+ export class getwormhole extends Struct {
1519
+ @Struct.field(Int64)
1520
+ declare x: Int64
1521
+ @Struct.field(Int64)
1522
+ declare y: Int64
1523
+ }
1524
+ @Struct.type('grouptransit')
1525
+ export class grouptransit extends Struct {
1526
+ @Struct.field(entity_ref, {array: true})
1527
+ declare entities: entity_ref[]
1528
+ @Struct.field(Int64)
1529
+ declare ax: Int64
1530
+ @Struct.field(Int64)
1531
+ declare ay: Int64
1532
+ @Struct.field(Int64)
1533
+ declare bx: Int64
633
1534
  @Struct.field(Int64)
634
- declare y: Int64
635
- @Struct.field(UInt16)
636
- declare stratum: UInt16
637
- }
638
- @Struct.type('getsummaries')
639
- export class getsummaries extends Struct {
640
- @Struct.field(Name)
641
- declare owner: Name
642
- @Struct.field(Name, {optional: true})
643
- declare entity_type?: Name
1535
+ declare by: Int64
644
1536
  }
645
1537
  @Struct.type('grouptravel')
646
1538
  export class grouptravel extends Struct {
@@ -663,11 +1555,174 @@ export namespace Types {
663
1555
  @Struct.field('string')
664
1556
  declare value: string
665
1557
  }
666
- @Struct.type('init')
667
- export class init extends Struct {
1558
+ @Struct.type('importcargo')
1559
+ export class importcargo extends Struct {
1560
+ @Struct.field(cargo_row)
1561
+ declare row: cargo_row
1562
+ }
1563
+ @Struct.type('importcell')
1564
+ export class importcell extends Struct {
1565
+ @Struct.field(UInt64)
1566
+ declare root: UInt64
1567
+ @Struct.field(Int8)
1568
+ declare gx: Int8
1569
+ @Struct.field(Int8)
1570
+ declare gy: Int8
1571
+ @Struct.field(UInt64)
1572
+ declare entity_id: UInt64
1573
+ }
1574
+ @Struct.type('importentity')
1575
+ export class importentity extends Struct {
1576
+ @Struct.field(entity_row)
1577
+ declare row: entity_row
1578
+ }
1579
+ @Struct.type('importepoch')
1580
+ export class importepoch extends Struct {
1581
+ @Struct.field(epoch_row)
1582
+ declare row: epoch_row
1583
+ }
1584
+ @Struct.type('importgroup')
1585
+ export class importgroup extends Struct {
1586
+ @Struct.field(entitygroup_row)
1587
+ declare row: entitygroup_row
1588
+ }
1589
+ @Struct.type('nftconfig_row')
1590
+ export class nftconfig_row extends Struct {
1591
+ @Struct.field(UInt16)
1592
+ declare item_id: UInt16
1593
+ @Struct.field(Int32)
1594
+ declare template_id: Int32
1595
+ @Struct.field(Name)
1596
+ declare schema_name: Name
1597
+ }
1598
+ @Struct.type('importnftcfg')
1599
+ export class importnftcfg extends Struct {
1600
+ @Struct.field(nftconfig_row)
1601
+ declare row: nftconfig_row
1602
+ }
1603
+ @Struct.type('importplayer')
1604
+ export class importplayer extends Struct {
1605
+ @Struct.field(Name)
1606
+ declare owner: Name
1607
+ }
1608
+ @Struct.type('reserve_row')
1609
+ export class reserve_row extends Struct {
1610
+ @Struct.field(UInt64)
1611
+ declare id: UInt64
1612
+ @Struct.field(UInt64)
1613
+ declare coord_id: UInt64
1614
+ @Struct.field(UInt16)
1615
+ declare stratum: UInt16
1616
+ @Struct.field(UInt32)
1617
+ declare remaining: UInt32
1618
+ @Struct.field(BlockTimestamp)
1619
+ declare last_block: BlockTimestamp
1620
+ }
1621
+ @Struct.type('importreserve')
1622
+ export class importreserve extends Struct {
1623
+ @Struct.field(UInt32)
1624
+ declare epoch_scope: UInt32
1625
+ @Struct.field(reserve_row)
1626
+ declare row: reserve_row
1627
+ }
1628
+ @Struct.type('state_row')
1629
+ export class state_row extends Struct {
1630
+ @Struct.field('bool')
1631
+ declare enabled: boolean
1632
+ @Struct.field(UInt32)
1633
+ declare epoch: UInt32
668
1634
  @Struct.field(Checksum256)
669
1635
  declare seed: Checksum256
670
1636
  }
1637
+ @Struct.type('importstate')
1638
+ export class importstate extends Struct {
1639
+ @Struct.field(state_row)
1640
+ declare row: state_row
1641
+ }
1642
+ @Struct.type('infburn_row')
1643
+ export class infburn_row extends Struct {
1644
+ @Struct.field(UInt16)
1645
+ declare bps: UInt16
1646
+ }
1647
+ @Struct.type('infdemand_row')
1648
+ export class infdemand_row extends Struct {
1649
+ @Struct.field(UInt64)
1650
+ declare peak: UInt64
1651
+ @Struct.field(UInt64)
1652
+ declare base: UInt64
1653
+ @Struct.field(UInt64)
1654
+ declare floor: UInt64
1655
+ }
1656
+ @Struct.type('influence_totals')
1657
+ export class influence_totals extends Struct {
1658
+ @Struct.field(UInt64)
1659
+ declare standing_lifetime: UInt64
1660
+ @Struct.field(UInt64)
1661
+ declare standing_active: UInt64
1662
+ @Struct.field(UInt64)
1663
+ declare citizenship_lifetime: UInt64
1664
+ @Struct.field(UInt64)
1665
+ declare citizenship_active: UInt64
1666
+ @Struct.field(UInt64)
1667
+ declare location_lifetime: UInt64
1668
+ @Struct.field(UInt64)
1669
+ declare location_active: UInt64
1670
+ @Struct.field(UInt64)
1671
+ declare spent: UInt64
1672
+ @Struct.field(UInt32)
1673
+ declare mandate: UInt32
1674
+ @Struct.field(Name)
1675
+ declare founder: Name
1676
+ @Struct.field(UInt32)
1677
+ declare founded: UInt32
1678
+ @Struct.field(UInt32)
1679
+ declare epoch: UInt32
1680
+ }
1681
+ @Struct.type('infmint_row')
1682
+ export class infmint_row extends Struct {
1683
+ @Struct.field(UInt8)
1684
+ declare category: UInt8
1685
+ @Struct.field(UInt8)
1686
+ declare tier: UInt8
1687
+ @Struct.field(UInt64)
1688
+ declare threshold: UInt64
1689
+ }
1690
+ @Struct.type('infpool_row')
1691
+ export class infpool_row extends Struct {
1692
+ @Struct.field(UInt8)
1693
+ declare category: UInt8
1694
+ @Struct.field(UInt8)
1695
+ declare tier: UInt8
1696
+ @Struct.field(UInt8)
1697
+ declare grade: UInt8
1698
+ @Struct.field(UInt64)
1699
+ declare quantity: UInt64
1700
+ @Struct.field(UInt64)
1701
+ declare stats: UInt64
1702
+ @Struct.field(UInt64)
1703
+ declare bar: UInt64
1704
+ }
1705
+ @Struct.type('infquality_row')
1706
+ export class infquality_row extends Struct {
1707
+ @Struct.field(UInt32)
1708
+ declare d1: UInt32
1709
+ }
1710
+ @Struct.type('infvalue_result')
1711
+ export class infvalue_result extends Struct {
1712
+ @Struct.field(UInt64)
1713
+ declare total_atomic: UInt64
1714
+ @Struct.field(UInt64, {array: true})
1715
+ declare per_item_atomic: UInt64[]
1716
+ }
1717
+ @Struct.type('infweight_row')
1718
+ export class infweight_row extends Struct {
1719
+ @Struct.field(UInt8)
1720
+ declare category: UInt8
1721
+ @Struct.field(UInt8)
1722
+ declare tier: UInt8
1723
+ @Struct.field(UInt64)
1724
+ declare weight_fp: UInt64
1725
+ }
671
1726
  @Struct.type('item_id_pair')
672
1727
  export class item_id_pair extends Struct {
673
1728
  @Struct.field(UInt16)
@@ -684,10 +1739,6 @@ export namespace Types {
684
1739
  export class recipe_input extends Struct {
685
1740
  @Struct.field(UInt16)
686
1741
  declare item_id: UInt16
687
- @Struct.field(UInt8)
688
- declare category: UInt8
689
- @Struct.field(UInt8)
690
- declare tier: UInt8
691
1742
  @Struct.field(UInt32)
692
1743
  declare quantity: UInt32
693
1744
  }
@@ -726,6 +1777,8 @@ export namespace Types {
726
1777
  declare output_item: recipe_item_info
727
1778
  @Struct.field(recipe_item_info, {array: true})
728
1779
  declare input_items: recipe_item_info[]
1780
+ @Struct.field(UInt16, {optional: true})
1781
+ declare source_subclass?: UInt16
729
1782
  }
730
1783
  @Struct.type('recipes_result')
731
1784
  export class recipes_result extends Struct {
@@ -749,6 +1802,53 @@ export namespace Types {
749
1802
  @Struct.field(Name)
750
1803
  declare account: Name
751
1804
  }
1805
+ @Struct.type('kind_meta_row')
1806
+ export class kind_meta_row extends Struct {
1807
+ @Struct.field(Name)
1808
+ declare kind: Name
1809
+ @Struct.field(UInt8)
1810
+ declare classification: UInt8
1811
+ @Struct.field(UInt8)
1812
+ declare capability_flags: UInt8
1813
+ @Struct.field(UInt32)
1814
+ declare z_coord: UInt32
1815
+ @Struct.field('string')
1816
+ declare default_label: string
1817
+ }
1818
+ @Struct.type('template_meta_row')
1819
+ export class template_meta_row extends Struct {
1820
+ @Struct.field(UInt16)
1821
+ declare item_id: UInt16
1822
+ @Struct.field(Name)
1823
+ declare kind: Name
1824
+ @Struct.field('string')
1825
+ declare display_label: string
1826
+ }
1827
+ @Struct.type('kind_meta_result')
1828
+ export class kind_meta_result extends Struct {
1829
+ @Struct.field(kind_meta_row, {array: true})
1830
+ declare kinds: kind_meta_row[]
1831
+ @Struct.field(template_meta_row, {array: true})
1832
+ declare templates: template_meta_row[]
1833
+ }
1834
+ @Struct.type('launch')
1835
+ export class launch extends Struct {
1836
+ @Struct.field(UInt64)
1837
+ declare launcher_id: UInt64
1838
+ @Struct.field(UInt64)
1839
+ declare catcher_id: UInt64
1840
+ @Struct.field(cargo_item, {array: true})
1841
+ declare items: cargo_item[]
1842
+ }
1843
+ @Struct.type('load')
1844
+ export class load extends Struct {
1845
+ @Struct.field(UInt64)
1846
+ declare id: UInt64
1847
+ @Struct.field(UInt64)
1848
+ declare from_id: UInt64
1849
+ @Struct.field(cargo_item, {array: true})
1850
+ declare items: cargo_item[]
1851
+ }
752
1852
  @Struct.type('location_static')
753
1853
  export class location_static extends Struct {
754
1854
  @Struct.field(coordinates)
@@ -775,21 +1875,54 @@ export namespace Types {
775
1875
  declare coords: coordinates
776
1876
  @Struct.field('bool')
777
1877
  declare is_system: boolean
1878
+ @Struct.field('bool')
1879
+ declare is_wormhole: boolean
778
1880
  }
779
- @Struct.type('location_row')
780
- export class location_row extends Struct {
1881
+ @Struct.type('locker_row')
1882
+ export class locker_row extends Struct {
781
1883
  @Struct.field(UInt64)
782
- declare id: UInt64
783
- @Struct.field(Name)
784
- declare owner: Name
785
- @Struct.field(coordinates)
786
- declare coordinates: coordinates
1884
+ declare depot_id: UInt64
1885
+ @Struct.field(UInt64)
1886
+ declare stored_mass: UInt64
1887
+ @Struct.field(UInt64)
1888
+ declare reserved_mass: UInt64
1889
+ }
1890
+ @Struct.type('mandates_row')
1891
+ export class mandates_row extends Struct {
787
1892
  @Struct.field(UInt32)
788
- declare cargomass: UInt32
789
- @Struct.field(cargo_item, {array: true})
790
- declare cargo: cargo_item[]
791
- @Struct.field(schedule, {optional: true})
792
- declare schedule?: schedule
1893
+ declare node_id: UInt32
1894
+ @Struct.field(UInt16)
1895
+ declare repeats: UInt16
1896
+ }
1897
+ @Struct.type('migratejobs')
1898
+ export class migratejobs extends Struct {}
1899
+ @Struct.type('mint_threshold_view')
1900
+ export class mint_threshold_view extends Struct {
1901
+ @Struct.field(UInt8)
1902
+ declare category: UInt8
1903
+ @Struct.field(UInt8)
1904
+ declare tier: UInt8
1905
+ @Struct.field(UInt64)
1906
+ declare threshold: UInt64
1907
+ }
1908
+ @Struct.type('mintcfg_result')
1909
+ export class mintcfg_result extends Struct {
1910
+ @Struct.field(mint_threshold_view, {array: true})
1911
+ declare thresholds: mint_threshold_view[]
1912
+ @Struct.field(UInt16)
1913
+ declare burn_bps: UInt16
1914
+ }
1915
+ @Struct.type('mintq_row')
1916
+ export class mintq_row extends Struct {
1917
+ @Struct.field(UInt64)
1918
+ declare id: UInt64
1919
+ @Struct.field(UInt8)
1920
+ declare grade: UInt8
1921
+ }
1922
+ @Struct.type('mintready')
1923
+ export class mintready extends Struct {
1924
+ @Struct.field(UInt32, {optional: true})
1925
+ declare max_mints?: UInt32
793
1926
  }
794
1927
  @Struct.type('module_info')
795
1928
  export class module_info extends Struct {
@@ -807,6 +1940,28 @@ export namespace Types {
807
1940
  @Struct.field(module_info, {array: true})
808
1941
  declare modules: module_info[]
809
1942
  }
1943
+ @Struct.type('movetile')
1944
+ export class movetile extends Struct {
1945
+ @Struct.field(UInt64)
1946
+ declare hub_id: UInt64
1947
+ @Struct.field(Int8)
1948
+ declare from_gx: Int8
1949
+ @Struct.field(Int8)
1950
+ declare from_gy: Int8
1951
+ @Struct.field(Int8)
1952
+ declare to_gx: Int8
1953
+ @Struct.field(Int8)
1954
+ declare to_gy: Int8
1955
+ }
1956
+ @Struct.type('naturalize')
1957
+ export class naturalize extends Struct {
1958
+ @Struct.field(Name)
1959
+ declare player: Name
1960
+ @Struct.field(Int64)
1961
+ declare x: Int64
1962
+ @Struct.field(Int64)
1963
+ declare y: Int64
1964
+ }
810
1965
  @Struct.type('nearby_system')
811
1966
  export class nearby_system extends Struct {
812
1967
  @Struct.field(UInt64)
@@ -826,21 +1981,28 @@ export namespace Types {
826
1981
  declare current: entity_current_state
827
1982
  @Struct.field(entity_current_state)
828
1983
  declare projected: entity_current_state
829
- @Struct.field(UInt16)
830
- declare max_energy: UInt16
1984
+ @Struct.field(UInt32)
1985
+ declare max_energy: UInt32
831
1986
  @Struct.field(nearby_system, {array: true})
832
1987
  declare systems: nearby_system[]
833
1988
  }
834
- @Struct.type('nexus_row')
835
- export class nexus_row extends Struct {
1989
+ @Struct.type('nft_cargo_item')
1990
+ export class nft_cargo_item extends Struct {
1991
+ @Struct.field(UInt16)
1992
+ declare item_id: UInt16
836
1993
  @Struct.field(UInt64)
837
- declare id: UInt64
838
- @Struct.field(Name)
839
- declare owner: Name
840
- @Struct.field('string')
841
- declare name: string
842
- @Struct.field(coordinates)
843
- declare coordinates: coordinates
1994
+ declare stats: UInt64
1995
+ @Struct.field(module_entry, {array: true})
1996
+ declare modules: module_entry[]
1997
+ @Struct.field(UInt32)
1998
+ declare quantity: UInt32
1999
+ }
2000
+ @Struct.type('nft_item_payload')
2001
+ export class nft_item_payload extends Struct {
2002
+ @Struct.field(nft_cargo_item)
2003
+ declare item: nft_cargo_item
2004
+ @Struct.field(coordinates, {optional: true})
2005
+ declare location?: coordinates
844
2006
  }
845
2007
  @Struct.type('schema_field')
846
2008
  export class schema_field extends Struct {
@@ -862,15 +2024,15 @@ export namespace Types {
862
2024
  declare item_id: UInt16
863
2025
  @Struct.field(Name)
864
2026
  declare schema_name: Name
865
- }
866
- @Struct.type('nftconfig_row')
867
- export class nftconfig_row extends Struct {
868
- @Struct.field(UInt16)
869
- declare item_id: UInt16
870
2027
  @Struct.field(Int32)
871
2028
  declare template_id: Int32
872
- @Struct.field(Name)
873
- declare schema_name: Name
2029
+ }
2030
+ @Struct.type('nftimgurl')
2031
+ export class nftimgurl extends Struct {
2032
+ @Struct.field(cargo_item)
2033
+ declare item: cargo_item
2034
+ @Struct.field(coordinates, {optional: true})
2035
+ declare location?: coordinates
874
2036
  }
875
2037
  @Struct.type('nftinfo_result')
876
2038
  export class nftinfo_result extends Struct {
@@ -889,22 +2051,54 @@ export namespace Types {
889
2051
  declare entity_type: Name
890
2052
  @Struct.field(UInt64)
891
2053
  declare entity_id: UInt64
892
- @Struct.field(UInt8)
893
- declare task_index: UInt8
2054
+ @Struct.field(UInt32)
2055
+ declare task_index: UInt32
894
2056
  @Struct.field(task)
895
2057
  declare task: task
896
2058
  @Struct.field(TimePoint)
897
2059
  declare starts_at: TimePoint
898
2060
  @Struct.field(TimePoint)
899
2061
  declare completes_at: TimePoint
900
- @Struct.field(UInt16, {optional: true})
901
- declare new_energy?: UInt16
2062
+ @Struct.field(UInt32, {optional: true})
2063
+ declare new_energy?: UInt32
2064
+ @Struct.field(UInt8)
2065
+ declare lane_key: UInt8
902
2066
  }
903
2067
  @Struct.type('notify')
904
2068
  export class notify extends Struct {
905
2069
  @Struct.field(task_event)
906
2070
  declare event: task_event
907
2071
  }
2072
+ @Struct.type('oracle_config_row')
2073
+ export class oracle_config_row extends Struct {
2074
+ @Struct.field(UInt8)
2075
+ declare threshold: UInt8
2076
+ @Struct.field(UInt32)
2077
+ declare deadline: UInt32
2078
+ }
2079
+ @Struct.type('oracle_row')
2080
+ export class oracle_row extends Struct {
2081
+ @Struct.field(Name)
2082
+ declare id: Name
2083
+ }
2084
+ @Struct.type('placecargo')
2085
+ export class placecargo extends Struct {
2086
+ @Struct.field(Name)
2087
+ declare owner: Name
2088
+ @Struct.field(UInt64)
2089
+ declare host_id: UInt64
2090
+ @Struct.field(UInt64)
2091
+ declare asset_id: UInt64
2092
+ }
2093
+ @Struct.type('placeentity')
2094
+ export class placeentity extends Struct {
2095
+ @Struct.field(Name)
2096
+ declare owner: Name
2097
+ @Struct.field(UInt64)
2098
+ declare asset_id: UInt64
2099
+ @Struct.field(UInt64)
2100
+ declare target_nexus_id: UInt64
2101
+ }
908
2102
  @Struct.type('player_info')
909
2103
  export class player_info extends Struct {
910
2104
  @Struct.field(Name)
@@ -913,40 +2107,123 @@ export namespace Types {
913
2107
  declare is_player: boolean
914
2108
  @Struct.field('string')
915
2109
  declare company_name: string
2110
+ }
2111
+ @Struct.type('player_row')
2112
+ export class player_row extends Struct {
2113
+ @Struct.field(Name)
2114
+ declare owner: Name
2115
+ }
2116
+ @Struct.type('pool_pair_result')
2117
+ export class pool_pair_result extends Struct {
2118
+ @Struct.field(UInt8)
2119
+ declare category: UInt8
2120
+ @Struct.field(UInt8)
2121
+ declare tier: UInt8
2122
+ @Struct.field(UInt16)
2123
+ declare item_id: UInt16
916
2124
  @Struct.field(UInt64)
917
- declare ship_count: UInt64
2125
+ declare standard_quantity: UInt64
918
2126
  @Struct.field(UInt64)
919
- declare warehouse_count: UInt64
2127
+ declare standard_stats: UInt64
920
2128
  @Struct.field(UInt64)
921
- declare container_count: UInt64
2129
+ declare premium_quantity: UInt64
2130
+ @Struct.field(UInt64)
2131
+ declare premium_stats: UInt64
2132
+ @Struct.field(UInt64)
2133
+ declare bar: UInt64
2134
+ @Struct.field(UInt64)
2135
+ declare threshold: UInt64
922
2136
  }
923
- @Struct.type('player_row')
924
- export class player_row extends Struct {
2137
+ @Struct.type('pool_view')
2138
+ export class pool_view extends Struct {
2139
+ @Struct.field(UInt8)
2140
+ declare category: UInt8
2141
+ @Struct.field(UInt8)
2142
+ declare tier: UInt8
2143
+ @Struct.field(UInt8)
2144
+ declare grade: UInt8
2145
+ @Struct.field(UInt16)
2146
+ declare item_id: UInt16
2147
+ @Struct.field(UInt64)
2148
+ declare quantity: UInt64
2149
+ @Struct.field(UInt64)
2150
+ declare stats: UInt64
2151
+ @Struct.field(UInt64)
2152
+ declare bar: UInt64
2153
+ }
2154
+ @Struct.type('pools_result')
2155
+ export class pools_result extends Struct {
2156
+ @Struct.field(pool_view, {array: true})
2157
+ declare pools: pool_view[]
2158
+ }
2159
+ @Struct.type('progress_row')
2160
+ export class progress_row extends Struct {
2161
+ @Struct.field(UInt32)
2162
+ declare node_id: UInt32
2163
+ @Struct.field(UInt64)
2164
+ declare amount: UInt64
2165
+ }
2166
+ @Struct.type('projected_state')
2167
+ export class projected_state extends Struct {
925
2168
  @Struct.field(Name)
926
2169
  declare owner: Name
2170
+ @Struct.field(coordinates)
2171
+ declare coordinates: coordinates
2172
+ @Struct.field(UInt32, {optional: true})
2173
+ declare energy?: UInt32
2174
+ @Struct.field(UInt32)
2175
+ declare cargomass: UInt32
2176
+ @Struct.field(cargo_view, {array: true})
2177
+ declare cargo: cargo_view[]
2178
+ @Struct.field(UInt32, {optional: true})
2179
+ declare hullmass?: UInt32
2180
+ @Struct.field(UInt32, {optional: true})
2181
+ declare capacity?: UInt32
2182
+ @Struct.field(movement_stats, {optional: true})
2183
+ declare engines?: movement_stats
2184
+ @Struct.field(warp_stats, {optional: true})
2185
+ declare warp?: warp_stats
2186
+ @Struct.field(energy_stats, {optional: true})
2187
+ declare generator?: energy_stats
2188
+ @Struct.field(hauler_stats, {optional: true})
2189
+ declare hauler?: hauler_stats
2190
+ @Struct.field(gatherer_lane, {array: true})
2191
+ declare gatherer_lanes: gatherer_lane[]
2192
+ @Struct.field(crafter_lane, {array: true})
2193
+ declare crafter_lanes: crafter_lane[]
2194
+ @Struct.field(builder_lane, {array: true})
2195
+ declare builder_lanes: builder_lane[]
2196
+ @Struct.field(loader_lane, {array: true})
2197
+ declare loader_lanes: loader_lane[]
2198
+ @Struct.field(launcher_stats, {optional: true})
2199
+ declare launcher?: launcher_stats
2200
+ @Struct.field(UInt8)
2201
+ declare tier: UInt8
927
2202
  }
928
2203
  @Struct.type('recharge')
929
2204
  export class recharge extends Struct {
930
- @Struct.field(Name)
931
- declare entity_type: Name
932
2205
  @Struct.field(UInt64)
933
2206
  declare id: UInt64
934
2207
  }
935
- @Struct.type('reserve_row')
936
- export class reserve_row extends Struct {
2208
+ @Struct.type('refrshentity')
2209
+ export class refrshentity extends Struct {
937
2210
  @Struct.field(UInt64)
938
- declare id: UInt64
2211
+ declare entity_id: UInt64
2212
+ }
2213
+ @Struct.type('removeoracle')
2214
+ export class removeoracle extends Struct {
2215
+ @Struct.field(Name)
2216
+ declare oracle_id: Name
2217
+ }
2218
+ @Struct.type('rename')
2219
+ export class rename extends Struct {
939
2220
  @Struct.field(UInt64)
940
- declare coord_id: UInt64
941
- @Struct.field(UInt16)
942
- declare stratum: UInt16
943
- @Struct.field(UInt32)
944
- declare remaining: UInt32
2221
+ declare id: UInt64
2222
+ @Struct.field('string')
2223
+ declare name: string
945
2224
  }
946
2225
  @Struct.type('resolve')
947
2226
  export class resolve extends Struct {
948
- @Struct.field(Name)
949
- declare entity_type: Name
950
2227
  @Struct.field(UInt64)
951
2228
  declare id: UInt64
952
2229
  @Struct.field(UInt64, {optional: true})
@@ -958,8 +2235,8 @@ export namespace Types {
958
2235
  declare entity_id: UInt64
959
2236
  @Struct.field(Name)
960
2237
  declare entity_type: Name
961
- @Struct.field(UInt8)
962
- declare resolved_count: UInt8
2238
+ @Struct.field(UInt32)
2239
+ declare resolved_count: UInt32
963
2240
  @Struct.field(TimePoint, {optional: true})
964
2241
  declare new_schedule_started?: TimePoint
965
2242
  @Struct.field(UInt64, {optional: true})
@@ -967,6 +2244,25 @@ export namespace Types {
967
2244
  @Struct.field(entity_ref, {array: true, optional: true})
968
2245
  declare group_members?: entity_ref[]
969
2246
  }
2247
+ @Struct.type('resolveall')
2248
+ export class resolveall extends Struct {
2249
+ @Struct.field(Name)
2250
+ declare owner: Name
2251
+ }
2252
+ @Struct.type('resolveall_results')
2253
+ export class resolveall_results extends Struct {
2254
+ @Struct.field(UInt32)
2255
+ declare scanned: UInt32
2256
+ @Struct.field(UInt32)
2257
+ declare resolved: UInt32
2258
+ }
2259
+ @Struct.type('resolveearly')
2260
+ export class resolveearly extends Struct {
2261
+ @Struct.field(UInt64)
2262
+ declare id: UInt64
2263
+ @Struct.field(UInt64, {optional: true})
2264
+ declare count?: UInt64
2265
+ }
970
2266
  @Struct.type('resource_info')
971
2267
  export class resource_info extends Struct {
972
2268
  @Struct.field(UInt16)
@@ -992,10 +2288,28 @@ export namespace Types {
992
2288
  @Struct.field(resource_info, {array: true})
993
2289
  declare resources: resource_info[]
994
2290
  }
2291
+ @Struct.type('reveal')
2292
+ export class reveal extends Struct {
2293
+ @Struct.field(Name)
2294
+ declare oracle_id: Name
2295
+ @Struct.field(UInt64)
2296
+ declare epoch: UInt64
2297
+ @Struct.field(Checksum256)
2298
+ declare reveal: Checksum256
2299
+ }
2300
+ @Struct.type('reveal_row')
2301
+ export class reveal_row extends Struct {
2302
+ @Struct.field(UInt64)
2303
+ declare id: UInt64
2304
+ @Struct.field(UInt64)
2305
+ declare epoch: UInt64
2306
+ @Struct.field(Name)
2307
+ declare oracle_id: Name
2308
+ @Struct.field(Checksum256)
2309
+ declare reveal: Checksum256
2310
+ }
995
2311
  @Struct.type('rmmodule')
996
2312
  export class rmmodule extends Struct {
997
- @Struct.field(Name)
998
- declare entity_type: Name
999
2313
  @Struct.field(UInt64)
1000
2314
  declare entity_id: UInt64
1001
2315
  @Struct.field(UInt8)
@@ -1008,17 +2322,78 @@ export namespace Types {
1008
2322
  @Struct.field(UInt16)
1009
2323
  declare item_id: UInt16
1010
2324
  }
1011
- @Struct.type('salt')
1012
- export class salt extends Struct {
1013
- @Struct.field(UInt64)
1014
- declare salt: UInt64
2325
+ @Struct.type('route_waypoint')
2326
+ export class route_waypoint extends Struct {
2327
+ @Struct.field(Int64)
2328
+ declare x: Int64
2329
+ @Struct.field(Int64)
2330
+ declare y: Int64
1015
2331
  }
1016
- @Struct.type('sequence_row')
1017
- export class sequence_row extends Struct {
2332
+ @Struct.type('setcivic')
2333
+ export class setcivic extends Struct {
1018
2334
  @Struct.field(Name)
1019
- declare key: Name
2335
+ declare account: Name
2336
+ }
2337
+ @Struct.type('setcluster')
2338
+ export class setcluster extends Struct {
2339
+ @Struct.field(cluster_row)
2340
+ declare row: cluster_row
2341
+ }
2342
+ @Struct.type('setcoords')
2343
+ export class setcoords extends Struct {
2344
+ @Struct.field(UInt64)
2345
+ declare entity_id: UInt64
2346
+ @Struct.field(Int64)
2347
+ declare x: Int64
2348
+ @Struct.field(Int64)
2349
+ declare y: Int64
2350
+ }
2351
+ @Struct.type('setdeadline')
2352
+ export class setdeadline extends Struct {
2353
+ @Struct.field(UInt32)
2354
+ declare deadline: UInt32
2355
+ }
2356
+ @Struct.type('setinfburn')
2357
+ export class setinfburn extends Struct {
2358
+ @Struct.field(UInt16)
2359
+ declare bps: UInt16
2360
+ }
2361
+ @Struct.type('setinfd1')
2362
+ export class setinfd1 extends Struct {
2363
+ @Struct.field(UInt32)
2364
+ declare d1: UInt32
2365
+ }
2366
+ @Struct.type('setinfdemand')
2367
+ export class setinfdemand extends Struct {
2368
+ @Struct.field(UInt64)
2369
+ declare peak: UInt64
2370
+ @Struct.field(UInt64)
2371
+ declare base: UInt64
2372
+ @Struct.field(UInt64)
2373
+ declare floor: UInt64
2374
+ }
2375
+ @Struct.type('setinfmint')
2376
+ export class setinfmint extends Struct {
2377
+ @Struct.field(UInt8)
2378
+ declare category: UInt8
2379
+ @Struct.field(UInt8)
2380
+ declare tier: UInt8
2381
+ @Struct.field(UInt64)
2382
+ declare threshold: UInt64
2383
+ }
2384
+ @Struct.type('setinfweight')
2385
+ export class setinfweight extends Struct {
2386
+ @Struct.field(UInt8)
2387
+ declare category: UInt8
2388
+ @Struct.field(UInt8)
2389
+ declare tier: UInt8
2390
+ @Struct.field(UInt64)
2391
+ declare weight_fp: UInt64
2392
+ }
2393
+ @Struct.type('setnextid')
2394
+ export class setnextid extends Struct {
1020
2395
  @Struct.field(UInt64)
1021
- declare value: UInt64
2396
+ declare next_id: UInt64
1022
2397
  }
1023
2398
  @Struct.type('setnftcfg')
1024
2399
  export class setnftcfg extends Struct {
@@ -1029,92 +2404,82 @@ export namespace Types {
1029
2404
  @Struct.field(Name)
1030
2405
  declare schema_name: Name
1031
2406
  }
1032
- @Struct.type('ship_row')
1033
- export class ship_row extends Struct {
1034
- @Struct.field(UInt64)
1035
- declare id: UInt64
1036
- @Struct.field(Name)
1037
- declare owner: Name
1038
- @Struct.field('string')
1039
- declare name: string
2407
+ @Struct.type('setthreshold')
2408
+ export class setthreshold extends Struct {
2409
+ @Struct.field(UInt8)
2410
+ declare threshold: UInt8
2411
+ }
2412
+ @Struct.type('settleballot')
2413
+ export class settleballot extends Struct {
1040
2414
  @Struct.field(UInt64)
1041
- declare stats: UInt64
1042
- @Struct.field(coordinates)
1043
- declare coordinates: coordinates
1044
- @Struct.field(UInt32, {optional: true})
1045
- declare hullmass?: UInt32
1046
- @Struct.field(UInt32, {optional: true})
1047
- declare capacity?: UInt32
1048
- @Struct.field(UInt16, {optional: true})
1049
- declare energy?: UInt16
2415
+ declare ballot_id: UInt64
1050
2416
  @Struct.field(UInt32)
1051
- declare cargomass: UInt32
1052
- @Struct.field(movement_stats, {optional: true})
1053
- declare engines?: movement_stats
1054
- @Struct.field(energy_stats, {optional: true})
1055
- declare generator?: energy_stats
1056
- @Struct.field(loader_stats, {optional: true})
1057
- declare loaders?: loader_stats
1058
- @Struct.field(gatherer_stats, {optional: true})
1059
- declare gatherer?: gatherer_stats
1060
- @Struct.field(warp_stats, {optional: true})
1061
- declare warp?: warp_stats
1062
- @Struct.field(crafter_stats, {optional: true})
1063
- declare crafter?: crafter_stats
1064
- @Struct.field(hauler_stats, {optional: true})
1065
- declare hauler?: hauler_stats
1066
- @Struct.field(module_entry, {array: true})
1067
- declare modules: module_entry[]
1068
- @Struct.field(schedule, {optional: true})
1069
- declare schedule?: schedule
2417
+ declare max_pages: UInt32
2418
+ }
2419
+ @Struct.type('setunwrapmin')
2420
+ export class setunwrapmin extends Struct {
2421
+ @Struct.field(UInt64)
2422
+ declare asset_id: UInt64
2423
+ }
2424
+ @Struct.type('setwrapcost')
2425
+ export class setwrapcost extends Struct {
2426
+ @Struct.field(UInt8)
2427
+ declare item_type: UInt8
2428
+ @Struct.field(UInt8)
2429
+ declare tier: UInt8
2430
+ @Struct.field(UInt64)
2431
+ declare amount: UInt64
2432
+ }
2433
+ @Struct.type('setwrapfee')
2434
+ export class setwrapfee extends Struct {
1070
2435
  @Struct.field(UInt16)
1071
- declare item_id: UInt16
2436
+ declare fee_pct: UInt16
2437
+ @Struct.field(Name)
2438
+ declare fee_account: Name
1072
2439
  }
1073
- @Struct.type('spawncargo')
1074
- export class spawncargo extends Struct {
2440
+ @Struct.type('shuttle')
2441
+ export class shuttle extends Struct {
1075
2442
  @Struct.field(UInt64)
1076
- declare entity_id: UInt64
2443
+ declare carrier: UInt64
1077
2444
  @Struct.field(UInt64)
1078
- declare item_id: UInt64
2445
+ declare from_id: UInt64
1079
2446
  @Struct.field(UInt64)
1080
- declare quantity: UInt64
2447
+ declare to_id: UInt64
2448
+ @Struct.field(cargo_item, {array: true})
2449
+ declare items: cargo_item[]
1081
2450
  }
1082
- @Struct.type('spawnpacked')
1083
- export class spawnpacked extends Struct {
2451
+ @Struct.type('standing_row')
2452
+ export class standing_row extends Struct {
2453
+ @Struct.field(Name)
2454
+ declare account: Name
1084
2455
  @Struct.field(UInt64)
1085
- declare entity_id: UInt64
1086
- @Struct.field(UInt16)
1087
- declare item_id: UInt16
2456
+ declare lifetime: UInt64
1088
2457
  @Struct.field(UInt64)
1089
- declare hull_stats: UInt64
1090
- @Struct.field(packed_module, {array: true})
1091
- declare installed: packed_module[]
2458
+ declare active: UInt64
2459
+ @Struct.field(UInt32)
2460
+ declare active_epoch: UInt32
1092
2461
  }
1093
- @Struct.type('spawnseeded')
1094
- export class spawnseeded extends Struct {
2462
+ @Struct.type('stowcargo')
2463
+ export class stowcargo extends Struct {
2464
+ @Struct.field(Name)
2465
+ declare owner: Name
1095
2466
  @Struct.field(UInt64)
1096
2467
  declare entity_id: UInt64
1097
2468
  @Struct.field(UInt64)
1098
- declare item_id: UInt64
2469
+ declare nexus_id: UInt64
1099
2470
  @Struct.field(UInt64)
1100
- declare quantity: UInt64
2471
+ declare cargo_id: UInt64
1101
2472
  @Struct.field(UInt64)
1102
- declare stats: UInt64
2473
+ declare quantity: UInt64
1103
2474
  }
1104
- @Struct.type('state_row')
1105
- export class state_row extends Struct {
1106
- @Struct.field('bool')
1107
- declare enabled: boolean
1108
- @Struct.field(UInt32)
1109
- declare epoch: UInt32
2475
+ @Struct.type('stowentity')
2476
+ export class stowentity extends Struct {
2477
+ @Struct.field(Name)
2478
+ declare owner: Name
1110
2479
  @Struct.field(UInt64)
1111
- declare salt: UInt64
1112
- @Struct.field(UInt32)
1113
- declare ships: UInt32
1114
- @Struct.field(Checksum256)
1115
- declare seed: Checksum256
1116
- @Struct.field(Checksum256)
1117
- declare commit: Checksum256
2480
+ declare entity_id: UInt64
2481
+ @Struct.field(UInt64)
2482
+ declare nexus_id: UInt64
1118
2483
  }
1119
2484
  @Struct.type('stratum_info')
1120
2485
  export class stratum_info extends Struct {
@@ -1142,29 +2507,51 @@ export namespace Types {
1142
2507
  declare stratum: UInt16
1143
2508
  @Struct.field(UInt32)
1144
2509
  declare remaining: UInt32
2510
+ @Struct.field(BlockTimestamp)
2511
+ declare last_block: BlockTimestamp
2512
+ }
2513
+ @Struct.type('swapmodule')
2514
+ export class swapmodule extends Struct {
2515
+ @Struct.field(UInt64)
2516
+ declare entity_id: UInt64
2517
+ @Struct.field(UInt8)
2518
+ declare module_index: UInt8
2519
+ @Struct.field(cargo_ref)
2520
+ declare module_ref: cargo_ref
2521
+ }
2522
+ @Struct.type('swaptile')
2523
+ export class swaptile extends Struct {
2524
+ @Struct.field(UInt64)
2525
+ declare hub_id: UInt64
2526
+ @Struct.field(Int8)
2527
+ declare a_gx: Int8
2528
+ @Struct.field(Int8)
2529
+ declare a_gy: Int8
2530
+ @Struct.field(Int8)
2531
+ declare b_gx: Int8
2532
+ @Struct.field(Int8)
2533
+ declare b_gy: Int8
1145
2534
  }
1146
2535
  @Struct.type('task_results')
1147
2536
  export class task_results extends Struct {
1148
2537
  @Struct.field(entity_task_info, {array: true})
1149
2538
  declare entities: entity_task_info[]
1150
2539
  }
1151
- @Struct.type('transfer')
1152
- export class transfer extends Struct {
1153
- @Struct.field(Name)
1154
- declare source_type: Name
1155
- @Struct.field(UInt64)
1156
- declare source_id: UInt64
1157
- @Struct.field(Name)
1158
- declare dest_type: Name
2540
+ @Struct.type('transit')
2541
+ export class transit extends Struct {
1159
2542
  @Struct.field(UInt64)
1160
- declare dest_id: UInt64
1161
- @Struct.field(cargo_item, {array: true})
1162
- declare items: cargo_item[]
2543
+ declare id: UInt64
2544
+ @Struct.field(Int64)
2545
+ declare ax: Int64
2546
+ @Struct.field(Int64)
2547
+ declare ay: Int64
2548
+ @Struct.field(Int64)
2549
+ declare bx: Int64
2550
+ @Struct.field(Int64)
2551
+ declare by: Int64
1163
2552
  }
1164
2553
  @Struct.type('travel')
1165
2554
  export class travel extends Struct {
1166
- @Struct.field(Name)
1167
- declare entity_type: Name
1168
2555
  @Struct.field(UInt64)
1169
2556
  declare id: UInt64
1170
2557
  @Struct.field(Int64)
@@ -1174,6 +2561,49 @@ export namespace Types {
1174
2561
  @Struct.field('bool')
1175
2562
  declare recharge: boolean
1176
2563
  }
2564
+ @Struct.type('travelplan')
2565
+ export class travelplan extends Struct {
2566
+ @Struct.field(entity_ref, {array: true})
2567
+ declare entities: entity_ref[]
2568
+ @Struct.field(route_waypoint, {array: true})
2569
+ declare waypoints: route_waypoint[]
2570
+ @Struct.field('bool')
2571
+ declare recharge: boolean
2572
+ }
2573
+ @Struct.type('vote_option')
2574
+ export class vote_option extends Struct {
2575
+ @Struct.field(UInt32)
2576
+ declare node_id: UInt32
2577
+ @Struct.field(UInt64)
2578
+ declare cost: UInt64
2579
+ @Struct.field(UInt32)
2580
+ declare seat: UInt32
2581
+ @Struct.field(UInt64)
2582
+ declare weight: UInt64
2583
+ @Struct.field(UInt32)
2584
+ declare rank: UInt32
2585
+ }
2586
+ @Struct.type('vote_result')
2587
+ export class vote_result extends Struct {
2588
+ @Struct.field(UInt64)
2589
+ declare location_id: UInt64
2590
+ @Struct.field(UInt64)
2591
+ declare ballot_id: UInt64
2592
+ @Struct.field(UInt32)
2593
+ declare epoch: UInt32
2594
+ @Struct.field(UInt32)
2595
+ declare settled_epoch: UInt32
2596
+ @Struct.field(UInt32)
2597
+ declare seats: UInt32
2598
+ @Struct.field('bool')
2599
+ declare settling: boolean
2600
+ @Struct.field(UInt32, {array: true})
2601
+ declare queue: UInt32[]
2602
+ @Struct.field(vote_option, {array: true})
2603
+ declare options: vote_option[]
2604
+ @Struct.field(UInt32, {array: true})
2605
+ declare picks: UInt32[]
2606
+ }
1177
2607
  @Struct.type('types_row')
1178
2608
  export class types_row extends Struct {
1179
2609
  @Struct.field(UInt64)
@@ -1184,49 +2614,67 @@ export namespace Types {
1184
2614
  declare game_config_type: game_config
1185
2615
  @Struct.field(stratum_remaining)
1186
2616
  declare stratum_remaining_type: stratum_remaining
2617
+ @Struct.field(nft_item_payload)
2618
+ declare nft_item_payload_type: nft_item_payload
2619
+ @Struct.field(decomp_result)
2620
+ declare decomp_result_type: decomp_result
2621
+ @Struct.field(demand_result)
2622
+ declare demand_result_type: demand_result
2623
+ @Struct.field(infvalue_result)
2624
+ declare infvalue_result_type: infvalue_result
2625
+ @Struct.field(influence_totals)
2626
+ declare influence_totals_type: influence_totals
2627
+ @Struct.field(pools_result)
2628
+ declare pools_result_type: pools_result
2629
+ @Struct.field(pool_pair_result)
2630
+ declare pool_pair_result_type: pool_pair_result
2631
+ @Struct.field(mintcfg_result)
2632
+ declare mintcfg_result_type: mintcfg_result
2633
+ @Struct.field(charter_result)
2634
+ declare charter_result_type: charter_result
2635
+ @Struct.field(charterready_result)
2636
+ declare charterready_result_type: charterready_result
2637
+ @Struct.field(vote_result)
2638
+ declare vote_result_type: vote_result
2639
+ @Struct.field(depot_view)
2640
+ declare depot_view_type: depot_view
1187
2641
  }
1188
2642
  @Struct.type('undeploy')
1189
2643
  export class undeploy extends Struct {
1190
- @Struct.field(Name)
1191
- declare host_type: Name
1192
2644
  @Struct.field(UInt64)
1193
2645
  declare host_id: UInt64
1194
- @Struct.field(Name)
1195
- declare target_type: Name
1196
2646
  @Struct.field(UInt64)
1197
2647
  declare target_id: UInt64
1198
2648
  }
1199
- @Struct.type('warehouse_row')
1200
- export class warehouse_row extends Struct {
2649
+ @Struct.type('unload')
2650
+ export class unload extends Struct {
1201
2651
  @Struct.field(UInt64)
1202
2652
  declare id: UInt64
1203
- @Struct.field(Name)
1204
- declare owner: Name
1205
- @Struct.field('string')
1206
- declare name: string
1207
2653
  @Struct.field(UInt64)
1208
- declare stats: UInt64
1209
- @Struct.field(coordinates)
1210
- declare coordinates: coordinates
1211
- @Struct.field(UInt32, {optional: true})
1212
- declare hullmass?: UInt32
1213
- @Struct.field(UInt32, {optional: true})
1214
- declare capacity?: UInt32
1215
- @Struct.field(UInt32)
1216
- declare cargomass: UInt32
1217
- @Struct.field(loader_stats, {optional: true})
1218
- declare loaders?: loader_stats
1219
- @Struct.field(module_entry, {array: true})
1220
- declare modules: module_entry[]
1221
- @Struct.field(schedule, {optional: true})
1222
- declare schedule?: schedule
2654
+ declare to_id: UInt64
2655
+ @Struct.field(cargo_item, {array: true})
2656
+ declare items: cargo_item[]
2657
+ }
2658
+ @Struct.type('upgrade')
2659
+ export class upgrade extends Struct {
2660
+ @Struct.field(UInt64)
2661
+ declare builder_id: UInt64
2662
+ @Struct.field(UInt64)
2663
+ declare target_id: UInt64
1223
2664
  @Struct.field(UInt16)
1224
- declare item_id: UInt16
2665
+ declare target_item_id: UInt16
2666
+ @Struct.field(cargo_item, {array: true})
2667
+ declare inputs: cargo_item[]
2668
+ @Struct.field(UInt8, {optional: true})
2669
+ declare slot?: UInt8
2670
+ }
2671
+ @Struct.type('voteready')
2672
+ export class voteready extends Struct {
2673
+ @Struct.field(UInt32)
2674
+ declare max_pages: UInt32
1225
2675
  }
1226
2676
  @Struct.type('warp')
1227
2677
  export class warp extends Struct {
1228
- @Struct.field(Name)
1229
- declare entity_type: Name
1230
2678
  @Struct.field(UInt64)
1231
2679
  declare id: UInt64
1232
2680
  @Struct.field(Int64)
@@ -1236,65 +2684,149 @@ export namespace Types {
1236
2684
  }
1237
2685
  @Struct.type('wipe')
1238
2686
  export class wipe extends Struct {}
1239
- @Struct.type('wipesequence')
1240
- export class wipesequence extends Struct {}
1241
- @Struct.type('wrap')
1242
- export class wrap extends Struct {
2687
+ @Struct.type('worlds_row')
2688
+ export class worlds_row extends Struct {
2689
+ @Struct.field(UInt64)
2690
+ declare location_id: UInt64
2691
+ @Struct.field(UInt64)
2692
+ declare lifetime: UInt64
2693
+ @Struct.field(UInt64)
2694
+ declare active: UInt64
2695
+ @Struct.field(UInt32)
2696
+ declare active_epoch: UInt32
2697
+ @Struct.field(UInt64)
2698
+ declare spent: UInt64
2699
+ @Struct.field(UInt64)
2700
+ declare unassigned: UInt64
2701
+ @Struct.field(UInt64)
2702
+ declare ballot_id: UInt64
1243
2703
  @Struct.field(Name)
1244
- declare owner: Name
2704
+ declare founder: Name
2705
+ @Struct.field(UInt32)
2706
+ declare founded: UInt32
2707
+ }
2708
+ @Struct.type('wormhole_info')
2709
+ export class wormhole_info extends Struct {
2710
+ @Struct.field(coordinates)
2711
+ declare coords: coordinates
2712
+ @Struct.field('bool')
2713
+ declare is_wormhole: boolean
2714
+ @Struct.field(coordinates)
2715
+ declare destination: coordinates
2716
+ }
2717
+ @Struct.type('wrapconfig_row')
2718
+ export class wrapconfig_row extends Struct {
2719
+ @Struct.field(UInt16)
2720
+ declare fee_pct: UInt16
1245
2721
  @Struct.field(Name)
1246
- declare entity_type: Name
2722
+ declare fee_account: Name
1247
2723
  @Struct.field(UInt64)
1248
- declare entity_id: UInt64
1249
- @Struct.field(cargo_item, {array: true})
1250
- declare items: cargo_item[]
2724
+ declare min_asset_id: UInt64
1251
2725
  }
1252
- @Struct.type('wrapentity')
1253
- export class wrapentity extends Struct {
1254
- @Struct.field(Name)
1255
- declare entity_type: Name
2726
+ @Struct.type('wrapcost_row')
2727
+ export class wrapcost_row extends Struct {
2728
+ @Struct.field(UInt8)
2729
+ declare item_type: UInt8
2730
+ @Struct.field(UInt8)
2731
+ declare tier: UInt8
1256
2732
  @Struct.field(UInt64)
1257
- declare entity_id: UInt64
2733
+ declare amount: UInt64
1258
2734
  }
1259
2735
  }
1260
2736
  export const TableMap = {
2737
+ ballot: Types.ballot_row,
2738
+ ballotpicks: Types.ballotpicks_row,
2739
+ ballotseq: Types.ballot_seq_row,
2740
+ ballotsettle: Types.ballotsettle_row,
2741
+ buildings: Types.buildings_row,
2742
+ buildjobs: Types.buildjob_row,
1261
2743
  cargo: Types.cargo_row,
1262
- container: Types.container_row,
2744
+ citizenship: Types.citizenship_row,
2745
+ civicconfig: Types.civicconfig_row,
2746
+ claims: Types.claim_row,
2747
+ cluster: Types.cluster_row,
2748
+ commit: Types.commit_row,
2749
+ craftjobs: Types.craftjob_row,
2750
+ entity: Types.entity_row,
1263
2751
  entitygroup: Types.entitygroup_row,
1264
- location: Types.location_row,
1265
- nexus: Types.nexus_row,
2752
+ entityseq: Types.entity_seq_row,
2753
+ epoch: Types.epoch_row,
2754
+ infburn: Types.infburn_row,
2755
+ infdemand: Types.infdemand_row,
2756
+ infmint: Types.infmint_row,
2757
+ infpool: Types.infpool_row,
2758
+ infquality: Types.infquality_row,
2759
+ infweight: Types.infweight_row,
2760
+ lockers: Types.locker_row,
2761
+ mandates: Types.mandates_row,
2762
+ mintq: Types.mintq_row,
1266
2763
  nftconfig: Types.nftconfig_row,
2764
+ oraclecfg: Types.oracle_config_row,
2765
+ oracles: Types.oracle_row,
1267
2766
  player: Types.player_row,
2767
+ progress: Types.progress_row,
1268
2768
  reserve: Types.reserve_row,
1269
- sequence: Types.sequence_row,
1270
- ship: Types.ship_row,
2769
+ reveal: Types.reveal_row,
2770
+ standing: Types.standing_row,
1271
2771
  state: Types.state_row,
2772
+ storage: Types.storage_row,
1272
2773
  types: Types.types_row,
1273
- warehouse: Types.warehouse_row,
2774
+ worlds: Types.worlds_row,
2775
+ wrapconfig: Types.wrapconfig_row,
2776
+ wrapcost: Types.wrapcost_row,
1274
2777
  }
1275
2778
  export interface TableTypes {
2779
+ ballot: Types.ballot_row
2780
+ ballotpicks: Types.ballotpicks_row
2781
+ ballotseq: Types.ballot_seq_row
2782
+ ballotsettle: Types.ballotsettle_row
2783
+ buildings: Types.buildings_row
2784
+ buildjobs: Types.buildjob_row
1276
2785
  cargo: Types.cargo_row
1277
- container: Types.container_row
2786
+ citizenship: Types.citizenship_row
2787
+ civicconfig: Types.civicconfig_row
2788
+ claims: Types.claim_row
2789
+ cluster: Types.cluster_row
2790
+ commit: Types.commit_row
2791
+ craftjobs: Types.craftjob_row
2792
+ entity: Types.entity_row
1278
2793
  entitygroup: Types.entitygroup_row
1279
- location: Types.location_row
1280
- nexus: Types.nexus_row
2794
+ entityseq: Types.entity_seq_row
2795
+ epoch: Types.epoch_row
2796
+ infburn: Types.infburn_row
2797
+ infdemand: Types.infdemand_row
2798
+ infmint: Types.infmint_row
2799
+ infpool: Types.infpool_row
2800
+ infquality: Types.infquality_row
2801
+ infweight: Types.infweight_row
2802
+ lockers: Types.locker_row
2803
+ mandates: Types.mandates_row
2804
+ mintq: Types.mintq_row
1281
2805
  nftconfig: Types.nftconfig_row
2806
+ oraclecfg: Types.oracle_config_row
2807
+ oracles: Types.oracle_row
1282
2808
  player: Types.player_row
2809
+ progress: Types.progress_row
1283
2810
  reserve: Types.reserve_row
1284
- sequence: Types.sequence_row
1285
- ship: Types.ship_row
2811
+ reveal: Types.reveal_row
2812
+ standing: Types.standing_row
1286
2813
  state: Types.state_row
2814
+ storage: Types.storage_row
1287
2815
  types: Types.types_row
1288
- warehouse: Types.warehouse_row
2816
+ worlds: Types.worlds_row
2817
+ wrapconfig: Types.wrapconfig_row
2818
+ wrapcost: Types.wrapcost_row
1289
2819
  }
1290
2820
  export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
1291
2821
  export type TableNames = keyof TableTypes
1292
2822
  export namespace ActionParams {
1293
2823
  export namespace Type {
1294
- export interface cargo_ref {
2824
+ export interface cargo_item {
1295
2825
  item_id: UInt16Type
1296
2826
  stats: UInt64Type
1297
2827
  modules: Type.module_entry[]
2828
+ quantity: UInt32Type
2829
+ entity_id?: UInt64Type
1298
2830
  }
1299
2831
  export interface module_entry {
1300
2832
  type: UInt8Type
@@ -1304,11 +2836,20 @@ export namespace ActionParams {
1304
2836
  item_id: UInt16Type
1305
2837
  stats: UInt64Type
1306
2838
  }
1307
- export interface cargo_item {
2839
+ export interface cargo_ref {
1308
2840
  item_id: UInt16Type
1309
2841
  stats: UInt64Type
1310
2842
  modules: Type.module_entry[]
1311
- quantity: UInt32Type
2843
+ entity_id?: UInt64Type
2844
+ }
2845
+ export interface cluster_slot {
2846
+ hub: UInt64Type
2847
+ gx: Int8Type
2848
+ gy: Int8Type
2849
+ }
2850
+ export interface cluster_source {
2851
+ source_id: UInt64Type
2852
+ items: Type.cargo_item[]
1312
2853
  }
1313
2854
  export interface game_config {
1314
2855
  version: UInt32Type
@@ -1326,25 +2867,60 @@ export namespace ActionParams {
1326
2867
  subtype: UInt8Type
1327
2868
  tier: UInt8Type
1328
2869
  }
1329
- export interface entity_ref {
1330
- entity_type: NameType
1331
- entity_id: UInt64Type
2870
+ export interface craftjob_row {
2871
+ id: UInt64Type
2872
+ building: UInt64Type
2873
+ socket: UInt8Type
2874
+ owner: NameType
2875
+ ship_id: UInt64Type
2876
+ coords: Type.coordinates
2877
+ starts_at: TimePointType
2878
+ completes_at: TimePointType
2879
+ recipe_id: UInt16Type
2880
+ quantity: UInt32Type
2881
+ energy_paid: UInt32Type
2882
+ cargo: Type.cargo_item[]
2883
+ deposited: boolean
1332
2884
  }
1333
2885
  export interface coordinates {
1334
2886
  x: Int64Type
1335
2887
  y: Int64Type
1336
2888
  z?: UInt16Type
1337
2889
  }
1338
- export interface task_event {
1339
- event_type: UInt8Type
2890
+ export interface buildjob_row {
2891
+ id: UInt64Type
2892
+ building: UInt64Type
2893
+ socket: UInt8Type
2894
+ target: UInt64Type
1340
2895
  owner: NameType
1341
- entity_type: NameType
1342
- entity_id: UInt64Type
1343
- task_index: UInt8Type
1344
- task: Type.task
2896
+ coords: Type.coordinates
1345
2897
  starts_at: TimePointType
1346
2898
  completes_at: TimePointType
1347
- new_energy?: UInt16Type
2899
+ target_item_id: UInt16Type
2900
+ cargo: Type.cargo_item[]
2901
+ deposited: boolean
2902
+ }
2903
+ export interface entity_row {
2904
+ id: UInt64Type
2905
+ owner: NameType
2906
+ kind: NameType
2907
+ item_id: UInt16Type
2908
+ name: string
2909
+ stats: UInt64Type
2910
+ coordinates: Type.coordinates
2911
+ energy?: UInt32Type
2912
+ cargomass: UInt32Type
2913
+ modules: Type.module_entry[]
2914
+ lanes: Type.lane[]
2915
+ holds: Type.hold[]
2916
+ }
2917
+ export interface lane {
2918
+ lane_key: UInt8Type
2919
+ schedule: Type.schedule
2920
+ }
2921
+ export interface schedule {
2922
+ started: TimePointType
2923
+ tasks: Type.task[]
1348
2924
  }
1349
2925
  export interface task {
1350
2926
  type: UInt8Type
@@ -1352,13 +2928,107 @@ export namespace ActionParams {
1352
2928
  cancelable: UInt8Type
1353
2929
  coordinates?: Type.coordinates
1354
2930
  cargo: Type.cargo_item[]
1355
- entitytarget?: Type.entity_ref
2931
+ couplings: Type.coupling[]
2932
+ subject?: Type.entity_ref
1356
2933
  entitygroup?: UInt64Type
1357
- energy_cost?: UInt16Type
2934
+ energy_cost?: UInt32Type
2935
+ target_item_id?: UInt16Type
2936
+ refit?: Type.refit_op
2937
+ charter_node?: UInt32Type
2938
+ }
2939
+ export interface coupling {
2940
+ counterpart: Type.entity_ref
2941
+ hold: UInt64Type
2942
+ kind: UInt8Type
1358
2943
  }
2944
+ export interface entity_ref {
2945
+ entity_type: NameType
2946
+ entity_id: UInt64Type
2947
+ }
2948
+ export interface refit_op {
2949
+ op: UInt8Type
2950
+ slot: UInt8Type
2951
+ }
2952
+ export interface hold {
2953
+ id: UInt64Type
2954
+ kind: UInt8Type
2955
+ counterpart: Type.entity_ref
2956
+ until: TimePointType
2957
+ incoming_mass: UInt32Type
2958
+ }
2959
+ export interface cargo_row {
2960
+ id: UInt64Type
2961
+ entity_id: UInt64Type
2962
+ item_id: UInt64Type
2963
+ quantity: UInt64Type
2964
+ stats: UInt64Type
2965
+ modules: Type.module_entry[]
2966
+ sequence_id?: UInt64Type
2967
+ }
2968
+ export interface epoch_row {
2969
+ epoch: UInt64Type
2970
+ oracle_ids: NameType[]
2971
+ threshold: UInt8Type
2972
+ seed: Checksum256Type
2973
+ }
2974
+ export interface entitygroup_row {
2975
+ id: UInt64Type
2976
+ participants: Type.entity_ref[]
2977
+ }
2978
+ export interface nftconfig_row {
2979
+ item_id: UInt16Type
2980
+ template_id: Int32Type
2981
+ schema_name: NameType
2982
+ }
2983
+ export interface reserve_row {
2984
+ id: UInt64Type
2985
+ coord_id: UInt64Type
2986
+ stratum: UInt16Type
2987
+ remaining: UInt32Type
2988
+ last_block: BlockTimestamp
2989
+ }
2990
+ export interface state_row {
2991
+ enabled: boolean
2992
+ epoch: UInt32Type
2993
+ seed: Checksum256Type
2994
+ }
2995
+ export interface task_event {
2996
+ event_type: UInt8Type
2997
+ owner: NameType
2998
+ entity_type: NameType
2999
+ entity_id: UInt64Type
3000
+ task_index: UInt32Type
3001
+ task: Type.task
3002
+ starts_at: TimePointType
3003
+ completes_at: TimePointType
3004
+ new_energy?: UInt32Type
3005
+ lane_key: UInt8Type
3006
+ }
3007
+ export interface cluster_row {
3008
+ root: UInt64Type
3009
+ cells: Type.cluster_cell[]
3010
+ }
3011
+ export interface cluster_cell {
3012
+ gx: Int8Type
3013
+ gy: Int8Type
3014
+ entity: UInt64Type
3015
+ }
3016
+ export interface route_waypoint {
3017
+ x: Int64Type
3018
+ y: Int64Type
3019
+ }
3020
+ }
3021
+ export interface abandonplot {
3022
+ plot_id: UInt64Type
3023
+ }
3024
+ export interface addcontrib {
3025
+ player: NameType
3026
+ entity_id: UInt64Type
3027
+ x: Int64Type
3028
+ y: Int64Type
3029
+ bundle: Type.cargo_item[]
1359
3030
  }
1360
3031
  export interface addmodule {
1361
- entity_type: NameType
1362
3032
  entity_id: UInt64Type
1363
3033
  module_index: UInt8Type
1364
3034
  module_ref: Type.cargo_ref
@@ -1369,25 +3039,67 @@ export namespace ActionParams {
1369
3039
  x: Int64Type
1370
3040
  y: Int64Type
1371
3041
  }
1372
- export interface advance {
1373
- reveal: string
1374
- commit: Checksum256Type
3042
+ export interface addoracle {
3043
+ oracle_id: NameType
1375
3044
  }
1376
3045
  export interface blend {
1377
- entity_type: NameType
1378
3046
  id: UInt64Type
1379
3047
  inputs: Type.cargo_item[]
1380
3048
  }
3049
+ export interface buildjob {
3050
+ target_id: UInt64Type
3051
+ dock_id: UInt64Type
3052
+ slot: UInt8Type
3053
+ target_item_id: UInt16Type
3054
+ inputs: Type.cargo_item[]
3055
+ }
3056
+ export interface buildplot {
3057
+ builder_id: UInt64Type
3058
+ plot_id: UInt64Type
3059
+ }
1381
3060
  export interface cancel {
1382
- entity_type: NameType
1383
3061
  id: UInt64Type
3062
+ lane_key: UInt8Type
1384
3063
  count: UInt64Type
1385
3064
  }
1386
- export interface claimstarter {
1387
- account: NameType
3065
+ export interface cancelbuild {
3066
+ job_id: UInt64Type
3067
+ }
3068
+ export interface cancelcivic {
3069
+ building: UInt64Type
3070
+ lane_key: UInt8Type
3071
+ from_id: UInt64Type
3072
+ }
3073
+ export interface castballot {
3074
+ player: NameType
3075
+ ballot_id: UInt64Type
3076
+ picks: UInt32Type[]
3077
+ }
3078
+ export interface charterready {
1388
3079
  x: Int64Type
1389
3080
  y: Int64Type
1390
3081
  }
3082
+ export interface civicshuttle {
3083
+ building: UInt64Type
3084
+ from_id: UInt64Type
3085
+ to_id: UInt64Type
3086
+ items: Type.cargo_item[]
3087
+ }
3088
+ export interface claimbuild {
3089
+ job_id: UInt64Type
3090
+ }
3091
+ export interface claimcraft {
3092
+ job_id: UInt64Type
3093
+ ship_id: UInt64Type
3094
+ }
3095
+ export interface claimplot {
3096
+ builder_id: UInt64Type
3097
+ target_item_id: UInt16Type
3098
+ slot: Type.cluster_slot
3099
+ }
3100
+ export interface claimstarter {
3101
+ owner: NameType
3102
+ }
1391
3103
  export interface cleanrsvp {
1392
3104
  epoch: UInt64Type
1393
3105
  max_rows: UInt64Type
@@ -1397,34 +3109,89 @@ export namespace ActionParams {
1397
3109
  scope?: NameType
1398
3110
  max_rows?: UInt64Type
1399
3111
  }
3112
+ export interface closeepoch {
3113
+ epoch: UInt64Type
3114
+ }
3115
+ export interface clustercraft {
3116
+ id: UInt64Type
3117
+ recipe_id: UInt16Type
3118
+ quantity: UInt32Type
3119
+ sources: Type.cluster_source[]
3120
+ target?: UInt64Type
3121
+ slot?: UInt8Type
3122
+ }
1400
3123
  export interface commit {
3124
+ oracle_id: NameType
3125
+ epoch: UInt64Type
1401
3126
  commit: Checksum256Type
1402
3127
  }
1403
3128
  export interface configlog {
1404
3129
  config: Type.game_config
1405
3130
  }
1406
3131
  export interface craft {
1407
- entity_type: NameType
1408
3132
  id: UInt64Type
1409
3133
  recipe_id: UInt16Type
1410
3134
  quantity: UInt32Type
1411
3135
  inputs: Type.cargo_item[]
3136
+ target?: UInt64Type
3137
+ slot?: UInt8Type
3138
+ }
3139
+ export interface craftjob {
3140
+ ship_id: UInt64Type
3141
+ workshop_id: UInt64Type
3142
+ slot: UInt8Type
3143
+ recipe_id: UInt16Type
3144
+ quantity: UInt32Type
3145
+ inputs: Type.cargo_item[]
1412
3146
  }
1413
- export interface createentity {
3147
+ export interface dbgcredit {
1414
3148
  owner: NameType
1415
- entity_type: NameType
1416
- entity_name: string
1417
3149
  x: Int64Type
1418
3150
  y: Int64Type
3151
+ amount_atomic: UInt64Type
3152
+ node?: UInt32Type
3153
+ }
3154
+ export interface dbgmandate {
3155
+ x: Int64Type
3156
+ y: Int64Type
3157
+ node_id: UInt32Type
3158
+ }
3159
+ export interface dbgoldjobs {
3160
+ crafts: Type.craftjob_row[]
3161
+ builds: Type.buildjob_row[]
3162
+ }
3163
+ export interface dbgpagerows {
3164
+ rows: UInt32Type
3165
+ }
3166
+ export interface dbgpurge {
3167
+ table_name: NameType
3168
+ scope?: NameType
3169
+ }
3170
+ export interface dbgseats {
3171
+ x: Int64Type
3172
+ y: Int64Type
3173
+ seats: UInt32Type
3174
+ }
3175
+ export interface delentity {
3176
+ entity_id: UInt64Type
1419
3177
  }
1420
3178
  export interface demolish {
1421
- entity_type: NameType
1422
3179
  entity_id: UInt64Type
1423
3180
  }
1424
3181
  export interface deploy {
1425
- entity_type: NameType
1426
3182
  id: UInt64Type
1427
3183
  ref: Type.cargo_ref
3184
+ slot?: Type.cluster_slot
3185
+ }
3186
+ export interface depotstore {
3187
+ ship_id: UInt64Type
3188
+ depot_id: UInt64Type
3189
+ items: Type.cargo_item[]
3190
+ }
3191
+ export interface depottake {
3192
+ ship_id: UInt64Type
3193
+ depot_id: UInt64Type
3194
+ items: Type.cargo_item[]
1428
3195
  }
1429
3196
  export interface descentity {
1430
3197
  item_id: UInt16Type
@@ -1435,29 +3202,117 @@ export namespace ActionParams {
1435
3202
  export interface enable {
1436
3203
  enabled: boolean
1437
3204
  }
3205
+ export interface fixcargomass {
3206
+ entity_id: UInt64Type
3207
+ }
3208
+ export interface fixitemids {}
3209
+ export interface forcereveal {
3210
+ epoch: UInt64Type
3211
+ }
3212
+ export interface found {
3213
+ player: NameType
3214
+ entity_id: UInt64Type
3215
+ x: Int64Type
3216
+ y: Int64Type
3217
+ }
1438
3218
  export interface gather {
1439
- source: Type.entity_ref
1440
- destination: Type.entity_ref
3219
+ source_id: UInt64Type
3220
+ destination_id: UInt64Type
3221
+ stratum: UInt16Type
3222
+ quantity: UInt32Type
3223
+ slot?: UInt8Type
3224
+ }
3225
+ export interface gatherplan {
3226
+ source_id: UInt64Type
3227
+ destination_id: UInt64Type
1441
3228
  stratum: UInt16Type
1442
3229
  quantity: UInt32Type
3230
+ recharge: boolean
3231
+ slots: BytesType
3232
+ }
3233
+ export interface genesisfleet {
3234
+ entities: Type.entity_row[]
3235
+ }
3236
+ export interface genesisworld {
3237
+ founder: NameType
3238
+ x: Int64Type
3239
+ y: Int64Type
3240
+ node_ids: UInt32Type[]
3241
+ }
3242
+ export interface getbuildjobs {
3243
+ building_id: UInt64Type
3244
+ }
3245
+ export interface getcharter {
3246
+ x: Int64Type
3247
+ y: Int64Type
3248
+ }
3249
+ export interface getcharttree {}
3250
+ export interface getchrtready {}
3251
+ export interface getcluster {
3252
+ hub_id: UInt64Type
1443
3253
  }
1444
3254
  export interface getconfig {}
3255
+ export interface getcraftjobs {
3256
+ building_id: UInt64Type
3257
+ }
3258
+ export interface getdecomp {
3259
+ item_id: UInt16Type
3260
+ }
3261
+ export interface getdemand {
3262
+ x: Int64Type
3263
+ y: Int64Type
3264
+ }
3265
+ export interface getdeposit {
3266
+ owner: NameType
3267
+ asset_id: UInt64Type
3268
+ }
3269
+ export interface getdepot {
3270
+ depot_id: UInt64Type
3271
+ owner: NameType
3272
+ }
3273
+ export interface getdistance {
3274
+ ax: Int64Type
3275
+ ay: Int64Type
3276
+ bx: Int64Type
3277
+ by: Int64Type
3278
+ }
1445
3279
  export interface geteligible {
1446
3280
  coords: Type.coordinates
1447
3281
  stratum: UInt16Type
1448
3282
  }
3283
+ export interface getentcls {}
1449
3284
  export interface getentities {
1450
3285
  owner: NameType
1451
3286
  entity_type?: NameType
1452
3287
  }
1453
3288
  export interface getentity {
1454
- entity_type: NameType
1455
3289
  entity_id: UInt64Type
1456
3290
  }
3291
+ export interface getfootprint {
3292
+ item_id: UInt16Type
3293
+ }
3294
+ export interface getinfdecay {
3295
+ active: UInt64Type
3296
+ epochs: UInt32Type
3297
+ }
3298
+ export interface getinfluence {
3299
+ owner: NameType
3300
+ x: Int64Type
3301
+ y: Int64Type
3302
+ }
3303
+ export interface getinfvalue {
3304
+ items: Type.cargo_item[]
3305
+ x: Int64Type
3306
+ y: Int64Type
3307
+ }
1457
3308
  export interface getitemdata {}
1458
3309
  export interface getitemids {}
1459
3310
  export interface getitems {}
3311
+ export interface getitemtype {
3312
+ item_id: UInt16Type
3313
+ }
1460
3314
  export interface getitemtypes {}
3315
+ export interface getkindmeta {}
1461
3316
  export interface getlocation {
1462
3317
  x: Int64Type
1463
3318
  y: Int64Type
@@ -1466,17 +3321,28 @@ export namespace ActionParams {
1466
3321
  x: Int64Type
1467
3322
  y: Int64Type
1468
3323
  }
3324
+ export interface getmintcfg {}
3325
+ export interface getmintready {}
1469
3326
  export interface getmodtypes {}
1470
3327
  export interface getmodules {}
1471
3328
  export interface getnearby {
1472
- entity_type: NameType
1473
3329
  entity_id: UInt64Type
1474
3330
  recharge: boolean
1475
3331
  }
3332
+ export interface getnftbase {}
1476
3333
  export interface getnftinfo {}
1477
3334
  export interface getplayer {
1478
3335
  account: NameType
1479
3336
  }
3337
+ export interface getpool {
3338
+ category: UInt8Type
3339
+ tier: UInt8Type
3340
+ }
3341
+ export interface getpools {}
3342
+ export interface getprojstate {
3343
+ entity_id: UInt64Type
3344
+ task_count?: UInt8Type
3345
+ }
1480
3346
  export interface getrecipe {
1481
3347
  output_item_id: UInt16Type
1482
3348
  }
@@ -1500,6 +3366,23 @@ export namespace ActionParams {
1500
3366
  owner: NameType
1501
3367
  entity_type?: NameType
1502
3368
  }
3369
+ export interface getvoteready {}
3370
+ export interface getvotes {
3371
+ x: Int64Type
3372
+ y: Int64Type
3373
+ player: NameType
3374
+ }
3375
+ export interface getwormhole {
3376
+ x: Int64Type
3377
+ y: Int64Type
3378
+ }
3379
+ export interface grouptransit {
3380
+ entities: Type.entity_ref[]
3381
+ ax: Int64Type
3382
+ ay: Int64Type
3383
+ bx: Int64Type
3384
+ by: Int64Type
3385
+ }
1503
3386
  export interface grouptravel {
1504
3387
  entities: Type.entity_ref[]
1505
3388
  x: Int64Type
@@ -1512,26 +3395,113 @@ export namespace ActionParams {
1512
3395
  export interface hash512 {
1513
3396
  value: string
1514
3397
  }
1515
- export interface init {
1516
- seed: Checksum256Type
3398
+ export interface importcargo {
3399
+ row: Type.cargo_row
3400
+ }
3401
+ export interface importcell {
3402
+ root: UInt64Type
3403
+ gx: Int8Type
3404
+ gy: Int8Type
3405
+ entity_id: UInt64Type
3406
+ }
3407
+ export interface importentity {
3408
+ row: Type.entity_row
3409
+ }
3410
+ export interface importepoch {
3411
+ row: Type.epoch_row
3412
+ }
3413
+ export interface importgroup {
3414
+ row: Type.entitygroup_row
3415
+ }
3416
+ export interface importnftcfg {
3417
+ row: Type.nftconfig_row
3418
+ }
3419
+ export interface importplayer {
3420
+ owner: NameType
3421
+ }
3422
+ export interface importreserve {
3423
+ epoch_scope: UInt32Type
3424
+ row: Type.reserve_row
3425
+ }
3426
+ export interface importstate {
3427
+ row: Type.state_row
1517
3428
  }
1518
3429
  export interface join {
1519
3430
  account: NameType
1520
3431
  }
3432
+ export interface launch {
3433
+ launcher_id: UInt64Type
3434
+ catcher_id: UInt64Type
3435
+ items: Type.cargo_item[]
3436
+ }
3437
+ export interface load {
3438
+ id: UInt64Type
3439
+ from_id: UInt64Type
3440
+ items: Type.cargo_item[]
3441
+ }
3442
+ export interface migratejobs {}
3443
+ export interface mintready {
3444
+ max_mints?: UInt32Type
3445
+ }
3446
+ export interface movetile {
3447
+ hub_id: UInt64Type
3448
+ from_gx: Int8Type
3449
+ from_gy: Int8Type
3450
+ to_gx: Int8Type
3451
+ to_gy: Int8Type
3452
+ }
3453
+ export interface naturalize {
3454
+ player: NameType
3455
+ x: Int64Type
3456
+ y: Int64Type
3457
+ }
3458
+ export interface nftimgurl {
3459
+ item: Type.cargo_item
3460
+ location?: Type.coordinates
3461
+ }
1521
3462
  export interface notify {
1522
3463
  event: Type.task_event
1523
3464
  }
3465
+ export interface placecargo {
3466
+ owner: NameType
3467
+ host_id: UInt64Type
3468
+ asset_id: UInt64Type
3469
+ }
3470
+ export interface placeentity {
3471
+ owner: NameType
3472
+ asset_id: UInt64Type
3473
+ target_nexus_id: UInt64Type
3474
+ }
1524
3475
  export interface recharge {
1525
- entity_type: NameType
1526
3476
  id: UInt64Type
1527
3477
  }
3478
+ export interface refrshentity {
3479
+ entity_id: UInt64Type
3480
+ }
3481
+ export interface removeoracle {
3482
+ oracle_id: NameType
3483
+ }
3484
+ export interface rename {
3485
+ id: UInt64Type
3486
+ name: string
3487
+ }
1528
3488
  export interface resolve {
1529
- entity_type: NameType
1530
3489
  id: UInt64Type
1531
3490
  count?: UInt64Type
1532
3491
  }
3492
+ export interface resolveall {
3493
+ owner: NameType
3494
+ }
3495
+ export interface resolveearly {
3496
+ id: UInt64Type
3497
+ count?: UInt64Type
3498
+ }
3499
+ export interface reveal {
3500
+ oracle_id: NameType
3501
+ epoch: UInt64Type
3502
+ reveal: Checksum256Type
3503
+ }
1533
3504
  export interface rmmodule {
1534
- entity_type: NameType
1535
3505
  entity_id: UInt64Type
1536
3506
  module_index: UInt8Type
1537
3507
  target_ref?: Type.cargo_ref
@@ -1539,103 +3509,229 @@ export namespace ActionParams {
1539
3509
  export interface rmnftcfg {
1540
3510
  item_id: UInt16Type
1541
3511
  }
1542
- export interface salt {
1543
- salt: UInt64Type
3512
+ export interface setcivic {
3513
+ account: NameType
3514
+ }
3515
+ export interface setcluster {
3516
+ row: Type.cluster_row
3517
+ }
3518
+ export interface setcoords {
3519
+ entity_id: UInt64Type
3520
+ x: Int64Type
3521
+ y: Int64Type
3522
+ }
3523
+ export interface setdeadline {
3524
+ deadline: UInt32Type
3525
+ }
3526
+ export interface setinfburn {
3527
+ bps: UInt16Type
3528
+ }
3529
+ export interface setinfd1 {
3530
+ d1: UInt32Type
3531
+ }
3532
+ export interface setinfdemand {
3533
+ peak: UInt64Type
3534
+ base: UInt64Type
3535
+ floor: UInt64Type
3536
+ }
3537
+ export interface setinfmint {
3538
+ category: UInt8Type
3539
+ tier: UInt8Type
3540
+ threshold: UInt64Type
3541
+ }
3542
+ export interface setinfweight {
3543
+ category: UInt8Type
3544
+ tier: UInt8Type
3545
+ weight_fp: UInt64Type
3546
+ }
3547
+ export interface setnextid {
3548
+ next_id: UInt64Type
1544
3549
  }
1545
3550
  export interface setnftcfg {
1546
3551
  item_id: UInt16Type
1547
3552
  template_id: Int32Type
1548
3553
  schema_name: NameType
1549
3554
  }
1550
- export interface spawncargo {
3555
+ export interface setthreshold {
3556
+ threshold: UInt8Type
3557
+ }
3558
+ export interface settleballot {
3559
+ ballot_id: UInt64Type
3560
+ max_pages: UInt32Type
3561
+ }
3562
+ export interface setunwrapmin {
3563
+ asset_id: UInt64Type
3564
+ }
3565
+ export interface setwrapcost {
3566
+ item_type: UInt8Type
3567
+ tier: UInt8Type
3568
+ amount: UInt64Type
3569
+ }
3570
+ export interface setwrapfee {
3571
+ fee_pct: UInt16Type
3572
+ fee_account: NameType
3573
+ }
3574
+ export interface shuttle {
3575
+ carrier: UInt64Type
3576
+ from_id: UInt64Type
3577
+ to_id: UInt64Type
3578
+ items: Type.cargo_item[]
3579
+ }
3580
+ export interface stowcargo {
3581
+ owner: NameType
1551
3582
  entity_id: UInt64Type
1552
- item_id: UInt64Type
3583
+ nexus_id: UInt64Type
3584
+ cargo_id: UInt64Type
1553
3585
  quantity: UInt64Type
1554
3586
  }
1555
- export interface spawnpacked {
3587
+ export interface stowentity {
3588
+ owner: NameType
1556
3589
  entity_id: UInt64Type
1557
- item_id: UInt16Type
1558
- hull_stats: UInt64Type
1559
- installed: Type.packed_module[]
3590
+ nexus_id: UInt64Type
1560
3591
  }
1561
- export interface spawnseeded {
3592
+ export interface swapmodule {
1562
3593
  entity_id: UInt64Type
1563
- item_id: UInt64Type
1564
- quantity: UInt64Type
1565
- stats: UInt64Type
3594
+ module_index: UInt8Type
3595
+ module_ref: Type.cargo_ref
1566
3596
  }
1567
- export interface transfer {
1568
- source_type: NameType
1569
- source_id: UInt64Type
1570
- dest_type: NameType
1571
- dest_id: UInt64Type
1572
- items: Type.cargo_item[]
3597
+ export interface swaptile {
3598
+ hub_id: UInt64Type
3599
+ a_gx: Int8Type
3600
+ a_gy: Int8Type
3601
+ b_gx: Int8Type
3602
+ b_gy: Int8Type
3603
+ }
3604
+ export interface transit {
3605
+ id: UInt64Type
3606
+ ax: Int64Type
3607
+ ay: Int64Type
3608
+ bx: Int64Type
3609
+ by: Int64Type
1573
3610
  }
1574
3611
  export interface travel {
1575
- entity_type: NameType
1576
3612
  id: UInt64Type
1577
3613
  x: Int64Type
1578
3614
  y: Int64Type
1579
3615
  recharge: boolean
1580
3616
  }
3617
+ export interface travelplan {
3618
+ entities: Type.entity_ref[]
3619
+ waypoints: Type.route_waypoint[]
3620
+ recharge: boolean
3621
+ }
1581
3622
  export interface undeploy {
1582
- host_type: NameType
1583
3623
  host_id: UInt64Type
1584
- target_type: NameType
1585
3624
  target_id: UInt64Type
1586
3625
  }
3626
+ export interface unload {
3627
+ id: UInt64Type
3628
+ to_id: UInt64Type
3629
+ items: Type.cargo_item[]
3630
+ }
3631
+ export interface upgrade {
3632
+ builder_id: UInt64Type
3633
+ target_id: UInt64Type
3634
+ target_item_id: UInt16Type
3635
+ inputs: Type.cargo_item[]
3636
+ slot?: UInt8Type
3637
+ }
3638
+ export interface voteready {
3639
+ max_pages: UInt32Type
3640
+ }
1587
3641
  export interface warp {
1588
- entity_type: NameType
1589
3642
  id: UInt64Type
1590
3643
  x: Int64Type
1591
3644
  y: Int64Type
1592
3645
  }
1593
3646
  export interface wipe {}
1594
- export interface wipesequence {}
1595
- export interface wrap {
1596
- owner: NameType
1597
- entity_type: NameType
1598
- entity_id: UInt64Type
1599
- items: Type.cargo_item[]
1600
- }
1601
- export interface wrapentity {
1602
- entity_type: NameType
1603
- entity_id: UInt64Type
1604
- }
1605
3647
  }
1606
3648
  export interface ActionNameParams {
3649
+ abandonplot: ActionParams.abandonplot
3650
+ addcontrib: ActionParams.addcontrib
1607
3651
  addmodule: ActionParams.addmodule
1608
3652
  addnexus: ActionParams.addnexus
1609
- advance: ActionParams.advance
3653
+ addoracle: ActionParams.addoracle
1610
3654
  blend: ActionParams.blend
3655
+ buildjob: ActionParams.buildjob
3656
+ buildplot: ActionParams.buildplot
1611
3657
  cancel: ActionParams.cancel
3658
+ cancelbuild: ActionParams.cancelbuild
3659
+ cancelcivic: ActionParams.cancelcivic
3660
+ castballot: ActionParams.castballot
3661
+ charterready: ActionParams.charterready
3662
+ civicshuttle: ActionParams.civicshuttle
3663
+ claimbuild: ActionParams.claimbuild
3664
+ claimcraft: ActionParams.claimcraft
3665
+ claimplot: ActionParams.claimplot
1612
3666
  claimstarter: ActionParams.claimstarter
1613
3667
  cleanrsvp: ActionParams.cleanrsvp
1614
3668
  cleartable: ActionParams.cleartable
3669
+ closeepoch: ActionParams.closeepoch
3670
+ clustercraft: ActionParams.clustercraft
1615
3671
  commit: ActionParams.commit
1616
3672
  configlog: ActionParams.configlog
1617
3673
  craft: ActionParams.craft
1618
- createentity: ActionParams.createentity
3674
+ craftjob: ActionParams.craftjob
3675
+ dbgcredit: ActionParams.dbgcredit
3676
+ dbgmandate: ActionParams.dbgmandate
3677
+ dbgoldjobs: ActionParams.dbgoldjobs
3678
+ dbgpagerows: ActionParams.dbgpagerows
3679
+ dbgpurge: ActionParams.dbgpurge
3680
+ dbgseats: ActionParams.dbgseats
3681
+ delentity: ActionParams.delentity
1619
3682
  demolish: ActionParams.demolish
1620
3683
  deploy: ActionParams.deploy
3684
+ depotstore: ActionParams.depotstore
3685
+ depottake: ActionParams.depottake
1621
3686
  descentity: ActionParams.descentity
1622
3687
  enable: ActionParams.enable
3688
+ fixcargomass: ActionParams.fixcargomass
3689
+ fixitemids: ActionParams.fixitemids
3690
+ forcereveal: ActionParams.forcereveal
3691
+ found: ActionParams.found
1623
3692
  gather: ActionParams.gather
3693
+ gatherplan: ActionParams.gatherplan
3694
+ genesisfleet: ActionParams.genesisfleet
3695
+ genesisworld: ActionParams.genesisworld
3696
+ getbuildjobs: ActionParams.getbuildjobs
3697
+ getcharter: ActionParams.getcharter
3698
+ getcharttree: ActionParams.getcharttree
3699
+ getchrtready: ActionParams.getchrtready
3700
+ getcluster: ActionParams.getcluster
1624
3701
  getconfig: ActionParams.getconfig
3702
+ getcraftjobs: ActionParams.getcraftjobs
3703
+ getdecomp: ActionParams.getdecomp
3704
+ getdemand: ActionParams.getdemand
3705
+ getdeposit: ActionParams.getdeposit
3706
+ getdepot: ActionParams.getdepot
3707
+ getdistance: ActionParams.getdistance
1625
3708
  geteligible: ActionParams.geteligible
3709
+ getentcls: ActionParams.getentcls
1626
3710
  getentities: ActionParams.getentities
1627
3711
  getentity: ActionParams.getentity
3712
+ getfootprint: ActionParams.getfootprint
3713
+ getinfdecay: ActionParams.getinfdecay
3714
+ getinfluence: ActionParams.getinfluence
3715
+ getinfvalue: ActionParams.getinfvalue
1628
3716
  getitemdata: ActionParams.getitemdata
1629
3717
  getitemids: ActionParams.getitemids
1630
3718
  getitems: ActionParams.getitems
3719
+ getitemtype: ActionParams.getitemtype
1631
3720
  getitemtypes: ActionParams.getitemtypes
3721
+ getkindmeta: ActionParams.getkindmeta
1632
3722
  getlocation: ActionParams.getlocation
1633
3723
  getlocdata: ActionParams.getlocdata
3724
+ getmintcfg: ActionParams.getmintcfg
3725
+ getmintready: ActionParams.getmintready
1634
3726
  getmodtypes: ActionParams.getmodtypes
1635
3727
  getmodules: ActionParams.getmodules
1636
3728
  getnearby: ActionParams.getnearby
3729
+ getnftbase: ActionParams.getnftbase
1637
3730
  getnftinfo: ActionParams.getnftinfo
1638
3731
  getplayer: ActionParams.getplayer
3732
+ getpool: ActionParams.getpool
3733
+ getpools: ActionParams.getpools
3734
+ getprojstate: ActionParams.getprojstate
1639
3735
  getrecipe: ActionParams.getrecipe
1640
3736
  getrecipes: ActionParams.getrecipes
1641
3737
  getrescats: ActionParams.getrescats
@@ -1644,53 +3740,135 @@ export interface ActionNameParams {
1644
3740
  getslots: ActionParams.getslots
1645
3741
  getstratum: ActionParams.getstratum
1646
3742
  getsummaries: ActionParams.getsummaries
3743
+ getvoteready: ActionParams.getvoteready
3744
+ getvotes: ActionParams.getvotes
3745
+ getwormhole: ActionParams.getwormhole
3746
+ grouptransit: ActionParams.grouptransit
1647
3747
  grouptravel: ActionParams.grouptravel
1648
3748
  hash: ActionParams.hash
1649
3749
  hash512: ActionParams.hash512
1650
- init: ActionParams.init
3750
+ importcargo: ActionParams.importcargo
3751
+ importcell: ActionParams.importcell
3752
+ importentity: ActionParams.importentity
3753
+ importepoch: ActionParams.importepoch
3754
+ importgroup: ActionParams.importgroup
3755
+ importnftcfg: ActionParams.importnftcfg
3756
+ importplayer: ActionParams.importplayer
3757
+ importreserve: ActionParams.importreserve
3758
+ importstate: ActionParams.importstate
1651
3759
  join: ActionParams.join
3760
+ launch: ActionParams.launch
3761
+ load: ActionParams.load
3762
+ migratejobs: ActionParams.migratejobs
3763
+ mintready: ActionParams.mintready
3764
+ movetile: ActionParams.movetile
3765
+ naturalize: ActionParams.naturalize
3766
+ nftimgurl: ActionParams.nftimgurl
1652
3767
  notify: ActionParams.notify
3768
+ placecargo: ActionParams.placecargo
3769
+ placeentity: ActionParams.placeentity
1653
3770
  recharge: ActionParams.recharge
3771
+ refrshentity: ActionParams.refrshentity
3772
+ removeoracle: ActionParams.removeoracle
3773
+ rename: ActionParams.rename
1654
3774
  resolve: ActionParams.resolve
3775
+ resolveall: ActionParams.resolveall
3776
+ resolveearly: ActionParams.resolveearly
3777
+ reveal: ActionParams.reveal
1655
3778
  rmmodule: ActionParams.rmmodule
1656
3779
  rmnftcfg: ActionParams.rmnftcfg
1657
- salt: ActionParams.salt
3780
+ setcivic: ActionParams.setcivic
3781
+ setcluster: ActionParams.setcluster
3782
+ setcoords: ActionParams.setcoords
3783
+ setdeadline: ActionParams.setdeadline
3784
+ setinfburn: ActionParams.setinfburn
3785
+ setinfd1: ActionParams.setinfd1
3786
+ setinfdemand: ActionParams.setinfdemand
3787
+ setinfmint: ActionParams.setinfmint
3788
+ setinfweight: ActionParams.setinfweight
3789
+ setnextid: ActionParams.setnextid
1658
3790
  setnftcfg: ActionParams.setnftcfg
1659
- spawncargo: ActionParams.spawncargo
1660
- spawnpacked: ActionParams.spawnpacked
1661
- spawnseeded: ActionParams.spawnseeded
1662
- transfer: ActionParams.transfer
3791
+ setthreshold: ActionParams.setthreshold
3792
+ settleballot: ActionParams.settleballot
3793
+ setunwrapmin: ActionParams.setunwrapmin
3794
+ setwrapcost: ActionParams.setwrapcost
3795
+ setwrapfee: ActionParams.setwrapfee
3796
+ shuttle: ActionParams.shuttle
3797
+ stowcargo: ActionParams.stowcargo
3798
+ stowentity: ActionParams.stowentity
3799
+ swapmodule: ActionParams.swapmodule
3800
+ swaptile: ActionParams.swaptile
3801
+ transit: ActionParams.transit
1663
3802
  travel: ActionParams.travel
3803
+ travelplan: ActionParams.travelplan
1664
3804
  undeploy: ActionParams.undeploy
3805
+ unload: ActionParams.unload
3806
+ upgrade: ActionParams.upgrade
3807
+ voteready: ActionParams.voteready
1665
3808
  warp: ActionParams.warp
1666
3809
  wipe: ActionParams.wipe
1667
- wipesequence: ActionParams.wipesequence
1668
- wrap: ActionParams.wrap
1669
- wrapentity: ActionParams.wrapentity
1670
3810
  }
1671
3811
  export type ActionNames = keyof ActionNameParams
1672
3812
  export interface ActionReturnValues {
3813
+ abandonplot: Types.task_results
3814
+ addcontrib: Types.task_results
3815
+ buildjob: Types.booking_receipt
3816
+ buildplot: Types.task_results
1673
3817
  cancel: Types.cancel_results
3818
+ cancelbuild: Types.task_results
3819
+ cancelcivic: Types.cancel_results
3820
+ civicshuttle: Types.task_results
3821
+ claimcraft: Types.task_results
3822
+ claimplot: Types.task_results
3823
+ clustercraft: Types.task_results
1674
3824
  craft: Types.task_results
3825
+ craftjob: Types.booking_receipt
1675
3826
  demolish: Types.task_results
1676
3827
  deploy: Types.task_results
3828
+ depotstore: Types.task_results
3829
+ depottake: Types.task_results
1677
3830
  descentity: string
1678
3831
  gather: Types.task_results
3832
+ gatherplan: Types.task_results
3833
+ getbuildjobs: Types.buildjobs_result
3834
+ getcharter: Types.charter_result
3835
+ getcharttree: Types.charter_tree_result
3836
+ getchrtready: Types.charterready_result
3837
+ getcluster: Types.cluster_row
1679
3838
  getconfig: Types.game_config
3839
+ getcraftjobs: Types.craftjobs_result
3840
+ getdecomp: Types.decomp_result
3841
+ getdemand: Types.demand_result
3842
+ getdeposit: ExtendedAsset
3843
+ getdepot: Types.depot_view
3844
+ getdistance: UInt64
1680
3845
  geteligible: UInt16[]
3846
+ getentcls: Types.enum_result
1681
3847
  getentities: Types.entity_info[]
1682
3848
  getentity: Types.entity_info
3849
+ getfootprint: Types.footprint_result
3850
+ getinfdecay: UInt64
3851
+ getinfluence: Types.influence_totals
3852
+ getinfvalue: Types.infvalue_result
1683
3853
  getitemdata: Types.itemdata_result
1684
3854
  getitemids: Types.item_ids_result
1685
3855
  getitems: Types.items_info
3856
+ getitemtype: UInt8
1686
3857
  getitemtypes: Types.enum_result
3858
+ getkindmeta: Types.kind_meta_result
1687
3859
  getlocation: Types.location_info
1688
3860
  getlocdata: Types.location_derived
3861
+ getmintcfg: Types.mintcfg_result
3862
+ getmintready: UInt32
1689
3863
  getmodtypes: Types.enum_result
1690
3864
  getmodules: Types.modules_result
1691
3865
  getnearby: Types.nearby_info
3866
+ getnftbase: string[]
1692
3867
  getnftinfo: Types.nftinfo_result
1693
3868
  getplayer: Types.player_info
3869
+ getpool: Types.pool_pair_result
3870
+ getpools: Types.pools_result
3871
+ getprojstate: Types.projected_state
1694
3872
  getrecipe: Types.recipes_result
1695
3873
  getrecipes: Types.recipes_result
1696
3874
  getrescats: Types.enum_result
@@ -1699,17 +3877,34 @@ export interface ActionReturnValues {
1699
3877
  getslots: Types.entity_layouts_result
1700
3878
  getstratum: Types.stratum_data
1701
3879
  getsummaries: Types.entity_summary[]
3880
+ getvoteready: UInt32
3881
+ getvotes: Types.vote_result
3882
+ getwormhole: Types.wormhole_info
3883
+ grouptransit: Types.task_results
1702
3884
  grouptravel: Types.task_results
1703
3885
  hash: Checksum256
1704
3886
  hash512: Checksum512
3887
+ launch: Types.task_results
3888
+ load: Types.task_results
3889
+ movetile: Types.task_results
3890
+ nftimgurl: string
3891
+ placecargo: Types.task_results
3892
+ placeentity: Types.task_results
1705
3893
  recharge: Types.task_results
1706
3894
  resolve: Types.resolve_results
1707
- transfer: Types.task_results
3895
+ resolveall: Types.resolveall_results
3896
+ resolveearly: Types.resolve_results
3897
+ shuttle: Types.task_results
3898
+ stowcargo: Types.task_results
3899
+ stowentity: Types.task_results
3900
+ swaptile: Types.task_results
3901
+ transit: Types.task_results
1708
3902
  travel: Types.task_results
3903
+ travelplan: Types.task_results
1709
3904
  undeploy: Types.task_results
3905
+ unload: Types.task_results
3906
+ upgrade: Types.task_results
1710
3907
  warp: Types.task_results
1711
- wrap: Types.task_results
1712
- wrapentity: Types.task_results
1713
3908
  }
1714
3909
  export type ActionReturnNames = keyof ActionReturnValues
1715
3910
  export class Contract extends BaseContract {
@@ -1717,7 +3912,7 @@ export class Contract extends BaseContract {
1717
3912
  super({
1718
3913
  client: args.client,
1719
3914
  abi: abi,
1720
- account: args.account || Name.from('shipload.gm'),
3915
+ account: args.account || Name.from('eon.shipload'),
1721
3916
  })
1722
3917
  }
1723
3918
  action<T extends ActionNames>(