@shipload/sdk 2.0.0-rc6 → 2.0.0-rc7

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.
package/lib/shipload.m.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from 'tslib';
2
- import { Blob, ABI, Struct, Name, UInt64, Checksum256, UInt32, TimePointSec, UInt8, TimePoint, UInt16, Int64, Bytes, Checksum512, APIClient } from '@wharfkit/antelope';
2
+ import { Blob, ABI, Struct, Name, UInt64, Checksum256, UInt32, TimePointSec, UInt8, UInt16, TimePoint, Int64, Bytes, Checksum512, APIClient } from '@wharfkit/antelope';
3
3
  import ContractKit, { Contract as Contract$2 } from '@wharfkit/contract';
4
4
 
5
5
  const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAA0KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAQEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlnYW1lX21ldGEABARuYW1lBnN0cmluZwtkZXNjcmlwdGlvbgZzdHJpbmcDdXJsBnN0cmluZwd2ZXJzaW9uBnN0cmluZwhnYW1lX3JvdwAECGNvbnRyYWN0BG5hbWUGY29uZmlnC2dhbWVfY29uZmlnBG1ldGEJZ2FtZV9tZXRhBXN0YXRlCmdhbWVfc3RhdGUKZ2FtZV9zdGF0ZQABB2VuYWJsZWQEYm9vbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAHAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZfMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2FibGUgcGxhdGZvcm0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgcGxhdGZvcm0gY29udHJhY3QuAICShql4zFQKZW5hYmxlZ2FtZfwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZWdhbWUKc3VtbWFyeTogJ0VuYWJsZS9kaXNiYWJsZSBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3Qu4KepkqI0NV0MZm91bmRjb21wYW55gwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm91bmRjb21wYW55CnN1bW1hcnk6ICdGb3VuZCBhIG5ldyBjb21wYW55JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRm91bmQgYSBuZXcgY29tcGFueSBpbiB0aGUgU2hpcGxvYWQgcGxhdGZvcm0gY29udHJhY3QuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AgJKGqWxS1Qp1cGRhdGVnYW1ljQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlZ2FtZQpzdW1tYXJ5OiAnVXBkYXRlIGdhbWUgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0DAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAKykYQNpNjQAAAhnYW1lX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
@@ -205,10 +205,31 @@ var platform = /*#__PURE__*/Object.freeze({
205
205
  Contract: Contract$1
206
206
  });
207
207
 
208
- const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhSB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgZjYW5jZWwAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAZ1aW50NjQOY2FuY2VsX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUPY2FuY2VsbGVkX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KY2FyZ29faXRlbQADB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgRzZWVkB3VpbnQ2ND8JY2FyZ29fcm93AAUCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAEA1zaGlwX2h1bGxtYXNzBnVpbnQzMg1zaGlwX2NhcGFjaXR5BnVpbnQzMgtzaGlwX2VuZXJneQZ1aW50MTYGc2hpcF96BnVpbnQxNgxzaGlwX2VuZ2luZXMObW92ZW1lbnRfc3RhdHMOc2hpcF9nZW5lcmF0b3IMZW5lcmd5X3N0YXRzDHNoaXBfbG9hZGVycwxsb2FkZXJfc3RhdHMOc2hpcF9leHRyYWN0b3IPZXh0cmFjdG9yX3N0YXRzCXNoaXBfd2FycAp3YXJwX3N0YXRzDHNoaXBfY3JhZnRlcg1jcmFmdGVyX3N0YXRzEndhcmVob3VzZV9jYXBhY2l0eQZ1aW50MzILd2FyZWhvdXNlX3oGdWludDE2EXdhcmVob3VzZV9sb2FkZXJzDGxvYWRlcl9zdGF0cxJjb250YWluZXJfaHVsbG1hc3MGdWludDMyEmNvbnRhaW5lcl9jYXBhY2l0eQZ1aW50MzILY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABcEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPwplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10HZXh0cmFjdAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg9leHRyYWN0b3Jfc3RhdHMABQRyYXRlBnVpbnQxNgVkcmFpbgZ1aW50MTYKZWZmaWNpZW5jeQZ1aW50MTYFZGVwdGgGdWludDE2BWRyaWxsBnVpbnQxNgtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdCWdldGNvbmZpZwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIZ2V0aXRlbXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCWdldHBsYXllcgABB2FjY291bnQEbmFtZQpnZXRzdGFydGVyAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMJZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/CHNjaGVkdWxlCXNjaGVkdWxlPwpzcGF3bmNhcmdvAAMJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc3RhcnRlcl9pbmZvAAEEc2hpcAtlbnRpdHlfaW5mbwlzdGF0ZV9yb3cABgdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNhbHQGdWludDY0BXNoaXBzBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABAdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABgtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBnRyYXZlbAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAEAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EXN0YXJ0ZXJfaW5mb190eXBlDHN0YXJ0ZXJfaW5mbxBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnDXdhcmVob3VzZV9yb3cACAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDGxvYWRlcl9zdGF0cwhzY2hlZHVsZQlzY2hlZHVsZT8Ed2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAACUAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAESFpkEGY2FuY2VsxwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuCgotLS0AAKgb32lURAljbGVhbnJzdnAAAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAYDQytyZFCWNvbmZpZ2xvZwAAAAAAgLzMRQVjcmFmdADgs8tTqWzURQxjcmVhdGVlbnRpdHkAAAAAAHgaq0oGZGVwbG95AAAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAACAjc3NXB2V4dHJhY3ShAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBleHRyYWN0CnN1bW1hcnk6ICdFeHRyYWN0IHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXh0cmFjdCByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGV4dHJhY3RhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYW4gZXh0cmFjdGlvbiB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBleHRyYWN0b3Igc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZwAAsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLgDAVfmajLNiCmdldHN0YXJ0ZXKFAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdGFydGVyCnN1bW1hcnk6ICdHZXQgc3RhcnRlciBzaGlwIGFuZCBiYWxhbmNlIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBzdGFydGVyIHNoaXAgc3RhdHMgYW5kIGluaXRpYWwgYmFsYW5jZSBhIG5ldyBwbGF5ZXIgd291bGQgcmVjZWl2ZSB1cG9uIGpvaW5pbmcuIFVzZWQgZm9yIG9uYm9hcmRpbmcgVUkgdG8gZGlzcGxheSB3aGF0IHBsYXllcnMgd2lsbCBnZXQgYmVmb3JlIHRoZXkgcmVnaXN0ZXIuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAXAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AwFX5moyzYgxzdGFydGVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
208
+ const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhWCWFkZG1vZHVsZQAFC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgPbW9kdWxlX2NhcmdvX2lkBnVpbnQ2NA90YXJnZXRfY2FyZ29faWQGdWludDY0B2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgVibGVuZAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10GY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIEc2VlZAd1aW50NjQ/B21vZHVsZXMObW9kdWxlX2VudHJ5W10JY2FyZ29fcm93AAYCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10KY2FyZ29fc2VlZAACB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMABhJ3YXJlaG91c2VfY2FwYWNpdHkGdWludDMyC3dhcmVob3VzZV96BnVpbnQxNhF3YXJlaG91c2VfbG9hZGVycwxsb2FkZXJfc3RhdHMSY29udGFpbmVyX2h1bGxtYXNzBnVpbnQzMhJjb250YWluZXJfY2FwYWNpdHkGdWludDMyC2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8IY2FwYWNpdHkHdWludDMyPwlleHRyYWN0b3IQZXh0cmFjdG9yX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdB2V4dHJhY3QABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIPZXh0cmFjdG9yX3N0YXRzAAQEcmF0ZQZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVkcmlsbAZ1aW50MTYLZ2FtZV9jb25maWcAAwd2ZXJzaW9uBnVpbnQzMghkZWZhdWx0cw9lbnRpdHlfZGVmYXVsdHMFaXRlbXMKaXRlbV9kZWZbXQlnZXRjb25maWcAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CGdldGl0ZW1zAAALZ2V0bG9jYXRpb24AAgF4BWludDY0AXkFaW50NjQKZ2V0bG9jZGF0YQACAXgFaW50NjQBeQVpbnQ2NAlnZXRuZWFyYnkAAwtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQLY2FyZ29fc2VlZD8ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYIcm1tb2R1bGUABAtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D3RhcmdldF9jYXJnb19pZAZ1aW50NjQEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cAEAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8GZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8JZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10Ic2NoZWR1bGUJc2NoZWR1bGU/CnNwYXduY2FyZ28AAwllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAtzcGF3bnNlZWRlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAEB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgR0YXNrAAgEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAJCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXQh0cmFuc2ZlcgAGC3NvdXJjZV90eXBlBG5hbWUJc291cmNlX2lkBnVpbnQ2NAlkZXN0X3R5cGUEbmFtZQdkZXN0X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGdHJhdmVsAAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAMCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZw13YXJlaG91c2Vfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIY2FwYWNpdHkGdWludDMyCWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycwxsb2FkZXJfc3RhdHMIc2NoZWR1bGUJc2NoZWR1bGU/BHdhcnAABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAMd2lwZXNlcXVlbmNlAAAoAABQUScqUzIJYWRkbW9kdWxlAAAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZAAAAAAARIWmQQZjYW5jZWzHAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4KCi0tLQAAqBvfaVRECWNsZWFucnN2cAAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAABgNDK3JkUJY29uZmlnbG9nAAAAAACAvMxFBWNyYWZ0AOCzy1OpbNRFDGNyZWF0ZWVudGl0eQAAAAAAeBqrSgZkZXBsb3kAAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAICNzc1cHZXh0cmFjdKEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnAACwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AJnXZIBqzYgtnZXRsb2NhdGlvbuICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2F0aW9uCnN1bW1hcnk6ICdHZXQgbG9jYXRpb24gaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiBpbmNsdWRpbmcgd2hldGhlciBhIHN5c3RlbSBleGlzdHMsIGFuZCBmb3IgZWFjaCBpdGVtOiBwcmljZSwgc3VwcGx5LCByYXJpdHkgbXVsdGlwbGllciwgYW5kIGxvY2F0aW9uIG11bHRpcGxpZXIuAIDJJiEas2IKZ2V0bG9jZGF0Yf4CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2RhdGEKc3VtbWFyeTogJ0dldCBkZXJpdmVkIGxvY2F0aW9uIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgZGVyaXZlZCBsb2NhdGlvbiBkYXRhIGluY2x1ZGluZyBzdGF0aWMgcHJvcGVydGllcyAodHlwZSwgZGlmZmljdWx0eSwgc2VlZHMpIGZyb20gdGhlIGdhbWUgc2VlZCBhbmQgZXBvY2gtc3BlY2lmaWMgcHJvcGVydGllcyAoYWN0aXZlLCBzZWVkcykgZnJvbSB0aGUgY3VycmVudCBlcG9jaCBzZWVkLgAA8OcaNbNiCWdldG5lYXJied4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5lYXJieQpzdW1tYXJ5OiAnR2V0IG5lYXJieSByZWFjaGFibGUgc3lzdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBuZWFyYnkgc3lzdGVtcyByZWFjaGFibGUgYnkgYW4gZW50aXR5IGZyb20gaXRzIHByb2plY3RlZCBsb2NhdGlvbi4gUmV0dXJucyBjdXJyZW50IHN0YXRlICh3aXRoIGNvbXBsZXRlZCB0YXNrcyByZXNvbHZlZCksIHByb2plY3RlZCBzdGF0ZSAoYWZ0ZXIgYWxsIHNjaGVkdWxlZCB0YXNrcyksIGFuZCBhIGxpc3Qgb2YgcmVhY2hhYmxlIHN5c3RlbXMgd2l0aCBkaXN0YW5jZSwgZW5lcmd5IGNvc3QsIGZsaWdodCB0aW1lLCBhbmQgbWFya2V0IGluZm9ybWF0aW9uLgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAq6kSlvAhybW1vZHVsZQAAAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAJJKSuHJTcULc3Bhd25zZWVkZWQAAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAWAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
209
209
  const abi = ABI.from(abiBlob);
210
210
  var Types;
211
211
  (function (Types) {
212
+ let addmodule = class addmodule extends Struct {
213
+ };
214
+ __decorate([
215
+ Struct.field(Name)
216
+ ], addmodule.prototype, "entity_type", void 0);
217
+ __decorate([
218
+ Struct.field(UInt64)
219
+ ], addmodule.prototype, "entity_id", void 0);
220
+ __decorate([
221
+ Struct.field(UInt8)
222
+ ], addmodule.prototype, "module_index", void 0);
223
+ __decorate([
224
+ Struct.field(UInt64)
225
+ ], addmodule.prototype, "module_cargo_id", void 0);
226
+ __decorate([
227
+ Struct.field(UInt64)
228
+ ], addmodule.prototype, "target_cargo_id", void 0);
229
+ addmodule = __decorate([
230
+ Struct.type('addmodule')
231
+ ], addmodule);
232
+ Types.addmodule = addmodule;
212
233
  let advance = class advance extends Struct {
213
234
  };
214
235
  __decorate([
@@ -221,6 +242,63 @@ var Types;
221
242
  Struct.type('advance')
222
243
  ], advance);
223
244
  Types.advance = advance;
245
+ let cargo_seed = class cargo_seed extends Struct {
246
+ };
247
+ __decorate([
248
+ Struct.field(UInt16)
249
+ ], cargo_seed.prototype, "item_id", void 0);
250
+ __decorate([
251
+ Struct.field(UInt64)
252
+ ], cargo_seed.prototype, "seed", void 0);
253
+ cargo_seed = __decorate([
254
+ Struct.type('cargo_seed')
255
+ ], cargo_seed);
256
+ Types.cargo_seed = cargo_seed;
257
+ let module_entry = class module_entry extends Struct {
258
+ };
259
+ __decorate([
260
+ Struct.field(UInt8)
261
+ ], module_entry.prototype, "type", void 0);
262
+ __decorate([
263
+ Struct.field(cargo_seed, { optional: true })
264
+ ], module_entry.prototype, "installed", void 0);
265
+ module_entry = __decorate([
266
+ Struct.type('module_entry')
267
+ ], module_entry);
268
+ Types.module_entry = module_entry;
269
+ let cargo_item = class cargo_item extends Struct {
270
+ };
271
+ __decorate([
272
+ Struct.field(UInt16)
273
+ ], cargo_item.prototype, "item_id", void 0);
274
+ __decorate([
275
+ Struct.field(UInt32)
276
+ ], cargo_item.prototype, "quantity", void 0);
277
+ __decorate([
278
+ Struct.field(UInt64, { optional: true })
279
+ ], cargo_item.prototype, "seed", void 0);
280
+ __decorate([
281
+ Struct.field(module_entry, { array: true })
282
+ ], cargo_item.prototype, "modules", void 0);
283
+ cargo_item = __decorate([
284
+ Struct.type('cargo_item')
285
+ ], cargo_item);
286
+ Types.cargo_item = cargo_item;
287
+ let blend = class blend extends Struct {
288
+ };
289
+ __decorate([
290
+ Struct.field(Name)
291
+ ], blend.prototype, "entity_type", void 0);
292
+ __decorate([
293
+ Struct.field(UInt64)
294
+ ], blend.prototype, "id", void 0);
295
+ __decorate([
296
+ Struct.field(cargo_item, { array: true })
297
+ ], blend.prototype, "inputs", void 0);
298
+ blend = __decorate([
299
+ Struct.type('blend')
300
+ ], blend);
301
+ Types.blend = blend;
224
302
  let cancel = class cancel extends Struct {
225
303
  };
226
304
  __decorate([
@@ -272,21 +350,6 @@ var Types;
272
350
  Struct.type('cancel_results')
273
351
  ], cancel_results);
274
352
  Types.cancel_results = cancel_results;
275
- let cargo_item = class cargo_item extends Struct {
276
- };
277
- __decorate([
278
- Struct.field(UInt16)
279
- ], cargo_item.prototype, "item_id", void 0);
280
- __decorate([
281
- Struct.field(UInt32)
282
- ], cargo_item.prototype, "quantity", void 0);
283
- __decorate([
284
- Struct.field(UInt64, { optional: true })
285
- ], cargo_item.prototype, "seed", void 0);
286
- cargo_item = __decorate([
287
- Struct.type('cargo_item')
288
- ], cargo_item);
289
- Types.cargo_item = cargo_item;
290
353
  let cargo_row = class cargo_row extends Struct {
291
354
  };
292
355
  __decorate([
@@ -304,6 +367,9 @@ var Types;
304
367
  __decorate([
305
368
  Struct.field(UInt64)
306
369
  ], cargo_row.prototype, "seed", void 0);
370
+ __decorate([
371
+ Struct.field(module_entry, { array: true })
372
+ ], cargo_row.prototype, "modules", void 0);
307
373
  cargo_row = __decorate([
308
374
  Struct.type('cargo_row')
309
375
  ], cargo_row);
@@ -344,30 +410,6 @@ var Types;
344
410
  Struct.type('commit')
345
411
  ], commit);
346
412
  Types.commit = commit;
347
- let movement_stats = class movement_stats extends Struct {
348
- };
349
- __decorate([
350
- Struct.field(UInt32)
351
- ], movement_stats.prototype, "thrust", void 0);
352
- __decorate([
353
- Struct.field(UInt16)
354
- ], movement_stats.prototype, "drain", void 0);
355
- movement_stats = __decorate([
356
- Struct.type('movement_stats')
357
- ], movement_stats);
358
- Types.movement_stats = movement_stats;
359
- let energy_stats = class energy_stats extends Struct {
360
- };
361
- __decorate([
362
- Struct.field(UInt16)
363
- ], energy_stats.prototype, "capacity", void 0);
364
- __decorate([
365
- Struct.field(UInt16)
366
- ], energy_stats.prototype, "recharge", void 0);
367
- energy_stats = __decorate([
368
- Struct.type('energy_stats')
369
- ], energy_stats);
370
- Types.energy_stats = energy_stats;
371
413
  let loader_stats = class loader_stats extends Struct {
372
414
  };
373
415
  __decorate([
@@ -383,80 +425,8 @@ var Types;
383
425
  Struct.type('loader_stats')
384
426
  ], loader_stats);
385
427
  Types.loader_stats = loader_stats;
386
- let extractor_stats = class extractor_stats extends Struct {
387
- };
388
- __decorate([
389
- Struct.field(UInt16)
390
- ], extractor_stats.prototype, "rate", void 0);
391
- __decorate([
392
- Struct.field(UInt16)
393
- ], extractor_stats.prototype, "drain", void 0);
394
- __decorate([
395
- Struct.field(UInt16)
396
- ], extractor_stats.prototype, "efficiency", void 0);
397
- __decorate([
398
- Struct.field(UInt16)
399
- ], extractor_stats.prototype, "depth", void 0);
400
- __decorate([
401
- Struct.field(UInt16)
402
- ], extractor_stats.prototype, "drill", void 0);
403
- extractor_stats = __decorate([
404
- Struct.type('extractor_stats')
405
- ], extractor_stats);
406
- Types.extractor_stats = extractor_stats;
407
- let warp_stats = class warp_stats extends Struct {
408
- };
409
- __decorate([
410
- Struct.field(UInt32)
411
- ], warp_stats.prototype, "range", void 0);
412
- warp_stats = __decorate([
413
- Struct.type('warp_stats')
414
- ], warp_stats);
415
- Types.warp_stats = warp_stats;
416
- let crafter_stats = class crafter_stats extends Struct {
417
- };
418
- __decorate([
419
- Struct.field(UInt16)
420
- ], crafter_stats.prototype, "speed", void 0);
421
- __decorate([
422
- Struct.field(UInt16)
423
- ], crafter_stats.prototype, "drain", void 0);
424
- crafter_stats = __decorate([
425
- Struct.type('crafter_stats')
426
- ], crafter_stats);
427
- Types.crafter_stats = crafter_stats;
428
428
  let entity_defaults = class entity_defaults extends Struct {
429
429
  };
430
- __decorate([
431
- Struct.field(UInt32)
432
- ], entity_defaults.prototype, "ship_hullmass", void 0);
433
- __decorate([
434
- Struct.field(UInt32)
435
- ], entity_defaults.prototype, "ship_capacity", void 0);
436
- __decorate([
437
- Struct.field(UInt16)
438
- ], entity_defaults.prototype, "ship_energy", void 0);
439
- __decorate([
440
- Struct.field(UInt16)
441
- ], entity_defaults.prototype, "ship_z", void 0);
442
- __decorate([
443
- Struct.field(movement_stats)
444
- ], entity_defaults.prototype, "ship_engines", void 0);
445
- __decorate([
446
- Struct.field(energy_stats)
447
- ], entity_defaults.prototype, "ship_generator", void 0);
448
- __decorate([
449
- Struct.field(loader_stats)
450
- ], entity_defaults.prototype, "ship_loaders", void 0);
451
- __decorate([
452
- Struct.field(extractor_stats)
453
- ], entity_defaults.prototype, "ship_extractor", void 0);
454
- __decorate([
455
- Struct.field(warp_stats)
456
- ], entity_defaults.prototype, "ship_warp", void 0);
457
- __decorate([
458
- Struct.field(crafter_stats)
459
- ], entity_defaults.prototype, "ship_crafter", void 0);
460
430
  __decorate([
461
431
  Struct.field(UInt32)
462
432
  ], entity_defaults.prototype, "warehouse_capacity", void 0);
@@ -623,6 +593,18 @@ var Types;
623
593
  Struct.type('craft')
624
594
  ], craft);
625
595
  Types.craft = craft;
596
+ let crafter_stats = class crafter_stats extends Struct {
597
+ };
598
+ __decorate([
599
+ Struct.field(UInt16)
600
+ ], crafter_stats.prototype, "speed", void 0);
601
+ __decorate([
602
+ Struct.field(UInt16)
603
+ ], crafter_stats.prototype, "drain", void 0);
604
+ crafter_stats = __decorate([
605
+ Struct.type('crafter_stats')
606
+ ], crafter_stats);
607
+ Types.crafter_stats = crafter_stats;
626
608
  let createentity = class createentity extends Struct {
627
609
  };
628
610
  __decorate([
@@ -674,6 +656,18 @@ var Types;
674
656
  Struct.type('enable')
675
657
  ], enable);
676
658
  Types.enable = enable;
659
+ let energy_stats = class energy_stats extends Struct {
660
+ };
661
+ __decorate([
662
+ Struct.field(UInt16)
663
+ ], energy_stats.prototype, "capacity", void 0);
664
+ __decorate([
665
+ Struct.field(UInt16)
666
+ ], energy_stats.prototype, "recharge", void 0);
667
+ energy_stats = __decorate([
668
+ Struct.type('energy_stats')
669
+ ], energy_stats);
670
+ Types.energy_stats = energy_stats;
677
671
  let entity_current_state = class entity_current_state extends Struct {
678
672
  };
679
673
  __decorate([
@@ -686,6 +680,45 @@ var Types;
686
680
  Struct.type('entity_current_state')
687
681
  ], entity_current_state);
688
682
  Types.entity_current_state = entity_current_state;
683
+ let movement_stats = class movement_stats extends Struct {
684
+ };
685
+ __decorate([
686
+ Struct.field(UInt32)
687
+ ], movement_stats.prototype, "thrust", void 0);
688
+ __decorate([
689
+ Struct.field(UInt16)
690
+ ], movement_stats.prototype, "drain", void 0);
691
+ movement_stats = __decorate([
692
+ Struct.type('movement_stats')
693
+ ], movement_stats);
694
+ Types.movement_stats = movement_stats;
695
+ let extractor_stats = class extractor_stats extends Struct {
696
+ };
697
+ __decorate([
698
+ Struct.field(UInt16)
699
+ ], extractor_stats.prototype, "rate", void 0);
700
+ __decorate([
701
+ Struct.field(UInt16)
702
+ ], extractor_stats.prototype, "drain", void 0);
703
+ __decorate([
704
+ Struct.field(UInt16)
705
+ ], extractor_stats.prototype, "depth", void 0);
706
+ __decorate([
707
+ Struct.field(UInt16)
708
+ ], extractor_stats.prototype, "drill", void 0);
709
+ extractor_stats = __decorate([
710
+ Struct.type('extractor_stats')
711
+ ], extractor_stats);
712
+ Types.extractor_stats = extractor_stats;
713
+ let warp_stats = class warp_stats extends Struct {
714
+ };
715
+ __decorate([
716
+ Struct.field(UInt32)
717
+ ], warp_stats.prototype, "range", void 0);
718
+ warp_stats = __decorate([
719
+ Struct.type('warp_stats')
720
+ ], warp_stats);
721
+ Types.warp_stats = warp_stats;
689
722
  let entity_info = class entity_info extends Struct {
690
723
  };
691
724
  __decorate([
@@ -923,12 +956,6 @@ var Types;
923
956
  Struct.type('getplayer')
924
957
  ], getplayer);
925
958
  Types.getplayer = getplayer;
926
- let getstarter = class getstarter extends Struct {
927
- };
928
- getstarter = __decorate([
929
- Struct.type('getstarter')
930
- ], getstarter);
931
- Types.getstarter = getstarter;
932
959
  let getstratum = class getstratum extends Struct {
933
960
  };
934
961
  __decorate([
@@ -1298,6 +1325,24 @@ var Types;
1298
1325
  Struct.type('resource_stats')
1299
1326
  ], resource_stats);
1300
1327
  Types.resource_stats = resource_stats;
1328
+ let rmmodule = class rmmodule extends Struct {
1329
+ };
1330
+ __decorate([
1331
+ Struct.field(Name)
1332
+ ], rmmodule.prototype, "entity_type", void 0);
1333
+ __decorate([
1334
+ Struct.field(UInt64)
1335
+ ], rmmodule.prototype, "entity_id", void 0);
1336
+ __decorate([
1337
+ Struct.field(UInt8)
1338
+ ], rmmodule.prototype, "module_index", void 0);
1339
+ __decorate([
1340
+ Struct.field(UInt64)
1341
+ ], rmmodule.prototype, "target_cargo_id", void 0);
1342
+ rmmodule = __decorate([
1343
+ Struct.type('rmmodule')
1344
+ ], rmmodule);
1345
+ Types.rmmodule = rmmodule;
1301
1346
  let salt = class salt extends Struct {
1302
1347
  };
1303
1348
  __decorate([
@@ -1334,25 +1379,25 @@ var Types;
1334
1379
  Struct.field(coordinates)
1335
1380
  ], ship_row.prototype, "coordinates", void 0);
1336
1381
  __decorate([
1337
- Struct.field(UInt32)
1382
+ Struct.field(UInt32, { optional: true })
1338
1383
  ], ship_row.prototype, "hullmass", void 0);
1339
1384
  __decorate([
1340
- Struct.field(UInt32)
1385
+ Struct.field(UInt32, { optional: true })
1341
1386
  ], ship_row.prototype, "capacity", void 0);
1342
1387
  __decorate([
1343
- Struct.field(UInt16)
1388
+ Struct.field(UInt16, { optional: true })
1344
1389
  ], ship_row.prototype, "energy", void 0);
1345
1390
  __decorate([
1346
1391
  Struct.field(UInt32)
1347
1392
  ], ship_row.prototype, "cargomass", void 0);
1348
1393
  __decorate([
1349
- Struct.field(movement_stats)
1394
+ Struct.field(movement_stats, { optional: true })
1350
1395
  ], ship_row.prototype, "engines", void 0);
1351
1396
  __decorate([
1352
- Struct.field(energy_stats)
1397
+ Struct.field(energy_stats, { optional: true })
1353
1398
  ], ship_row.prototype, "generator", void 0);
1354
1399
  __decorate([
1355
- Struct.field(loader_stats)
1400
+ Struct.field(loader_stats, { optional: true })
1356
1401
  ], ship_row.prototype, "loaders", void 0);
1357
1402
  __decorate([
1358
1403
  Struct.field(extractor_stats, { optional: true })
@@ -1363,6 +1408,9 @@ var Types;
1363
1408
  __decorate([
1364
1409
  Struct.field(crafter_stats, { optional: true })
1365
1410
  ], ship_row.prototype, "crafter", void 0);
1411
+ __decorate([
1412
+ Struct.field(module_entry, { array: true })
1413
+ ], ship_row.prototype, "modules", void 0);
1366
1414
  __decorate([
1367
1415
  Struct.field(schedule, { optional: true })
1368
1416
  ], ship_row.prototype, "schedule", void 0);
@@ -1385,15 +1433,24 @@ var Types;
1385
1433
  Struct.type('spawncargo')
1386
1434
  ], spawncargo);
1387
1435
  Types.spawncargo = spawncargo;
1388
- let starter_info = class starter_info extends Struct {
1436
+ let spawnseeded = class spawnseeded extends Struct {
1389
1437
  };
1390
1438
  __decorate([
1391
- Struct.field(entity_info)
1392
- ], starter_info.prototype, "ship", void 0);
1393
- starter_info = __decorate([
1394
- Struct.type('starter_info')
1395
- ], starter_info);
1396
- Types.starter_info = starter_info;
1439
+ Struct.field(UInt64)
1440
+ ], spawnseeded.prototype, "entity_id", void 0);
1441
+ __decorate([
1442
+ Struct.field(UInt64)
1443
+ ], spawnseeded.prototype, "item_id", void 0);
1444
+ __decorate([
1445
+ Struct.field(UInt64)
1446
+ ], spawnseeded.prototype, "quantity", void 0);
1447
+ __decorate([
1448
+ Struct.field(UInt64)
1449
+ ], spawnseeded.prototype, "seed", void 0);
1450
+ spawnseeded = __decorate([
1451
+ Struct.type('spawnseeded')
1452
+ ], spawnseeded);
1453
+ Types.spawnseeded = spawnseeded;
1397
1454
  let state_row = class state_row extends Struct {
1398
1455
  };
1399
1456
  __decorate([
@@ -1510,9 +1567,6 @@ var Types;
1510
1567
  __decorate([
1511
1568
  Struct.field(entity_summary)
1512
1569
  ], types_row.prototype, "entity_summary_type", void 0);
1513
- __decorate([
1514
- Struct.field(starter_info)
1515
- ], types_row.prototype, "starter_info_type", void 0);
1516
1570
  __decorate([
1517
1571
  Struct.field(game_config)
1518
1572
  ], types_row.prototype, "game_config_type", void 0);
@@ -1667,17 +1721,6 @@ const WAREHOUSE_ALREADY_AT_LOCATION = 'Warehouse already exists at this location
1667
1721
  const WAREHOUSE_CAPACITY_EXCEEDED = 'Warehouse capacity would be exceeded.';
1668
1722
 
1669
1723
  const PRECISION = 10000;
1670
- const INITIAL_SHIP_GENERATOR_CAPACITY = 350;
1671
- const INITIAL_SHIP_DRAIN = 25;
1672
- const INITIAL_SHIP_ENERGY = 350;
1673
- const INITIAL_SHIP_HULLMASS = 100000;
1674
- const INITIAL_SHIP_CAPACITY = 500000;
1675
- const INITIAL_SHIP_Z = 800;
1676
- const INITIAL_SHIP_RECHARGE = 10;
1677
- const INITIAL_SHIP_THRUST = 250;
1678
- const INITIAL_LOADER_MASS = 1000;
1679
- const INITIAL_LOADER_QUANTITY = 1;
1680
- const INITIAL_LOADER_THRUST = 1;
1681
1724
  const WAREHOUSE_Z = 500;
1682
1725
  const INITIAL_WAREHOUSE_CAPACITY = 10000000;
1683
1726
  const CONTAINER_Z = 300;
@@ -1686,10 +1729,7 @@ const INITIAL_CONTAINER_CAPACITY = 2000000;
1686
1729
  const TRAVEL_MAX_DURATION = 86400;
1687
1730
  const MIN_ORBITAL_ALTITUDE = 800;
1688
1731
  const MAX_ORBITAL_ALTITUDE = 3000;
1689
- const INITIAL_SHIP_MASS = 500000;
1690
- const INITIAL_EXTRACTOR_RATE = 700;
1691
- const INITIAL_EXTRACTOR_DRAIN = 2500;
1692
- const INITIAL_EXTRACTOR_EFFICIENCY = 5000;
1732
+ const BASE_ORBITAL_MASS = 100000;
1693
1733
  var TaskType;
1694
1734
  (function (TaskType) {
1695
1735
  TaskType[TaskType["IDLE"] = 0] = "IDLE";
@@ -4305,7 +4345,7 @@ var itemsData = [
4305
4345
  id: 26,
4306
4346
  name: "Iron",
4307
4347
  description: "A versatile metal used in hulls and structures.",
4308
- mass: 40000,
4348
+ mass: 30000,
4309
4349
  category: "metal",
4310
4350
  tier: "t1",
4311
4351
  color: "#B7410E"
@@ -4332,7 +4372,7 @@ var itemsData = [
4332
4372
  id: 29,
4333
4373
  name: "Copper",
4334
4374
  description: "A conductive metal for electronics and wiring.",
4335
- mass: 60000,
4375
+ mass: 40000,
4336
4376
  category: "precious",
4337
4377
  tier: "t1",
4338
4378
  color: "#B87333"
@@ -4386,7 +4426,7 @@ var itemsData = [
4386
4426
  id: 14,
4387
4427
  name: "Silicon",
4388
4428
  description: "A semiconductor used in sensors and computing.",
4389
- mass: 28000,
4429
+ mass: 22000,
4390
4430
  category: "mineral",
4391
4431
  tier: "t1",
4392
4432
  color: "#B8A9C9"
@@ -4413,7 +4453,7 @@ var itemsData = [
4413
4453
  id: 6,
4414
4454
  name: "Carbon",
4415
4455
  description: "A versatile element for life support and coatings.",
4416
- mass: 12000,
4456
+ mass: 15000,
4417
4457
  category: "organic",
4418
4458
  tier: "t1",
4419
4459
  color: "#4A4A4A"
@@ -4461,10 +4501,10 @@ function getItems() {
4461
4501
  }
4462
4502
 
4463
4503
  function calc_orbital_altitude(mass) {
4464
- if (mass <= INITIAL_SHIP_MASS) {
4504
+ if (mass <= BASE_ORBITAL_MASS) {
4465
4505
  return MIN_ORBITAL_ALTITUDE;
4466
4506
  }
4467
- const ratio = mass / INITIAL_SHIP_MASS;
4507
+ const ratio = mass / BASE_ORBITAL_MASS;
4468
4508
  const capRatio = 10.0;
4469
4509
  let scale = Math.log(ratio) / Math.log(capRatio);
4470
4510
  scale = Math.min(scale, 1.0);
@@ -5375,6 +5415,12 @@ class Ship extends Types.entity_info {
5375
5415
  isExtracting(now) {
5376
5416
  return isExtracting(this, now);
5377
5417
  }
5418
+ get hasEngines() {
5419
+ return this.engines !== undefined;
5420
+ }
5421
+ get hasGenerator() {
5422
+ return this.generator !== undefined;
5423
+ }
5378
5424
  get hasExtractor() {
5379
5425
  return this.extractor !== undefined;
5380
5426
  }
@@ -5777,11 +5823,7 @@ class ActionsManager extends BaseManager {
5777
5823
  });
5778
5824
  }
5779
5825
  craft(entityType, entityId, recipeId, quantity, inputs) {
5780
- const cargoInputs = inputs.map((i) => Types.cargo_item.from({
5781
- item_id: UInt16.from(i.itemId),
5782
- quantity: UInt32.from(i.quantity),
5783
- seed: i.seed !== undefined ? UInt64.from(i.seed) : null,
5784
- }));
5826
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5785
5827
  return this.server.action('craft', {
5786
5828
  entity_type: entityType,
5787
5829
  id: UInt64.from(entityId),
@@ -5790,6 +5832,14 @@ class ActionsManager extends BaseManager {
5790
5832
  inputs: cargoInputs,
5791
5833
  });
5792
5834
  }
5835
+ blend(entityType, entityId, inputs) {
5836
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5837
+ return this.server.action('blend', {
5838
+ entity_type: entityType,
5839
+ id: UInt64.from(entityId),
5840
+ inputs: cargoInputs,
5841
+ });
5842
+ }
5793
5843
  deploy(entityType, entityId, packedItemId, seed, entityName) {
5794
5844
  return this.server.action('deploy', {
5795
5845
  entity_type: entityType,
@@ -5799,6 +5849,23 @@ class ActionsManager extends BaseManager {
5799
5849
  entity_name: entityName,
5800
5850
  });
5801
5851
  }
5852
+ addmodule(entityType, entityId, moduleIndex, moduleCargoId, targetCargoId = UInt64.from(0)) {
5853
+ return this.server.action('addmodule', {
5854
+ entity_type: entityType,
5855
+ entity_id: UInt64.from(entityId),
5856
+ module_index: moduleIndex,
5857
+ module_cargo_id: UInt64.from(moduleCargoId),
5858
+ target_cargo_id: UInt64.from(targetCargoId),
5859
+ });
5860
+ }
5861
+ rmmodule(entityType, entityId, moduleIndex, targetCargoId = UInt64.from(0)) {
5862
+ return this.server.action('rmmodule', {
5863
+ entity_type: entityType,
5864
+ entity_id: UInt64.from(entityId),
5865
+ module_index: moduleIndex,
5866
+ target_cargo_id: UInt64.from(targetCargoId),
5867
+ });
5868
+ }
5802
5869
  joinGame(account, companyName) {
5803
5870
  return [this.foundCompany(account, companyName), this.join(account)];
5804
5871
  }
@@ -5939,26 +6006,34 @@ class Shipload {
5939
6006
  }
5940
6007
 
5941
6008
  function makeShip(state) {
5942
- const entityInfo = Types.entity_info.from({
6009
+ const info = {
5943
6010
  type: Name.from('ship'),
5944
6011
  id: UInt64.from(state.id),
5945
6012
  owner: Name.from(state.owner),
5946
6013
  entity_name: state.name,
5947
6014
  coordinates: Types.coordinates.from(state.coordinates),
5948
- hullmass: UInt32.from(state.hullmass),
5949
- capacity: UInt32.from(state.capacity),
5950
- energy: UInt16.from(state.energy),
5951
6015
  cargomass: UInt32.from(0),
5952
6016
  cargo: state.cargo || [],
5953
6017
  is_idle: !state.schedule,
5954
6018
  current_task_elapsed: UInt32.from(0),
5955
6019
  current_task_remaining: UInt32.from(0),
5956
6020
  pending_tasks: [],
5957
- engines: state.engines,
5958
- generator: state.generator,
5959
- loaders: state.loaders,
5960
- schedule: state.schedule,
5961
- });
6021
+ };
6022
+ if (state.hullmass !== undefined)
6023
+ info.hullmass = UInt32.from(state.hullmass);
6024
+ if (state.capacity !== undefined)
6025
+ info.capacity = UInt32.from(state.capacity);
6026
+ if (state.energy !== undefined)
6027
+ info.energy = UInt16.from(state.energy);
6028
+ if (state.engines)
6029
+ info.engines = state.engines;
6030
+ if (state.generator)
6031
+ info.generator = state.generator;
6032
+ if (state.loaders)
6033
+ info.loaders = state.loaders;
6034
+ if (state.schedule)
6035
+ info.schedule = state.schedule;
6036
+ const entityInfo = Types.entity_info.from(info);
5962
6037
  return new Ship(entityInfo);
5963
6038
  }
5964
6039
  function makeWarehouse(state) {
@@ -6197,9 +6272,53 @@ function resolveStats(category, stats) {
6197
6272
  };
6198
6273
  }
6199
6274
 
6275
+ const ITEM_ENGINE_T1 = 10006;
6276
+ const ITEM_GENERATOR_T1 = 10007;
6277
+ const ITEM_EXTRACTOR_T1 = 10014;
6278
+ const ITEM_LOADER_T1 = 10015;
6279
+ const ITEM_MANUFACTURING_T1 = 10016;
6280
+ const MODULE_ANY = 0;
6281
+ const MODULE_ENGINE = 1;
6282
+ const MODULE_GENERATOR = 2;
6283
+ const MODULE_EXTRACTOR = 3;
6284
+ const MODULE_LOADER = 4;
6285
+ const MODULE_WARP = 5;
6286
+ const MODULE_CRAFTER = 6;
6287
+ const MODULE_LAUNCHER = 7;
6288
+ function moduleAccepts(slotType, moduleType) {
6289
+ return slotType === MODULE_ANY || slotType === moduleType;
6290
+ }
6291
+ function getModuleCapabilityType(itemId) {
6292
+ switch (itemId) {
6293
+ case ITEM_ENGINE_T1:
6294
+ return MODULE_ENGINE;
6295
+ case ITEM_GENERATOR_T1:
6296
+ return MODULE_GENERATOR;
6297
+ case ITEM_EXTRACTOR_T1:
6298
+ return MODULE_EXTRACTOR;
6299
+ case ITEM_LOADER_T1:
6300
+ return MODULE_LOADER;
6301
+ case ITEM_MANUFACTURING_T1:
6302
+ return MODULE_CRAFTER;
6303
+ default:
6304
+ return 0xff;
6305
+ }
6306
+ }
6307
+ function isModuleItem(itemId) {
6308
+ return getModuleCapabilityType(itemId) !== 0xff;
6309
+ }
6310
+
6311
+ const ITEM_DRILL_SHAFT = 10009;
6312
+ const ITEM_EXTRACTION_PROBE = 10010;
6313
+ const ITEM_CARGO_ARM = 10011;
6314
+ const ITEM_TOOL_BIT = 10012;
6315
+ const ITEM_REACTION_CHAMBER = 10013;
6200
6316
  const ITEM_HULL_PLATES = 10001;
6201
6317
  const ITEM_CARGO_LINING = 10002;
6202
6318
  const ITEM_CONTAINER_PACKED = 10003;
6319
+ const ITEM_THRUSTER_CORE = 10004;
6320
+ const ITEM_POWER_CELL = 10005;
6321
+ const ITEM_SHIP_T1_PACKED = 10008;
6203
6322
  const components = [
6204
6323
  {
6205
6324
  id: ITEM_HULL_PLATES,
@@ -6211,8 +6330,8 @@ const components = [
6211
6330
  { key: 'strength', source: 'metal' },
6212
6331
  { key: 'density', source: 'metal' },
6213
6332
  ],
6214
- recipe: [{ category: 'metal', quantity: 40 }],
6215
- usedIn: [{ type: 'entity', name: 'Container' }],
6333
+ recipe: [{ category: 'metal', quantity: 15 }],
6334
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6216
6335
  },
6217
6336
  {
6218
6337
  id: ITEM_CARGO_LINING,
@@ -6225,10 +6344,101 @@ const components = [
6225
6344
  { key: 'purity', source: 'organic' },
6226
6345
  ],
6227
6346
  recipe: [
6228
- { category: 'precious', quantity: 10 },
6229
- { category: 'organic', quantity: 20 },
6347
+ { category: 'precious', quantity: 6 },
6348
+ { category: 'organic', quantity: 14 },
6230
6349
  ],
6231
- usedIn: [{ type: 'entity', name: 'Container' }],
6350
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6351
+ },
6352
+ {
6353
+ id: ITEM_THRUSTER_CORE,
6354
+ name: 'Thruster Core',
6355
+ description: 'High-energy propulsion component formed from volatile gases.',
6356
+ color: '#E86344',
6357
+ mass: 50000,
6358
+ stats: [
6359
+ { key: 'volatility', source: 'gas' },
6360
+ { key: 'thermal', source: 'gas' },
6361
+ ],
6362
+ recipe: [{ category: 'gas', quantity: 32 }],
6363
+ usedIn: [{ type: 'module', name: 'Engine Module T1' }],
6364
+ },
6365
+ {
6366
+ id: ITEM_POWER_CELL,
6367
+ name: 'Power Cell',
6368
+ description: 'Crystalline energy storage matrix formed from resonant minerals.',
6369
+ color: '#7B5AE8',
6370
+ mass: 30000,
6371
+ stats: [
6372
+ { key: 'resonance', source: 'mineral' },
6373
+ { key: 'clarity', source: 'mineral' },
6374
+ ],
6375
+ recipe: [{ category: 'mineral', quantity: 20 }],
6376
+ usedIn: [{ type: 'module', name: 'Generator Module T1' }],
6377
+ },
6378
+ {
6379
+ id: ITEM_DRILL_SHAFT,
6380
+ name: 'Drill Shaft',
6381
+ description: 'Heavy-duty metal shaft used in extraction equipment.',
6382
+ color: '#7B8D9E',
6383
+ mass: 50000,
6384
+ stats: [
6385
+ { key: 'strength', source: 'metal' },
6386
+ { key: 'tolerance', source: 'metal' },
6387
+ ],
6388
+ recipe: [{ category: 'metal', quantity: 15 }],
6389
+ usedIn: [{ type: 'module', name: 'Extractor Module T1' }],
6390
+ },
6391
+ {
6392
+ id: ITEM_EXTRACTION_PROBE,
6393
+ name: 'Extraction Probe',
6394
+ description: 'Precious metal sensor array for deep resource detection.',
6395
+ color: '#D4A843',
6396
+ mass: 30000,
6397
+ stats: [
6398
+ { key: 'conductivity', source: 'precious' },
6399
+ { key: 'reflectivity', source: 'precious' },
6400
+ ],
6401
+ recipe: [{ category: 'precious', quantity: 10 }],
6402
+ usedIn: [{ type: 'module', name: 'Extractor Module T1' }],
6403
+ },
6404
+ {
6405
+ id: ITEM_CARGO_ARM,
6406
+ name: 'Cargo Arm',
6407
+ description: 'Flexible organic composite arm for cargo handling.',
6408
+ color: '#6B8E5A',
6409
+ mass: 30000,
6410
+ stats: [
6411
+ { key: 'plasticity', source: 'organic' },
6412
+ { key: 'insulation', source: 'organic' },
6413
+ ],
6414
+ recipe: [{ category: 'organic', quantity: 32 }],
6415
+ usedIn: [{ type: 'module', name: 'Loader Module T1' }],
6416
+ },
6417
+ {
6418
+ id: ITEM_TOOL_BIT,
6419
+ name: 'Tool Bit',
6420
+ description: 'Dense mineral cutting head for manufacturing operations.',
6421
+ color: '#B8A9C9',
6422
+ mass: 30000,
6423
+ stats: [
6424
+ { key: 'hardness', source: 'mineral' },
6425
+ { key: 'clarity', source: 'mineral' },
6426
+ ],
6427
+ recipe: [{ category: 'mineral', quantity: 20 }],
6428
+ usedIn: [{ type: 'module', name: 'Manufacturing Module T1' }],
6429
+ },
6430
+ {
6431
+ id: ITEM_REACTION_CHAMBER,
6432
+ name: 'Reaction Chamber',
6433
+ description: 'Gas-pressurized vessel for controlled manufacturing reactions.',
6434
+ color: '#7EC8E3',
6435
+ mass: 50000,
6436
+ stats: [
6437
+ { key: 'reactivity', source: 'gas' },
6438
+ { key: 'thermal', source: 'gas' },
6439
+ ],
6440
+ recipe: [{ category: 'gas', quantity: 32 }],
6441
+ usedIn: [{ type: 'module', name: 'Manufacturing Module T1' }],
6232
6442
  },
6233
6443
  ];
6234
6444
  const entityRecipes = [
@@ -6249,7 +6459,109 @@ const entityRecipes = [
6249
6459
  { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6250
6460
  ],
6251
6461
  },
6462
+ {
6463
+ id: 'ship-t1',
6464
+ name: 'Ship T1',
6465
+ description: 'General-purpose vessel with 5 module slots.',
6466
+ color: '#4AE898',
6467
+ packedItemId: ITEM_SHIP_T1_PACKED,
6468
+ recipe: [
6469
+ { itemId: ITEM_HULL_PLATES, quantity: 8 },
6470
+ { itemId: ITEM_CARGO_LINING, quantity: 4 },
6471
+ ],
6472
+ stats: [
6473
+ { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
6474
+ { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
6475
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6476
+ { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6477
+ ],
6478
+ },
6479
+ ];
6480
+ const moduleRecipes = [
6481
+ {
6482
+ id: 'engine-t1',
6483
+ name: 'Engine Module T1',
6484
+ description: 'Basic propulsion system. Converts volatile gases into thrust.',
6485
+ color: '#E86344',
6486
+ itemId: ITEM_ENGINE_T1,
6487
+ moduleType: MODULE_ENGINE,
6488
+ recipe: [{ itemId: ITEM_THRUSTER_CORE, quantity: 6 }],
6489
+ stats: [
6490
+ { key: 'volatility', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'volatility' },
6491
+ { key: 'thermal', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'thermal' },
6492
+ ],
6493
+ },
6494
+ {
6495
+ id: 'generator-t1',
6496
+ name: 'Generator Module T1',
6497
+ description: 'Basic energy system. Stores and recharges energy from resonant minerals.',
6498
+ color: '#7B5AE8',
6499
+ itemId: ITEM_GENERATOR_T1,
6500
+ moduleType: MODULE_GENERATOR,
6501
+ recipe: [{ itemId: ITEM_POWER_CELL, quantity: 5 }],
6502
+ stats: [
6503
+ { key: 'resonance', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'resonance' },
6504
+ { key: 'clarity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'clarity' },
6505
+ ],
6506
+ },
6507
+ {
6508
+ id: 'extractor-t1',
6509
+ name: 'Extractor Module T1',
6510
+ description: 'Basic extraction system. Drills and probes for raw resources.',
6511
+ color: '#7B8D9E',
6512
+ itemId: ITEM_EXTRACTOR_T1,
6513
+ moduleType: MODULE_EXTRACTOR,
6514
+ recipe: [
6515
+ { itemId: ITEM_DRILL_SHAFT, quantity: 4 },
6516
+ { itemId: ITEM_EXTRACTION_PROBE, quantity: 3 },
6517
+ ],
6518
+ stats: [
6519
+ { key: 'strength', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'strength' },
6520
+ { key: 'tolerance', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'tolerance' },
6521
+ { key: 'reflectivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6522
+ { key: 'conductivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'conductivity' },
6523
+ { key: 'reflectivity_drill', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6524
+ ],
6525
+ },
6526
+ {
6527
+ id: 'loader-t1',
6528
+ name: 'Loader Module T1',
6529
+ description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
6530
+ color: '#6B8E5A',
6531
+ itemId: ITEM_LOADER_T1,
6532
+ moduleType: MODULE_LOADER,
6533
+ recipe: [
6534
+ { itemId: ITEM_CARGO_LINING, quantity: 3 },
6535
+ { itemId: ITEM_CARGO_ARM, quantity: 3 },
6536
+ ],
6537
+ stats: [
6538
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6539
+ { key: 'plasticity', sourceComponentId: ITEM_CARGO_ARM, sourceStatKey: 'plasticity' },
6540
+ ],
6541
+ },
6542
+ {
6543
+ id: 'manufacturing-t1',
6544
+ name: 'Manufacturing Module T1',
6545
+ description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
6546
+ color: '#7EC8E3',
6547
+ itemId: ITEM_MANUFACTURING_T1,
6548
+ moduleType: MODULE_CRAFTER,
6549
+ recipe: [
6550
+ { itemId: ITEM_TOOL_BIT, quantity: 3 },
6551
+ { itemId: ITEM_REACTION_CHAMBER, quantity: 3 },
6552
+ ],
6553
+ stats: [
6554
+ { key: 'reactivity', sourceComponentId: ITEM_REACTION_CHAMBER, sourceStatKey: 'reactivity' },
6555
+ { key: 'clarity', sourceComponentId: ITEM_TOOL_BIT, sourceStatKey: 'clarity' },
6556
+ ],
6557
+ },
6252
6558
  ];
6559
+ function getModuleRecipe(id) {
6560
+ return moduleRecipes.find((r) => r.id === id);
6561
+ }
6562
+ function getModuleRecipeByItemId(itemId) {
6563
+ return moduleRecipes.find((r) => r.itemId === itemId);
6564
+ }
6253
6565
  function getComponentById(id) {
6254
6566
  return components.find((c) => c.id === id);
6255
6567
  }
@@ -6267,6 +6579,9 @@ function getAllCraftableItems() {
6267
6579
  for (const entity of entityRecipes) {
6268
6580
  items.push({ type: 'entity', id: entity.id, name: entity.name, description: entity.description, color: entity.color });
6269
6581
  }
6582
+ for (const mod of moduleRecipes) {
6583
+ items.push({ type: 'module', id: mod.id, name: mod.name, description: mod.description, color: mod.color });
6584
+ }
6270
6585
  return items;
6271
6586
  }
6272
6587
  function getComponentsForCategory(category) {
@@ -6290,25 +6605,24 @@ function decodeStats(seed, count) {
6290
6605
  }
6291
6606
  return stats;
6292
6607
  }
6608
+ function mapStatsToKeys(seed, statDefs) {
6609
+ const values = decodeStats(seed, statDefs.length);
6610
+ const result = {};
6611
+ for (let i = 0; i < statDefs.length; i++) {
6612
+ result[statDefs[i].key] = values[i];
6613
+ }
6614
+ return result;
6615
+ }
6293
6616
  function decodeCraftedItemStats(itemId, seed) {
6294
6617
  const comp = getComponentById(itemId);
6295
- if (comp) {
6296
- const values = decodeStats(seed, comp.stats.length);
6297
- const result = {};
6298
- for (let i = 0; i < comp.stats.length; i++) {
6299
- result[comp.stats[i].key] = values[i];
6300
- }
6301
- return result;
6302
- }
6618
+ if (comp)
6619
+ return mapStatsToKeys(seed, comp.stats);
6303
6620
  const entityRecipe = entityRecipes.find((r) => r.packedItemId === itemId);
6304
- if (entityRecipe) {
6305
- const values = decodeStats(seed, entityRecipe.stats.length);
6306
- const result = {};
6307
- for (let i = 0; i < entityRecipe.stats.length; i++) {
6308
- result[entityRecipe.stats[i].key] = values[i];
6309
- }
6310
- return result;
6311
- }
6621
+ if (entityRecipe)
6622
+ return mapStatsToKeys(seed, entityRecipe.stats);
6623
+ const moduleRecipe = moduleRecipes.find((r) => r.itemId === itemId);
6624
+ if (moduleRecipe)
6625
+ return mapStatsToKeys(seed, moduleRecipe.stats);
6312
6626
  return {};
6313
6627
  }
6314
6628
  function blendStacks(stacks, statKey) {
@@ -6321,7 +6635,7 @@ function blendStacks(stacks, statKey) {
6321
6635
  }
6322
6636
  if (totalQty === 0)
6323
6637
  return 0;
6324
- return Math.round(weightedSum / totalQty);
6638
+ return Math.floor(weightedSum / totalQty);
6325
6639
  }
6326
6640
  function computeComponentStats(componentId, categoryStacks) {
6327
6641
  const comp = getComponentById(componentId);
@@ -6348,7 +6662,7 @@ function blendComponentStacks(stacks) {
6348
6662
  return result;
6349
6663
  }
6350
6664
  function computeEntityStats(entityRecipeId, componentStacks) {
6351
- const recipe = getEntityRecipe(entityRecipeId);
6665
+ const recipe = getEntityRecipe(entityRecipeId) ?? getModuleRecipe(entityRecipeId);
6352
6666
  if (!recipe)
6353
6667
  return [];
6354
6668
  const blendedByComponent = {};
@@ -6361,6 +6675,22 @@ function computeEntityStats(entityRecipeId, componentStacks) {
6361
6675
  return { key: stat.key, value: Math.max(1, Math.min(999, value)) };
6362
6676
  });
6363
6677
  }
6678
+ function decodeStackStats(itemId, seed) {
6679
+ if (itemId >= 10000) {
6680
+ return decodeCraftedItemStats(itemId, BigInt(seed.toString()));
6681
+ }
6682
+ const raw = deriveResourceStats(BigInt(seed.toString()));
6683
+ return { stat1: raw.stat1, stat2: raw.stat2, stat3: raw.stat3 };
6684
+ }
6685
+ function blendCargoStacks(itemId, stacks) {
6686
+ const decoded = stacks.map((s) => ({
6687
+ quantity: s.quantity,
6688
+ stats: decodeStackStats(itemId, s.seed),
6689
+ }));
6690
+ const allKeys = Object.keys(decoded[0]?.stats ?? {});
6691
+ const blended = allKeys.map((key) => Math.max(1, Math.min(999, blendStacks(decoded, key))));
6692
+ return UInt64.from(encodeStats(blended));
6693
+ }
6364
6694
 
6365
6695
  function totalCargoMass(cargo) {
6366
6696
  return cargo.reduce((sum, c) => {
@@ -6451,16 +6781,21 @@ function calcLoadDuration(entity, cargoMass) {
6451
6781
  return UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
6452
6782
  }
6453
6783
 
6454
- function calc_extraction_duration(extractor, cargoMass, stratum, richness) {
6784
+ const EXTRACTION_TIME_SCALE = 100;
6785
+ const DEPTH_PENALTY_DIVISOR = 5000;
6786
+ const DRILL_TIME_SCALE = 300;
6787
+ function calc_extraction_duration(extractor, itemMass, quantity, stratum, richness) {
6455
6788
  const rate = extractor.rate.toNumber();
6456
- const efficiency = extractor.efficiency.toNumber();
6457
6789
  const drill = extractor.drill.toNumber();
6458
- const rateProduct = Math.floor((rate * richness * efficiency) / PRECISION);
6459
- if (rateProduct === 0)
6790
+ if (rate === 0 || drill === 0 || richness === 0)
6460
6791
  return UInt32.from(0);
6461
- const extractionTime = Math.floor((cargoMass * PRECISION) / rateProduct);
6462
- const drillTime = Math.floor(stratum / drill);
6463
- return UInt32.from(extractionTime + drillTime);
6792
+ const massFactor = Math.sqrt(itemMass);
6793
+ const depthPenalty = 1 + stratum / DEPTH_PENALTY_DIVISOR;
6794
+ const richnessMul = richness / 1000;
6795
+ const extractionTime = quantity * massFactor * EXTRACTION_TIME_SCALE * depthPenalty
6796
+ / (rate * richnessMul);
6797
+ const drillTime = DRILL_TIME_SCALE * Math.log(1 + stratum / drill);
6798
+ return UInt32.from(Math.floor(extractionTime + drillTime));
6464
6799
  }
6465
6800
  function calc_extraction_energy(extractor, duration) {
6466
6801
  const energy = Math.floor((duration * extractor.drain.toNumber()) / PRECISION);
@@ -6470,6 +6805,284 @@ function calc_extraction_energy(extractor, duration) {
6470
6805
  function capsHasCrafter(caps) {
6471
6806
  return caps.crafter !== undefined;
6472
6807
  }
6808
+ function calc_craft_duration(speed, totalInputMass, quantity) {
6809
+ const duration = Math.floor((totalInputMass * quantity) / speed);
6810
+ return UInt32.from(Math.max(duration, 1));
6811
+ }
6812
+ function calc_craft_energy(drain, duration) {
6813
+ return UInt16.from(Math.floor((duration * drain) / PRECISION));
6814
+ }
6815
+
6816
+ const categoryColors = {
6817
+ metal: '#7B8D9E',
6818
+ precious: '#D4A843',
6819
+ gas: '#7EC8E3',
6820
+ mineral: '#B8A9C9',
6821
+ organic: '#6B8E5A',
6822
+ };
6823
+ const tierColors = {
6824
+ t1: '#8b8b8b',
6825
+ t2: '#4ade80',
6826
+ t3: '#818cf8',
6827
+ t4: '#c084fc',
6828
+ t5: '#fbbf24',
6829
+ };
6830
+ const categoryIcons = {
6831
+ metal: '⬡',
6832
+ precious: '◈',
6833
+ gas: '◎',
6834
+ mineral: '◇',
6835
+ organic: '❋',
6836
+ };
6837
+ const componentIcon = '▣';
6838
+ const moduleIcon = '⬢';
6839
+
6840
+ function computeShipHullCapabilities(stats) {
6841
+ const density = stats.density ?? 500;
6842
+ const strength = stats.strength ?? 500;
6843
+ const ductility = stats.ductility ?? 500;
6844
+ const purity = stats.purity ?? 500;
6845
+ const hullmass = 25000 + 75 * density;
6846
+ const statSum = strength + ductility + purity;
6847
+ const exponent = statSum / 2997.0;
6848
+ const capacity = Math.floor(1000000 * Math.pow(10, exponent));
6849
+ return { hullmass, capacity };
6850
+ }
6851
+ function computeEngineCapabilities(stats) {
6852
+ const vol = stats.volatility ?? 500;
6853
+ const thm = stats.thermal ?? 500;
6854
+ return {
6855
+ thrust: 400 + Math.floor(vol * 3 / 4),
6856
+ drain: Math.max(16, 30 - Math.floor(thm / 70)),
6857
+ };
6858
+ }
6859
+ function computeGeneratorCapabilities(stats) {
6860
+ const res = stats.resonance ?? 500;
6861
+ const clr = stats.clarity ?? 500;
6862
+ return {
6863
+ capacity: 300 + Math.floor(res / 6),
6864
+ recharge: 5 + Math.floor(clr * 15 / 1000),
6865
+ };
6866
+ }
6867
+ function computeExtractorCapabilities(stats) {
6868
+ const str = stats.strength ?? 500;
6869
+ const con = stats.conductivity ?? 500;
6870
+ const ref = stats.reflectivity ?? 500;
6871
+ const tol = stats.tolerance ?? 500;
6872
+ return {
6873
+ rate: 200 + str,
6874
+ drain: Math.max(10, 50 - Math.floor(con / 20)),
6875
+ depth: 200 + Math.floor(tol * 3 / 2),
6876
+ drill: 100 + Math.floor(ref * 4 / 5),
6877
+ };
6878
+ }
6879
+ function computeLoaderCapabilities(stats) {
6880
+ const duc = stats.ductility ?? 500;
6881
+ const pla = stats.plasticity ?? 500;
6882
+ return {
6883
+ mass: Math.max(200, 2000 - Math.floor(duc * 2)),
6884
+ thrust: 1 + Math.floor(pla / 500),
6885
+ quantity: 1,
6886
+ };
6887
+ }
6888
+ function computeManufacturingCapabilities(stats) {
6889
+ const rea = stats.reactivity ?? 500;
6890
+ const clr = stats.clarity ?? 500;
6891
+ return {
6892
+ speed: 100 + Math.floor(rea * 4 / 5),
6893
+ drain: Math.max(5, 30 - Math.floor(clr / 33)),
6894
+ };
6895
+ }
6896
+
6897
+ function toNum(v) {
6898
+ return Number(UInt16.from(v).value.toString());
6899
+ }
6900
+ function toBigSeed(v) {
6901
+ return BigInt(UInt64.from(v).toString());
6902
+ }
6903
+ function resolveResource(id, seed) {
6904
+ const item = getItem(id);
6905
+ const cat = item.category;
6906
+ let stats;
6907
+ if (seed !== undefined) {
6908
+ const derived = deriveResourceStats(toBigSeed(seed));
6909
+ const defs = getStatDefinitions(cat);
6910
+ const values = [derived.stat1, derived.stat2, derived.stat3];
6911
+ stats = defs.map((d, i) => ({
6912
+ key: d.key,
6913
+ label: d.label,
6914
+ abbreviation: d.abbreviation,
6915
+ value: values[i] ?? 0,
6916
+ color: categoryColors[cat],
6917
+ category: cat,
6918
+ inverted: d.inverted,
6919
+ }));
6920
+ }
6921
+ return {
6922
+ itemId: id,
6923
+ name: String(item.name),
6924
+ icon: categoryIcons[cat] ?? '⬡',
6925
+ category: cat,
6926
+ tier: item.tier,
6927
+ mass: Number(item.mass.value.toString()),
6928
+ itemType: 'resource',
6929
+ stats,
6930
+ };
6931
+ }
6932
+ function resolveComponent(id, seed) {
6933
+ const comp = getComponentById(id);
6934
+ let stats;
6935
+ if (seed !== undefined) {
6936
+ const decoded = decodeCraftedItemStats(id, toBigSeed(seed));
6937
+ stats = Object.entries(decoded).map(([key, value]) => {
6938
+ const allDefs = getStatDefinitions('metal')
6939
+ .concat(getStatDefinitions('precious'))
6940
+ .concat(getStatDefinitions('gas'))
6941
+ .concat(getStatDefinitions('mineral'))
6942
+ .concat(getStatDefinitions('organic'));
6943
+ const def = allDefs.find((d) => d.key === key);
6944
+ const statDef = comp.stats.find((s) => s.key === key);
6945
+ const cat = (statDef?.source ?? 'metal');
6946
+ return {
6947
+ key,
6948
+ label: def?.label ?? key,
6949
+ abbreviation: def?.abbreviation ?? key.slice(0, 3).toUpperCase(),
6950
+ value,
6951
+ color: categoryColors[cat],
6952
+ category: cat,
6953
+ inverted: def?.inverted,
6954
+ };
6955
+ });
6956
+ }
6957
+ return {
6958
+ itemId: id,
6959
+ name: comp.name,
6960
+ icon: componentIcon,
6961
+ tier: 't1',
6962
+ mass: comp.mass,
6963
+ itemType: 'component',
6964
+ stats,
6965
+ };
6966
+ }
6967
+ function computeCapabilityGroup(moduleType, stats) {
6968
+ switch (moduleType) {
6969
+ case MODULE_ENGINE: {
6970
+ const caps = computeEngineCapabilities(stats);
6971
+ return { capability: 'Engine', attributes: [
6972
+ { label: 'Thrust', value: caps.thrust },
6973
+ { label: 'Drain', value: caps.drain },
6974
+ ] };
6975
+ }
6976
+ case MODULE_GENERATOR: {
6977
+ const caps = computeGeneratorCapabilities(stats);
6978
+ return { capability: 'Generator', attributes: [
6979
+ { label: 'Capacity', value: caps.capacity },
6980
+ { label: 'Recharge', value: caps.recharge },
6981
+ ] };
6982
+ }
6983
+ case MODULE_EXTRACTOR: {
6984
+ const caps = computeExtractorCapabilities(stats);
6985
+ return { capability: 'Extractor', attributes: [
6986
+ { label: 'Rate', value: caps.rate },
6987
+ { label: 'Drain', value: caps.drain },
6988
+ { label: 'Depth', value: caps.depth },
6989
+ { label: 'Drill', value: caps.drill },
6990
+ ] };
6991
+ }
6992
+ case MODULE_LOADER: {
6993
+ const caps = computeLoaderCapabilities(stats);
6994
+ return { capability: 'Loader', attributes: [
6995
+ { label: 'Mass', value: caps.mass },
6996
+ { label: 'Thrust', value: caps.thrust },
6997
+ { label: 'Quantity', value: caps.quantity },
6998
+ ] };
6999
+ }
7000
+ case MODULE_CRAFTER: {
7001
+ const caps = computeManufacturingCapabilities(stats);
7002
+ return { capability: 'Manufacturing', attributes: [
7003
+ { label: 'Speed', value: caps.speed },
7004
+ { label: 'Drain', value: caps.drain },
7005
+ ] };
7006
+ }
7007
+ default:
7008
+ return undefined;
7009
+ }
7010
+ }
7011
+ function resolveModule(id, seed) {
7012
+ const recipe = getModuleRecipeByItemId(id);
7013
+ let attributes;
7014
+ if (seed !== undefined) {
7015
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7016
+ const modType = getModuleCapabilityType(id);
7017
+ const group = computeCapabilityGroup(modType, stats);
7018
+ if (group)
7019
+ attributes = [group];
7020
+ }
7021
+ return {
7022
+ itemId: id,
7023
+ name: recipe.name,
7024
+ icon: moduleIcon,
7025
+ tier: 't1',
7026
+ mass: 0,
7027
+ itemType: 'module',
7028
+ attributes,
7029
+ };
7030
+ }
7031
+ function resolveEntity(id, seed, modules) {
7032
+ const recipe = getEntityRecipeByItemId(id);
7033
+ let attributes;
7034
+ if (seed !== undefined) {
7035
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7036
+ attributes = [];
7037
+ const isShip = recipe.id === 'ship-t1';
7038
+ if (isShip) {
7039
+ const hullCaps = computeShipHullCapabilities(stats);
7040
+ attributes.push({ capability: 'Hull', attributes: [
7041
+ { label: 'Mass', value: hullCaps.hullmass },
7042
+ { label: 'Capacity', value: hullCaps.capacity },
7043
+ ] });
7044
+ }
7045
+ else {
7046
+ const containerCaps = computeContainerCapabilities(stats);
7047
+ attributes.push({ capability: 'Hull', attributes: [
7048
+ { label: 'Mass', value: containerCaps.hullmass },
7049
+ { label: 'Capacity', value: containerCaps.capacity },
7050
+ ] });
7051
+ }
7052
+ if (modules) {
7053
+ for (const mod of modules) {
7054
+ if (!mod.installed)
7055
+ continue;
7056
+ const modItemId = Number(mod.installed.item_id.value.toString());
7057
+ const modSeed = BigInt(mod.installed.seed.toString());
7058
+ const modStats = decodeCraftedItemStats(modItemId, modSeed);
7059
+ const modType = getModuleCapabilityType(modItemId);
7060
+ const group = computeCapabilityGroup(modType, modStats);
7061
+ if (group)
7062
+ attributes.push(group);
7063
+ }
7064
+ }
7065
+ }
7066
+ return {
7067
+ itemId: id,
7068
+ name: recipe.name,
7069
+ icon: componentIcon,
7070
+ tier: 't1',
7071
+ mass: 0,
7072
+ itemType: 'entity',
7073
+ attributes,
7074
+ };
7075
+ }
7076
+ function resolveItem(itemId, seed, modules) {
7077
+ const id = toNum(itemId);
7078
+ if (isModuleItem(id))
7079
+ return resolveModule(id, seed);
7080
+ if (getComponentById(id))
7081
+ return resolveComponent(id, seed);
7082
+ if (getEntityRecipeByItemId(id))
7083
+ return resolveEntity(id, seed, modules);
7084
+ return resolveResource(id, seed);
7085
+ }
6473
7086
 
6474
- export { ActionsManager, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, Container, Coordinates, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GameState, INITIAL_CONTAINER_CAPACITY, INITIAL_CONTAINER_HULLMASS, INITIAL_EXTRACTOR_DRAIN, INITIAL_EXTRACTOR_EFFICIENCY, INITIAL_EXTRACTOR_RATE, INITIAL_LOADER_MASS, INITIAL_LOADER_QUANTITY, INITIAL_LOADER_THRUST, INITIAL_SHIP_CAPACITY, INITIAL_SHIP_DRAIN, INITIAL_SHIP_ENERGY, INITIAL_SHIP_GENERATOR_CAPACITY, INITIAL_SHIP_HULLMASS, INITIAL_SHIP_MASS, INITIAL_SHIP_RECHARGE, INITIAL_SHIP_THRUST, INITIAL_SHIP_Z, INITIAL_WAREHOUSE_CAPACITY, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_CARGO_LINING, ITEM_CONTAINER_PACKED, ITEM_DOES_NOT_EXIST, ITEM_HULL_PLATES, ITEM_NOT_AVAILABLE_AT_LOCATION, InventoryAccessor, Item, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, NO_SCHEDULE, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PRECISION, platform as PlatformContract, Player, PlayersManager, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CARGO_NOT_LOADED, SHIP_CARGO_NOT_OWNED, SHIP_INVALID_CARGO, SHIP_INVALID_DESTINATION, SHIP_INVALID_TRAVEL_DURATION, SHIP_NOT_ARRIVED, SHIP_NOT_ENOUGH_ENERGY, SHIP_NOT_ENOUGH_ENERGY_CAPACITY, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, ScheduleAccessor, server as ServerContract, Ship, Shipload, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, Warehouse, availableCapacity$1 as availableCapacity, availableCapacityFromMass, blendComponentStacks, blendStacks, calcCargoMass, calcEnergyUsage, calcLoadDuration, calc_acceleration, calc_energyusage, calc_extraction_duration, calc_extraction_energy, calc_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, capsHasCrafter, capsHasExtractor, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoUtils, components, computeComponentStats, computeContainerCapabilities, computeEntityStats, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeCraftedItemStats, decodeStats, Shipload as default, depthScaleFactor, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStratum, distanceBetweenCoordinates, distanceBetweenPoints, encodeStats, energyPercent, entityRecipes, estimateDealTravelTime, estimateTravelTime, findNearbyPlanets, getAllCraftableItems, getComponentById, getComponentsForCategory, getComponentsForStat, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEntityRecipe, getEntityRecipeByItemId, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getPositionAt, getResourceTier, getResourceWeight, getStatDefinitions, getStatName, getSystemName, hasEnergy, hasEnergyForDistance$1 as hasEnergyForDistance, hasExtractor, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, isExtractableLocation, isFull$1 as isFull, isFullFromMass, itemIds, lerp, makeContainer, makeShip, makeWarehouse, maxTravelDistance, needsRecharge, projectEntity, projectEntityAt, resolveStats, rotation, schedule, toLocation };
7087
+ export { ActionsManager, BASE_ORBITAL_MASS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, Container, Coordinates, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GameState, INITIAL_CONTAINER_CAPACITY, INITIAL_CONTAINER_HULLMASS, INITIAL_WAREHOUSE_CAPACITY, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_CARGO_ARM, ITEM_CARGO_LINING, ITEM_CONTAINER_PACKED, ITEM_DOES_NOT_EXIST, ITEM_DRILL_SHAFT, ITEM_ENGINE_T1, ITEM_EXTRACTION_PROBE, ITEM_EXTRACTOR_T1, ITEM_GENERATOR_T1, ITEM_HULL_PLATES, ITEM_LOADER_T1, ITEM_MANUFACTURING_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_POWER_CELL, ITEM_REACTION_CHAMBER, ITEM_SHIP_T1_PACKED, ITEM_THRUSTER_CORE, ITEM_TOOL_BIT, InventoryAccessor, Item, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MODULE_ANY, MODULE_CRAFTER, MODULE_ENGINE, MODULE_EXTRACTOR, MODULE_GENERATOR, MODULE_LAUNCHER, MODULE_LOADER, MODULE_WARP, NO_SCHEDULE, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PRECISION, platform as PlatformContract, Player, PlayersManager, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CARGO_NOT_LOADED, SHIP_CARGO_NOT_OWNED, SHIP_INVALID_CARGO, SHIP_INVALID_DESTINATION, SHIP_INVALID_TRAVEL_DURATION, SHIP_NOT_ARRIVED, SHIP_NOT_ENOUGH_ENERGY, SHIP_NOT_ENOUGH_ENERGY_CAPACITY, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, ScheduleAccessor, server as ServerContract, Ship, Shipload, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, Warehouse, availableCapacity$1 as availableCapacity, availableCapacityFromMass, blendCargoStacks, blendComponentStacks, blendStacks, calcCargoMass, calcEnergyUsage, calcLoadDuration, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_extraction_duration, calc_extraction_energy, calc_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, capsHasCrafter, capsHasExtractor, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoUtils, categoryColors, categoryIcons, componentIcon, components, computeComponentStats, computeContainerCapabilities, computeEngineCapabilities, computeEntityStats, computeExtractorCapabilities, computeGeneratorCapabilities, computeLoaderCapabilities, computeManufacturingCapabilities, computeShipHullCapabilities, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeCraftedItemStats, decodeStats, Shipload as default, depthScaleFactor, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStratum, distanceBetweenCoordinates, distanceBetweenPoints, encodeStats, energyPercent, entityRecipes, estimateDealTravelTime, estimateTravelTime, findNearbyPlanets, getAllCraftableItems, getComponentById, getComponentsForCategory, getComponentsForStat, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEntityRecipe, getEntityRecipeByItemId, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getModuleCapabilityType, getModuleRecipe, getModuleRecipeByItemId, getPositionAt, getResourceTier, getResourceWeight, getStatDefinitions, getStatName, getSystemName, hasEnergy, hasEnergyForDistance$1 as hasEnergyForDistance, hasExtractor, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, isExtractableLocation, isFull$1 as isFull, isFullFromMass, isModuleItem, itemIds, lerp, makeContainer, makeShip, makeWarehouse, maxTravelDistance, moduleAccepts, moduleIcon, moduleRecipes, needsRecharge, projectEntity, projectEntityAt, resolveItem, resolveStats, rotation, schedule, tierColors, toLocation };
6475
7088
  //# sourceMappingURL=shipload.m.js.map